{"version":3,"file":"AssetsTable.mjs","sources":["../../../../../../admin/src/future/pages/Assets/components/AssetsTable.tsx"],"sourcesContent":["import { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n  Flex,\n  IconButton,\n  RawTable,\n  RawTbody,\n  RawTd,\n  RawTh,\n  RawThead,\n  RawTr,\n  Typography,\n  VisuallyHidden,\n} from '@strapi/design-system';\nimport { Folder as FolderIcon, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { formatBytes } from '../../../utils/files';\nimport { getAssetIcon } from '../../../utils/getAssetIcon';\nimport { getTranslationKey } from '../../../utils/translations';\nimport { TABLE_HEADERS } from '../constants';\nimport { useFolderNavigation } from '../hooks/useFolderNavigation';\n\nimport type { File } from '../../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst StyledTable = styled(RawTable)`\n  width: 100%;\n  border-collapse: separate;\n  border-spacing: 0;\n  border: 1px solid ${({ theme }) => theme.colors.neutral150};\n  border-radius: 4px;\n  overflow: hidden;\n`;\n\nconst StyledThead = styled(RawThead)`\n  background: ${({ theme }) => theme.colors.neutral100};\n\n  tr {\n    border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n  }\n`;\n\nconst StyledTh = styled(RawTh)`\n  height: 40px;\n  padding: 0 ${({ theme }) => theme.spaces[4]};\n  text-align: left;\n`;\n\nconst StyledTd = styled(RawTd)`\n  padding: 0 ${({ theme }) => theme.spaces[4]};\n  border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst StyledTr = styled(RawTr)`\n  height: 48px;\n  background: ${({ theme }) => theme.colors.neutral0};\n  cursor: pointer;\n\n  &:hover {\n    background: ${({ theme }) => theme.colors.primary100};\n  }\n\n  &:focus-visible {\n    outline: 2px solid ${({ theme }) => theme.colors.primary600};\n    outline-offset: -2px;\n  }\n\n  &:last-child {\n    ${StyledTd} {\n      border-bottom: 0;\n    }\n  }\n`;\n\nconst StyledBodyTd = styled(RawTd)`\n  padding: ${({ theme }) => theme.spaces[4]};\n  border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface AssetPreviewCellProps {\n  asset: File;\n}\n\nconst AssetPreviewCell = ({ asset }: AssetPreviewCellProps) => {\n  const { ext, mime } = asset;\n\n  const DocIcon = getAssetIcon(mime, ext);\n\n  return (\n    <Flex\n      justifyContent=\"center\"\n      alignItems=\"center\"\n      borderRadius=\"4px\"\n      color=\"neutral500\"\n      width=\"3.2rem\"\n      height=\"3.2rem\"\n      shrink={0}\n    >\n      <DocIcon width={20} height={20} />\n    </Flex>\n  );\n};\n\ninterface AssetRowProps {\n  asset: File;\n  onAssetItemClick: (assetId: number) => void;\n}\n\nconst AssetRow = ({ asset, onAssetItemClick }: AssetRowProps) => {\n  const isMobile = useIsMobile();\n  const { formatDate, formatMessage } = useIntl();\n\n  const handleKeyDown = (e: React.KeyboardEvent) => {\n    if (e.key === 'Enter' || e.key === ' ') {\n      e.preventDefault();\n      onAssetItemClick(asset.id);\n    }\n  };\n\n  return (\n    <StyledTr\n      tabIndex={0}\n      role=\"row\"\n      onClick={() => onAssetItemClick(asset.id)}\n      onKeyDown={handleKeyDown}\n    >\n      <StyledTd>\n        <Flex gap={3} alignItems=\"center\">\n          <AssetPreviewCell asset={asset} />\n          <Flex direction=\"column\" alignItems=\"flex-start\">\n            <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n              {asset.name}\n            </Typography>\n            {isMobile && (\n              <Typography textColor=\"neutral600\" variant=\"pi\">\n                {asset.size ? formatBytes(asset.size, 1) : '-'}\n              </Typography>\n            )}\n          </Flex>\n        </Flex>\n      </StyledTd>\n      {!isMobile && (\n        <>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">\n              {asset.createdAt ? formatDate(new Date(asset.createdAt), { dateStyle: 'long' }) : '-'}\n            </Typography>\n          </StyledTd>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">\n              {asset.updatedAt ? formatDate(new Date(asset.updatedAt), { dateStyle: 'long' }) : '-'}\n            </Typography>\n          </StyledTd>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">\n              {asset.size ? formatBytes(asset.size, 1) : '-'}\n            </Typography>\n          </StyledTd>\n        </>\n      )}\n      <StyledTd>\n        <Flex justifyContent=\"flex-end\">\n          <IconButton\n            label={formatMessage({\n              id: getTranslationKey('control-card.more-actions'),\n              defaultMessage: 'More actions',\n            })}\n            variant=\"ghost\"\n          >\n            <More />\n          </IconButton>\n        </Flex>\n      </StyledTd>\n    </StyledTr>\n  );\n};\n\nconst FolderTr = styled(StyledTr)`\n  cursor: pointer;\n\n  &:hover {\n    background: ${({ theme }) => theme.colors.primary100};\n  }\n`;\n\ninterface FolderRowProps {\n  folder: Folder;\n}\n\nconst FolderRow = ({ folder }: FolderRowProps) => {\n  const isMobile = useIsMobile();\n  const { formatDate, formatMessage } = useIntl();\n  const { navigateToFolder } = useFolderNavigation();\n\n  const handleKeyDown = (e: React.KeyboardEvent) => {\n    if (e.key === 'Enter' || e.key === ' ') {\n      e.preventDefault();\n      navigateToFolder(folder);\n    }\n  };\n\n  return (\n    <FolderTr\n      tabIndex={0}\n      role=\"row\"\n      onClick={() => navigateToFolder(folder)}\n      onKeyDown={handleKeyDown}\n    >\n      <StyledTd>\n        <Flex gap={3} alignItems=\"center\">\n          <Flex\n            justifyContent=\"center\"\n            alignItems=\"center\"\n            borderRadius=\"4px\"\n            color=\"neutral600\"\n            width=\"3.2rem\"\n            height=\"3.2rem\"\n            shrink={0}\n          >\n            <FolderIcon width={20} height={20} />\n          </Flex>\n          <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n            {folder.name}\n          </Typography>\n        </Flex>\n      </StyledTd>\n      {!isMobile && (\n        <>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">\n              {folder.createdAt\n                ? formatDate(new Date(folder.createdAt), { dateStyle: 'long' })\n                : '-'}\n            </Typography>\n          </StyledTd>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">\n              {folder.updatedAt\n                ? formatDate(new Date(folder.updatedAt), { dateStyle: 'long' })\n                : '-'}\n            </Typography>\n          </StyledTd>\n          <StyledTd>\n            <Typography textColor=\"neutral600\">-</Typography>\n          </StyledTd>\n        </>\n      )}\n      <StyledTd>\n        <Flex justifyContent=\"flex-end\">\n          <IconButton\n            label={formatMessage({\n              id: getTranslationKey('control-card.more-actions'),\n              defaultMessage: 'More actions',\n            })}\n            variant=\"ghost\"\n            onClick={(e: React.MouseEvent) => e.stopPropagation()}\n          >\n            <More />\n          </IconButton>\n        </Flex>\n      </StyledTd>\n    </FolderTr>\n  );\n};\n\ninterface AssetsTableProps {\n  assets: File[];\n  folders?: Folder[];\n  onAssetItemClick: (assetId: number) => void;\n}\n\nexport const AssetsTable = ({ assets, folders = [], onAssetItemClick }: AssetsTableProps) => {\n  const isMobile = useIsMobile();\n  const { formatMessage } = useIntl();\n\n  const visibleHeaders = isMobile\n    ? TABLE_HEADERS.filter((h) => h.name === 'name' || h.name === 'actions')\n    : TABLE_HEADERS;\n\n  const totalRows = folders.length + assets.length;\n\n  return (\n    <StyledTable colCount={visibleHeaders.length} rowCount={totalRows + 1}>\n      <StyledThead>\n        <RawTr>\n          {visibleHeaders.map((header) => {\n            const tableHeaderLabel = formatMessage(header.label);\n            const isVisuallyHidden = 'isVisuallyHidden' in header && header.isVisuallyHidden;\n\n            if (isVisuallyHidden) {\n              return (\n                <StyledTh key={header.name}>\n                  <VisuallyHidden>\n                    {formatMessage({\n                      id: getTranslationKey('table.header.actions'),\n                      defaultMessage: 'actions',\n                    })}\n                  </VisuallyHidden>\n                </StyledTh>\n              );\n            }\n\n            return (\n              <StyledTh key={header.name}>\n                <Typography textColor=\"neutral600\" variant=\"sigma\">\n                  {tableHeaderLabel}\n                </Typography>\n              </StyledTh>\n            );\n          })}\n        </RawTr>\n      </StyledThead>\n      <RawTbody>\n        {totalRows === 0 ? (\n          <RawTr>\n            <StyledBodyTd colSpan={visibleHeaders.length}>\n              <Typography textColor=\"neutral600\">\n                {formatMessage({\n                  id: 'app.components.EmptyStateLayout.content-document',\n                  defaultMessage: 'No content found',\n                })}\n              </Typography>\n            </StyledBodyTd>\n          </RawTr>\n        ) : (\n          <>\n            {folders.map((folder) => (\n              <FolderRow key={`folder-${folder.id}`} folder={folder} />\n            ))}\n            {assets.map((asset) => (\n              <AssetRow key={asset.id} asset={asset} onAssetItemClick={onAssetItemClick} />\n            ))}\n          </>\n        )}\n      </RawTbody>\n    </StyledTable>\n  );\n};\n"],"names":["StyledTable","styled","RawTable","theme","colors","neutral150","StyledThead","RawThead","neutral100","StyledTh","RawTh","spaces","StyledTd","RawTd","StyledTr","RawTr","neutral0","primary100","primary600","StyledBodyTd","AssetPreviewCell","asset","ext","mime","DocIcon","getAssetIcon","_jsx","Flex","justifyContent","alignItems","borderRadius","color","width","height","shrink","AssetRow","onAssetItemClick","isMobile","useIsMobile","formatDate","formatMessage","useIntl","handleKeyDown","e","key","preventDefault","id","_jsxs","tabIndex","role","onClick","onKeyDown","gap","direction","Typography","textColor","fontWeight","ellipsis","name","variant","size","formatBytes","_Fragment","createdAt","Date","dateStyle","updatedAt","IconButton","label","getTranslationKey","defaultMessage","More","FolderTr","FolderRow","folder","navigateToFolder","useFolderNavigation","FolderIcon","stopPropagation","AssetsTable","assets","folders","visibleHeaders","TABLE_HEADERS","filter","h","totalRows","length","colCount","rowCount","map","header","tableHeaderLabel","isVisuallyHidden","VisuallyHidden","RawTbody","colSpan"],"mappings":"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"}