@razorpay/blade 11.21.7 → 11.21.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/List/List.js +1 -1
- package/build/lib/native/components/List/List.js.map +1 -1
- package/build/lib/native/components/List/ListContext.js.map +1 -1
- package/build/lib/native/components/List/ListItem.js +1 -1
- package/build/lib/native/components/List/ListItem.js.map +1 -1
- package/build/lib/native/components/List/ListItemIcons.js +1 -1
- package/build/lib/native/components/List/ListItemIcons.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +35 -19
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/List/List.js +4 -2
- package/build/lib/web/development/components/List/List.js.map +1 -1
- package/build/lib/web/development/components/List/ListContext.js.map +1 -1
- package/build/lib/web/development/components/List/ListItem.js +6 -2
- package/build/lib/web/development/components/List/ListItem.js.map +1 -1
- package/build/lib/web/development/components/List/ListItemIcons.js +3 -2
- package/build/lib/web/development/components/List/ListItemIcons.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +35 -19
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/List/List.js +4 -2
- package/build/lib/web/production/components/List/List.js.map +1 -1
- package/build/lib/web/production/components/List/ListContext.js.map +1 -1
- package/build/lib/web/production/components/List/ListItem.js +6 -2
- package/build/lib/web/production/components/List/ListItem.js.map +1 -1
- package/build/lib/web/production/components/List/ListItemIcons.js +3 -2
- package/build/lib/web/production/components/List/ListItemIcons.js.map +1 -1
- package/build/types/components/index.d.ts +9 -2
- package/build/types/components/index.native.d.ts +9 -2
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.native
|
|
|
21
21
|
import { isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
22
22
|
import { jsx } from 'react/jsx-runtime';
|
|
23
23
|
|
|
24
|
-
var _excluded=["variant","size","children","icon","testID"];var StyledOrderedList=styled(OrderedList)(function(_ref){var marginTop=_ref.marginTop,theme=_ref.theme;return {marginTop:marginTop?makeSpace(getIn(theme,marginTop)):undefined};});var StyledUnorderedList=styled(UnorderedList)(function(_ref2){var marginTop=_ref2.marginTop,theme=_ref2.theme;return {marginTop:marginTop?makeSpace(getIn(theme,marginTop)):undefined};});var _List=function _List(_ref3){var _ref3$variant=_ref3.variant,variant=_ref3$variant===void 0?'unordered':_ref3$variant,size=_ref3.size,children=_ref3.children,icon=_ref3.icon,testID=_ref3.testID,styledProps=_objectWithoutProperties(_ref3,_excluded);var ListElement=variant==='unordered'?StyledUnorderedList:StyledOrderedList;var _useListContext=useListContext(),level=_useListContext.level,listContextSize=_useListContext.size;var listContextValue=useMemo(function(){return {level:level?level+1:1,size:size!=null?size:listContextSize,icon:icon,variant:variant};},[icon,level,listContextSize,size,variant]);var childrenArray=React__default.Children.toArray(children);var childListItems=childrenArray.filter(function(child){if(isValidAllowedChildren(child,MetaConstants.ListItem)){return child;}if(__DEV__){throwBladeError({message:'You can only pass a ListItem as a child to List.',moduleName:'List'});}return null;});return jsx(ListProvider,{value:listContextValue,children:jsx(BaseBox,Object.assign({},getStyledProps(styledProps),{children:jsx(ListElement,Object.assign({},metaAttribute({name:MetaConstants.List,testID:testID}),makeAccessible({role:'list'}),{children:variant==='unordered'?childListItems:childListItems.map(function(child,index){return React__default.cloneElement(child,{_itemNumber:index+1});})}))}))});};var List=assignWithoutSideEffects(_List,{componentId:MetaConstants.List});
|
|
24
|
+
var _excluded=["variant","size","children","icon","testID","iconColor"];var StyledOrderedList=styled(OrderedList)(function(_ref){var marginTop=_ref.marginTop,theme=_ref.theme;return {marginTop:marginTop?makeSpace(getIn(theme,marginTop)):undefined};});var StyledUnorderedList=styled(UnorderedList)(function(_ref2){var marginTop=_ref2.marginTop,theme=_ref2.theme;return {marginTop:marginTop?makeSpace(getIn(theme,marginTop)):undefined};});var _List=function _List(_ref3){var _ref3$variant=_ref3.variant,variant=_ref3$variant===void 0?'unordered':_ref3$variant,size=_ref3.size,children=_ref3.children,icon=_ref3.icon,testID=_ref3.testID,iconColor=_ref3.iconColor,styledProps=_objectWithoutProperties(_ref3,_excluded);var ListElement=variant==='unordered'?StyledUnorderedList:StyledOrderedList;var _useListContext=useListContext(),level=_useListContext.level,listContextSize=_useListContext.size;var listContextValue=useMemo(function(){return {level:level?level+1:1,size:size!=null?size:listContextSize,icon:icon,iconColor:iconColor,variant:variant};},[icon,iconColor,level,listContextSize,size,variant]);var childrenArray=React__default.Children.toArray(children);var childListItems=childrenArray.filter(function(child){if(isValidAllowedChildren(child,MetaConstants.ListItem)){return child;}if(__DEV__){throwBladeError({message:'You can only pass a ListItem as a child to List.',moduleName:'List'});}return null;});return jsx(ListProvider,{value:listContextValue,children:jsx(BaseBox,Object.assign({},getStyledProps(styledProps),{children:jsx(ListElement,Object.assign({},metaAttribute({name:MetaConstants.List,testID:testID}),makeAccessible({role:'list'}),{children:variant==='unordered'?childListItems:childListItems.map(function(child,index){return React__default.cloneElement(child,{_itemNumber:index+1});})}))}))});};var List=assignWithoutSideEffects(_List,{componentId:MetaConstants.List});
|
|
25
25
|
|
|
26
26
|
export { List };
|
|
27
27
|
//# sourceMappingURL=List.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../../../../src/components/List/List.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { ListProvider, useListContext } from './ListContext';\nimport { UnorderedList } from './UnorderedList';\nimport { OrderedList } from './OrderedList';\nimport type { ListItemProps } from './ListItem';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { IconComponent } from '~components/Icons';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { DotNotationSpacingStringToken, TestID } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListCommonProps = {\n /**\n * ListItem to be rendered for the List.\n *\n */\n children: React.ReactElement<ListItemProps> | React.ReactElement<ListItemProps>[];\n /**\n * Sets the variant to be rendered for the List.\n *\n * @default 'unordered'\n */\n variant?: 'unordered' | 'ordered' | 'ordered-filled';\n /**\n * Sets the size for the List.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n} & TestID &\n StyledPropsBlade;\n\ntype ListWithIconProps = ListCommonProps & {\n variant?: 'unordered';\n icon?: IconComponent;\n};\ntype ListWithoutIconProps = ListCommonProps & {\n variant?: 'ordered' | 'ordered-filled';\n icon?: undefined;\n};\ntype ListProps = ListWithIconProps | ListWithoutIconProps;\n\nconst StyledOrderedList = styled(OrderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\nconst StyledUnorderedList = styled(UnorderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\n/**\n * List Component is used to display a set of related items that are composed of text/links. Each list item begins with a bullet or a number.\n *\n * ## Usage\n *\n * ```tsx\n * <List\n * variant='unordered'\n * size='medium'\n * >\n * <ListItem>\n * Item 1\n * <List>\n * <ListItem>Item 1.1</ListItem>\n * </List>\n * </ListItem>\n * <ListItem>Item 2</ListItem>\n * <List />\n * ```\n */\nconst _List = ({\n variant = 'unordered',\n size,\n children,\n icon,\n testID,\n ...styledProps\n}: ListProps): React.ReactElement => {\n const ListElement = variant === 'unordered' ? StyledUnorderedList : StyledOrderedList;\n const { level, size: listContextSize } = useListContext();\n const listContextValue = useMemo(\n () => ({\n level: level ? level + 1 : 1,\n size: size ?? listContextSize,\n icon,\n variant,\n }),\n [icon, level, listContextSize, size, variant],\n );\n\n const childrenArray = React.Children.toArray(children);\n const childListItems = childrenArray.filter((child) => {\n if (isValidAllowedChildren(child, MetaConstants.ListItem)) {\n return child;\n }\n if (__DEV__) {\n throwBladeError({\n message: 'You can only pass a ListItem as a child to List.',\n moduleName: 'List',\n });\n }\n return null;\n });\n\n return (\n <ListProvider value={listContextValue}>\n <BaseBox {...getStyledProps(styledProps)}>\n <ListElement\n {...metaAttribute({ name: MetaConstants.List, testID })}\n {...makeAccessible({ role: 'list' })} // Role needed for react-native\n >\n {variant === 'unordered'\n ? childListItems\n : childListItems.map(\n (child, index) =>\n React.cloneElement(child as React.ReactElement, { _itemNumber: index + 1 }), // adds _itemNumber for rendering ordered list bullets\n )}\n </ListElement>\n </BaseBox>\n </ListProvider>\n );\n};\n\nconst List = assignWithoutSideEffects(_List, { componentId: MetaConstants.List });\n\nexport { List };\nexport type { ListProps };\n"],"names":["StyledOrderedList","styled","OrderedList","_ref","marginTop","theme","makeSpace","getIn","undefined","StyledUnorderedList","UnorderedList","_ref2","_List","_ref3","_ref3$variant","variant","size","children","icon","testID","styledProps","_objectWithoutProperties","_excluded","ListElement","_useListContext","useListContext","level","listContextSize","listContextValue","useMemo","childrenArray","React","Children","toArray","childListItems","filter","child","isValidAllowedChildren","MetaConstants","ListItem","__DEV__","throwBladeError","message","moduleName","_jsx","ListProvider","value","BaseBox","Object","assign","getStyledProps","metaAttribute","name","List","makeAccessible","role","map","index","cloneElement","_itemNumber","assignWithoutSideEffects","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../../../src/components/List/List.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { ListProvider, useListContext } from './ListContext';\nimport { UnorderedList } from './UnorderedList';\nimport { OrderedList } from './OrderedList';\nimport type { ListItemProps } from './ListItem';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { IconComponent, IconProps } from '~components/Icons';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { DotNotationSpacingStringToken, TestID } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListCommonProps = {\n /**\n * ListItem to be rendered for the List.\n *\n */\n children: React.ReactElement<ListItemProps> | React.ReactElement<ListItemProps>[];\n /**\n * Sets the variant to be rendered for the List.\n *\n * @default 'unordered'\n */\n variant?: 'unordered' | 'ordered' | 'ordered-filled';\n /**\n * Sets the size for the List.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n} & TestID &\n StyledPropsBlade;\n\ntype ListWithIconProps = ListCommonProps & {\n variant?: 'unordered';\n icon?: IconComponent;\n iconColor?: IconProps['color'];\n};\ntype ListWithoutIconProps = ListCommonProps & {\n variant?: 'ordered' | 'ordered-filled';\n icon?: undefined;\n iconColor?: undefined;\n};\ntype ListProps = ListWithIconProps | ListWithoutIconProps;\n\nconst StyledOrderedList = styled(OrderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\nconst StyledUnorderedList = styled(UnorderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\n/**\n * List Component is used to display a set of related items that are composed of text/links. Each list item begins with a bullet or a number.\n *\n * ## Usage\n *\n * ```tsx\n * <List\n * variant='unordered'\n * size='medium'\n * >\n * <ListItem>\n * Item 1\n * <List>\n * <ListItem>Item 1.1</ListItem>\n * </List>\n * </ListItem>\n * <ListItem>Item 2</ListItem>\n * <List />\n * ```\n */\nconst _List = ({\n variant = 'unordered',\n size,\n children,\n icon,\n testID,\n iconColor,\n ...styledProps\n}: ListProps): React.ReactElement => {\n const ListElement = variant === 'unordered' ? StyledUnorderedList : StyledOrderedList;\n const { level, size: listContextSize } = useListContext();\n const listContextValue = useMemo(\n () => ({\n level: level ? level + 1 : 1,\n size: size ?? listContextSize,\n icon,\n iconColor,\n variant,\n }),\n [icon, iconColor, level, listContextSize, size, variant],\n );\n\n const childrenArray = React.Children.toArray(children);\n const childListItems = childrenArray.filter((child) => {\n if (isValidAllowedChildren(child, MetaConstants.ListItem)) {\n return child;\n }\n if (__DEV__) {\n throwBladeError({\n message: 'You can only pass a ListItem as a child to List.',\n moduleName: 'List',\n });\n }\n return null;\n });\n\n return (\n <ListProvider value={listContextValue}>\n <BaseBox {...getStyledProps(styledProps)}>\n <ListElement\n {...metaAttribute({ name: MetaConstants.List, testID })}\n {...makeAccessible({ role: 'list' })} // Role needed for react-native\n >\n {variant === 'unordered'\n ? childListItems\n : childListItems.map(\n (child, index) =>\n React.cloneElement(child as React.ReactElement, { _itemNumber: index + 1 }), // adds _itemNumber for rendering ordered list bullets\n )}\n </ListElement>\n </BaseBox>\n </ListProvider>\n );\n};\n\nconst List = assignWithoutSideEffects(_List, { componentId: MetaConstants.List });\n\nexport { List };\nexport type { ListProps };\n"],"names":["StyledOrderedList","styled","OrderedList","_ref","marginTop","theme","makeSpace","getIn","undefined","StyledUnorderedList","UnorderedList","_ref2","_List","_ref3","_ref3$variant","variant","size","children","icon","testID","iconColor","styledProps","_objectWithoutProperties","_excluded","ListElement","_useListContext","useListContext","level","listContextSize","listContextValue","useMemo","childrenArray","React","Children","toArray","childListItems","filter","child","isValidAllowedChildren","MetaConstants","ListItem","__DEV__","throwBladeError","message","moduleName","_jsx","ListProvider","value","BaseBox","Object","assign","getStyledProps","metaAttribute","name","List","makeAccessible","role","map","index","cloneElement","_itemNumber","assignWithoutSideEffects","componentId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListContext.js","sources":["../../../../../src/components/List/ListContext.ts"],"sourcesContent":["import React from 'react';\nimport type { ListProps } from './List';\nimport type { IconComponent } from '~components/Icons';\n\nexport type ListContextType = {\n level?: number;\n size: NonNullable<ListProps['size']>;\n icon?: IconComponent;\n variant: NonNullable<ListProps['variant']>;\n};\n\nconst ListContext = React.createContext<ListContextType>({\n level: undefined,\n size: 'medium',\n variant: 'unordered',\n});\nconst ListProvider = ListContext.Provider;\n\nconst useListContext = (): ListContextType => {\n const context = React.useContext(ListContext);\n return context;\n};\n\nexport { useListContext, ListProvider };\n"],"names":["ListContext","React","createContext","level","undefined","size","variant","ListProvider","Provider","useListContext","context","useContext"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ListContext.js","sources":["../../../../../src/components/List/ListContext.ts"],"sourcesContent":["import React from 'react';\nimport type { ListProps } from './List';\nimport type { IconComponent } from '~components/Icons';\n\nexport type ListContextType = {\n level?: number;\n size: NonNullable<ListProps['size']>;\n icon?: IconComponent;\n iconColor?: ListProps['iconColor'];\n variant: NonNullable<ListProps['variant']>;\n};\n\nconst ListContext = React.createContext<ListContextType>({\n level: undefined,\n size: 'medium',\n variant: 'unordered',\n});\nconst ListProvider = ListContext.Provider;\n\nconst useListContext = (): ListContextType => {\n const context = React.useContext(ListContext);\n return context;\n};\n\nexport { useListContext, ListProvider };\n"],"names":["ListContext","React","createContext","level","undefined","size","variant","ListProvider","Provider","useListContext","context","useContext"],"mappings":";;AAYA,IAAMA,WAAW,CAAGC,cAAK,CAACC,aAAa,CAAkB,CACvDC,KAAK,CAAEC,SAAS,CAChBC,IAAI,CAAE,QAAQ,CACdC,OAAO,CAAE,WACX,CAAC,CAAC,CACI,IAAAC,YAAY,CAAGP,WAAW,CAACQ,SAE3B,IAAAC,cAAc,CAAG,SAAjBA,cAAcA,EAA0B,CAC5C,IAAMC,OAAO,CAAGT,cAAK,CAACU,UAAU,CAACX,WAAW,CAAC,CAC7C,OAAOU,OAAO,CAChB;;;;"}
|
|
@@ -27,7 +27,7 @@ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
|
27
27
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
28
28
|
import { getComponentId, isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
29
29
|
|
|
30
|
-
var StyledListItem=styled(ListItemElement)(function(_ref){var level=_ref.level,theme=_ref.theme,variant=_ref.variant,hasIcon=_ref.hasIcon;return {marginLeft:level?getIn(theme,listItemMarginLeft[`${variant}${variant==='unordered'&&hasIcon?'WithIcon':''}`][level]):0};});var ListItemContentChildren=function ListItemContentChildren(_ref2){var children=_ref2.children,size=_ref2.size;return getPlatformType()==='react-native'?jsx(BaseBox,{display:"flex",flexDirection:"row",flexWrap:"wrap",children:children.map(function(child,index){if(typeof child==='string'){return jsx(Text,{variant:"body",size:size,children:child},index);}return child;})}):jsx(Text,{variant:"body",size:size,children:children});};var _ListItem=function _ListItem(_ref3){var children=_ref3.children,Icon=_ref3.icon,_itemNumber=_ref3._itemNumber,testID=_ref3.testID;var _useListContext=useListContext(),level=_useListContext.level,size=_useListContext.size,ListContextIcon=_useListContext.icon,variant=_useListContext.variant;var _useTheme=useTheme(),theme=_useTheme.theme,platform=_useTheme.platform;var ItemIcon=Icon!=null?Icon:ListContextIcon;if(__DEV__){if(level&&level>3){throwBladeError({message:'List Nesting is allowed only upto 3 levels.',moduleName:'List'});}}var childrenArray=React__default.Children.toArray(children);var validChildItem=childrenArray.filter(function(child){if(getComponentId(child)===MetaConstants.List)return null;if(typeof child==='string'||isValidAllowedChildren(child,MetaConstants.ListItemLink)||isValidAllowedChildren(child,MetaConstants.ListItemText)||isValidAllowedChildren(child,MetaConstants.ListItemCode)){return child;}else if(__DEV__){throwBladeError({message:`You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,moduleName:'ListItem'});}return null;});var childList=childrenArray.filter(function(child){return getComponentId(child)===MetaConstants.List?child:null;});var hasIcon=Boolean(ItemIcon);return jsxs(StyledListItem,Object.assign({level:level,variant:variant,hasIcon:hasIcon},metaAttribute({name:MetaConstants.ListItem,testID:testID}),{children:[jsxs(BaseBox,{display:"flex",flexDirection:"row",alignItems:"center",marginBottom:listItemMarginBottom,children:[variant==='unordered'?jsx(BaseBox,{marginRight:listItemBulletMarginRight[variant],marginTop:listItemBulletMarginTop[`${variant}${hasIcon?'WithIcon':''}`][platform][size],display:"flex",alignSelf:"flex-start",children:ItemIcon?jsx(ItemIcon,{size:size,color:
|
|
30
|
+
var StyledListItem=styled(ListItemElement)(function(_ref){var level=_ref.level,theme=_ref.theme,variant=_ref.variant,hasIcon=_ref.hasIcon;return {marginLeft:level?getIn(theme,listItemMarginLeft[`${variant}${variant==='unordered'&&hasIcon?'WithIcon':''}`][level]):0};});var ListItemContentChildren=function ListItemContentChildren(_ref2){var children=_ref2.children,size=_ref2.size;return getPlatformType()==='react-native'?jsx(BaseBox,{display:"flex",flexDirection:"row",flexWrap:"wrap",children:children.map(function(child,index){if(typeof child==='string'){return jsx(Text,{variant:"body",size:size,children:child},index);}return child;})}):jsx(Text,{variant:"body",size:size,children:children});};var _ListItem=function _ListItem(_ref3){var _ref4;var children=_ref3.children,Icon=_ref3.icon,listItemIconColor=_ref3.iconColor,_itemNumber=_ref3._itemNumber,testID=_ref3.testID;var _useListContext=useListContext(),level=_useListContext.level,size=_useListContext.size,ListContextIcon=_useListContext.icon,variant=_useListContext.variant,iconColor=_useListContext.iconColor;var _useTheme=useTheme(),theme=_useTheme.theme,platform=_useTheme.platform;var ItemIcon=Icon!=null?Icon:ListContextIcon;var iconColorToken=(_ref4=listItemIconColor!=null?listItemIconColor:iconColor)!=null?_ref4:'surface.icon.gray.muted';if(__DEV__){if(level&&level>3){throwBladeError({message:'List Nesting is allowed only upto 3 levels.',moduleName:'List'});}}var childrenArray=React__default.Children.toArray(children);var validChildItem=childrenArray.filter(function(child){if(getComponentId(child)===MetaConstants.List)return null;if(typeof child==='string'||isValidAllowedChildren(child,MetaConstants.ListItemLink)||isValidAllowedChildren(child,MetaConstants.ListItemText)||isValidAllowedChildren(child,MetaConstants.ListItemCode)){return child;}else if(__DEV__){throwBladeError({message:`You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,moduleName:'ListItem'});}return null;});var childList=childrenArray.filter(function(child){return getComponentId(child)===MetaConstants.List?child:null;});var hasIcon=Boolean(ItemIcon);return jsxs(StyledListItem,Object.assign({level:level,variant:variant,hasIcon:hasIcon},metaAttribute({name:MetaConstants.ListItem,testID:testID}),{children:[jsxs(BaseBox,{display:"flex",flexDirection:"row",alignItems:"center",marginBottom:listItemMarginBottom,children:[variant==='unordered'?jsx(BaseBox,{marginRight:listItemBulletMarginRight[variant],marginTop:listItemBulletMarginTop[`${variant}${hasIcon?'WithIcon':''}`][platform][size],display:"flex",alignSelf:"flex-start",children:ItemIcon?jsx(ItemIcon,{size:size,color:iconColorToken}):jsx(UnorderedItemIcon,{level:level})}):jsx(BaseBox,{width:listItemOrderedBulletBoxSize[variant][platform][size],height:listItemOrderedBulletBoxSize[variant][platform][size],marginRight:listItemBulletMarginRight[variant],marginTop:listItemBulletMarginTop[variant][platform][size],display:"flex",flexShrink:0,justifyContent:"center",alignSelf:"flex-start",alignItems:"center",borderRadius:variant==='ordered-filled'?'max':undefined,backgroundColor:variant==='ordered-filled'?getIn(theme.colors,'feedback.background.neutral.subtle'):undefined,children:jsx(Text,{variant:"body",color:"surface.text.gray.muted",size:variant==='ordered'?size:'xsmall',children:`${getOrderedListItemBullet({itemNumber:_itemNumber!=null?_itemNumber:1,level:level!=null?level:1})}${variant==='ordered'?'.':''}`})}),jsx(ListItemContentChildren,{size:size,children:validChildItem})]}),childList]}));};var ListItem=assignWithoutSideEffects(_ListItem,{componentId:MetaConstants.ListItem});
|
|
31
31
|
|
|
32
32
|
export { ListItem };
|
|
33
33
|
//# sourceMappingURL=ListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sources":["../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color=\"surface.icon.gray.muted\" />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","Icon","icon","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","__DEV__","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","Object","assign","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,IAAMA,cAAc,CAAGC,MAAM,CAACC,eAAe,CAAC,CAI3C,SAAAC,IAAA,MAAGC,KAAK,CAAAD,IAAA,CAALC,KAAK,CAAEC,KAAK,CAAAF,IAAA,CAALE,KAAK,CAAEC,OAAO,CAAAH,IAAA,CAAPG,OAAO,CAAEC,OAAO,CAAAJ,IAAA,CAAPI,OAAO,CAAQ,OAAA,CAC1CC,UAAU,CAAEJ,KAAK,CACbK,KAAK,CACHJ,KAAK,CACLK,kBAAkB,CACf,CAAEJ,EAAAA,OAAQ,CAAEA,EAAAA,OAAO,GAAK,WAAW,EAAIC,OAAO,CAAG,UAAU,CAAG,EAAG,CAAC,CAAA,CAGpE,CAACH,KAAK,CACT,CAAC,CACD,CACN,CAAC,CAAA,CAAC,CAAC,CAEH,IAAMO,uBAAuB,CAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,CAMH,CALxB,IAAAC,QAAQ,CAAAD,KAAA,CAARC,QAAQ,CACRC,IAAI,CAAAF,KAAA,CAAJE,IAAI,CAQJ,OAAOC,eAAe,EAAE,GAAK,cAAc,CACzCC,GAAA,CAACC,OAAO,CAACC,CAAAA,OAAO,CAAC,MAAM,CAACC,aAAa,CAAC,KAAK,CAACC,QAAQ,CAAC,MAAM,CAAAP,QAAA,CACxDA,QAAQ,CAACQ,GAAG,CAAC,SAACC,KAAK,CAAEC,KAAK,CAAK,CAC9B,GAAI,OAAOD,KAAK,GAAK,QAAQ,CAAE,CAC7B,OACEN,GAAA,CAACQ,IAAI,CAAA,CAAalB,OAAO,CAAC,MAAM,CAACQ,IAAI,CAAEA,IAAK,CAAAD,QAAA,CACzCS,KAAK,CAAA,CADGC,KAEL,CAAC,CAEX,CACA,OAAOD,KAAK,CACd,CAAC,CAAC,CACK,CAAC,CAEVN,GAAA,CAACQ,IAAI,CAAClB,CAAAA,OAAO,CAAC,MAAM,CAACQ,IAAI,CAAEA,IAAK,CAAAD,QAAA,CAC7BA,QAAQ,CACL,CACP,CACH,CAAC,CAED,IAAMY,SAAS,CAAG,SAAZA,SAASA,CAAAC,KAAA,CAK0B,CAJvC,IAAAb,QAAQ,CAAAa,KAAA,CAARb,QAAQ,CACFc,IAAI,CAAAD,KAAA,CAAVE,IAAI,CACJC,WAAW,CAAAH,KAAA,CAAXG,WAAW,CACXC,MAAM,CAAAJ,KAAA,CAANI,MAAM,CAEN,IAAAC,eAAA,CAAwDC,cAAc,EAAE,CAAhE5B,KAAK,CAAA2B,eAAA,CAAL3B,KAAK,CAAEU,IAAI,CAAAiB,eAAA,CAAJjB,IAAI,CAAQmB,eAAe,CAAAF,eAAA,CAArBH,IAAI,CAAmBtB,OAAO,CAAAyB,eAAA,CAAPzB,OAAO,CACnD,IAAA4B,SAAA,CAA4BC,QAAQ,EAAE,CAA9B9B,KAAK,CAAA6B,SAAA,CAAL7B,KAAK,CAAE+B,QAAQ,CAAAF,SAAA,CAARE,QAAQ,CACvB,IAAMC,QAAQ,CAAGV,IAAI,EAAJA,IAAAA,CAAAA,IAAI,CAAIM,eAAe,CAExC,GAAIK,OAAO,CAAE,CACX,GAAIlC,KAAK,EAAIA,KAAK,CAAG,CAAC,CAAE,CACtBmC,eAAe,CAAC,CACdC,OAAO,CAAE,6CAA6C,CACtDC,UAAU,CAAE,MACd,CAAC,CAAC,CACJ,CACF,CAEA,IAAMC,aAAa,CAAGC,cAAK,CAACC,QAAQ,CAACC,OAAO,CAAChC,QAAQ,CAAC,CAGtD,IAAMiC,cAAc,CAAGJ,aAAa,CAACK,MAAM,CAAC,SAACzB,KAAK,CAAK,CACrD,GAAI0B,cAAc,CAAC1B,KAAK,CAAC,GAAK2B,aAAa,CAACC,IAAI,CAAE,OAAW,IAAA,CAE7D,GACE,OAAO5B,KAAK,GAAK,QAAQ,EACzB6B,sBAAsB,CAAC7B,KAAK,CAAE2B,aAAa,CAACG,YAAY,CAAC,EACzDD,sBAAsB,CAAC7B,KAAK,CAAE2B,aAAa,CAACI,YAAY,CAAC,EACzDF,sBAAsB,CAAC7B,KAAK,CAAE2B,aAAa,CAACK,YAAY,CAAC,CACzD,CACA,OAAOhC,KAAK,CACd,CAAC,KAAM,GAAIgB,OAAO,CAAE,CAClBC,eAAe,CAAC,CACdC,OAAO,CAAG,CAAA,sGAAA,CAAuG,CACjHC,UAAU,CAAE,UACd,CAAC,CAAC,CACJ,CACA,OAAO,IAAI,CACb,CAAC,CAAC,CAEF,IAAMc,SAAS,CAAGb,aAAa,CAACK,MAAM,CAAC,SAACzB,KAAK,CAAA,CAAA,OAC3C0B,cAAc,CAAC1B,KAAK,CAAC,GAAK2B,aAAa,CAACC,IAAI,CAAG5B,KAAK,CAAG,IAAI,CAC7D,CAAA,CAAC,CACD,IAAMf,OAAO,CAAGiD,OAAO,CAACnB,QAAQ,CAAC,CAEjC,OACEoB,IAAA,CAACzD,cAAc,CAAA0D,MAAA,CAAAC,MAAA,CACbvD,CAAAA,KAAK,CAAEA,KAAM,CACbE,OAAO,CAAEA,OAAQ,CACjBC,OAAO,CAAEA,OAAQ,CAAA,CACbqD,aAAa,CAAC,CAAEC,IAAI,CAAEZ,aAAa,CAACa,QAAQ,CAAEhC,MAAM,CAANA,MAAO,CAAC,CAAC,CAAAjB,CAAAA,QAAA,EAE3D4C,IAAA,CAACxC,OAAO,CACNC,CAAAA,OAAO,CAAC,MAAM,CACdC,aAAa,CAAC,KAAK,CACnB4C,UAAU,CAAC,QAAQ,CACnBC,YAAY,CAAEC,oBAAqB,CAAApD,QAAA,CAAA,CAElCP,OAAO,GAAK,WAAW,CACtBU,GAAA,CAACC,OAAO,EACNiD,WAAW,CAAEC,yBAAyB,CAAC7D,OAAO,CAAE,CAChD8D,SAAS,CACPC,uBAAuB,CAAE,CAAA,EAAE/D,OAAQ,CAAA,EAAEC,OAAO,CAAG,UAAU,CAAG,EAAG,CAAC,CAAA,CAAC,CAAC6B,QAAQ,CAAC,CAACtB,IAAI,CACjF,CACDI,OAAO,CAAC,MAAM,CACdoD,SAAS,CAAC,YAAY,CAAAzD,QAAA,CAErBwB,QAAQ,CACPrB,GAAA,CAACqB,QAAQ,EAACvB,IAAI,CAAEA,IAAK,CAACyD,KAAK,CAAC,yBAAyB,CAAE,CAAC,CAExDvD,GAAA,CAACwD,iBAAiB,CAACpE,CAAAA,KAAK,CAAEA,KAAM,CAAE,CACnC,CACM,CAAC,CAEVY,GAAA,CAACC,OAAO,CAAA,CACNwD,KAAK,CAAEC,4BAA4B,CAACpE,OAAO,CAAC,CAAC8B,QAAQ,CAAC,CAACtB,IAAI,CAAE,CAC7D6D,MAAM,CAAED,4BAA4B,CAACpE,OAAO,CAAC,CAAC8B,QAAQ,CAAC,CAACtB,IAAI,CAAE,CAC9DoD,WAAW,CAAEC,yBAAyB,CAAC7D,OAAO,CAAE,CAChD8D,SAAS,CAAEC,uBAAuB,CAAC/D,OAAO,CAAC,CAAC8B,QAAQ,CAAC,CAACtB,IAAI,CAAE,CAC5DI,OAAO,CAAC,MAAM,CACd0D,UAAU,CAAE,CAAE,CACdC,cAAc,CAAC,QAAQ,CACvBP,SAAS,CAAC,YAAY,CACtBP,UAAU,CAAC,QAAQ,CACnBe,YAAY,CAAExE,OAAO,GAAK,gBAAgB,CAAG,KAAK,CAAGyE,SAAU,CAC/DC,eAAe,CACb1E,OAAO,GAAK,gBAAgB,CACxBG,KAAK,CAACJ,KAAK,CAAC4E,MAAM,CAAE,oCAAoC,CAAC,CACzDF,SACL,CAAAlE,QAAA,CAEDG,GAAA,CAACQ,IAAI,CAAA,CACHlB,OAAO,CAAC,MAAM,CACdiE,KAAK,CAAC,yBAAyB,CAC/BzD,IAAI,CAAER,OAAO,GAAK,SAAS,CAAGQ,IAAI,CAAG,QAAS,CAAAD,QAAA,CAE5C,CAAEqE,EAAAA,wBAAwB,CAAC,CAC3BC,UAAU,CAAEtD,WAAW,EAAXA,IAAAA,CAAAA,WAAW,CAAI,CAAC,CAC5BzB,KAAK,CAAEA,KAAK,EAAA,IAAA,CAALA,KAAK,CAAI,CAClB,CAAC,CAAE,CAAEE,EAAAA,OAAO,GAAK,SAAS,CAAG,GAAG,CAAG,EAAG,EAAC,CACnC,CAAC,CACA,CACV,CACDU,GAAA,CAACL,uBAAuB,CAAA,CAACG,IAAI,CAAEA,IAAK,CAAAD,QAAA,CAAEiC,cAAc,CAA0B,CAAC,CACxE,CAAA,CAAC,CACTS,SAAS,CAAA,CAAA,CACI,CAAC,CAErB,CAAC,CAEK,IAAAO,QAAQ,CAAGsB,wBAAwB,CAAC3D,SAAS,CAAE,CAAE4D,WAAW,CAAEpC,aAAa,CAACa,QAAS,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"ListItem.js","sources":["../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * Icon color of the ListItem's bullet.\n *\n */\n iconColor?: ListProps['iconColor'];\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n iconColor: listItemIconColor,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant, iconColor } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n const iconColorToken = listItemIconColor ?? iconColor ?? 'surface.icon.gray.muted';\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color={iconColorToken} />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","_ref4","Icon","icon","listItemIconColor","iconColor","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","iconColorToken","__DEV__","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","Object","assign","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,IAAMA,cAAc,CAAGC,MAAM,CAACC,eAAe,CAAC,CAI3C,SAAAC,IAAA,CAAA,CAAA,IAAGC,KAAK,CAAAD,IAAA,CAALC,KAAK,CAAEC,KAAK,CAAAF,IAAA,CAALE,KAAK,CAAEC,OAAO,CAAAH,IAAA,CAAPG,OAAO,CAAEC,OAAO,CAAAJ,IAAA,CAAPI,OAAO,CAAQ,OAAA,CAC1CC,UAAU,CAAEJ,KAAK,CACbK,KAAK,CACHJ,KAAK,CACLK,kBAAkB,CACf,CAAA,EAAEJ,OAAQ,CAAEA,EAAAA,OAAO,GAAK,WAAW,EAAIC,OAAO,CAAG,UAAU,CAAG,EAAG,CAAA,CAAC,CAGpE,CAACH,KAAK,CACT,CAAC,CACD,CACN,CAAC,CAAA,CAAC,CAAC,CAEH,IAAMO,uBAAuB,CAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,CAMH,CALxB,IAAAC,QAAQ,CAAAD,KAAA,CAARC,QAAQ,CACRC,IAAI,CAAAF,KAAA,CAAJE,IAAI,CAQJ,OAAOC,eAAe,EAAE,GAAK,cAAc,CACzCC,GAAA,CAACC,OAAO,CAAA,CAACC,OAAO,CAAC,MAAM,CAACC,aAAa,CAAC,KAAK,CAACC,QAAQ,CAAC,MAAM,CAAAP,QAAA,CACxDA,QAAQ,CAACQ,GAAG,CAAC,SAACC,KAAK,CAAEC,KAAK,CAAK,CAC9B,GAAI,OAAOD,KAAK,GAAK,QAAQ,CAAE,CAC7B,OACEN,GAAA,CAACQ,IAAI,CAAalB,CAAAA,OAAO,CAAC,MAAM,CAACQ,IAAI,CAAEA,IAAK,CAAAD,QAAA,CACzCS,KAAK,CADGC,CAAAA,KAEL,CAAC,CAEX,CACA,OAAOD,KAAK,CACd,CAAC,CAAC,CACK,CAAC,CAEVN,GAAA,CAACQ,IAAI,CAAA,CAAClB,OAAO,CAAC,MAAM,CAACQ,IAAI,CAAEA,IAAK,CAAAD,QAAA,CAC7BA,QAAQ,CACL,CACP,CACH,CAAC,CAED,IAAMY,SAAS,CAAG,SAAZA,SAASA,CAAAC,KAAA,CAM0B,CAAAC,IAAAA,KAAA,KALvCd,QAAQ,CAAAa,KAAA,CAARb,QAAQ,CACFe,IAAI,CAAAF,KAAA,CAAVG,IAAI,CACOC,iBAAiB,CAAAJ,KAAA,CAA5BK,SAAS,CACTC,WAAW,CAAAN,KAAA,CAAXM,WAAW,CACXC,MAAM,CAAAP,KAAA,CAANO,MAAM,CAEN,IAAAC,eAAA,CAAmEC,cAAc,EAAE,CAA3E/B,KAAK,CAAA8B,eAAA,CAAL9B,KAAK,CAAEU,IAAI,CAAAoB,eAAA,CAAJpB,IAAI,CAAQsB,eAAe,CAAAF,eAAA,CAArBL,IAAI,CAAmBvB,OAAO,CAAA4B,eAAA,CAAP5B,OAAO,CAAEyB,SAAS,CAAAG,eAAA,CAATH,SAAS,CAC9D,IAAAM,SAAA,CAA4BC,QAAQ,EAAE,CAA9BjC,KAAK,CAAAgC,SAAA,CAALhC,KAAK,CAAEkC,QAAQ,CAAAF,SAAA,CAARE,QAAQ,CACvB,IAAMC,QAAQ,CAAGZ,IAAI,EAAA,IAAA,CAAJA,IAAI,CAAIQ,eAAe,CACxC,IAAMK,cAAc,CAAAd,CAAAA,KAAA,CAAGG,iBAAiB,OAAjBA,iBAAiB,CAAIC,SAAS,GAAA,IAAA,CAAAJ,KAAA,CAAI,yBAAyB,CAElF,GAAIe,OAAO,CAAE,CACX,GAAItC,KAAK,EAAIA,KAAK,CAAG,CAAC,CAAE,CACtBuC,eAAe,CAAC,CACdC,OAAO,CAAE,6CAA6C,CACtDC,UAAU,CAAE,MACd,CAAC,CAAC,CACJ,CACF,CAEA,IAAMC,aAAa,CAAGC,cAAK,CAACC,QAAQ,CAACC,OAAO,CAACpC,QAAQ,CAAC,CAGtD,IAAMqC,cAAc,CAAGJ,aAAa,CAACK,MAAM,CAAC,SAAC7B,KAAK,CAAK,CACrD,GAAI8B,cAAc,CAAC9B,KAAK,CAAC,GAAK+B,aAAa,CAACC,IAAI,CAAE,OAAW,IAAA,CAE7D,GACE,OAAOhC,KAAK,GAAK,QAAQ,EACzBiC,sBAAsB,CAACjC,KAAK,CAAE+B,aAAa,CAACG,YAAY,CAAC,EACzDD,sBAAsB,CAACjC,KAAK,CAAE+B,aAAa,CAACI,YAAY,CAAC,EACzDF,sBAAsB,CAACjC,KAAK,CAAE+B,aAAa,CAACK,YAAY,CAAC,CACzD,CACA,OAAOpC,KAAK,CACd,CAAC,KAAM,GAAIoB,OAAO,CAAE,CAClBC,eAAe,CAAC,CACdC,OAAO,CAAG,CAAA,sGAAA,CAAuG,CACjHC,UAAU,CAAE,UACd,CAAC,CAAC,CACJ,CACA,OAAO,IAAI,CACb,CAAC,CAAC,CAEF,IAAMc,SAAS,CAAGb,aAAa,CAACK,MAAM,CAAC,SAAC7B,KAAK,CAC3C,CAAA,OAAA8B,cAAc,CAAC9B,KAAK,CAAC,GAAK+B,aAAa,CAACC,IAAI,CAAGhC,KAAK,CAAG,IAAI,CAC7D,CAAA,CAAC,CACD,IAAMf,OAAO,CAAGqD,OAAO,CAACpB,QAAQ,CAAC,CAEjC,OACEqB,IAAA,CAAC7D,cAAc,CAAA8D,MAAA,CAAAC,MAAA,CACb3D,CAAAA,KAAK,CAAEA,KAAM,CACbE,OAAO,CAAEA,OAAQ,CACjBC,OAAO,CAAEA,OAAQ,CACbyD,CAAAA,aAAa,CAAC,CAAEC,IAAI,CAAEZ,aAAa,CAACa,QAAQ,CAAEjC,MAAM,CAANA,MAAO,CAAC,CAAC,CAAA,CAAApB,QAAA,CAAA,CAE3DgD,IAAA,CAAC5C,OAAO,CACNC,CAAAA,OAAO,CAAC,MAAM,CACdC,aAAa,CAAC,KAAK,CACnBgD,UAAU,CAAC,QAAQ,CACnBC,YAAY,CAAEC,oBAAqB,CAAAxD,QAAA,CAElCP,CAAAA,OAAO,GAAK,WAAW,CACtBU,GAAA,CAACC,OAAO,CAAA,CACNqD,WAAW,CAAEC,yBAAyB,CAACjE,OAAO,CAAE,CAChDkE,SAAS,CACPC,uBAAuB,CAAE,CAAA,EAAEnE,OAAQ,CAAA,EAAEC,OAAO,CAAG,UAAU,CAAG,EAAG,CAAC,CAAA,CAAC,CAACgC,QAAQ,CAAC,CAACzB,IAAI,CACjF,CACDI,OAAO,CAAC,MAAM,CACdwD,SAAS,CAAC,YAAY,CAAA7D,QAAA,CAErB2B,QAAQ,CACPxB,GAAA,CAACwB,QAAQ,CAAC1B,CAAAA,IAAI,CAAEA,IAAK,CAAC6D,KAAK,CAAElC,cAAe,CAAE,CAAC,CAE/CzB,GAAA,CAAC4D,iBAAiB,CAACxE,CAAAA,KAAK,CAAEA,KAAM,CAAE,CACnC,CACM,CAAC,CAEVY,GAAA,CAACC,OAAO,CAAA,CACN4D,KAAK,CAAEC,4BAA4B,CAACxE,OAAO,CAAC,CAACiC,QAAQ,CAAC,CAACzB,IAAI,CAAE,CAC7DiE,MAAM,CAAED,4BAA4B,CAACxE,OAAO,CAAC,CAACiC,QAAQ,CAAC,CAACzB,IAAI,CAAE,CAC9DwD,WAAW,CAAEC,yBAAyB,CAACjE,OAAO,CAAE,CAChDkE,SAAS,CAAEC,uBAAuB,CAACnE,OAAO,CAAC,CAACiC,QAAQ,CAAC,CAACzB,IAAI,CAAE,CAC5DI,OAAO,CAAC,MAAM,CACd8D,UAAU,CAAE,CAAE,CACdC,cAAc,CAAC,QAAQ,CACvBP,SAAS,CAAC,YAAY,CACtBP,UAAU,CAAC,QAAQ,CACnBe,YAAY,CAAE5E,OAAO,GAAK,gBAAgB,CAAG,KAAK,CAAG6E,SAAU,CAC/DC,eAAe,CACb9E,OAAO,GAAK,gBAAgB,CACxBG,KAAK,CAACJ,KAAK,CAACgF,MAAM,CAAE,oCAAoC,CAAC,CACzDF,SACL,CAAAtE,QAAA,CAEDG,GAAA,CAACQ,IAAI,EACHlB,OAAO,CAAC,MAAM,CACdqE,KAAK,CAAC,yBAAyB,CAC/B7D,IAAI,CAAER,OAAO,GAAK,SAAS,CAAGQ,IAAI,CAAG,QAAS,CAAAD,QAAA,CAE5C,GAAEyE,wBAAwB,CAAC,CAC3BC,UAAU,CAAEvD,WAAW,OAAXA,WAAW,CAAI,CAAC,CAC5B5B,KAAK,CAAEA,KAAK,EAALA,IAAAA,CAAAA,KAAK,CAAI,CAClB,CAAC,CAAE,GAAEE,OAAO,GAAK,SAAS,CAAG,GAAG,CAAG,EAAG,CAAC,CAAA,CACnC,CAAC,CACA,CACV,CACDU,GAAA,CAACL,uBAAuB,CAACG,CAAAA,IAAI,CAAEA,IAAK,CAAAD,QAAA,CAAEqC,cAAc,CAA0B,CAAC,CAAA,CACxE,CAAC,CACTS,SAAS,CACI,CAAA,CAAA,CAAC,CAErB,CAAC,CAEK,IAAAO,QAAQ,CAAGsB,wBAAwB,CAAC/D,SAAS,CAAE,CAAEgE,WAAW,CAAEpC,aAAa,CAACa,QAAS,CAAC;;;;"}
|
|
@@ -18,7 +18,7 @@ import { opacity } from '../../tokens/global/opacity.js';
|
|
|
18
18
|
import '../../tokens/global/typography.js';
|
|
19
19
|
import '../../tokens/global/motion.js';
|
|
20
20
|
|
|
21
|
-
var UnorderedLevel1Icon=function UnorderedLevel1Icon(_ref){var iconDimensions=_ref.iconDimensions,color=_ref.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Circle,{cx:"3px",cy:"3px",r:"3px",fill:color,fillOpacity:opacity[600]})});};var UnorderedLevel2Icon=function UnorderedLevel2Icon(_ref2){var iconDimensions=_ref2.iconDimensions,color=_ref2.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Circle,{cx:"3px",cy:"3px",r:"2.5px",stroke:color})});};var UnorderedLevel3Icon=function UnorderedLevel3Icon(_ref3){var iconDimensions=_ref3.iconDimensions,color=_ref3.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Rect,{width:iconDimensions,height:iconDimensions,rx:"1px",fill:color,fillOpacity:opacity[600]})});};var UnorderedItemIcon=function UnorderedItemIcon(_ref4){var level=_ref4.level;var _useTheme=useTheme(),theme=_useTheme.theme,platform=_useTheme.platform;var _useListContext=useListContext(),size=_useListContext.size;var iconDimensions=listItemUnorderedBulletSize[platform][size];var backgroundToken=theme.colors.surface.text.gray.muted;switch(level){case 1:return jsx(UnorderedLevel1Icon,{iconDimensions:iconDimensions,color:backgroundToken});case 2:return jsx(UnorderedLevel2Icon,{iconDimensions:iconDimensions,color:backgroundToken});case 3:return jsx(UnorderedLevel3Icon,{iconDimensions:iconDimensions,color:backgroundToken});default:return jsx(UnorderedLevel3Icon,{iconDimensions:iconDimensions,color:backgroundToken});}};
|
|
21
|
+
var UnorderedLevel1Icon=function UnorderedLevel1Icon(_ref){var iconDimensions=_ref.iconDimensions,color=_ref.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Circle,{cx:"3px",cy:"3px",r:"3px",fill:color,fillOpacity:opacity[600]})});};var UnorderedLevel2Icon=function UnorderedLevel2Icon(_ref2){var iconDimensions=_ref2.iconDimensions,color=_ref2.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Circle,{cx:"3px",cy:"3px",r:"2.5px",stroke:color})});};var UnorderedLevel3Icon=function UnorderedLevel3Icon(_ref3){var iconDimensions=_ref3.iconDimensions,color=_ref3.color;return jsx(Svg,{width:iconDimensions,height:iconDimensions,viewBox:"0 0 6 6",fill:"none",children:jsx(Rect,{width:iconDimensions,height:iconDimensions,rx:"1px",fill:color,fillOpacity:opacity[600]})});};var UnorderedItemIcon=function UnorderedItemIcon(_ref4){var level=_ref4.level;var _useTheme=useTheme(),theme=_useTheme.theme,platform=_useTheme.platform;var _useListContext=useListContext(),size=_useListContext.size,iconColor=_useListContext.iconColor;var iconDimensions=listItemUnorderedBulletSize[platform][size];var backgroundToken=iconColor!=null?iconColor:theme.colors.surface.text.gray.muted;switch(level){case 1:return jsx(UnorderedLevel1Icon,{iconDimensions:iconDimensions,color:backgroundToken});case 2:return jsx(UnorderedLevel2Icon,{iconDimensions:iconDimensions,color:backgroundToken});case 3:return jsx(UnorderedLevel3Icon,{iconDimensions:iconDimensions,color:backgroundToken});default:return jsx(UnorderedLevel3Icon,{iconDimensions:iconDimensions,color:backgroundToken});}};
|
|
22
22
|
|
|
23
23
|
export { UnorderedItemIcon };
|
|
24
24
|
//# sourceMappingURL=ListItemIcons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemIcons.js","sources":["../../../../../src/components/List/ListItemIcons.tsx"],"sourcesContent":["import React from 'react';\nimport { listItemUnorderedBulletSize } from './listTokens';\nimport { useListContext } from './ListContext';\nimport { useTheme } from '~components/BladeProvider';\nimport { Svg, Circle, Rect } from '~components/Icons/_Svg';\nimport { opacity } from '~tokens/global';\n\ntype UnorderedIconProps = {\n iconDimensions: string;\n color: string;\n};\n\nconst UnorderedLevel1Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Circle cx=\"3px\" cy=\"3px\" r=\"3px\" fill={color} fillOpacity={opacity[600]} />\n </Svg>\n );\n};\n\nconst UnorderedLevel2Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Circle cx=\"3px\" cy=\"3px\" r=\"2.5px\" stroke={color} />\n </Svg>\n );\n};\n\nconst UnorderedLevel3Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Rect\n width={iconDimensions}\n height={iconDimensions}\n rx=\"1px\"\n fill={color}\n fillOpacity={opacity[600]}\n />\n </Svg>\n );\n};\n\nconst UnorderedItemIcon = ({ level }: { level?: number }): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { size } = useListContext();\n const iconDimensions = listItemUnorderedBulletSize[platform][size];\n const backgroundToken = theme.colors.surface.text.gray.muted;\n\n switch (level) {\n case 1:\n return <UnorderedLevel1Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n case 2:\n return <UnorderedLevel2Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n case 3:\n return <UnorderedLevel3Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n default:\n return <UnorderedLevel3Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n }\n};\n\nexport { UnorderedItemIcon };\n"],"names":["UnorderedLevel1Icon","_ref","iconDimensions","color","_jsx","Svg","width","height","viewBox","fill","children","Circle","cx","cy","r","fillOpacity","opacity","UnorderedLevel2Icon","_ref2","stroke","UnorderedLevel3Icon","_ref3","Rect","rx","UnorderedItemIcon","_ref4","level","_useTheme","useTheme","theme","platform","_useListContext","useListContext","size","listItemUnorderedBulletSize","backgroundToken","colors","surface","text","gray","muted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,mBAAmB,CAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,CAA0E,
|
|
1
|
+
{"version":3,"file":"ListItemIcons.js","sources":["../../../../../src/components/List/ListItemIcons.tsx"],"sourcesContent":["import React from 'react';\nimport { listItemUnorderedBulletSize } from './listTokens';\nimport { useListContext } from './ListContext';\nimport { useTheme } from '~components/BladeProvider';\nimport { Svg, Circle, Rect } from '~components/Icons/_Svg';\nimport { opacity } from '~tokens/global';\n\ntype UnorderedIconProps = {\n iconDimensions: string;\n color: string;\n};\n\nconst UnorderedLevel1Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Circle cx=\"3px\" cy=\"3px\" r=\"3px\" fill={color} fillOpacity={opacity[600]} />\n </Svg>\n );\n};\n\nconst UnorderedLevel2Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Circle cx=\"3px\" cy=\"3px\" r=\"2.5px\" stroke={color} />\n </Svg>\n );\n};\n\nconst UnorderedLevel3Icon = ({ iconDimensions, color }: UnorderedIconProps): React.ReactElement => {\n return (\n <Svg width={iconDimensions} height={iconDimensions} viewBox=\"0 0 6 6\" fill=\"none\">\n <Rect\n width={iconDimensions}\n height={iconDimensions}\n rx=\"1px\"\n fill={color}\n fillOpacity={opacity[600]}\n />\n </Svg>\n );\n};\n\nconst UnorderedItemIcon = ({ level }: { level?: number }): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { size, iconColor } = useListContext();\n const iconDimensions = listItemUnorderedBulletSize[platform][size];\n const backgroundToken = iconColor ?? theme.colors.surface.text.gray.muted;\n\n switch (level) {\n case 1:\n return <UnorderedLevel1Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n case 2:\n return <UnorderedLevel2Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n case 3:\n return <UnorderedLevel3Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n default:\n return <UnorderedLevel3Icon iconDimensions={iconDimensions} color={backgroundToken} />;\n }\n};\n\nexport { UnorderedItemIcon };\n"],"names":["UnorderedLevel1Icon","_ref","iconDimensions","color","_jsx","Svg","width","height","viewBox","fill","children","Circle","cx","cy","r","fillOpacity","opacity","UnorderedLevel2Icon","_ref2","stroke","UnorderedLevel3Icon","_ref3","Rect","rx","UnorderedItemIcon","_ref4","level","_useTheme","useTheme","theme","platform","_useListContext","useListContext","size","iconColor","listItemUnorderedBulletSize","backgroundToken","colors","surface","text","gray","muted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,mBAAmB,CAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,CAA0E,CAApE,IAAAC,cAAc,CAAAD,IAAA,CAAdC,cAAc,CAAEC,KAAK,CAAAF,IAAA,CAALE,KAAK,CAClD,OACEC,GAAA,CAACC,GAAG,EAACC,KAAK,CAAEJ,cAAe,CAACK,MAAM,CAAEL,cAAe,CAACM,OAAO,CAAC,SAAS,CAACC,IAAI,CAAC,MAAM,CAAAC,QAAA,CAC/EN,GAAA,CAACO,MAAM,CAACC,CAAAA,EAAE,CAAC,KAAK,CAACC,EAAE,CAAC,KAAK,CAACC,CAAC,CAAC,KAAK,CAACL,IAAI,CAAEN,KAAM,CAACY,WAAW,CAAEC,OAAO,CAAC,GAAG,CAAE,CAAE,CAAC,CACzE,CAAC,CAEV,CAAC,CAED,IAAMC,mBAAmB,CAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,CAA0E,KAApEhB,cAAc,CAAAgB,KAAA,CAAdhB,cAAc,CAAEC,KAAK,CAAAe,KAAA,CAALf,KAAK,CAClD,OACEC,GAAA,CAACC,GAAG,CAACC,CAAAA,KAAK,CAAEJ,cAAe,CAACK,MAAM,CAAEL,cAAe,CAACM,OAAO,CAAC,SAAS,CAACC,IAAI,CAAC,MAAM,CAAAC,QAAA,CAC/EN,GAAA,CAACO,MAAM,CAAA,CAACC,EAAE,CAAC,KAAK,CAACC,EAAE,CAAC,KAAK,CAACC,CAAC,CAAC,OAAO,CAACK,MAAM,CAAEhB,KAAM,CAAE,CAAC,CAClD,CAAC,CAEV,CAAC,CAED,IAAMiB,mBAAmB,CAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,CAA0E,CAApE,IAAAnB,cAAc,CAAAmB,KAAA,CAAdnB,cAAc,CAAEC,KAAK,CAAAkB,KAAA,CAALlB,KAAK,CAClD,OACEC,GAAA,CAACC,GAAG,CAACC,CAAAA,KAAK,CAAEJ,cAAe,CAACK,MAAM,CAAEL,cAAe,CAACM,OAAO,CAAC,SAAS,CAACC,IAAI,CAAC,MAAM,CAAAC,QAAA,CAC/EN,GAAA,CAACkB,IAAI,CACHhB,CAAAA,KAAK,CAAEJ,cAAe,CACtBK,MAAM,CAAEL,cAAe,CACvBqB,EAAE,CAAC,KAAK,CACRd,IAAI,CAAEN,KAAM,CACZY,WAAW,CAAEC,OAAO,CAAC,GAAG,CAAE,CAC3B,CAAC,CACC,CAAC,CAEV,CAAC,CAEK,IAAAQ,iBAAiB,CAAG,SAApBA,iBAAiBA,CAAAC,KAAA,CAA0D,CAApD,IAAAC,KAAK,CAAAD,KAAA,CAALC,KAAK,CAChC,IAAAC,SAAA,CAA4BC,QAAQ,EAAE,CAA9BC,KAAK,CAAAF,SAAA,CAALE,KAAK,CAAEC,QAAQ,CAAAH,SAAA,CAARG,QAAQ,CACvB,IAAAC,eAAA,CAA4BC,cAAc,EAAE,CAApCC,IAAI,CAAAF,eAAA,CAAJE,IAAI,CAAEC,SAAS,CAAAH,eAAA,CAATG,SAAS,CACvB,IAAMhC,cAAc,CAAGiC,2BAA2B,CAACL,QAAQ,CAAC,CAACG,IAAI,CAAC,CAClE,IAAMG,eAAe,CAAGF,SAAS,EAAA,IAAA,CAATA,SAAS,CAAIL,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACC,IAAI,CAACC,IAAI,CAACC,KAAK,CAEzE,OAAQf,KAAK,EACX,KAAK,CAAC,CACJ,OAAOtB,GAAA,CAACJ,mBAAmB,CAAA,CAACE,cAAc,CAAEA,cAAe,CAACC,KAAK,CAAEiC,eAAgB,CAAE,CAAC,CACxF,KAAK,CAAC,CACJ,OAAOhC,GAAA,CAACa,mBAAmB,CAAA,CAACf,cAAc,CAAEA,cAAe,CAACC,KAAK,CAAEiC,eAAgB,CAAE,CAAC,CACxF,KAAM,CAAA,CACJ,OAAOhC,GAAA,CAACgB,mBAAmB,CAAClB,CAAAA,cAAc,CAAEA,cAAe,CAACC,KAAK,CAAEiC,eAAgB,CAAE,CAAC,CACxF,QACE,OAAOhC,GAAA,CAACgB,mBAAmB,CAAA,CAAClB,cAAc,CAAEA,cAAe,CAACC,KAAK,CAAEiC,eAAgB,CAAE,CAAC,CAC1F,CACF;;;;"}
|
|
@@ -23,6 +23,7 @@ import { getHintType } from '../Input/BaseInput/BaseInput.js';
|
|
|
23
23
|
import '../../utils/makeAccessible/index.js';
|
|
24
24
|
import { formHintLeftLabelMarginLeft } from '../Input/BaseInput/baseInputTokens.js';
|
|
25
25
|
import { useMergeRefs } from '../../utils/useMergeRefs.js';
|
|
26
|
+
import { useControllableState } from '../../utils/useControllable.js';
|
|
26
27
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
27
28
|
import useTheme from '../BladeProvider/useTheme.js';
|
|
28
29
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
@@ -76,22 +77,25 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
76
77
|
var mergedRef = useMergeRefs(ref, inputRef);
|
|
77
78
|
var _useTheme = useTheme(),
|
|
78
79
|
platform = _useTheme.platform;
|
|
79
|
-
var
|
|
80
|
+
var _useControllableState = useControllableState({
|
|
81
|
+
value: fileList,
|
|
82
|
+
defaultValue: fileList !== null && fileList !== void 0 ? fileList : []
|
|
83
|
+
}),
|
|
84
|
+
_useControllableState2 = _slicedToArray(_useControllableState, 2),
|
|
85
|
+
selectedFiles = _useControllableState2[0],
|
|
86
|
+
setSelectedFiles = _useControllableState2[1];
|
|
87
|
+
var _useState = useState(errorText),
|
|
80
88
|
_useState2 = _slicedToArray(_useState, 2),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var _useState3 = useState(
|
|
89
|
+
errorMessage = _useState2[0],
|
|
90
|
+
setErrorMessage = _useState2[1];
|
|
91
|
+
var _useState3 = useState('none'),
|
|
84
92
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var _useState5 = useState(
|
|
93
|
+
internalValidationState = _useState4[0],
|
|
94
|
+
setInternalValidationState = _useState4[1];
|
|
95
|
+
var _useState5 = useState(false),
|
|
88
96
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var _useState7 = useState(false),
|
|
92
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
93
|
-
isActive = _useState8[0],
|
|
94
|
-
setIsActive = _useState8[1];
|
|
97
|
+
isActive = _useState6[0],
|
|
98
|
+
setIsActive = _useState6[1];
|
|
95
99
|
var isMultiple = uploadType === 'multiple';
|
|
96
100
|
var isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;
|
|
97
101
|
var inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;
|
|
@@ -319,7 +323,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
319
323
|
var id = _ref2.id;
|
|
320
324
|
return id !== selectedFiles[0].id;
|
|
321
325
|
});
|
|
322
|
-
setSelectedFiles(
|
|
326
|
+
setSelectedFiles(function () {
|
|
327
|
+
return newFiles;
|
|
328
|
+
});
|
|
323
329
|
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
324
330
|
file: selectedFiles[0]
|
|
325
331
|
});
|
|
@@ -330,7 +336,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
330
336
|
var id = _ref3.id;
|
|
331
337
|
return id !== selectedFiles[0].id;
|
|
332
338
|
});
|
|
333
|
-
setSelectedFiles(
|
|
339
|
+
setSelectedFiles(function () {
|
|
340
|
+
return newFiles;
|
|
341
|
+
});
|
|
334
342
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
|
335
343
|
|
|
336
344
|
// TODO - Remove this in the next major release
|
|
@@ -351,7 +359,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
351
359
|
var id = _ref4.id;
|
|
352
360
|
return id !== selectedFiles[0].id;
|
|
353
361
|
});
|
|
354
|
-
setSelectedFiles(
|
|
362
|
+
setSelectedFiles(function () {
|
|
363
|
+
return newFiles;
|
|
364
|
+
});
|
|
355
365
|
_onDismiss === null || _onDismiss === void 0 ? void 0 : _onDismiss({
|
|
356
366
|
file: selectedFiles[0]
|
|
357
367
|
});
|
|
@@ -388,7 +398,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
388
398
|
var id = _ref5.id;
|
|
389
399
|
return id !== file.id;
|
|
390
400
|
});
|
|
391
|
-
setSelectedFiles(
|
|
401
|
+
setSelectedFiles(function () {
|
|
402
|
+
return newFiles;
|
|
403
|
+
});
|
|
392
404
|
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
393
405
|
file: file
|
|
394
406
|
});
|
|
@@ -399,7 +411,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
399
411
|
var id = _ref6.id;
|
|
400
412
|
return id !== file.id;
|
|
401
413
|
});
|
|
402
|
-
setSelectedFiles(
|
|
414
|
+
setSelectedFiles(function () {
|
|
415
|
+
return newFiles;
|
|
416
|
+
});
|
|
403
417
|
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
|
|
404
418
|
// TODO - Remove this in the next major release
|
|
405
419
|
// Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API
|
|
@@ -419,7 +433,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
419
433
|
var id = _ref7.id;
|
|
420
434
|
return id !== file.id;
|
|
421
435
|
});
|
|
422
|
-
setSelectedFiles(
|
|
436
|
+
setSelectedFiles(function () {
|
|
437
|
+
return newFiles;
|
|
438
|
+
});
|
|
423
439
|
_onDismiss === null || _onDismiss === void 0 ? void 0 : _onDismiss({
|
|
424
440
|
file: file
|
|
425
441
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useState<BladeFileList>(fileList ?? []);\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={mergedRef}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file, index) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginTop={index === 0 ? 'spacing.5' : 'spacing.3'}\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","errorMessage","setErrorMessage","_useState5","_useState6","internalValidationState","setInternalValidationState","_useState7","_useState8","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","value","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_inputRef$current","_ref3","current","click","_ref4","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","index","marginTop","_ref5","_inputRef$current2","_ref6","_ref7","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { useControllableState } from '~utils/useControllable';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useControllableState({\n value: fileList,\n defaultValue: fileList ?? [],\n });\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={mergedRef}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file, index) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginTop={index === 0 ? 'spacing.5' : 'spacing.3'}\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useControllableState","useControllableState","value","defaultValue","_useControllableState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState","useState","_useState2","errorMessage","setErrorMessage","_useState3","_useState4","internalValidationState","setInternalValidationState","_useState5","_useState6","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_inputRef$current","_ref3","current","click","_ref4","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","index","marginTop","_ref5","_inputRef$current2","_ref6","_ref7","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
|
|
|
25
25
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
26
26
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
27
27
|
|
|
28
|
-
var _excluded = ["variant", "size", "children", "icon", "testID"];
|
|
28
|
+
var _excluded = ["variant", "size", "children", "icon", "testID", "iconColor"];
|
|
29
29
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
30
|
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; }
|
|
31
31
|
var StyledOrderedList = /*#__PURE__*/styled(OrderedList).withConfig({
|
|
@@ -76,6 +76,7 @@ var _List = function _List(_ref3) {
|
|
|
76
76
|
children = _ref3.children,
|
|
77
77
|
icon = _ref3.icon,
|
|
78
78
|
testID = _ref3.testID,
|
|
79
|
+
iconColor = _ref3.iconColor,
|
|
79
80
|
styledProps = _objectWithoutProperties(_ref3, _excluded);
|
|
80
81
|
var ListElement = variant === 'unordered' ? StyledUnorderedList : StyledOrderedList;
|
|
81
82
|
var _useListContext = useListContext(),
|
|
@@ -86,9 +87,10 @@ var _List = function _List(_ref3) {
|
|
|
86
87
|
level: level ? level + 1 : 1,
|
|
87
88
|
size: size !== null && size !== void 0 ? size : listContextSize,
|
|
88
89
|
icon: icon,
|
|
90
|
+
iconColor: iconColor,
|
|
89
91
|
variant: variant
|
|
90
92
|
};
|
|
91
|
-
}, [icon, level, listContextSize, size, variant]);
|
|
93
|
+
}, [icon, iconColor, level, listContextSize, size, variant]);
|
|
92
94
|
var childrenArray = React__default.Children.toArray(children);
|
|
93
95
|
var childListItems = childrenArray.filter(function (child) {
|
|
94
96
|
if (isValidAllowedChildren(child, MetaConstants.ListItem)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../../../../../src/components/List/List.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { ListProvider, useListContext } from './ListContext';\nimport { UnorderedList } from './UnorderedList';\nimport { OrderedList } from './OrderedList';\nimport type { ListItemProps } from './ListItem';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { IconComponent } from '~components/Icons';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { DotNotationSpacingStringToken, TestID } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListCommonProps = {\n /**\n * ListItem to be rendered for the List.\n *\n */\n children: React.ReactElement<ListItemProps> | React.ReactElement<ListItemProps>[];\n /**\n * Sets the variant to be rendered for the List.\n *\n * @default 'unordered'\n */\n variant?: 'unordered' | 'ordered' | 'ordered-filled';\n /**\n * Sets the size for the List.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n} & TestID &\n StyledPropsBlade;\n\ntype ListWithIconProps = ListCommonProps & {\n variant?: 'unordered';\n icon?: IconComponent;\n};\ntype ListWithoutIconProps = ListCommonProps & {\n variant?: 'ordered' | 'ordered-filled';\n icon?: undefined;\n};\ntype ListProps = ListWithIconProps | ListWithoutIconProps;\n\nconst StyledOrderedList = styled(OrderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\nconst StyledUnorderedList = styled(UnorderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\n/**\n * List Component is used to display a set of related items that are composed of text/links. Each list item begins with a bullet or a number.\n *\n * ## Usage\n *\n * ```tsx\n * <List\n * variant='unordered'\n * size='medium'\n * >\n * <ListItem>\n * Item 1\n * <List>\n * <ListItem>Item 1.1</ListItem>\n * </List>\n * </ListItem>\n * <ListItem>Item 2</ListItem>\n * <List />\n * ```\n */\nconst _List = ({\n variant = 'unordered',\n size,\n children,\n icon,\n testID,\n ...styledProps\n}: ListProps): React.ReactElement => {\n const ListElement = variant === 'unordered' ? StyledUnorderedList : StyledOrderedList;\n const { level, size: listContextSize } = useListContext();\n const listContextValue = useMemo(\n () => ({\n level: level ? level + 1 : 1,\n size: size ?? listContextSize,\n icon,\n variant,\n }),\n [icon, level, listContextSize, size, variant],\n );\n\n const childrenArray = React.Children.toArray(children);\n const childListItems = childrenArray.filter((child) => {\n if (isValidAllowedChildren(child, MetaConstants.ListItem)) {\n return child;\n }\n if (__DEV__) {\n throwBladeError({\n message: 'You can only pass a ListItem as a child to List.',\n moduleName: 'List',\n });\n }\n return null;\n });\n\n return (\n <ListProvider value={listContextValue}>\n <BaseBox {...getStyledProps(styledProps)}>\n <ListElement\n {...metaAttribute({ name: MetaConstants.List, testID })}\n {...makeAccessible({ role: 'list' })} // Role needed for react-native\n >\n {variant === 'unordered'\n ? childListItems\n : childListItems.map(\n (child, index) =>\n React.cloneElement(child as React.ReactElement, { _itemNumber: index + 1 }), // adds _itemNumber for rendering ordered list bullets\n )}\n </ListElement>\n </BaseBox>\n </ListProvider>\n );\n};\n\nconst List = assignWithoutSideEffects(_List, { componentId: MetaConstants.List });\n\nexport { List };\nexport type { ListProps };\n"],"names":["StyledOrderedList","styled","OrderedList","withConfig","displayName","componentId","_ref","marginTop","theme","makeSpace","getIn","undefined","StyledUnorderedList","UnorderedList","_ref2","_List","_ref3","_ref3$variant","variant","size","children","icon","testID","styledProps","_objectWithoutProperties","_excluded","ListElement","_useListContext","useListContext","level","listContextSize","listContextValue","useMemo","childrenArray","React","Children","toArray","childListItems","filter","child","isValidAllowedChildren","MetaConstants","ListItem","throwBladeError","message","moduleName","_jsx","ListProvider","value","BaseBox","_objectSpread","getStyledProps","metaAttribute","name","List","makeAccessible","role","map","index","cloneElement","_itemNumber","assignWithoutSideEffects"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../../../../src/components/List/List.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { ListProvider, useListContext } from './ListContext';\nimport { UnorderedList } from './UnorderedList';\nimport { OrderedList } from './OrderedList';\nimport type { ListItemProps } from './ListItem';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { IconComponent, IconProps } from '~components/Icons';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { DotNotationSpacingStringToken, TestID } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListCommonProps = {\n /**\n * ListItem to be rendered for the List.\n *\n */\n children: React.ReactElement<ListItemProps> | React.ReactElement<ListItemProps>[];\n /**\n * Sets the variant to be rendered for the List.\n *\n * @default 'unordered'\n */\n variant?: 'unordered' | 'ordered' | 'ordered-filled';\n /**\n * Sets the size for the List.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n} & TestID &\n StyledPropsBlade;\n\ntype ListWithIconProps = ListCommonProps & {\n variant?: 'unordered';\n icon?: IconComponent;\n iconColor?: IconProps['color'];\n};\ntype ListWithoutIconProps = ListCommonProps & {\n variant?: 'ordered' | 'ordered-filled';\n icon?: undefined;\n iconColor?: undefined;\n};\ntype ListProps = ListWithIconProps | ListWithoutIconProps;\n\nconst StyledOrderedList = styled(OrderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\nconst StyledUnorderedList = styled(UnorderedList)<{ marginTop?: DotNotationSpacingStringToken }>(\n ({ marginTop, theme }) => ({\n marginTop: marginTop ? makeSpace(getIn(theme, marginTop)) : undefined,\n }),\n);\n\n/**\n * List Component is used to display a set of related items that are composed of text/links. Each list item begins with a bullet or a number.\n *\n * ## Usage\n *\n * ```tsx\n * <List\n * variant='unordered'\n * size='medium'\n * >\n * <ListItem>\n * Item 1\n * <List>\n * <ListItem>Item 1.1</ListItem>\n * </List>\n * </ListItem>\n * <ListItem>Item 2</ListItem>\n * <List />\n * ```\n */\nconst _List = ({\n variant = 'unordered',\n size,\n children,\n icon,\n testID,\n iconColor,\n ...styledProps\n}: ListProps): React.ReactElement => {\n const ListElement = variant === 'unordered' ? StyledUnorderedList : StyledOrderedList;\n const { level, size: listContextSize } = useListContext();\n const listContextValue = useMemo(\n () => ({\n level: level ? level + 1 : 1,\n size: size ?? listContextSize,\n icon,\n iconColor,\n variant,\n }),\n [icon, iconColor, level, listContextSize, size, variant],\n );\n\n const childrenArray = React.Children.toArray(children);\n const childListItems = childrenArray.filter((child) => {\n if (isValidAllowedChildren(child, MetaConstants.ListItem)) {\n return child;\n }\n if (__DEV__) {\n throwBladeError({\n message: 'You can only pass a ListItem as a child to List.',\n moduleName: 'List',\n });\n }\n return null;\n });\n\n return (\n <ListProvider value={listContextValue}>\n <BaseBox {...getStyledProps(styledProps)}>\n <ListElement\n {...metaAttribute({ name: MetaConstants.List, testID })}\n {...makeAccessible({ role: 'list' })} // Role needed for react-native\n >\n {variant === 'unordered'\n ? childListItems\n : childListItems.map(\n (child, index) =>\n React.cloneElement(child as React.ReactElement, { _itemNumber: index + 1 }), // adds _itemNumber for rendering ordered list bullets\n )}\n </ListElement>\n </BaseBox>\n </ListProvider>\n );\n};\n\nconst List = assignWithoutSideEffects(_List, { componentId: MetaConstants.List });\n\nexport { List };\nexport type { ListProps };\n"],"names":["StyledOrderedList","styled","OrderedList","withConfig","displayName","componentId","_ref","marginTop","theme","makeSpace","getIn","undefined","StyledUnorderedList","UnorderedList","_ref2","_List","_ref3","_ref3$variant","variant","size","children","icon","testID","iconColor","styledProps","_objectWithoutProperties","_excluded","ListElement","_useListContext","useListContext","level","listContextSize","listContextValue","useMemo","childrenArray","React","Children","toArray","childListItems","filter","child","isValidAllowedChildren","MetaConstants","ListItem","throwBladeError","message","moduleName","_jsx","ListProvider","value","BaseBox","_objectSpread","getStyledProps","metaAttribute","name","List","makeAccessible","role","map","index","cloneElement","_itemNumber","assignWithoutSideEffects"],"mappings":"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"}
|