@contentful/f36-asset 6.18.0 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import n from'react';import {cx,css}from'@emotion/css';import {Box,Flex}from'@contentful/f36-core';import {Text}from'@contentful/f36-typography';import {FileArchiveIcon,FileVideoIcon,TableIcon,RichTextIcon,PresentationIcon,FileTextIcon,FilePdfIcon,FileCodeIcon,ImageSquareIcon,BracketsCurlyIcon,FileAudioIcon}from'@contentful/f36-icons';import g from'@contentful/f36-tokens';var F=Object.defineProperty,N=Object.defineProperties;var w=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var A=(e,t,s)=>t in e?F(e,t,{enumerable:true,configurable:true,writable:true,value:s}):e[t]=s,o=(e,t)=>{for(var s in t||(t={}))I.call(t,s)&&A(e,s,t[s]);if(f)for(var s of f(t))T.call(t,s)&&A(e,s,t[s]);return e},v=(e,t)=>N(e,w(t));var d=(e,t)=>{var s={};for(var r in e)I.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&f)for(var r of f(e))t.indexOf(r)<0&&T.call(e,r)&&(s[r]=e[r]);return s};function P(){return {root:css({display:"inline-block",width:"39px",height:"39px","g, path":{fill:g.gray600}})}}var u=c=>{var m=c,{type:e="archive",className:t,testId:s="cf-ui-asset-icon"}=m,r=d(m,["type","className","testId"]);let y=P(),i=v(o({},r),{testId:s,className:cx(y.root,t)});switch(e){case "audio":return n.createElement(FileAudioIcon,o({},i));case "code":return n.createElement(BracketsCurlyIcon,o({},i));case "image":return n.createElement(ImageSquareIcon,o({},i));case "markup":return n.createElement(FileCodeIcon,o({},i));case "pdf":return n.createElement(FilePdfIcon,o({},i));case "plaintext":return n.createElement(FileTextIcon,o({},i));case "presentation":return n.createElement(PresentationIcon,o({},i));case "richtext":return n.createElement(RichTextIcon,o({},i));case "spreadsheet":return n.createElement(TableIcon,o({},i));case "video":return n.createElement(FileVideoIcon,o({},i));default:return n.createElement(FileArchiveIcon,o({},i))}};u.displayName="AssetIcon";function S(){return {root:css({position:"relative",width:"100%"}),height100:css({height:"100%"}),image:css({width:"auto",maxWidth:"100%",maxHeight:"100%"}),titleContainer:css({opacity:0,transition:`opacity ${g.transitionDurationDefault} ${g.transitionEasingDefault}`,position:"absolute",bottom:0,right:0,left:0,height:"100%",display:"flex",overflow:"hidden",alignItems:"flex-end",boxSizing:"border-box",background:`linear-gradient(0deg, ${g.gray900} 0%, transparent calc(1rem * (100 / ${g.fontBaseDefault})), transparent 100% )`,":hover":{opacity:1}}),title:css({bottom:0,left:0,right:0,position:"absolute"})}}function k(Y,i){var h=Y,{className:e,src:t,status:s,testId:r="cf-ui-asset",title:c,type:m="image"}=h,y=d(h,["className","src","status","testId","title","type"]);let p=S(),C=t&&t!==""&&m==="image"&&s!=="archived";return n.createElement(Box,o({className:cx(p.root,e),testId:r,ref:i},y),C?n.createElement(n.Fragment,null,n.createElement(Flex,{alignItems:"center",justifyContent:"center",className:p.height100},n.createElement("img",{className:p.image,src:t,alt:c})),c&&n.createElement("div",{className:p.titleContainer},n.createElement(Text,{className:p.title,fontColor:"colorWhite",margin:"spacingS",isTruncated:true},c))):n.createElement(Flex,{flexDirection:"column",alignItems:"center",justifyContent:"center",paddingLeft:"spacingS",paddingRight:"spacingS",className:p.height100},n.createElement(Flex,{marginBottom:"spacingM",marginTop:"spacingM",justifyContent:"center"},n.createElement(u,{type:m})),n.createElement(Text,{isTruncated:true,marginBottom:"spacingM",fontColor:"gray600"},c)))}k.displayName="Asset";var K=n.forwardRef(k);var Q={archive:"archive",audio:"audio",code:"code",image:"image",markup:"markup",pdf:"pdf",plaintext:"plaintext",presentation:"presentation",richtext:"richtext",spreadsheet:"spreadsheet",video:"video"};function X(e){return Object.keys(Q).includes(e)}export{K as Asset,u as AssetIcon,X as isAssetType};//# sourceMappingURL=index.js.map
1
+ import V from'react';import {cx,css}from'@emotion/css';import {Box,Flex}from'@contentful/f36-core';import {Text}from'@contentful/f36-typography';import {FileArchiveIcon,FileVideoIcon,TableIcon,RichTextIcon,PresentationIcon,FileTextIcon,FilePdfIcon,FileCodeIcon,ImageSquareIcon,BracketsCurlyIcon,FileAudioIcon}from'@contentful/f36-icons';import y from'@contentful/f36-tokens';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var N=Object.defineProperty,w=Object.defineProperties;var B=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var I=(e,t,s)=>t in e?N(e,t,{enumerable:true,configurable:true,writable:true,value:s}):e[t]=s,o=(e,t)=>{for(var s in t||(t={}))T.call(t,s)&&I(e,s,t[s]);if(f)for(var s of f(t))v.call(t,s)&&I(e,s,t[s]);return e},d=(e,t)=>w(e,B(t));var g=(e,t)=>{var s={};for(var r in e)T.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&f)for(var r of f(e))t.indexOf(r)<0&&v.call(e,r)&&(s[r]=e[r]);return s};function P(){return {root:css({display:"inline-block",width:"39px",height:"39px","g, path":{fill:y.gray600}})}}var u=c=>{var m=c,{type:e="archive",className:t,testId:s="cf-ui-asset-icon"}=m,r=g(m,["type","className","testId"]);let x=P(),i=d(o({},r),{testId:s,className:cx(x.root,t)});switch(e){case "audio":return jsx(FileAudioIcon,o({},i));case "code":return jsx(BracketsCurlyIcon,o({},i));case "image":return jsx(ImageSquareIcon,o({},i));case "markup":return jsx(FileCodeIcon,o({},i));case "pdf":return jsx(FilePdfIcon,o({},i));case "plaintext":return jsx(FileTextIcon,o({},i));case "presentation":return jsx(PresentationIcon,o({},i));case "richtext":return jsx(RichTextIcon,o({},i));case "spreadsheet":return jsx(TableIcon,o({},i));case "video":return jsx(FileVideoIcon,o({},i));default:return jsx(FileArchiveIcon,o({},i))}};u.displayName="AssetIcon";function S(){return {root:css({position:"relative",width:"100%"}),height100:css({height:"100%"}),image:css({width:"auto",maxWidth:"100%",maxHeight:"100%"}),titleContainer:css({opacity:0,transition:`opacity ${y.transitionDurationDefault} ${y.transitionEasingDefault}`,position:"absolute",bottom:0,right:0,left:0,height:"100%",display:"flex",overflow:"hidden",alignItems:"flex-end",boxSizing:"border-box",background:`linear-gradient(0deg, ${y.gray900} 0%, transparent calc(1rem * (100 / ${y.fontBaseDefault})), transparent 100% )`,":hover":{opacity:1}}),title:css({bottom:0,left:0,right:0,position:"absolute"})}}function C(_,i){var A=_,{className:e,src:t,status:s,testId:r="cf-ui-asset",title:c,type:m="image"}=A,x=g(A,["className","src","status","testId","title","type"]);let p=S(),F=t&&t!==""&&m==="image"&&s!=="archived";return jsx(Box,d(o({className:cx(p.root,e),testId:r,ref:i},x),{children:F?jsxs(Fragment,{children:[jsx(Flex,{alignItems:"center",justifyContent:"center",className:p.height100,children:jsx("img",{className:p.image,src:t,alt:c})}),c&&jsx("div",{className:p.titleContainer,children:jsx(Text,{className:p.title,fontColor:"colorWhite",margin:"spacingS",isTruncated:true,children:c})})]}):jsxs(Flex,{flexDirection:"column",alignItems:"center",justifyContent:"center",paddingLeft:"spacingS",paddingRight:"spacingS",className:p.height100,children:[jsx(Flex,{marginBottom:"spacingM",marginTop:"spacingM",justifyContent:"center",children:jsx(u,{type:m})}),jsx(Text,{isTruncated:true,marginBottom:"spacingM",fontColor:"gray600",children:c})]})}))}C.displayName="Asset";var Q=V.forwardRef(C);var Y={archive:"archive",audio:"audio",code:"code",image:"image",markup:"markup",pdf:"pdf",plaintext:"plaintext",presentation:"presentation",richtext:"richtext",spreadsheet:"spreadsheet",video:"video"};function Z(e){return Object.keys(Y).includes(e)}export{Q as Asset,u as AssetIcon,Z as isAssetType};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Asset.tsx","../../src/AssetIcon/AssetIcon.styles.ts","../../src/AssetIcon/AssetIcon.tsx","../../src/Asset.styles.ts","../../src/types.ts"],"names":["getAssetIconStyles","css","tokens","AssetIcon","_a","_b","type","className","testId","otherProps","__objRest","styles","props","__spreadProps","__spreadValues","cx","React","FileAudioIcon","BracketsCurlyIcon","ImageSquareIcon","FileCodeIcon","FilePdfIcon","FileTextIcon","PresentationIcon","RichTextIcon","TableIcon","FileVideoIcon","FileArchiveIcon","getAssetStyles","AssetBase","ref","src","status","title","showPreview","Box","Flex","Text","Asset","types","isAssetType"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Box,\n Flex,\n type EntityStatus,\n type PickUnion,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\n\nimport { AssetIcon } from './AssetIcon/AssetIcon';\nimport { getAssetStyles } from './Asset.styles';\nimport type { AssetType } from './types';\n\nexport type AssetStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'deleted' | 'draft' | 'published'\n>;\n\nexport interface AssetProps extends CommonProps {\n /**\n * A `src` attribute to use for image assets\n */\n src?: string;\n /**\n * The publish status of the asset\n */\n status?: AssetStatus;\n /**\n * The title of the asset\n */\n title?: string;\n /**\n * The type of asset being represented\n */\n type?: AssetType;\n}\n\nfunction AssetBase(\n {\n className,\n src,\n status,\n testId = 'cf-ui-asset',\n title,\n type = 'image',\n ...otherProps\n }: AssetProps,\n ref: React.Ref<HTMLElement>,\n) {\n const styles = getAssetStyles();\n const isImage = src && src !== '' && type === 'image';\n\n // Do not show image previews when publish status is archived\n const showPreview = isImage && status !== 'archived';\n\n return (\n <Box\n className={cx(styles.root, className)}\n testId={testId}\n ref={ref}\n {...otherProps}\n >\n {showPreview ? (\n <>\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n className={styles.height100}\n >\n <img className={styles.image} src={src} alt={title} />\n </Flex>\n {title && (\n <div className={styles.titleContainer}>\n <Text\n className={styles.title}\n fontColor=\"colorWhite\"\n margin=\"spacingS\"\n isTruncated\n >\n {title}\n </Text>\n </div>\n )}\n </>\n ) : (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n paddingLeft=\"spacingS\"\n paddingRight=\"spacingS\"\n className={styles.height100}\n >\n <Flex\n marginBottom=\"spacingM\"\n marginTop=\"spacingM\"\n justifyContent=\"center\"\n >\n <AssetIcon type={type} />\n </Flex>\n <Text isTruncated marginBottom=\"spacingM\" fontColor=\"gray600\">\n {title}\n </Text>\n </Flex>\n )}\n </Box>\n );\n}\n\nAssetBase.displayName = 'Asset';\n\nexport const Asset = React.forwardRef(AssetBase);\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetIconStyles() {\n return {\n root: css({\n display: 'inline-block',\n width: '39px',\n height: '39px',\n 'g, path': {\n fill: tokens.gray600,\n },\n }),\n };\n}\n","import React from 'react';\nimport {\n FileArchiveIcon,\n FileAudioIcon,\n BracketsCurlyIcon,\n ImageSquareIcon,\n FileCodeIcon,\n FilePdfIcon,\n FileTextIcon,\n RichTextIcon,\n PresentationIcon,\n TableIcon,\n FileVideoIcon,\n} from '@contentful/f36-icons';\nimport type { GeneratedIconProps } from '@contentful/f36-icon';\nimport type { AssetType } from '../types';\n\nimport { cx } from '@emotion/css';\nimport { getAssetIconStyles } from './AssetIcon.styles';\n\nexport interface AssetIconProps extends Omit<\n GeneratedIconProps,\n 'illustration' | 'ref'\n> {\n type?: AssetType;\n}\n\n/**\n * Renders only the Illustration that would represent this asset's type\n */\nexport const AssetIcon = ({\n type = 'archive',\n className,\n testId = 'cf-ui-asset-icon',\n ...otherProps\n}: AssetIconProps) => {\n const styles = getAssetIconStyles();\n const props = {\n ...otherProps,\n testId,\n className: cx(styles.root, className),\n };\n\n switch (type) {\n case 'audio':\n return <FileAudioIcon {...props} />;\n case 'code':\n return <BracketsCurlyIcon {...props} />;\n case 'image':\n return <ImageSquareIcon {...props} />;\n case 'markup':\n return <FileCodeIcon {...props} />;\n case 'pdf':\n return <FilePdfIcon {...props} />;\n case 'plaintext':\n return <FileTextIcon {...props} />;\n case 'presentation':\n return <PresentationIcon {...props} />;\n case 'richtext':\n return <RichTextIcon {...props} />;\n case 'spreadsheet':\n return <TableIcon {...props} />;\n case 'video':\n return <FileVideoIcon {...props} />;\n case 'archive':\n default:\n return <FileArchiveIcon {...props} />;\n }\n};\n\nAssetIcon.displayName = 'AssetIcon';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetStyles() {\n return {\n root: css({\n position: 'relative',\n width: '100%',\n }),\n height100: css({\n height: '100%',\n }),\n image: css({\n width: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }),\n titleContainer: css({\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'absolute',\n bottom: 0,\n right: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'flex-end',\n boxSizing: 'border-box',\n background: `linear-gradient(0deg, ${tokens.gray900} 0%, transparent calc(1rem * (100 / ${tokens.fontBaseDefault})), transparent 100% )`,\n ':hover': { opacity: 1 },\n }),\n title: css({\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n }),\n };\n}\n","export const types = {\n archive: 'archive',\n audio: 'audio',\n code: 'code',\n image: 'image',\n markup: 'markup',\n pdf: 'pdf',\n plaintext: 'plaintext',\n presentation: 'presentation',\n richtext: 'richtext',\n spreadsheet: 'spreadsheet',\n video: 'video',\n};\n\nexport function isAssetType(type: string): type is AssetType {\n return Object.keys(types).includes(type);\n}\n\nexport type AssetType = keyof typeof types;\n"]}
1
+ {"version":3,"sources":["../../src/Asset.tsx","../../src/AssetIcon/AssetIcon.styles.ts","../../src/AssetIcon/AssetIcon.tsx","../../src/Asset.styles.ts","../../src/types.ts"],"names":["getAssetIconStyles","css","tokens","AssetIcon","_a","_b","type","className","testId","otherProps","__objRest","styles","props","__spreadProps","__spreadValues","cx","jsx","FileAudioIcon","BracketsCurlyIcon","ImageSquareIcon","FileCodeIcon","FilePdfIcon","FileTextIcon","PresentationIcon","RichTextIcon","TableIcon","FileVideoIcon","FileArchiveIcon","getAssetStyles","AssetBase","ref","src","status","title","showPreview","Box","jsxs","Fragment","Flex","Text","Asset","React","types","isAssetType"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Box,\n Flex,\n type EntityStatus,\n type PickUnion,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\n\nimport { AssetIcon } from './AssetIcon/AssetIcon';\nimport { getAssetStyles } from './Asset.styles';\nimport type { AssetType } from './types';\n\nexport type AssetStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'deleted' | 'draft' | 'published'\n>;\n\nexport interface AssetProps extends CommonProps {\n /**\n * A `src` attribute to use for image assets\n */\n src?: string;\n /**\n * The publish status of the asset\n */\n status?: AssetStatus;\n /**\n * The title of the asset\n */\n title?: string;\n /**\n * The type of asset being represented\n */\n type?: AssetType;\n}\n\nfunction AssetBase(\n {\n className,\n src,\n status,\n testId = 'cf-ui-asset',\n title,\n type = 'image',\n ...otherProps\n }: AssetProps,\n ref: React.Ref<HTMLElement>,\n) {\n const styles = getAssetStyles();\n const isImage = src && src !== '' && type === 'image';\n\n // Do not show image previews when publish status is archived\n const showPreview = isImage && status !== 'archived';\n\n return (\n <Box\n className={cx(styles.root, className)}\n testId={testId}\n ref={ref}\n {...otherProps}\n >\n {showPreview ? (\n <>\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n className={styles.height100}\n >\n <img className={styles.image} src={src} alt={title} />\n </Flex>\n {title && (\n <div className={styles.titleContainer}>\n <Text\n className={styles.title}\n fontColor=\"colorWhite\"\n margin=\"spacingS\"\n isTruncated\n >\n {title}\n </Text>\n </div>\n )}\n </>\n ) : (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n paddingLeft=\"spacingS\"\n paddingRight=\"spacingS\"\n className={styles.height100}\n >\n <Flex\n marginBottom=\"spacingM\"\n marginTop=\"spacingM\"\n justifyContent=\"center\"\n >\n <AssetIcon type={type} />\n </Flex>\n <Text isTruncated marginBottom=\"spacingM\" fontColor=\"gray600\">\n {title}\n </Text>\n </Flex>\n )}\n </Box>\n );\n}\n\nAssetBase.displayName = 'Asset';\n\nexport const Asset = React.forwardRef(AssetBase);\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetIconStyles() {\n return {\n root: css({\n display: 'inline-block',\n width: '39px',\n height: '39px',\n 'g, path': {\n fill: tokens.gray600,\n },\n }),\n };\n}\n","import React from 'react';\nimport {\n FileArchiveIcon,\n FileAudioIcon,\n BracketsCurlyIcon,\n ImageSquareIcon,\n FileCodeIcon,\n FilePdfIcon,\n FileTextIcon,\n RichTextIcon,\n PresentationIcon,\n TableIcon,\n FileVideoIcon,\n} from '@contentful/f36-icons';\nimport type { GeneratedIconProps } from '@contentful/f36-icon';\nimport type { AssetType } from '../types';\n\nimport { cx } from '@emotion/css';\nimport { getAssetIconStyles } from './AssetIcon.styles';\n\nexport interface AssetIconProps extends Omit<\n GeneratedIconProps,\n 'illustration' | 'ref'\n> {\n type?: AssetType;\n}\n\n/**\n * Renders only the Illustration that would represent this asset's type\n */\nexport const AssetIcon = ({\n type = 'archive',\n className,\n testId = 'cf-ui-asset-icon',\n ...otherProps\n}: AssetIconProps) => {\n const styles = getAssetIconStyles();\n const props = {\n ...otherProps,\n testId,\n className: cx(styles.root, className),\n };\n\n switch (type) {\n case 'audio':\n return <FileAudioIcon {...props} />;\n case 'code':\n return <BracketsCurlyIcon {...props} />;\n case 'image':\n return <ImageSquareIcon {...props} />;\n case 'markup':\n return <FileCodeIcon {...props} />;\n case 'pdf':\n return <FilePdfIcon {...props} />;\n case 'plaintext':\n return <FileTextIcon {...props} />;\n case 'presentation':\n return <PresentationIcon {...props} />;\n case 'richtext':\n return <RichTextIcon {...props} />;\n case 'spreadsheet':\n return <TableIcon {...props} />;\n case 'video':\n return <FileVideoIcon {...props} />;\n case 'archive':\n default:\n return <FileArchiveIcon {...props} />;\n }\n};\n\nAssetIcon.displayName = 'AssetIcon';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetStyles() {\n return {\n root: css({\n position: 'relative',\n width: '100%',\n }),\n height100: css({\n height: '100%',\n }),\n image: css({\n width: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }),\n titleContainer: css({\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'absolute',\n bottom: 0,\n right: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'flex-end',\n boxSizing: 'border-box',\n background: `linear-gradient(0deg, ${tokens.gray900} 0%, transparent calc(1rem * (100 / ${tokens.fontBaseDefault})), transparent 100% )`,\n ':hover': { opacity: 1 },\n }),\n title: css({\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n }),\n };\n}\n","export const types = {\n archive: 'archive',\n audio: 'audio',\n code: 'code',\n image: 'image',\n markup: 'markup',\n pdf: 'pdf',\n plaintext: 'plaintext',\n presentation: 'presentation',\n richtext: 'richtext',\n spreadsheet: 'spreadsheet',\n video: 'video',\n};\n\nexport function isAssetType(type: string): type is AssetType {\n return Object.keys(types).includes(type);\n}\n\nexport type AssetType = keyof typeof types;\n"]}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { CommonProps, PickUnion, EntityStatus } from '@contentful/f36-core';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
4
  import { GeneratedIconProps } from '@contentful/f36-icon';
4
5
 
5
6
  declare const types: {
@@ -46,7 +47,7 @@ interface AssetIconProps extends Omit<GeneratedIconProps, 'illustration' | 'ref'
46
47
  * Renders only the Illustration that would represent this asset's type
47
48
  */
48
49
  declare const AssetIcon: {
49
- ({ type, className, testId, ...otherProps }: AssetIconProps): React.JSX.Element;
50
+ ({ type, className, testId, ...otherProps }: AssetIconProps): react_jsx_runtime.JSX.Element;
50
51
  displayName: string;
51
52
  };
52
53
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { CommonProps, PickUnion, EntityStatus } from '@contentful/f36-core';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
4
  import { GeneratedIconProps } from '@contentful/f36-icon';
4
5
 
5
6
  declare const types: {
@@ -46,7 +47,7 @@ interface AssetIconProps extends Omit<GeneratedIconProps, 'illustration' | 'ref'
46
47
  * Renders only the Illustration that would represent this asset's type
47
48
  */
48
49
  declare const AssetIcon: {
49
- ({ type, className, testId, ...otherProps }: AssetIconProps): React.JSX.Element;
50
+ ({ type, className, testId, ...otherProps }: AssetIconProps): react_jsx_runtime.JSX.Element;
50
51
  displayName: string;
51
52
  };
52
53
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var n=require('react'),css=require('@emotion/css'),f36Core=require('@contentful/f36-core'),f36Typography=require('@contentful/f36-typography'),f36Icons=require('@contentful/f36-icons'),g=require('@contentful/f36-tokens');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var n__default=/*#__PURE__*/_interopDefault(n);var g__default=/*#__PURE__*/_interopDefault(g);var F=Object.defineProperty,N=Object.defineProperties;var w=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var A=(e,t,s)=>t in e?F(e,t,{enumerable:true,configurable:true,writable:true,value:s}):e[t]=s,o=(e,t)=>{for(var s in t||(t={}))I.call(t,s)&&A(e,s,t[s]);if(f)for(var s of f(t))T.call(t,s)&&A(e,s,t[s]);return e},v=(e,t)=>N(e,w(t));var d=(e,t)=>{var s={};for(var r in e)I.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&f)for(var r of f(e))t.indexOf(r)<0&&T.call(e,r)&&(s[r]=e[r]);return s};function P(){return {root:css.css({display:"inline-block",width:"39px",height:"39px","g, path":{fill:g__default.default.gray600}})}}var u=c=>{var m=c,{type:e="archive",className:t,testId:s="cf-ui-asset-icon"}=m,r=d(m,["type","className","testId"]);let y=P(),i=v(o({},r),{testId:s,className:css.cx(y.root,t)});switch(e){case "audio":return n__default.default.createElement(f36Icons.FileAudioIcon,o({},i));case "code":return n__default.default.createElement(f36Icons.BracketsCurlyIcon,o({},i));case "image":return n__default.default.createElement(f36Icons.ImageSquareIcon,o({},i));case "markup":return n__default.default.createElement(f36Icons.FileCodeIcon,o({},i));case "pdf":return n__default.default.createElement(f36Icons.FilePdfIcon,o({},i));case "plaintext":return n__default.default.createElement(f36Icons.FileTextIcon,o({},i));case "presentation":return n__default.default.createElement(f36Icons.PresentationIcon,o({},i));case "richtext":return n__default.default.createElement(f36Icons.RichTextIcon,o({},i));case "spreadsheet":return n__default.default.createElement(f36Icons.TableIcon,o({},i));case "video":return n__default.default.createElement(f36Icons.FileVideoIcon,o({},i));default:return n__default.default.createElement(f36Icons.FileArchiveIcon,o({},i))}};u.displayName="AssetIcon";function S(){return {root:css.css({position:"relative",width:"100%"}),height100:css.css({height:"100%"}),image:css.css({width:"auto",maxWidth:"100%",maxHeight:"100%"}),titleContainer:css.css({opacity:0,transition:`opacity ${g__default.default.transitionDurationDefault} ${g__default.default.transitionEasingDefault}`,position:"absolute",bottom:0,right:0,left:0,height:"100%",display:"flex",overflow:"hidden",alignItems:"flex-end",boxSizing:"border-box",background:`linear-gradient(0deg, ${g__default.default.gray900} 0%, transparent calc(1rem * (100 / ${g__default.default.fontBaseDefault})), transparent 100% )`,":hover":{opacity:1}}),title:css.css({bottom:0,left:0,right:0,position:"absolute"})}}function k(Y,i){var h=Y,{className:e,src:t,status:s,testId:r="cf-ui-asset",title:c,type:m="image"}=h,y=d(h,["className","src","status","testId","title","type"]);let p=S(),C=t&&t!==""&&m==="image"&&s!=="archived";return n__default.default.createElement(f36Core.Box,o({className:css.cx(p.root,e),testId:r,ref:i},y),C?n__default.default.createElement(n__default.default.Fragment,null,n__default.default.createElement(f36Core.Flex,{alignItems:"center",justifyContent:"center",className:p.height100},n__default.default.createElement("img",{className:p.image,src:t,alt:c})),c&&n__default.default.createElement("div",{className:p.titleContainer},n__default.default.createElement(f36Typography.Text,{className:p.title,fontColor:"colorWhite",margin:"spacingS",isTruncated:true},c))):n__default.default.createElement(f36Core.Flex,{flexDirection:"column",alignItems:"center",justifyContent:"center",paddingLeft:"spacingS",paddingRight:"spacingS",className:p.height100},n__default.default.createElement(f36Core.Flex,{marginBottom:"spacingM",marginTop:"spacingM",justifyContent:"center"},n__default.default.createElement(u,{type:m})),n__default.default.createElement(f36Typography.Text,{isTruncated:true,marginBottom:"spacingM",fontColor:"gray600"},c)))}k.displayName="Asset";var K=n__default.default.forwardRef(k);var Q={archive:"archive",audio:"audio",code:"code",image:"image",markup:"markup",pdf:"pdf",plaintext:"plaintext",presentation:"presentation",richtext:"richtext",spreadsheet:"spreadsheet",video:"video"};function X(e){return Object.keys(Q).includes(e)}exports.Asset=K;exports.AssetIcon=u;exports.isAssetType=X;//# sourceMappingURL=index.js.map
1
+ 'use strict';var V=require('react'),css=require('@emotion/css'),f36Core=require('@contentful/f36-core'),f36Typography=require('@contentful/f36-typography'),f36Icons=require('@contentful/f36-icons'),y=require('@contentful/f36-tokens'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var V__default=/*#__PURE__*/_interopDefault(V);var y__default=/*#__PURE__*/_interopDefault(y);var N=Object.defineProperty,w=Object.defineProperties;var B=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var I=(e,t,s)=>t in e?N(e,t,{enumerable:true,configurable:true,writable:true,value:s}):e[t]=s,o=(e,t)=>{for(var s in t||(t={}))T.call(t,s)&&I(e,s,t[s]);if(f)for(var s of f(t))v.call(t,s)&&I(e,s,t[s]);return e},d=(e,t)=>w(e,B(t));var g=(e,t)=>{var s={};for(var r in e)T.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(e!=null&&f)for(var r of f(e))t.indexOf(r)<0&&v.call(e,r)&&(s[r]=e[r]);return s};function P(){return {root:css.css({display:"inline-block",width:"39px",height:"39px","g, path":{fill:y__default.default.gray600}})}}var u=c=>{var m=c,{type:e="archive",className:t,testId:s="cf-ui-asset-icon"}=m,r=g(m,["type","className","testId"]);let x=P(),i=d(o({},r),{testId:s,className:css.cx(x.root,t)});switch(e){case "audio":return jsxRuntime.jsx(f36Icons.FileAudioIcon,o({},i));case "code":return jsxRuntime.jsx(f36Icons.BracketsCurlyIcon,o({},i));case "image":return jsxRuntime.jsx(f36Icons.ImageSquareIcon,o({},i));case "markup":return jsxRuntime.jsx(f36Icons.FileCodeIcon,o({},i));case "pdf":return jsxRuntime.jsx(f36Icons.FilePdfIcon,o({},i));case "plaintext":return jsxRuntime.jsx(f36Icons.FileTextIcon,o({},i));case "presentation":return jsxRuntime.jsx(f36Icons.PresentationIcon,o({},i));case "richtext":return jsxRuntime.jsx(f36Icons.RichTextIcon,o({},i));case "spreadsheet":return jsxRuntime.jsx(f36Icons.TableIcon,o({},i));case "video":return jsxRuntime.jsx(f36Icons.FileVideoIcon,o({},i));default:return jsxRuntime.jsx(f36Icons.FileArchiveIcon,o({},i))}};u.displayName="AssetIcon";function S(){return {root:css.css({position:"relative",width:"100%"}),height100:css.css({height:"100%"}),image:css.css({width:"auto",maxWidth:"100%",maxHeight:"100%"}),titleContainer:css.css({opacity:0,transition:`opacity ${y__default.default.transitionDurationDefault} ${y__default.default.transitionEasingDefault}`,position:"absolute",bottom:0,right:0,left:0,height:"100%",display:"flex",overflow:"hidden",alignItems:"flex-end",boxSizing:"border-box",background:`linear-gradient(0deg, ${y__default.default.gray900} 0%, transparent calc(1rem * (100 / ${y__default.default.fontBaseDefault})), transparent 100% )`,":hover":{opacity:1}}),title:css.css({bottom:0,left:0,right:0,position:"absolute"})}}function C(_,i){var A=_,{className:e,src:t,status:s,testId:r="cf-ui-asset",title:c,type:m="image"}=A,x=g(A,["className","src","status","testId","title","type"]);let p=S(),F=t&&t!==""&&m==="image"&&s!=="archived";return jsxRuntime.jsx(f36Core.Box,d(o({className:css.cx(p.root,e),testId:r,ref:i},x),{children:F?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(f36Core.Flex,{alignItems:"center",justifyContent:"center",className:p.height100,children:jsxRuntime.jsx("img",{className:p.image,src:t,alt:c})}),c&&jsxRuntime.jsx("div",{className:p.titleContainer,children:jsxRuntime.jsx(f36Typography.Text,{className:p.title,fontColor:"colorWhite",margin:"spacingS",isTruncated:true,children:c})})]}):jsxRuntime.jsxs(f36Core.Flex,{flexDirection:"column",alignItems:"center",justifyContent:"center",paddingLeft:"spacingS",paddingRight:"spacingS",className:p.height100,children:[jsxRuntime.jsx(f36Core.Flex,{marginBottom:"spacingM",marginTop:"spacingM",justifyContent:"center",children:jsxRuntime.jsx(u,{type:m})}),jsxRuntime.jsx(f36Typography.Text,{isTruncated:true,marginBottom:"spacingM",fontColor:"gray600",children:c})]})}))}C.displayName="Asset";var Q=V__default.default.forwardRef(C);var Y={archive:"archive",audio:"audio",code:"code",image:"image",markup:"markup",pdf:"pdf",plaintext:"plaintext",presentation:"presentation",richtext:"richtext",spreadsheet:"spreadsheet",video:"video"};function Z(e){return Object.keys(Y).includes(e)}exports.Asset=Q;exports.AssetIcon=u;exports.isAssetType=Z;//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Asset.tsx","../src/AssetIcon/AssetIcon.styles.ts","../src/AssetIcon/AssetIcon.tsx","../src/Asset.styles.ts","../src/types.ts"],"names":["getAssetIconStyles","css","tokens","AssetIcon","_a","_b","type","className","testId","otherProps","__objRest","styles","props","__spreadProps","__spreadValues","cx","React","FileAudioIcon","BracketsCurlyIcon","ImageSquareIcon","FileCodeIcon","FilePdfIcon","FileTextIcon","PresentationIcon","RichTextIcon","TableIcon","FileVideoIcon","FileArchiveIcon","getAssetStyles","AssetBase","ref","src","status","title","showPreview","Box","Flex","Text","Asset","types","isAssetType"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Box,\n Flex,\n type EntityStatus,\n type PickUnion,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\n\nimport { AssetIcon } from './AssetIcon/AssetIcon';\nimport { getAssetStyles } from './Asset.styles';\nimport type { AssetType } from './types';\n\nexport type AssetStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'deleted' | 'draft' | 'published'\n>;\n\nexport interface AssetProps extends CommonProps {\n /**\n * A `src` attribute to use for image assets\n */\n src?: string;\n /**\n * The publish status of the asset\n */\n status?: AssetStatus;\n /**\n * The title of the asset\n */\n title?: string;\n /**\n * The type of asset being represented\n */\n type?: AssetType;\n}\n\nfunction AssetBase(\n {\n className,\n src,\n status,\n testId = 'cf-ui-asset',\n title,\n type = 'image',\n ...otherProps\n }: AssetProps,\n ref: React.Ref<HTMLElement>,\n) {\n const styles = getAssetStyles();\n const isImage = src && src !== '' && type === 'image';\n\n // Do not show image previews when publish status is archived\n const showPreview = isImage && status !== 'archived';\n\n return (\n <Box\n className={cx(styles.root, className)}\n testId={testId}\n ref={ref}\n {...otherProps}\n >\n {showPreview ? (\n <>\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n className={styles.height100}\n >\n <img className={styles.image} src={src} alt={title} />\n </Flex>\n {title && (\n <div className={styles.titleContainer}>\n <Text\n className={styles.title}\n fontColor=\"colorWhite\"\n margin=\"spacingS\"\n isTruncated\n >\n {title}\n </Text>\n </div>\n )}\n </>\n ) : (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n paddingLeft=\"spacingS\"\n paddingRight=\"spacingS\"\n className={styles.height100}\n >\n <Flex\n marginBottom=\"spacingM\"\n marginTop=\"spacingM\"\n justifyContent=\"center\"\n >\n <AssetIcon type={type} />\n </Flex>\n <Text isTruncated marginBottom=\"spacingM\" fontColor=\"gray600\">\n {title}\n </Text>\n </Flex>\n )}\n </Box>\n );\n}\n\nAssetBase.displayName = 'Asset';\n\nexport const Asset = React.forwardRef(AssetBase);\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetIconStyles() {\n return {\n root: css({\n display: 'inline-block',\n width: '39px',\n height: '39px',\n 'g, path': {\n fill: tokens.gray600,\n },\n }),\n };\n}\n","import React from 'react';\nimport {\n FileArchiveIcon,\n FileAudioIcon,\n BracketsCurlyIcon,\n ImageSquareIcon,\n FileCodeIcon,\n FilePdfIcon,\n FileTextIcon,\n RichTextIcon,\n PresentationIcon,\n TableIcon,\n FileVideoIcon,\n} from '@contentful/f36-icons';\nimport type { GeneratedIconProps } from '@contentful/f36-icon';\nimport type { AssetType } from '../types';\n\nimport { cx } from '@emotion/css';\nimport { getAssetIconStyles } from './AssetIcon.styles';\n\nexport interface AssetIconProps extends Omit<\n GeneratedIconProps,\n 'illustration' | 'ref'\n> {\n type?: AssetType;\n}\n\n/**\n * Renders only the Illustration that would represent this asset's type\n */\nexport const AssetIcon = ({\n type = 'archive',\n className,\n testId = 'cf-ui-asset-icon',\n ...otherProps\n}: AssetIconProps) => {\n const styles = getAssetIconStyles();\n const props = {\n ...otherProps,\n testId,\n className: cx(styles.root, className),\n };\n\n switch (type) {\n case 'audio':\n return <FileAudioIcon {...props} />;\n case 'code':\n return <BracketsCurlyIcon {...props} />;\n case 'image':\n return <ImageSquareIcon {...props} />;\n case 'markup':\n return <FileCodeIcon {...props} />;\n case 'pdf':\n return <FilePdfIcon {...props} />;\n case 'plaintext':\n return <FileTextIcon {...props} />;\n case 'presentation':\n return <PresentationIcon {...props} />;\n case 'richtext':\n return <RichTextIcon {...props} />;\n case 'spreadsheet':\n return <TableIcon {...props} />;\n case 'video':\n return <FileVideoIcon {...props} />;\n case 'archive':\n default:\n return <FileArchiveIcon {...props} />;\n }\n};\n\nAssetIcon.displayName = 'AssetIcon';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetStyles() {\n return {\n root: css({\n position: 'relative',\n width: '100%',\n }),\n height100: css({\n height: '100%',\n }),\n image: css({\n width: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }),\n titleContainer: css({\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'absolute',\n bottom: 0,\n right: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'flex-end',\n boxSizing: 'border-box',\n background: `linear-gradient(0deg, ${tokens.gray900} 0%, transparent calc(1rem * (100 / ${tokens.fontBaseDefault})), transparent 100% )`,\n ':hover': { opacity: 1 },\n }),\n title: css({\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n }),\n };\n}\n","export const types = {\n archive: 'archive',\n audio: 'audio',\n code: 'code',\n image: 'image',\n markup: 'markup',\n pdf: 'pdf',\n plaintext: 'plaintext',\n presentation: 'presentation',\n richtext: 'richtext',\n spreadsheet: 'spreadsheet',\n video: 'video',\n};\n\nexport function isAssetType(type: string): type is AssetType {\n return Object.keys(types).includes(type);\n}\n\nexport type AssetType = keyof typeof types;\n"]}
1
+ {"version":3,"sources":["../src/Asset.tsx","../src/AssetIcon/AssetIcon.styles.ts","../src/AssetIcon/AssetIcon.tsx","../src/Asset.styles.ts","../src/types.ts"],"names":["getAssetIconStyles","css","tokens","AssetIcon","_a","_b","type","className","testId","otherProps","__objRest","styles","props","__spreadProps","__spreadValues","cx","jsx","FileAudioIcon","BracketsCurlyIcon","ImageSquareIcon","FileCodeIcon","FilePdfIcon","FileTextIcon","PresentationIcon","RichTextIcon","TableIcon","FileVideoIcon","FileArchiveIcon","getAssetStyles","AssetBase","ref","src","status","title","showPreview","Box","jsxs","Fragment","Flex","Text","Asset","React","types","isAssetType"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Box,\n Flex,\n type EntityStatus,\n type PickUnion,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\n\nimport { AssetIcon } from './AssetIcon/AssetIcon';\nimport { getAssetStyles } from './Asset.styles';\nimport type { AssetType } from './types';\n\nexport type AssetStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'deleted' | 'draft' | 'published'\n>;\n\nexport interface AssetProps extends CommonProps {\n /**\n * A `src` attribute to use for image assets\n */\n src?: string;\n /**\n * The publish status of the asset\n */\n status?: AssetStatus;\n /**\n * The title of the asset\n */\n title?: string;\n /**\n * The type of asset being represented\n */\n type?: AssetType;\n}\n\nfunction AssetBase(\n {\n className,\n src,\n status,\n testId = 'cf-ui-asset',\n title,\n type = 'image',\n ...otherProps\n }: AssetProps,\n ref: React.Ref<HTMLElement>,\n) {\n const styles = getAssetStyles();\n const isImage = src && src !== '' && type === 'image';\n\n // Do not show image previews when publish status is archived\n const showPreview = isImage && status !== 'archived';\n\n return (\n <Box\n className={cx(styles.root, className)}\n testId={testId}\n ref={ref}\n {...otherProps}\n >\n {showPreview ? (\n <>\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n className={styles.height100}\n >\n <img className={styles.image} src={src} alt={title} />\n </Flex>\n {title && (\n <div className={styles.titleContainer}>\n <Text\n className={styles.title}\n fontColor=\"colorWhite\"\n margin=\"spacingS\"\n isTruncated\n >\n {title}\n </Text>\n </div>\n )}\n </>\n ) : (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n paddingLeft=\"spacingS\"\n paddingRight=\"spacingS\"\n className={styles.height100}\n >\n <Flex\n marginBottom=\"spacingM\"\n marginTop=\"spacingM\"\n justifyContent=\"center\"\n >\n <AssetIcon type={type} />\n </Flex>\n <Text isTruncated marginBottom=\"spacingM\" fontColor=\"gray600\">\n {title}\n </Text>\n </Flex>\n )}\n </Box>\n );\n}\n\nAssetBase.displayName = 'Asset';\n\nexport const Asset = React.forwardRef(AssetBase);\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetIconStyles() {\n return {\n root: css({\n display: 'inline-block',\n width: '39px',\n height: '39px',\n 'g, path': {\n fill: tokens.gray600,\n },\n }),\n };\n}\n","import React from 'react';\nimport {\n FileArchiveIcon,\n FileAudioIcon,\n BracketsCurlyIcon,\n ImageSquareIcon,\n FileCodeIcon,\n FilePdfIcon,\n FileTextIcon,\n RichTextIcon,\n PresentationIcon,\n TableIcon,\n FileVideoIcon,\n} from '@contentful/f36-icons';\nimport type { GeneratedIconProps } from '@contentful/f36-icon';\nimport type { AssetType } from '../types';\n\nimport { cx } from '@emotion/css';\nimport { getAssetIconStyles } from './AssetIcon.styles';\n\nexport interface AssetIconProps extends Omit<\n GeneratedIconProps,\n 'illustration' | 'ref'\n> {\n type?: AssetType;\n}\n\n/**\n * Renders only the Illustration that would represent this asset's type\n */\nexport const AssetIcon = ({\n type = 'archive',\n className,\n testId = 'cf-ui-asset-icon',\n ...otherProps\n}: AssetIconProps) => {\n const styles = getAssetIconStyles();\n const props = {\n ...otherProps,\n testId,\n className: cx(styles.root, className),\n };\n\n switch (type) {\n case 'audio':\n return <FileAudioIcon {...props} />;\n case 'code':\n return <BracketsCurlyIcon {...props} />;\n case 'image':\n return <ImageSquareIcon {...props} />;\n case 'markup':\n return <FileCodeIcon {...props} />;\n case 'pdf':\n return <FilePdfIcon {...props} />;\n case 'plaintext':\n return <FileTextIcon {...props} />;\n case 'presentation':\n return <PresentationIcon {...props} />;\n case 'richtext':\n return <RichTextIcon {...props} />;\n case 'spreadsheet':\n return <TableIcon {...props} />;\n case 'video':\n return <FileVideoIcon {...props} />;\n case 'archive':\n default:\n return <FileArchiveIcon {...props} />;\n }\n};\n\nAssetIcon.displayName = 'AssetIcon';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport function getAssetStyles() {\n return {\n root: css({\n position: 'relative',\n width: '100%',\n }),\n height100: css({\n height: '100%',\n }),\n image: css({\n width: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }),\n titleContainer: css({\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'absolute',\n bottom: 0,\n right: 0,\n left: 0,\n height: '100%',\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'flex-end',\n boxSizing: 'border-box',\n background: `linear-gradient(0deg, ${tokens.gray900} 0%, transparent calc(1rem * (100 / ${tokens.fontBaseDefault})), transparent 100% )`,\n ':hover': { opacity: 1 },\n }),\n title: css({\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n }),\n };\n}\n","export const types = {\n archive: 'archive',\n audio: 'audio',\n code: 'code',\n image: 'image',\n markup: 'markup',\n pdf: 'pdf',\n plaintext: 'plaintext',\n presentation: 'presentation',\n richtext: 'richtext',\n spreadsheet: 'spreadsheet',\n video: 'video',\n};\n\nexport function isAssetType(type: string): type is AssetType {\n return Object.keys(types).includes(type);\n}\n\nexport type AssetType = keyof typeof types;\n"]}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@contentful/f36-asset",
3
- "version": "6.18.0",
3
+ "version": "6.19.0",
4
4
  "description": "Forma 36: Asset component",
5
5
  "dependencies": {
6
- "@contentful/f36-core": "^6.18.0",
7
- "@contentful/f36-icon": "^6.18.0",
8
- "@contentful/f36-icons": "^6.18.0",
6
+ "@contentful/f36-core": "^6.19.0",
7
+ "@contentful/f36-icon": "^6.19.0",
8
+ "@contentful/f36-icons": "^6.19.0",
9
9
  "@contentful/f36-tokens": "^6.1.3",
10
- "@contentful/f36-typography": "^6.18.0",
10
+ "@contentful/f36-typography": "^6.19.0",
11
11
  "@emotion/css": "^11.13.5"
12
12
  },
13
13
  "peerDependencies": {
@@ -34,9 +34,7 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@testing-library/dom": "^10.4.1",
37
- "@testing-library/react": "^16.3.0",
38
- "@types/jest-axe": "^3.5.9",
39
- "jest-axe": "^10.0.0"
37
+ "@testing-library/react": "^16.3.0"
40
38
  },
41
39
  "scripts": {
42
40
  "build": "tsup"