{"version":3,"file":"AssetGridList.mjs","sources":["../../../../admin/src/components/AssetGridList/AssetGridList.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { Box, Grid, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { AssetCard } from '../AssetCard/AssetCard';\n\nimport { Draggable } from './Draggable';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst DraggableAssetCard = styled(AssetCard)`\n  && {\n    cursor: inherit;\n  }\n`;\n\nexport interface AssetGridListProps {\n  allowedTypes?: AllowedTypes[];\n  assets: File[];\n  onEditAsset?: (asset: File) => void;\n  onSelectAsset: (asset: File) => void;\n  selectedAssets: File[];\n  size?: 'S' | 'M';\n  onReorderAsset?: (fromIndex: number, toIndex: number) => void;\n  title?: string | null;\n}\n\nexport const AssetGridList = ({\n  allowedTypes = ['files', 'images', 'videos', 'audios'],\n  assets,\n  onEditAsset,\n  onSelectAsset,\n  selectedAssets,\n  size = 'M',\n  onReorderAsset,\n  title = null,\n}: AssetGridListProps) => {\n  return (\n    <KeyboardNavigable tagName=\"article\">\n      {title && (\n        <Box paddingTop={2} paddingBottom={2}>\n          <Typography tag=\"h2\" variant=\"delta\" fontWeight=\"semiBold\">\n            {title}\n          </Typography>\n        </Box>\n      )}\n\n      <Grid.Root gap={4}>\n        {assets.map((asset, index) => {\n          const isSelected = !!selectedAssets.find((currentAsset) => currentAsset.id === asset.id);\n\n          if (onReorderAsset) {\n            return (\n              <Grid.Item key={asset.id} col={3} height=\"100%\">\n                <Draggable index={index} moveItem={onReorderAsset} id={asset.id}>\n                  <DraggableAssetCard\n                    allowedTypes={allowedTypes}\n                    asset={asset}\n                    isSelected={isSelected}\n                    onEdit={onEditAsset ? () => onEditAsset(asset) : undefined}\n                    onSelect={() => onSelectAsset(asset)}\n                    size={size}\n                  />\n                </Draggable>\n              </Grid.Item>\n            );\n          }\n\n          return (\n            <Grid.Item\n              col={3}\n              m={4}\n              s={6}\n              xs={12}\n              key={asset.id}\n              height=\"100%\"\n              direction=\"column\"\n              alignItems=\"stretch\"\n            >\n              <AssetCard\n                key={asset.id}\n                allowedTypes={allowedTypes}\n                asset={asset}\n                isSelected={isSelected}\n                onEdit={onEditAsset ? () => onEditAsset(asset) : undefined}\n                onSelect={() => onSelectAsset(asset)}\n                size={size}\n              />\n            </Grid.Item>\n          );\n        })}\n      </Grid.Root>\n    </KeyboardNavigable>\n  );\n};\n"],"names":["DraggableAssetCard","styled","AssetCard","AssetGridList","allowedTypes","assets","onEditAsset","onSelectAsset","selectedAssets","size","onReorderAsset","title","_jsxs","KeyboardNavigable","tagName","_jsx","Box","paddingTop","paddingBottom","Typography","tag","variant","fontWeight","Grid","Root","gap","map","asset","index","isSelected","find","currentAsset","id","Item","col","height","Draggable","moveItem","onEdit","undefined","onSelect","m","s","xs","direction","alignItems"],"mappings":"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"}