@contentful/f36-entity-list 4.17.0 → 4.19.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.19.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2209](https://github.com/contentful/forma-36/pull/2209) [`42f0c321`](https://github.com/contentful/forma-36/commit/42f0c3218965137191842f492fe5dbf4bd10784c) Thanks [@denkristoffer](https://github.com/denkristoffer)! - build: build ESM to JS file - legacy output
8
+ fix(notification): use type imports
9
+ - Updated dependencies [[`42f0c321`](https://github.com/contentful/forma-36/commit/42f0c3218965137191842f492fe5dbf4bd10784c)]:
10
+ - @contentful/f36-badge@4.19.1
11
+ - @contentful/f36-button@4.19.1
12
+ - @contentful/f36-drag-handle@4.19.1
13
+ - @contentful/f36-icon@4.19.1
14
+ - @contentful/f36-icons@4.19.1
15
+ - @contentful/f36-menu@4.19.1
16
+ - @contentful/f36-skeleton@4.19.1
17
+ - @contentful/f36-typography@4.19.1
18
+ - @contentful/f36-core@4.19.1
19
+
20
+ ## 4.19.0
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies []:
25
+ - @contentful/f36-badge@4.19.0
26
+ - @contentful/f36-button@4.19.0
27
+ - @contentful/f36-drag-handle@4.19.0
28
+ - @contentful/f36-icon@4.19.0
29
+ - @contentful/f36-icons@4.19.0
30
+ - @contentful/f36-menu@4.19.0
31
+ - @contentful/f36-skeleton@4.19.0
32
+ - @contentful/f36-typography@4.19.0
33
+ - @contentful/f36-core@4.19.0
34
+
35
+ ## 4.18.0
36
+
37
+ ### Patch Changes
38
+
39
+ - Updated dependencies []:
40
+ - @contentful/f36-badge@4.18.0
41
+ - @contentful/f36-button@4.18.0
42
+ - @contentful/f36-drag-handle@4.18.0
43
+ - @contentful/f36-icon@4.18.0
44
+ - @contentful/f36-icons@4.18.0
45
+ - @contentful/f36-menu@4.18.0
46
+ - @contentful/f36-skeleton@4.18.0
47
+ - @contentful/f36-typography@4.18.0
48
+ - @contentful/f36-core@4.18.0
49
+
3
50
  ## 4.17.0
4
51
 
5
52
  ### Patch Changes
@@ -0,0 +1,17 @@
1
+ import t from 'react';
2
+ import { cx, css } from 'emotion';
3
+ import e from '@contentful/f36-tokens';
4
+ import { EntityStatusBadge } from '@contentful/f36-badge';
5
+ import { Flex, Box } from '@contentful/f36-core';
6
+ import { MoreHorizontalIcon, AssetIcon, EntryIcon, ReleaseIcon } from '@contentful/f36-icons';
7
+ import { Icon } from '@contentful/f36-icon';
8
+ import { Text } from '@contentful/f36-typography';
9
+ import { DragHandle } from '@contentful/f36-drag-handle';
10
+ import { Button } from '@contentful/f36-button';
11
+ import { Menu } from '@contentful/f36-menu';
12
+ import { Skeleton } from '@contentful/f36-skeleton';
13
+
14
+ var I=()=>({root:css({display:"block",listStyle:"none",margin:0,padding:0,border:`1px solid ${e.gray200}`,borderBottom:"none",borderRadius:e.borderRadiusMedium,overflow:"hidden"})});function H(o,a){let l=I();return t.createElement("ul",{"data-test-id":o.testId||"cf-ui-entity-list",ref:a,className:cx(l.root,o.className),style:o.style},o.children)}H.displayName="EntityList";var T=t.forwardRef(H);var S=()=>({root:o=>css({display:"flex",boxShadow:`inset 0 -1px 0 ${e.gray200}`,position:"relative",transition:`${e.transitionDurationShort} ${e.transitionEasingDefault}`,transitionProperty:"box-shadow, background-color",backgroundColor:e.colorWhite,...o.isDragActive?{boxShadow:e.boxShadowHeavy}:{},"&:hover":{backgroundColor:e.gray100}}),card:css({display:"flex",textDecoration:"none",width:"100%",minHeight:e.spacing3Xl,padding:e.spacingXs,border:"none",background:"none",textAlign:"left"}),content:css({flexGrow:1,minWidth:0}),media:css({display:"flex",flexShrink:0,alignItems:"center",justifyContent:"center",backgroundColor:e.gray200,width:e.spacing2Xl,height:e.spacing2Xl,margin:"0",marginRight:e.spacingXs}),thumbnail:css({display:"block",width:"100%",height:"100%",objectFit:"cover"}),contentType:css({marginLeft:e.spacingXs}),description:css({marginTop:e.spacing2Xs}),meta:css({marginLeft:"auto",flexShrink:0}),dragHandle:css({borderBottomLeftRadius:"0",borderTopLeftRadius:"0",boxShadow:`inset 0 -1px 0 ${e.gray200}`}),menuTrigger:css({padding:"0 0.125rem",minHeight:"1.5rem"})});var Y={asset:AssetIcon,entry:EntryIcon,release:ReleaseIcon},s=({className:o,testId:a="cf-ui-entity-list-item",title:l,description:f,contentType:u,entityType:N="entry",withThumbnail:v=!0,thumbnailUrl:h,thumbnailAltText:w,status:m,actions:d,withDragHandle:D,isDragActive:E,isLoading:A,onClick:x,href:r,cardDragHandleProps:M,cardDragHandleComponent:L,isActionsDisabled:X=!1,...B})=>{let i=S(),$=()=>{if(L)return L;if(D)return t.createElement(DragHandle,{className:i.dragHandle,isActive:E,label:"Reorder entry",...M})},p="article";(r||x)&&(p=r?"a":"button");let F=m==="archived"||!h;return t.createElement("li",{...B,className:cx(i.root({isDragActive:E}),o),"data-test-id":a},$(),A?t.createElement("article",{className:i.card},t.createElement(Skeleton.Container,{clipId:"f36-entity-list-item-skeleton"},t.createElement(Skeleton.Image,{height:46,width:46}),t.createElement(Skeleton.BodyText,{numberOfLines:2,lineHeight:18,offsetLeft:54}))):t.createElement(p,{className:i.card,onClick:x,href:r,type:p==="button"?"button":void 0,target:r?"_blank":void 0},v&&t.createElement("figure",{className:i.media},F?t.createElement(Icon,{as:Y[N.toLowerCase()],variant:"muted"}):t.createElement("img",{src:h,className:i.thumbnail,alt:w})),t.createElement("div",{className:i.content},t.createElement(Flex,null,t.createElement(Text,{as:"h3",lineHeight:"lineHeightM",fontColor:"gray900",fontWeight:"fontWeightDemiBold",isTruncated:!0},l),u&&t.createElement(Text,{as:"span",lineHeight:"lineHeightM",fontColor:"gray600",className:i.contentType,isTruncated:!0},"(",u,")")),f&&t.createElement(Text,{as:"p",lineHeight:"lineHeightM",fontColor:"gray900",isTruncated:!0,className:i.description},f)),t.createElement(Flex,{className:i.meta,alignItems:"flex-start",paddingLeft:"spacingXs"},m&&t.createElement(Box,{marginRight:d?"spacingXs":"none"},t.createElement(EntityStatusBadge,{entityStatus:m})),d&&t.createElement(Menu,null,t.createElement(Menu.Trigger,null,t.createElement(Button,{isDisabled:X,startIcon:t.createElement(MoreHorizontalIcon,null),variant:"transparent","aria-label":"Actions",size:"small",className:i.menuTrigger})),t.createElement(Menu.List,null,d)))))};s.displayName="EntityListItem";var C=T;C.Item=s;
15
+
16
+ export { C as EntityList, s as EntityListItem };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/EntityList.tsx","../../src/EntityList.styles.ts","../../src/EntityListItem/EntityListItem.tsx","../../src/EntityListItem/EntityListItem.styles.ts","../../src/CompoundEntityList.tsx"],"names":["React","cx","css","tokens","getEntityListStyles","_EntityList","props","ref","styles","EntityList","EntityStatusBadge","Flex","Box","AssetIcon","EntryIcon","ReleaseIcon","MoreHorizontalIcon","Icon","Text","DragHandle","Button","Menu","Skeleton","getEntityListItemStyles","ICON_MAP","EntityListItem","className","testId","title","description","contentType","entityType","withThumbnail","thumbnailUrl","thumbnailAltText","status","actions","withDragHandle","isDragActive","isLoading","onClick","href","cardDragHandleProps","cardDragHandleComponent","isActionsDisabled","otherProps","renderCardDragHandle","Element","asIcon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { getEntityListStyles } from './EntityList.styles';\n\nexport interface EntityListProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction _EntityList(\n props: ExpandProps<EntityListProps>,\n ref: React.Ref<HTMLUListElement>,\n) {\n const styles = getEntityListStyles();\n\n return (\n <ul\n data-test-id={props.testId || 'cf-ui-entity-list'}\n ref={ref}\n className={cx(styles.root, props.className)}\n style={props.style}\n >\n {props.children}\n </ul>\n );\n}\n\n_EntityList.displayName = 'EntityList';\n\nexport const EntityList = React.forwardRef(_EntityList);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getEntityListStyles = () => ({\n root: css({\n display: 'block',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n border: `1px solid ${tokens.gray200}`,\n borderBottom: 'none',\n borderRadius: tokens.borderRadiusMedium,\n overflow: 'hidden',\n }),\n});\n","import React, { type MouseEventHandler } from 'react';\nimport { cx } from 'emotion';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Flex,\n Box,\n type CommonProps,\n type EntityStatus,\n type PickUnion,\n} from '@contentful/f36-core';\nimport {\n AssetIcon,\n EntryIcon,\n ReleaseIcon,\n MoreHorizontalIcon,\n} from '@contentful/f36-icons';\nimport { Icon } from '@contentful/f36-icon';\nimport { Text } from '@contentful/f36-typography';\nimport { DragHandle, type DragHandleProps } from '@contentful/f36-drag-handle';\nimport { Button } from '@contentful/f36-button';\nimport { Menu } from '@contentful/f36-menu';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getEntityListItemStyles } from './EntityListItem.styles';\n\ntype EntityListItemStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'draft' | 'published'\n>;\n\nconst ICON_MAP = {\n asset: AssetIcon,\n entry: EntryIcon,\n release: ReleaseIcon,\n};\n\nexport interface EntityListItemProps extends CommonProps {\n /**\n * The title of the entity\n */\n title: string;\n /**\n * The description of the entity\n */\n description?: string;\n /**\n * The content type of the entity\n */\n contentType?: string;\n /**\n * The publish status of the entry\n */\n status?: EntityListItemStatus;\n /**\n * A boolean used to render the Thumbnail or not\n */\n withThumbnail?: boolean;\n /**\n * The URL of the entity's preview thumbnail. Use 46px x 46px images for best results\n */\n thumbnailUrl?: string;\n /**\n * The alt text for the thumbnail\n */\n thumbnailAltText?: string;\n /**\n * Menu elements rendered as actions in Menu\n */\n actions?: React.ReactNodeArray;\n /**\n * Renders a drag handle for the component for use in drag and drop contexts\n */\n withDragHandle?: boolean;\n /**\n * Applies styling for when the component is actively being dragged by the user\n */\n isDragActive?: boolean;\n /**\n * Prop to pass a custom CardDragHandle component to for use in drag and drop contexts\n */\n cardDragHandleComponent?: React.ReactNode;\n /**\n * Props to pass down to the default CardDragHandle component (does not work with cardDragHandleComponent prop)\n */\n cardDragHandleProps?: Partial<DragHandleProps>;\n /**\n * An entity can either be an Entry, an Asset or a Release. This prop will apply styling based on if the entity is an asset, a release or an entry\n *\n * Note: 'entry' and 'asset' are @deprecated but supported in v1.x for backwards compatibility\n */\n entityType?: 'Entry' | 'Asset' | 'entry' | 'asset' | 'Release';\n /**\n * Loading state for the component - when true will display loading feedback to the user\n */\n isLoading?: boolean;\n /**\n * The action to be performed on click of the EntryCard\n */\n onClick?: MouseEventHandler;\n /**\n * The href for the component. Will render the card as an `a` element for native browser link handling\n */\n href?: string;\n /**\n * A boolean used to disable the CardActions\n */\n isActionsDisabled?: boolean;\n}\n\nexport const EntityListItem = ({\n className,\n testId = 'cf-ui-entity-list-item',\n title,\n description,\n contentType,\n entityType = 'entry',\n withThumbnail = true,\n thumbnailUrl,\n thumbnailAltText,\n status,\n actions,\n withDragHandle,\n isDragActive,\n isLoading,\n onClick,\n href,\n cardDragHandleProps,\n cardDragHandleComponent,\n isActionsDisabled = false,\n ...otherProps\n}: EntityListItemProps): React.ReactElement => {\n const styles = getEntityListItemStyles();\n\n const renderCardDragHandle = () => {\n if (cardDragHandleComponent) {\n return cardDragHandleComponent;\n } else if (withDragHandle) {\n return (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragActive}\n label=\"Reorder entry\"\n {...cardDragHandleProps}\n />\n );\n }\n };\n\n let Element: React.ElementType = 'article';\n if (href || onClick) {\n Element = href ? 'a' : 'button';\n }\n\n // archived assets will not be available on the CDN, resulting in a broken image src\n const isArchived = status === 'archived';\n const asIcon = isArchived || !thumbnailUrl;\n\n return (\n <li\n {...otherProps}\n className={cx(styles.root({ isDragActive }), className)}\n data-test-id={testId}\n >\n {renderCardDragHandle()}\n {isLoading ? (\n <article className={styles.card}>\n <Skeleton.Container clipId=\"f36-entity-list-item-skeleton\">\n <Skeleton.Image height={46} width={46} />\n <Skeleton.BodyText\n numberOfLines={2}\n lineHeight={18}\n offsetLeft={54}\n />\n </Skeleton.Container>\n </article>\n ) : (\n <Element\n className={styles.card}\n onClick={onClick}\n href={href}\n type={Element === 'button' ? 'button' : undefined}\n target={href ? '_blank' : undefined}\n >\n {withThumbnail && (\n <figure className={styles.media}>\n {asIcon ? (\n <Icon as={ICON_MAP[entityType.toLowerCase()]} variant=\"muted\" />\n ) : (\n <img\n src={thumbnailUrl}\n className={styles.thumbnail}\n alt={thumbnailAltText}\n />\n )}\n </figure>\n )}\n\n <div className={styles.content}>\n <Flex>\n <Text\n as=\"h3\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n fontWeight=\"fontWeightDemiBold\"\n isTruncated\n >\n {title}\n </Text>\n\n {contentType && (\n <Text\n as=\"span\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray600\"\n className={styles.contentType}\n isTruncated\n >\n ({contentType})\n </Text>\n )}\n </Flex>\n {description && (\n <Text\n as=\"p\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n isTruncated\n className={styles.description}\n >\n {description}\n </Text>\n )}\n </div>\n\n <Flex\n className={styles.meta}\n alignItems=\"flex-start\"\n paddingLeft=\"spacingXs\"\n >\n {status && (\n <Box marginRight={actions ? 'spacingXs' : 'none'}>\n <EntityStatusBadge entityStatus={status} />\n </Box>\n )}\n\n {actions && (\n <Menu>\n <Menu.Trigger>\n <Button\n isDisabled={isActionsDisabled}\n startIcon={<MoreHorizontalIcon />}\n variant=\"transparent\"\n aria-label=\"Actions\"\n size=\"small\"\n className={styles.menuTrigger}\n />\n </Menu.Trigger>\n <Menu.List>{actions}</Menu.List>\n </Menu>\n )}\n </Flex>\n </Element>\n )}\n </li>\n );\n};\n\nEntityListItem.displayName = 'EntityListItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { EntityListItemProps } from './EntityListItem';\n\nexport const getEntityListItemStyles = () => ({\n root: (props: Pick<EntityListItemProps, 'isDragActive'>) =>\n css({\n display: 'flex',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n position: 'relative',\n transition: `${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n transitionProperty: 'box-shadow, background-color',\n backgroundColor: tokens.colorWhite,\n ...(props.isDragActive\n ? {\n boxShadow: tokens.boxShadowHeavy,\n }\n : {}),\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n }),\n card: css({\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n minHeight: tokens.spacing3Xl,\n padding: tokens.spacingXs,\n border: 'none',\n background: 'none',\n textAlign: 'left',\n }),\n content: css({\n flexGrow: 1,\n minWidth: 0,\n }),\n media: css({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: tokens.gray200,\n width: tokens.spacing2Xl,\n height: tokens.spacing2Xl,\n margin: '0',\n marginRight: tokens.spacingXs,\n }),\n thumbnail: css({\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }),\n contentType: css({\n marginLeft: tokens.spacingXs,\n }),\n description: css({\n marginTop: tokens.spacing2Xs,\n }),\n meta: css({\n marginLeft: 'auto',\n flexShrink: 0,\n }),\n dragHandle: css({\n borderBottomLeftRadius: '0',\n borderTopLeftRadius: '0',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n }),\n menuTrigger: css({\n padding: '0 0.125rem',\n minHeight: '1.5rem',\n }),\n});\n","import { EntityList as OriginalEntityList } from './EntityList';\nimport { EntityListItem } from './EntityListItem/EntityListItem';\n\ntype CompoundEntityList = typeof OriginalEntityList & {\n Item: typeof EntityListItem;\n};\n\nexport const EntityList = OriginalEntityList as CompoundEntityList;\nEntityList.Item = EntityListItem;\n"]}
@@ -1,12 +1,14 @@
1
- import React, { MouseEventHandler } from "react";
2
- import { CommonProps, EntityStatus, PickUnion } from "@contentful/f36-core";
3
- import { DragHandleProps } from "@contentful/f36-drag-handle";
4
- export interface EntityListProps extends CommonProps {
1
+ import React, { MouseEventHandler } from 'react';
2
+ import { CommonProps, PickUnion, EntityStatus } from '@contentful/f36-core';
3
+ import { DragHandleProps } from '@contentful/f36-drag-handle';
4
+
5
+ interface EntityListProps extends CommonProps {
5
6
  children?: React.ReactNode;
6
7
  }
7
- declare const _EntityList1: React.ForwardRefExoticComponent<EntityListProps & React.RefAttributes<HTMLUListElement>>;
8
- type EntityListItemStatus = PickUnion<EntityStatus, 'archived' | 'changed' | 'draft' | 'published'>;
9
- export interface EntityListItemProps extends CommonProps {
8
+ declare const EntityList$1: React.ForwardRefExoticComponent<EntityListProps & React.RefAttributes<HTMLUListElement>>;
9
+
10
+ declare type EntityListItemStatus = PickUnion<EntityStatus, 'archived' | 'changed' | 'draft' | 'published'>;
11
+ interface EntityListItemProps extends CommonProps {
10
12
  /**
11
13
  * The title of the entity
12
14
  */
@@ -78,13 +80,14 @@ export interface EntityListItemProps extends CommonProps {
78
80
  */
79
81
  isActionsDisabled?: boolean;
80
82
  }
81
- export const EntityListItem: {
83
+ declare const EntityListItem: {
82
84
  ({ className, testId, title, description, contentType, entityType, withThumbnail, thumbnailUrl, thumbnailAltText, status, actions, withDragHandle, isDragActive, isLoading, onClick, href, cardDragHandleProps, cardDragHandleComponent, isActionsDisabled, ...otherProps }: EntityListItemProps): React.ReactElement;
83
85
  displayName: string;
84
86
  };
85
- type CompoundEntityList = typeof _EntityList1 & {
87
+
88
+ declare type CompoundEntityList = typeof EntityList$1 & {
86
89
  Item: typeof EntityListItem;
87
90
  };
88
- export const EntityList: CompoundEntityList;
91
+ declare const EntityList: CompoundEntityList;
89
92
 
90
- //# sourceMappingURL=types.d.ts.map
93
+ export { EntityList, EntityListItem, EntityListItemProps, EntityListProps };
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var t = require('react');
6
+ var emotion = require('emotion');
7
+ var e = require('@contentful/f36-tokens');
8
+ var f36Badge = require('@contentful/f36-badge');
9
+ var f36Core = require('@contentful/f36-core');
10
+ var f36Icons = require('@contentful/f36-icons');
11
+ var f36Icon = require('@contentful/f36-icon');
12
+ var f36Typography = require('@contentful/f36-typography');
13
+ var f36DragHandle = require('@contentful/f36-drag-handle');
14
+ var f36Button = require('@contentful/f36-button');
15
+ var f36Menu = require('@contentful/f36-menu');
16
+ var f36Skeleton = require('@contentful/f36-skeleton');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var t__default = /*#__PURE__*/_interopDefaultLegacy(t);
21
+ var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
22
+
23
+ var I=()=>({root:emotion.css({display:"block",listStyle:"none",margin:0,padding:0,border:`1px solid ${e__default["default"].gray200}`,borderBottom:"none",borderRadius:e__default["default"].borderRadiusMedium,overflow:"hidden"})});function H(o,a){let l=I();return t__default["default"].createElement("ul",{"data-test-id":o.testId||"cf-ui-entity-list",ref:a,className:emotion.cx(l.root,o.className),style:o.style},o.children)}H.displayName="EntityList";var T=t__default["default"].forwardRef(H);var S=()=>({root:o=>emotion.css({display:"flex",boxShadow:`inset 0 -1px 0 ${e__default["default"].gray200}`,position:"relative",transition:`${e__default["default"].transitionDurationShort} ${e__default["default"].transitionEasingDefault}`,transitionProperty:"box-shadow, background-color",backgroundColor:e__default["default"].colorWhite,...o.isDragActive?{boxShadow:e__default["default"].boxShadowHeavy}:{},"&:hover":{backgroundColor:e__default["default"].gray100}}),card:emotion.css({display:"flex",textDecoration:"none",width:"100%",minHeight:e__default["default"].spacing3Xl,padding:e__default["default"].spacingXs,border:"none",background:"none",textAlign:"left"}),content:emotion.css({flexGrow:1,minWidth:0}),media:emotion.css({display:"flex",flexShrink:0,alignItems:"center",justifyContent:"center",backgroundColor:e__default["default"].gray200,width:e__default["default"].spacing2Xl,height:e__default["default"].spacing2Xl,margin:"0",marginRight:e__default["default"].spacingXs}),thumbnail:emotion.css({display:"block",width:"100%",height:"100%",objectFit:"cover"}),contentType:emotion.css({marginLeft:e__default["default"].spacingXs}),description:emotion.css({marginTop:e__default["default"].spacing2Xs}),meta:emotion.css({marginLeft:"auto",flexShrink:0}),dragHandle:emotion.css({borderBottomLeftRadius:"0",borderTopLeftRadius:"0",boxShadow:`inset 0 -1px 0 ${e__default["default"].gray200}`}),menuTrigger:emotion.css({padding:"0 0.125rem",minHeight:"1.5rem"})});var Y={asset:f36Icons.AssetIcon,entry:f36Icons.EntryIcon,release:f36Icons.ReleaseIcon},s=({className:o,testId:a="cf-ui-entity-list-item",title:l,description:f,contentType:u,entityType:N="entry",withThumbnail:v=!0,thumbnailUrl:h,thumbnailAltText:w,status:m,actions:d,withDragHandle:D,isDragActive:E,isLoading:A,onClick:x,href:r,cardDragHandleProps:M,cardDragHandleComponent:L,isActionsDisabled:X=!1,...B})=>{let i=S(),$=()=>{if(L)return L;if(D)return t__default["default"].createElement(f36DragHandle.DragHandle,{className:i.dragHandle,isActive:E,label:"Reorder entry",...M})},p="article";(r||x)&&(p=r?"a":"button");let F=m==="archived"||!h;return t__default["default"].createElement("li",{...B,className:emotion.cx(i.root({isDragActive:E}),o),"data-test-id":a},$(),A?t__default["default"].createElement("article",{className:i.card},t__default["default"].createElement(f36Skeleton.Skeleton.Container,{clipId:"f36-entity-list-item-skeleton"},t__default["default"].createElement(f36Skeleton.Skeleton.Image,{height:46,width:46}),t__default["default"].createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:2,lineHeight:18,offsetLeft:54}))):t__default["default"].createElement(p,{className:i.card,onClick:x,href:r,type:p==="button"?"button":void 0,target:r?"_blank":void 0},v&&t__default["default"].createElement("figure",{className:i.media},F?t__default["default"].createElement(f36Icon.Icon,{as:Y[N.toLowerCase()],variant:"muted"}):t__default["default"].createElement("img",{src:h,className:i.thumbnail,alt:w})),t__default["default"].createElement("div",{className:i.content},t__default["default"].createElement(f36Core.Flex,null,t__default["default"].createElement(f36Typography.Text,{as:"h3",lineHeight:"lineHeightM",fontColor:"gray900",fontWeight:"fontWeightDemiBold",isTruncated:!0},l),u&&t__default["default"].createElement(f36Typography.Text,{as:"span",lineHeight:"lineHeightM",fontColor:"gray600",className:i.contentType,isTruncated:!0},"(",u,")")),f&&t__default["default"].createElement(f36Typography.Text,{as:"p",lineHeight:"lineHeightM",fontColor:"gray900",isTruncated:!0,className:i.description},f)),t__default["default"].createElement(f36Core.Flex,{className:i.meta,alignItems:"flex-start",paddingLeft:"spacingXs"},m&&t__default["default"].createElement(f36Core.Box,{marginRight:d?"spacingXs":"none"},t__default["default"].createElement(f36Badge.EntityStatusBadge,{entityStatus:m})),d&&t__default["default"].createElement(f36Menu.Menu,null,t__default["default"].createElement(f36Menu.Menu.Trigger,null,t__default["default"].createElement(f36Button.Button,{isDisabled:X,startIcon:t__default["default"].createElement(f36Icons.MoreHorizontalIcon,null),variant:"transparent","aria-label":"Actions",size:"small",className:i.menuTrigger})),t__default["default"].createElement(f36Menu.Menu.List,null,d)))))};s.displayName="EntityListItem";var C=T;C.Item=s;
24
+
25
+ exports.EntityList = C;
26
+ exports.EntityListItem = s;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/EntityList.tsx","../src/EntityList.styles.ts","../src/EntityListItem/EntityListItem.tsx","../src/EntityListItem/EntityListItem.styles.ts","../src/CompoundEntityList.tsx"],"names":["React","cx","css","tokens","getEntityListStyles","_EntityList","props","ref","styles","EntityList","EntityStatusBadge","Flex","Box","AssetIcon","EntryIcon","ReleaseIcon","MoreHorizontalIcon","Icon","Text","DragHandle","Button","Menu","Skeleton","getEntityListItemStyles","ICON_MAP","EntityListItem","className","testId","title","description","contentType","entityType","withThumbnail","thumbnailUrl","thumbnailAltText","status","actions","withDragHandle","isDragActive","isLoading","onClick","href","cardDragHandleProps","cardDragHandleComponent","isActionsDisabled","otherProps","renderCardDragHandle","Element","asIcon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { getEntityListStyles } from './EntityList.styles';\n\nexport interface EntityListProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction _EntityList(\n props: ExpandProps<EntityListProps>,\n ref: React.Ref<HTMLUListElement>,\n) {\n const styles = getEntityListStyles();\n\n return (\n <ul\n data-test-id={props.testId || 'cf-ui-entity-list'}\n ref={ref}\n className={cx(styles.root, props.className)}\n style={props.style}\n >\n {props.children}\n </ul>\n );\n}\n\n_EntityList.displayName = 'EntityList';\n\nexport const EntityList = React.forwardRef(_EntityList);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getEntityListStyles = () => ({\n root: css({\n display: 'block',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n border: `1px solid ${tokens.gray200}`,\n borderBottom: 'none',\n borderRadius: tokens.borderRadiusMedium,\n overflow: 'hidden',\n }),\n});\n","import React, { type MouseEventHandler } from 'react';\nimport { cx } from 'emotion';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Flex,\n Box,\n type CommonProps,\n type EntityStatus,\n type PickUnion,\n} from '@contentful/f36-core';\nimport {\n AssetIcon,\n EntryIcon,\n ReleaseIcon,\n MoreHorizontalIcon,\n} from '@contentful/f36-icons';\nimport { Icon } from '@contentful/f36-icon';\nimport { Text } from '@contentful/f36-typography';\nimport { DragHandle, type DragHandleProps } from '@contentful/f36-drag-handle';\nimport { Button } from '@contentful/f36-button';\nimport { Menu } from '@contentful/f36-menu';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getEntityListItemStyles } from './EntityListItem.styles';\n\ntype EntityListItemStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'draft' | 'published'\n>;\n\nconst ICON_MAP = {\n asset: AssetIcon,\n entry: EntryIcon,\n release: ReleaseIcon,\n};\n\nexport interface EntityListItemProps extends CommonProps {\n /**\n * The title of the entity\n */\n title: string;\n /**\n * The description of the entity\n */\n description?: string;\n /**\n * The content type of the entity\n */\n contentType?: string;\n /**\n * The publish status of the entry\n */\n status?: EntityListItemStatus;\n /**\n * A boolean used to render the Thumbnail or not\n */\n withThumbnail?: boolean;\n /**\n * The URL of the entity's preview thumbnail. Use 46px x 46px images for best results\n */\n thumbnailUrl?: string;\n /**\n * The alt text for the thumbnail\n */\n thumbnailAltText?: string;\n /**\n * Menu elements rendered as actions in Menu\n */\n actions?: React.ReactNodeArray;\n /**\n * Renders a drag handle for the component for use in drag and drop contexts\n */\n withDragHandle?: boolean;\n /**\n * Applies styling for when the component is actively being dragged by the user\n */\n isDragActive?: boolean;\n /**\n * Prop to pass a custom CardDragHandle component to for use in drag and drop contexts\n */\n cardDragHandleComponent?: React.ReactNode;\n /**\n * Props to pass down to the default CardDragHandle component (does not work with cardDragHandleComponent prop)\n */\n cardDragHandleProps?: Partial<DragHandleProps>;\n /**\n * An entity can either be an Entry, an Asset or a Release. This prop will apply styling based on if the entity is an asset, a release or an entry\n *\n * Note: 'entry' and 'asset' are @deprecated but supported in v1.x for backwards compatibility\n */\n entityType?: 'Entry' | 'Asset' | 'entry' | 'asset' | 'Release';\n /**\n * Loading state for the component - when true will display loading feedback to the user\n */\n isLoading?: boolean;\n /**\n * The action to be performed on click of the EntryCard\n */\n onClick?: MouseEventHandler;\n /**\n * The href for the component. Will render the card as an `a` element for native browser link handling\n */\n href?: string;\n /**\n * A boolean used to disable the CardActions\n */\n isActionsDisabled?: boolean;\n}\n\nexport const EntityListItem = ({\n className,\n testId = 'cf-ui-entity-list-item',\n title,\n description,\n contentType,\n entityType = 'entry',\n withThumbnail = true,\n thumbnailUrl,\n thumbnailAltText,\n status,\n actions,\n withDragHandle,\n isDragActive,\n isLoading,\n onClick,\n href,\n cardDragHandleProps,\n cardDragHandleComponent,\n isActionsDisabled = false,\n ...otherProps\n}: EntityListItemProps): React.ReactElement => {\n const styles = getEntityListItemStyles();\n\n const renderCardDragHandle = () => {\n if (cardDragHandleComponent) {\n return cardDragHandleComponent;\n } else if (withDragHandle) {\n return (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragActive}\n label=\"Reorder entry\"\n {...cardDragHandleProps}\n />\n );\n }\n };\n\n let Element: React.ElementType = 'article';\n if (href || onClick) {\n Element = href ? 'a' : 'button';\n }\n\n // archived assets will not be available on the CDN, resulting in a broken image src\n const isArchived = status === 'archived';\n const asIcon = isArchived || !thumbnailUrl;\n\n return (\n <li\n {...otherProps}\n className={cx(styles.root({ isDragActive }), className)}\n data-test-id={testId}\n >\n {renderCardDragHandle()}\n {isLoading ? (\n <article className={styles.card}>\n <Skeleton.Container clipId=\"f36-entity-list-item-skeleton\">\n <Skeleton.Image height={46} width={46} />\n <Skeleton.BodyText\n numberOfLines={2}\n lineHeight={18}\n offsetLeft={54}\n />\n </Skeleton.Container>\n </article>\n ) : (\n <Element\n className={styles.card}\n onClick={onClick}\n href={href}\n type={Element === 'button' ? 'button' : undefined}\n target={href ? '_blank' : undefined}\n >\n {withThumbnail && (\n <figure className={styles.media}>\n {asIcon ? (\n <Icon as={ICON_MAP[entityType.toLowerCase()]} variant=\"muted\" />\n ) : (\n <img\n src={thumbnailUrl}\n className={styles.thumbnail}\n alt={thumbnailAltText}\n />\n )}\n </figure>\n )}\n\n <div className={styles.content}>\n <Flex>\n <Text\n as=\"h3\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n fontWeight=\"fontWeightDemiBold\"\n isTruncated\n >\n {title}\n </Text>\n\n {contentType && (\n <Text\n as=\"span\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray600\"\n className={styles.contentType}\n isTruncated\n >\n ({contentType})\n </Text>\n )}\n </Flex>\n {description && (\n <Text\n as=\"p\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n isTruncated\n className={styles.description}\n >\n {description}\n </Text>\n )}\n </div>\n\n <Flex\n className={styles.meta}\n alignItems=\"flex-start\"\n paddingLeft=\"spacingXs\"\n >\n {status && (\n <Box marginRight={actions ? 'spacingXs' : 'none'}>\n <EntityStatusBadge entityStatus={status} />\n </Box>\n )}\n\n {actions && (\n <Menu>\n <Menu.Trigger>\n <Button\n isDisabled={isActionsDisabled}\n startIcon={<MoreHorizontalIcon />}\n variant=\"transparent\"\n aria-label=\"Actions\"\n size=\"small\"\n className={styles.menuTrigger}\n />\n </Menu.Trigger>\n <Menu.List>{actions}</Menu.List>\n </Menu>\n )}\n </Flex>\n </Element>\n )}\n </li>\n );\n};\n\nEntityListItem.displayName = 'EntityListItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { EntityListItemProps } from './EntityListItem';\n\nexport const getEntityListItemStyles = () => ({\n root: (props: Pick<EntityListItemProps, 'isDragActive'>) =>\n css({\n display: 'flex',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n position: 'relative',\n transition: `${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n transitionProperty: 'box-shadow, background-color',\n backgroundColor: tokens.colorWhite,\n ...(props.isDragActive\n ? {\n boxShadow: tokens.boxShadowHeavy,\n }\n : {}),\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n }),\n card: css({\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n minHeight: tokens.spacing3Xl,\n padding: tokens.spacingXs,\n border: 'none',\n background: 'none',\n textAlign: 'left',\n }),\n content: css({\n flexGrow: 1,\n minWidth: 0,\n }),\n media: css({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: tokens.gray200,\n width: tokens.spacing2Xl,\n height: tokens.spacing2Xl,\n margin: '0',\n marginRight: tokens.spacingXs,\n }),\n thumbnail: css({\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }),\n contentType: css({\n marginLeft: tokens.spacingXs,\n }),\n description: css({\n marginTop: tokens.spacing2Xs,\n }),\n meta: css({\n marginLeft: 'auto',\n flexShrink: 0,\n }),\n dragHandle: css({\n borderBottomLeftRadius: '0',\n borderTopLeftRadius: '0',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n }),\n menuTrigger: css({\n padding: '0 0.125rem',\n minHeight: '1.5rem',\n }),\n});\n","import { EntityList as OriginalEntityList } from './EntityList';\nimport { EntityListItem } from './EntityListItem/EntityListItem';\n\ntype CompoundEntityList = typeof OriginalEntityList & {\n Item: typeof EntityListItem;\n};\n\nexport const EntityList = OriginalEntityList as CompoundEntityList;\nEntityList.Item = EntityListItem;\n"]}
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@contentful/f36-entity-list",
3
- "version": "4.17.0",
3
+ "version": "4.19.1",
4
4
  "description": "Forma 36: EntityList component",
5
5
  "scripts": {
6
- "build": "parcel build"
6
+ "build": "tsup"
7
7
  },
8
8
  "dependencies": {
9
9
  "@babel/runtime": "^7.6.2",
10
- "@contentful/f36-badge": "^4.17.0",
11
- "@contentful/f36-button": "^4.17.0",
12
- "@contentful/f36-core": "^4.17.0",
13
- "@contentful/f36-drag-handle": "^4.17.0",
14
- "@contentful/f36-icon": "^4.17.0",
15
- "@contentful/f36-icons": "^4.17.0",
16
- "@contentful/f36-menu": "^4.17.0",
17
- "@contentful/f36-skeleton": "^4.17.0",
10
+ "@contentful/f36-badge": "^4.19.1",
11
+ "@contentful/f36-button": "^4.19.1",
12
+ "@contentful/f36-core": "^4.19.1",
13
+ "@contentful/f36-drag-handle": "^4.19.1",
14
+ "@contentful/f36-icon": "^4.19.1",
15
+ "@contentful/f36-icons": "^4.19.1",
16
+ "@contentful/f36-menu": "^4.19.1",
17
+ "@contentful/f36-skeleton": "^4.19.1",
18
18
  "@contentful/f36-tokens": "^4.0.1",
19
- "@contentful/f36-typography": "^4.17.0",
19
+ "@contentful/f36-typography": "^4.19.1",
20
20
  "emotion": "^10.0.17"
21
21
  },
22
22
  "peerDependencies": {
@@ -26,9 +26,9 @@
26
26
  "files": [
27
27
  "dist"
28
28
  ],
29
- "main": "dist/main.js",
30
- "module": "dist/module.js",
31
- "types": "dist/types.d.ts",
29
+ "main": "dist/index.js",
30
+ "module": "dist/esm/index.js",
31
+ "types": "dist/index.d.ts",
32
32
  "source": "src/index.ts",
33
33
  "sideEffects": false,
34
34
  "browserslist": "extends @contentful/browserslist-config",
package/dist/main.js DELETED
@@ -1,233 +0,0 @@
1
- var $hadoL$emotion = require("emotion");
2
- var $hadoL$react = require("react");
3
- var $hadoL$contentfulf36tokens = require("@contentful/f36-tokens");
4
- var $hadoL$contentfulf36badge = require("@contentful/f36-badge");
5
- var $hadoL$contentfulf36core = require("@contentful/f36-core");
6
- var $hadoL$contentfulf36icons = require("@contentful/f36-icons");
7
- var $hadoL$contentfulf36icon = require("@contentful/f36-icon");
8
- var $hadoL$contentfulf36typography = require("@contentful/f36-typography");
9
- var $hadoL$contentfulf36draghandle = require("@contentful/f36-drag-handle");
10
- var $hadoL$contentfulf36button = require("@contentful/f36-button");
11
- var $hadoL$contentfulf36menu = require("@contentful/f36-menu");
12
- var $hadoL$contentfulf36skeleton = require("@contentful/f36-skeleton");
13
-
14
- function $parcel$export(e, n, v, s) {
15
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
16
- }
17
- function $parcel$interopDefault(a) {
18
- return a && a.__esModule ? a.default : a;
19
- }
20
-
21
- $parcel$export(module.exports, "EntityList", () => $e853778315da5e40$export$8bb466c13870163e);
22
- $parcel$export(module.exports, "EntityListItem", () => $3f4d63406b2f6561$export$65b9c70c5f42a158);
23
-
24
-
25
-
26
-
27
- const $e3aba86fc342822d$export$2b0a239870ba448d = ()=>({
28
- root: /*#__PURE__*/ (0, $hadoL$emotion.css)({
29
- display: "block",
30
- listStyle: "none",
31
- margin: 0,
32
- padding: 0,
33
- border: `1px solid ${(0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).gray200}`,
34
- borderBottom: "none",
35
- borderRadius: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).borderRadiusMedium,
36
- overflow: "hidden"
37
- })
38
- });
39
-
40
-
41
- function $42fa390001ac865a$var$_EntityList(props, ref) {
42
- const styles = (0, $e3aba86fc342822d$export$2b0a239870ba448d)();
43
- return /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("ul", {
44
- "data-test-id": props.testId || "cf-ui-entity-list",
45
- ref: ref,
46
- className: (0, $hadoL$emotion.cx)(styles.root, props.className),
47
- style: props.style
48
- }, props.children);
49
- }
50
- $42fa390001ac865a$var$_EntityList.displayName = "EntityList";
51
- const $42fa390001ac865a$export$8bb466c13870163e = /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).forwardRef($42fa390001ac865a$var$_EntityList);
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
- const $07bceb135ccb0944$export$3bb342229d68a121 = ()=>({
68
- root: (props)=>/*#__PURE__*/ (0, $hadoL$emotion.css)({
69
- display: "flex",
70
- boxShadow: `inset 0 -1px 0 ${(0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).gray200}`,
71
- position: "relative",
72
- transition: `${(0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).transitionDurationShort} ${(0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).transitionEasingDefault}`,
73
- transitionProperty: "box-shadow, background-color",
74
- backgroundColor: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).colorWhite,
75
- ...props.isDragActive ? {
76
- boxShadow: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).boxShadowHeavy
77
- } : {},
78
- "&:hover": {
79
- backgroundColor: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).gray100
80
- }
81
- }),
82
- card: /*#__PURE__*/ (0, $hadoL$emotion.css)({
83
- display: "flex",
84
- textDecoration: "none",
85
- width: "100%",
86
- minHeight: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacing3Xl,
87
- padding: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacingXs,
88
- border: "none",
89
- background: "none",
90
- textAlign: "left"
91
- }),
92
- content: /*#__PURE__*/ (0, $hadoL$emotion.css)({
93
- name: "15ync0s",
94
- styles: "flex-grow:1;min-width:0;"
95
- }),
96
- media: /*#__PURE__*/ (0, $hadoL$emotion.css)({
97
- display: "flex",
98
- flexShrink: 0,
99
- alignItems: "center",
100
- justifyContent: "center",
101
- backgroundColor: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).gray200,
102
- width: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacing2Xl,
103
- height: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacing2Xl,
104
- margin: "0",
105
- marginRight: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacingXs
106
- }),
107
- thumbnail: /*#__PURE__*/ (0, $hadoL$emotion.css)({
108
- name: "12qah06",
109
- styles: "display:block;width:100%;height:100%;object-fit:cover;"
110
- }),
111
- contentType: /*#__PURE__*/ (0, $hadoL$emotion.css)({
112
- marginLeft: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacingXs
113
- }),
114
- description: /*#__PURE__*/ (0, $hadoL$emotion.css)({
115
- marginTop: (0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).spacing2Xs
116
- }),
117
- meta: /*#__PURE__*/ (0, $hadoL$emotion.css)({
118
- name: "1n0gfod",
119
- styles: "margin-left:auto;flex-shrink:0;"
120
- }),
121
- dragHandle: /*#__PURE__*/ (0, $hadoL$emotion.css)({
122
- borderBottomLeftRadius: "0",
123
- borderTopLeftRadius: "0",
124
- boxShadow: `inset 0 -1px 0 ${(0, ($parcel$interopDefault($hadoL$contentfulf36tokens))).gray200}`
125
- }),
126
- menuTrigger: /*#__PURE__*/ (0, $hadoL$emotion.css)({
127
- name: "c1v07n",
128
- styles: "padding:0 0.125rem;min-height:1.5rem;"
129
- })
130
- });
131
-
132
-
133
- const $3f4d63406b2f6561$var$ICON_MAP = {
134
- asset: (0, $hadoL$contentfulf36icons.AssetIcon),
135
- entry: (0, $hadoL$contentfulf36icons.EntryIcon),
136
- release: (0, $hadoL$contentfulf36icons.ReleaseIcon)
137
- };
138
- const $3f4d63406b2f6561$export$65b9c70c5f42a158 = ({ className: className , testId: testId = "cf-ui-entity-list-item" , title: title , description: description , contentType: contentType , entityType: entityType = "entry" , withThumbnail: withThumbnail = true , thumbnailUrl: thumbnailUrl , thumbnailAltText: thumbnailAltText , status: status , actions: actions , withDragHandle: withDragHandle , isDragActive: isDragActive , isLoading: isLoading , onClick: onClick , href: href , cardDragHandleProps: cardDragHandleProps , cardDragHandleComponent: cardDragHandleComponent , isActionsDisabled: isActionsDisabled = false , ...otherProps })=>{
139
- const styles = (0, $07bceb135ccb0944$export$3bb342229d68a121)();
140
- const renderCardDragHandle = ()=>{
141
- if (cardDragHandleComponent) return cardDragHandleComponent;
142
- else if (withDragHandle) return /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36draghandle.DragHandle), {
143
- className: styles.dragHandle,
144
- isActive: isDragActive,
145
- label: "Reorder entry",
146
- ...cardDragHandleProps
147
- });
148
- };
149
- let Element = "article";
150
- if (href || onClick) Element = href ? "a" : "button";
151
- // archived assets will not be available on the CDN, resulting in a broken image src
152
- const isArchived = status === "archived";
153
- const asIcon = isArchived || !thumbnailUrl;
154
- return /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("li", {
155
- ...otherProps,
156
- className: (0, $hadoL$emotion.cx)(styles.root({
157
- isDragActive: isDragActive
158
- }), className),
159
- "data-test-id": testId
160
- }, renderCardDragHandle(), isLoading ? /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("article", {
161
- className: styles.card
162
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36skeleton.Skeleton).Container, {
163
- clipId: "f36-entity-list-item-skeleton"
164
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36skeleton.Skeleton).Image, {
165
- height: 46,
166
- width: 46
167
- }), /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36skeleton.Skeleton).BodyText, {
168
- numberOfLines: 2,
169
- lineHeight: 18,
170
- offsetLeft: 54
171
- }))) : /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement(Element, {
172
- className: styles.card,
173
- onClick: onClick,
174
- href: href,
175
- type: Element === "button" ? "button" : undefined,
176
- target: href ? "_blank" : undefined
177
- }, withThumbnail && /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("figure", {
178
- className: styles.media
179
- }, asIcon ? /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36icon.Icon), {
180
- as: $3f4d63406b2f6561$var$ICON_MAP[entityType.toLowerCase()],
181
- variant: "muted"
182
- }) : /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("img", {
183
- src: thumbnailUrl,
184
- className: styles.thumbnail,
185
- alt: thumbnailAltText
186
- })), /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement("div", {
187
- className: styles.content
188
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36core.Flex), null, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36typography.Text), {
189
- as: "h3",
190
- lineHeight: "lineHeightM",
191
- fontColor: "gray900",
192
- fontWeight: "fontWeightDemiBold",
193
- isTruncated: true
194
- }, title), contentType && /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36typography.Text), {
195
- as: "span",
196
- lineHeight: "lineHeightM",
197
- fontColor: "gray600",
198
- className: styles.contentType,
199
- isTruncated: true
200
- }, "(", contentType, ")")), description && /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36typography.Text), {
201
- as: "p",
202
- lineHeight: "lineHeightM",
203
- fontColor: "gray900",
204
- isTruncated: true,
205
- className: styles.description
206
- }, description)), /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36core.Flex), {
207
- className: styles.meta,
208
- alignItems: "flex-start",
209
- paddingLeft: "spacingXs"
210
- }, status && /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36core.Box), {
211
- marginRight: actions ? "spacingXs" : "none"
212
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36badge.EntityStatusBadge), {
213
- entityStatus: status
214
- })), actions && /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36menu.Menu), null, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36menu.Menu).Trigger, null, /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36button.Button), {
215
- isDisabled: isActionsDisabled,
216
- startIcon: /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36icons.MoreHorizontalIcon), null),
217
- variant: "transparent",
218
- "aria-label": "Actions",
219
- size: "small",
220
- className: styles.menuTrigger
221
- })), /*#__PURE__*/ (0, ($parcel$interopDefault($hadoL$react))).createElement((0, $hadoL$contentfulf36menu.Menu).List, null, actions)))));
222
- };
223
- $3f4d63406b2f6561$export$65b9c70c5f42a158.displayName = "EntityListItem";
224
-
225
-
226
- const $e853778315da5e40$export$8bb466c13870163e = (0, $42fa390001ac865a$export$8bb466c13870163e);
227
- $e853778315da5e40$export$8bb466c13870163e.Item = (0, $3f4d63406b2f6561$export$65b9c70c5f42a158);
228
-
229
-
230
-
231
-
232
-
233
- //# sourceMappingURL=main.js.map
package/dist/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;A;;A;;AGGO,MAAMU,yCAAmB,GAAG,IAAO,CAAA;QACxCU,IAAI,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACRM,OAAO,EAAE,OADD;YAERC,SAAS,EAAE,MAFH;YAGRC,MAAM,EAAE,CAHA;YAIRC,OAAO,EAAE,CAJD;YAKRC,MAAM,EAAG,CAAA,UAAA,EAAYL,CAAAA,GAAAA,oDAAM,CAAA,CAACM,OAAQ,CAAA,CAL5B;YAMRC,YAAY,EAAE,MANN;YAORC,YAAY,EAAER,CAAAA,GAAAA,oDAAM,CAAA,CAACS,kBAPb;YAQRC,QAAQ,EAAE,QAAVA;SARI,CAAI;KADuB,CAAA,AAA5B,AAAmC;;;ADO1C,SAAStB,iCAAT,CACEC,KADF,EAEEC,GAFF,EAGE;IACA,MAAMG,MAAM,GAAGR,CAAAA,GAAAA,yCAAmB,CAAA,EAAlC,AAAA;IAEA,qBACE,0DAAC,IAAD;QACE,cAAA,EAAcI,KAAK,CAACK,MAAN,IAAgB,mBAAjB;QACb,GAAA,EAAKJ,GAAD;QACJ,SAAA,EAAW,CAAA,GAAA,iBAAA,CAAA,CAAGG,MAAM,CAACE,IAAV,EAAgBN,KAAK,CAACO,SAAtB,CAAD;QACV,KAAA,EAAOP,KAAK,CAACQ,KAAP;OAELR,KAAK,CAACH,QAAP,CAPJ,CAQF;CAEC;AAEDE,iCAAW,CAACU,WAAZ,GAA0B,YAA1B,CAAAV;AAEO,MAAMb,yCAAU,iBAAGO,CAAAA,GAAAA,sCAAK,CAAA,CAACiB,UAAN,CAAiBX,iCAAjB,CAAnB,AAAP;;AD9BA;A;;;;;;;;;;;A;;AIIO,MAAMwC,yCAAuB,GAAG,IAAO,CAAA;QAC5CjC,IAAI,EAAE,CAACN,KAAD,GAAA,aACJ,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;gBACFY,OAAO,EAAE,MADP;gBAEFqE,SAAS,EAAG,CAAA,eAAA,EAAiBtE,CAAAA,GAAAA,oDAAM,CAAA,CAACM,OAAQ,CAAA,CAF1C;gBAGFiE,QAAQ,EAAE,UAHR;gBAIFC,UAAU,EAAG,CAAA,EAAExE,CAAAA,GAAAA,oDAAM,CAAA,CAACyE,uBAAwB,CAAA,CAAA,EAAGzE,CAAAA,GAAAA,oDAAM,CAAA,CAAC0E,uBAAwB,CAAA,CAJ9E;gBAKFC,kBAAkB,EAAE,8BALlB;gBAMFC,eAAe,EAAE5E,CAAAA,GAAAA,oDAAM,CAAA,CAAC6E,UANtB;gBAOF,GAAIxF,KAAK,CAACuD,YAAN,GACA;oBACE0B,SAAS,EAAEtE,CAAAA,GAAAA,oDAAM,CAAA,CAAC8E,cAAlBR;iBAFF,GAIA,EAJJ;gBAMA,SAAA,EAAW;oBACTM,eAAe,EAAE5E,CAAAA,GAAAA,oDAAM,CAAA,CAAC+E,OAAxBH;iBADS;aAbb,CAF0C;QAmB5Cf,IAAI,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACR5D,OAAO,EAAE,MADD;YAER+E,cAAc,EAAE,MAFR;YAGRC,KAAK,EAAE,MAHC;YAIRC,SAAS,EAAElF,CAAAA,GAAAA,oDAAM,CAAA,CAACmF,UAJV;YAKR/E,OAAO,EAAEJ,CAAAA,GAAAA,oDAAM,CAAA,CAACoF,SALR;YAMR/E,MAAM,EAAE,MANA;YAORgF,UAAU,EAAE,MAPJ;YAQRC,SAAS,EAAE,MAAXA;SARI,CAnBsC;QA6B5CpB,OAAO,EAAA,aAAE,CAAA,CAAA,GAAA,kBAATA,CAAAA,CAAAA;YAAS,IAAA,EAAA,SAAA;YAAA,MAAA,EAAA,0BAAA;SAAA,CA7BmC;QAiC5CH,KAAK,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACT9D,OAAO,EAAE,MADA;YAETsF,UAAU,EAAE,CAFH;YAGTC,UAAU,EAAE,QAHH;YAITC,cAAc,EAAE,QAJP;YAKTb,eAAe,EAAE5E,CAAAA,GAAAA,oDAAM,CAAA,CAACM,OALf;YAMT2E,KAAK,EAAEjF,CAAAA,GAAAA,oDAAM,CAAA,CAAC0F,UANL;YAOTC,MAAM,EAAE3F,CAAAA,GAAAA,oDAAM,CAAA,CAAC0F,UAPN;YAQTvF,MAAM,EAAE,GARC;YASTyF,WAAW,EAAE5F,CAAAA,GAAAA,oDAAM,CAAA,CAACoF,SAApBQ;SATK,CAjCqC;QA4C5C3B,SAAS,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAXA,CAAAA,CAAAA;YAAW,IAAA,EAAA,SAAA;YAAA,MAAA,EAAA,wDAAA;SAAA,CA5CiC;QAkD5C7B,WAAW,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACfyD,UAAU,EAAE7F,CAAAA,GAAAA,oDAAM,CAAA,CAACoF,SAAnBS;SADW,CAlD+B;QAqD5C1D,WAAW,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACf2D,SAAS,EAAE9F,CAAAA,GAAAA,oDAAM,CAAA,CAAC+F,UAAlBD;SADW,CArD+B;QAwD5C3B,IAAI,EAAA,aAAE,CAAA,CAAA,GAAA,kBAANA,CAAAA,CAAAA;YAAM,IAAA,EAAA,SAAA;YAAA,MAAA,EAAA,iCAAA;SAAA,CAxDsC;QA4D5CX,UAAU,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACdwC,sBAAsB,EAAE,GADV;YAEdC,mBAAmB,EAAE,GAFP;YAGd3B,SAAS,EAAG,CAAA,eAAA,EAAiBtE,CAAAA,GAAAA,oDAAM,CAAA,CAACM,OAAQ,CAA5CgE,CAAAA;SAHU,CA5DgC;QAiE5CF,WAAW,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAbA,CAAAA,CAAAA;YAAa,IAAA,EAAA,QAAA;YAAA,MAAA,EAAA,uCAAA;SAAA,CAAA;KAjEwB,CAAA,AAAhC,AAAuC;;;AD0B9C,MAAMtC,8BAAQ,GAAG;IACfC,KAAK,EAAEd,CAAAA,GAAAA,mCADQ,CAAA;IAEfe,KAAK,EAAEd,CAAAA,GAAAA,mCAFQ,CAAA;IAGfe,OAAO,EAAEd,CAAAA,GAAAA,qCAATc,CAAAA;CAHF,AAAiB;AA+EV,MAAMxD,yCAAc,GAAG,CAAC,aAC7BmB,SAD6B,CAAA,UAE7BF,MAAM,GAAG,wBAFoB,UAG7BwC,KAH6B,CAAA,eAI7BC,WAJ6B,CAAA,eAK7BC,WAL6B,CAAA,cAM7BY,UAAU,GAAG,OANgB,kBAO7BV,aAAa,GAAG,IAPa,iBAQ7BC,YAR6B,CAAA,oBAS7BC,gBAT6B,CAAA,UAU7BH,MAV6B,CAAA,WAW7BI,OAX6B,CAAA,kBAY7BE,cAZ6B,CAAA,gBAa7BC,YAb6B,CAAA,aAc7BK,SAd6B,CAAA,WAe7BC,OAf6B,CAAA,QAgB7BC,IAhB6B,CAAA,uBAiB7BL,mBAjB6B,CAAA,2BAkB7BD,uBAlB6B,CAAA,qBAmB7BO,iBAAiB,GAAG,KAnBS,GAoB7B,GAAGC,UAAH,EApB4B,GAqBiB;IAC7C,MAAM5D,MAAM,GAAGmC,CAAAA,GAAAA,yCAAuB,CAAA,EAAtC,AAAA;IAEA,MAAM2B,oBAAoB,GAAG,IAAM;QACjC,IAAIV,uBAAJ,EACE,OAAOA,uBAAP,CAAA;aACK,IAAIF,cAAJ,EACL,qBACE,0DAAC,CAAA,GAAA,yCAAD,CAAA;YACE,SAAA,EAAWlD,MAAM,CAAC+D,UAAR;YACV,QAAA,EAAUZ,YAAD;YACT,KAAA,EAAM,eAHR;YAIE,GAAIE,mBAAJ;UALJ,CAAA;KAJJ,AAaC;IAED,IAAIW,OAAO,GAAsB,SAAjC,AAAA;IACA,IAAIN,IAAI,IAAID,OAAZ,EACEO,OAAO,GAAGN,IAAI,GAAG,GAAH,GAAS,QAAvB,CAAAM;IApB2C,CAuB7C,oFAFC;IAGD,MAAME,UAAU,GAAGtB,MAAM,KAAK,UAA9B,AAAA;IACA,MAAMuB,MAAM,GAAGD,UAAU,IAAI,CAACpB,YAA9B,AAAA;IAEA,qBACE,0DAAC,IAAD;QACE,GAAIc,UAAJ;QACA,SAAA,EAAW,CAAA,GAAA,iBAAA,CAAA,CAAG5D,MAAM,CAACE,IAAP,CAAY;0BAAEiD,YAAAA;SAAd,CAAH,EAAkChD,SAAlC,CAAD;QACV,cAAA,EAAcF,MAAD;OAEZ6D,oBAAoB,EAArB,EACCN,SAAS,iBACR,0DAAC,SAAD;QAAS,SAAA,EAAWxD,MAAM,CAACoE,IAAR;qBACjB,0DAAC,CAAA,GAAA,qCAAA,CAAA,CAAS,SAAV;QAAoB,MAAA,EAAO,+BAA3B;qBACE,0DAAC,CAAA,GAAA,qCAAA,CAAA,CAAS,KAAV;QAAgB,MAAA,EAAQ,EAAD;QAAK,KAAA,EAAO,EAAD;MAA9C,gBACY,0DAAC,CAAA,GAAA,qCAAA,CAAA,CAAS,QAAV;QACE,aAAA,EAAe,CAAD;QACd,UAAA,EAAY,EAAD;QACX,UAAA,EAAY,EAAD;MAHzB,CAKA,CATgB,iBAYR,0DAAC,OAAD;QACE,SAAA,EAAWpE,MAAM,CAACoE,IAAR;QACV,OAAA,EAASX,OAAD;QACR,IAAA,EAAMC,IAAD;QACL,IAAA,EAAMM,OAAO,KAAK,QAAZ,GAAuB,QAAvB,GAAkCK,SAAnC;QACL,MAAA,EAAQX,IAAI,GAAG,QAAH,GAAcW,SAAnB;OAENxB,aAAa,kBACZ,0DAAC,QAAD;QAAQ,SAAA,EAAW7C,MAAM,CAACsE,KAAR;OACfH,MAAM,iBACL,0DAAC,CAAA,GAAA,6BAAD,CAAA;QAAM,EAAA,EAAI9B,8BAAQ,CAACkB,UAAU,CAACgB,WAAX,EAAD,CAAT;QAAqC,OAAA,EAAQ,OAAtD;MADK,iBAGL,0DAAC,KAAD;QACE,GAAA,EAAKzB,YAAD;QACJ,SAAA,EAAW9C,MAAM,CAACwE,SAAR;QACV,GAAA,EAAKzB,gBAAD;MANR,CAFJ,gBAcA,0DAAC,KAAD;QAAK,SAAA,EAAW/C,MAAM,CAACyE,OAAR;qBACb,0DAAC,CAAA,GAAA,6BAAD,CAAA,sBACE,0DAAC,CAAA,GAAA,mCAAD,CAAA;QACE,EAAA,EAAG,IADL;QAEE,UAAA,EAAW,aAFb;QAGE,SAAA,EAAU,SAHZ;QAIE,UAAA,EAAW,oBAJb;QAKE,WALF,EAKE,IALF;OAOGhC,KAAD,CAChB,EAEeE,WAAW,kBACV,0DAAC,CAAA,GAAA,mCAAD,CAAA;QACE,EAAA,EAAG,MADL;QAEE,UAAA,EAAW,aAFb;QAGE,SAAA,EAAU,SAHZ;QAIE,SAAA,EAAW3C,MAAM,CAAC2C,WAAR;QACV,WALF,EAKE,IALF;OADhB,GAQmB,EAACA,WAAD,EAAa,GAChB,CATF,CAWd,EACaD,WAAW,kBACV,0DAAC,CAAA,GAAA,mCAAD,CAAA;QACE,EAAA,EAAG,GADL;QAEE,UAAA,EAAW,aAFb;QAGE,SAAA,EAAU,SAHZ;QAIE,WAJF,EAIE,IAJF;QAKE,SAAA,EAAW1C,MAAM,CAAC0C,WAAR;OAETA,WAAD,CARJ,CAWZ,gBAEU,0DAAC,CAAA,GAAA,6BAAD,CAAA;QACE,SAAA,EAAW1C,MAAM,CAAC0E,IAAR;QACV,UAAA,EAAW,YAFb;QAGE,WAAA,EAAY,WAHd;OAKG9B,MAAM,kBACL,0DAAC,CAAA,GAAA,4BAAD,CAAA;QAAK,WAAA,EAAaI,OAAO,GAAG,WAAH,GAAiB,MAAzB;qBACf,0DAAC,CAAA,GAAA,2CAAD,CAAA;QAAmB,YAAA,EAAcJ,MAAD;MAAhD,CAFY,EAMCI,OAAO,kBACN,0DAAC,CAAA,GAAA,6BAAD,CAAA,sBACE,0DAAC,CAAA,GAAA,6BAAA,CAAA,CAAK,OAAN,sBACE,0DAAC,CAAA,GAAA,iCAAD,CAAA;QACE,UAAA,EAAYW,iBAAD;QACX,SAAA,gBAAW,0DAAC,CAAA,GAAA,4CAAD,CAAA,OAAD;QACV,OAAA,EAAQ,aAHV;QAIE,YAAA,EAAW,SAJb;QAKE,IAAA,EAAK,OALP;QAME,SAAA,EAAW3D,MAAM,CAAC2E,WAAR;MAN9B,CAQA,gBACgB,0DAAC,CAAA,GAAA,6BAAA,CAAA,CAAK,IAAN,QAAY3B,OAAD,CAA3B,CAZY,CAeZ,CAhGM,CAPJ,CA0GF;CA1JO,AA4JN;AAEDhE,yCAAc,CAACqB,WAAf,GAA6B,gBAA7B,CAAArB;;;AHpQO,MAAMF,yCAAU,GAAGI,CAAAA,GAAAA,yCAAkB,CAAA,AAArC,AAAP;AACAJ,yCAAU,CAACM,IAAX,GAAkBJ,CAAAA,GAAAA,yCAAlB,CAAA,CAAAF;;ADRA","sources":["packages/components/entity-list/src/index.ts","packages/components/entity-list/src/CompoundEntityList.tsx","packages/components/entity-list/src/EntityList.tsx","packages/components/entity-list/src/EntityList.styles.ts","packages/components/entity-list/src/EntityListItem/EntityListItem.tsx","packages/components/entity-list/src/EntityListItem/EntityListItem.styles.ts"],"sourcesContent":["export { EntityList } from './CompoundEntityList';\nexport type { EntityListProps } from './EntityList';\nexport { EntityListItem } from './EntityListItem/EntityListItem';\nexport type { EntityListItemProps } from './EntityListItem/EntityListItem';\n","import { EntityList as OriginalEntityList } from './EntityList';\nimport { EntityListItem } from './EntityListItem/EntityListItem';\n\ntype CompoundEntityList = typeof OriginalEntityList & {\n Item: typeof EntityListItem;\n};\n\nexport const EntityList = OriginalEntityList as CompoundEntityList;\nEntityList.Item = EntityListItem;\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { getEntityListStyles } from './EntityList.styles';\n\nexport interface EntityListProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction _EntityList(\n props: ExpandProps<EntityListProps>,\n ref: React.Ref<HTMLUListElement>,\n) {\n const styles = getEntityListStyles();\n\n return (\n <ul\n data-test-id={props.testId || 'cf-ui-entity-list'}\n ref={ref}\n className={cx(styles.root, props.className)}\n style={props.style}\n >\n {props.children}\n </ul>\n );\n}\n\n_EntityList.displayName = 'EntityList';\n\nexport const EntityList = React.forwardRef(_EntityList);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getEntityListStyles = () => ({\n root: css({\n display: 'block',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n border: `1px solid ${tokens.gray200}`,\n borderBottom: 'none',\n borderRadius: tokens.borderRadiusMedium,\n overflow: 'hidden',\n }),\n});\n","import React, { type MouseEventHandler } from 'react';\nimport { cx } from 'emotion';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Flex,\n Box,\n type CommonProps,\n type EntityStatus,\n type PickUnion,\n} from '@contentful/f36-core';\nimport {\n AssetIcon,\n EntryIcon,\n ReleaseIcon,\n MoreHorizontalIcon,\n} from '@contentful/f36-icons';\nimport { Icon } from '@contentful/f36-icon';\nimport { Text } from '@contentful/f36-typography';\nimport { DragHandle, type DragHandleProps } from '@contentful/f36-drag-handle';\nimport { Button } from '@contentful/f36-button';\nimport { Menu } from '@contentful/f36-menu';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getEntityListItemStyles } from './EntityListItem.styles';\n\ntype EntityListItemStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'draft' | 'published'\n>;\n\nconst ICON_MAP = {\n asset: AssetIcon,\n entry: EntryIcon,\n release: ReleaseIcon,\n};\n\nexport interface EntityListItemProps extends CommonProps {\n /**\n * The title of the entity\n */\n title: string;\n /**\n * The description of the entity\n */\n description?: string;\n /**\n * The content type of the entity\n */\n contentType?: string;\n /**\n * The publish status of the entry\n */\n status?: EntityListItemStatus;\n /**\n * A boolean used to render the Thumbnail or not\n */\n withThumbnail?: boolean;\n /**\n * The URL of the entity's preview thumbnail. Use 46px x 46px images for best results\n */\n thumbnailUrl?: string;\n /**\n * The alt text for the thumbnail\n */\n thumbnailAltText?: string;\n /**\n * Menu elements rendered as actions in Menu\n */\n actions?: React.ReactNodeArray;\n /**\n * Renders a drag handle for the component for use in drag and drop contexts\n */\n withDragHandle?: boolean;\n /**\n * Applies styling for when the component is actively being dragged by the user\n */\n isDragActive?: boolean;\n /**\n * Prop to pass a custom CardDragHandle component to for use in drag and drop contexts\n */\n cardDragHandleComponent?: React.ReactNode;\n /**\n * Props to pass down to the default CardDragHandle component (does not work with cardDragHandleComponent prop)\n */\n cardDragHandleProps?: Partial<DragHandleProps>;\n /**\n * An entity can either be an Entry, an Asset or a Release. This prop will apply styling based on if the entity is an asset, a release or an entry\n *\n * Note: 'entry' and 'asset' are @deprecated but supported in v1.x for backwards compatibility\n */\n entityType?: 'Entry' | 'Asset' | 'entry' | 'asset' | 'Release';\n /**\n * Loading state for the component - when true will display loading feedback to the user\n */\n isLoading?: boolean;\n /**\n * The action to be performed on click of the EntryCard\n */\n onClick?: MouseEventHandler;\n /**\n * The href for the component. Will render the card as an `a` element for native browser link handling\n */\n href?: string;\n /**\n * A boolean used to disable the CardActions\n */\n isActionsDisabled?: boolean;\n}\n\nexport const EntityListItem = ({\n className,\n testId = 'cf-ui-entity-list-item',\n title,\n description,\n contentType,\n entityType = 'entry',\n withThumbnail = true,\n thumbnailUrl,\n thumbnailAltText,\n status,\n actions,\n withDragHandle,\n isDragActive,\n isLoading,\n onClick,\n href,\n cardDragHandleProps,\n cardDragHandleComponent,\n isActionsDisabled = false,\n ...otherProps\n}: EntityListItemProps): React.ReactElement => {\n const styles = getEntityListItemStyles();\n\n const renderCardDragHandle = () => {\n if (cardDragHandleComponent) {\n return cardDragHandleComponent;\n } else if (withDragHandle) {\n return (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragActive}\n label=\"Reorder entry\"\n {...cardDragHandleProps}\n />\n );\n }\n };\n\n let Element: React.ElementType = 'article';\n if (href || onClick) {\n Element = href ? 'a' : 'button';\n }\n\n // archived assets will not be available on the CDN, resulting in a broken image src\n const isArchived = status === 'archived';\n const asIcon = isArchived || !thumbnailUrl;\n\n return (\n <li\n {...otherProps}\n className={cx(styles.root({ isDragActive }), className)}\n data-test-id={testId}\n >\n {renderCardDragHandle()}\n {isLoading ? (\n <article className={styles.card}>\n <Skeleton.Container clipId=\"f36-entity-list-item-skeleton\">\n <Skeleton.Image height={46} width={46} />\n <Skeleton.BodyText\n numberOfLines={2}\n lineHeight={18}\n offsetLeft={54}\n />\n </Skeleton.Container>\n </article>\n ) : (\n <Element\n className={styles.card}\n onClick={onClick}\n href={href}\n type={Element === 'button' ? 'button' : undefined}\n target={href ? '_blank' : undefined}\n >\n {withThumbnail && (\n <figure className={styles.media}>\n {asIcon ? (\n <Icon as={ICON_MAP[entityType.toLowerCase()]} variant=\"muted\" />\n ) : (\n <img\n src={thumbnailUrl}\n className={styles.thumbnail}\n alt={thumbnailAltText}\n />\n )}\n </figure>\n )}\n\n <div className={styles.content}>\n <Flex>\n <Text\n as=\"h3\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n fontWeight=\"fontWeightDemiBold\"\n isTruncated\n >\n {title}\n </Text>\n\n {contentType && (\n <Text\n as=\"span\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray600\"\n className={styles.contentType}\n isTruncated\n >\n ({contentType})\n </Text>\n )}\n </Flex>\n {description && (\n <Text\n as=\"p\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n isTruncated\n className={styles.description}\n >\n {description}\n </Text>\n )}\n </div>\n\n <Flex\n className={styles.meta}\n alignItems=\"flex-start\"\n paddingLeft=\"spacingXs\"\n >\n {status && (\n <Box marginRight={actions ? 'spacingXs' : 'none'}>\n <EntityStatusBadge entityStatus={status} />\n </Box>\n )}\n\n {actions && (\n <Menu>\n <Menu.Trigger>\n <Button\n isDisabled={isActionsDisabled}\n startIcon={<MoreHorizontalIcon />}\n variant=\"transparent\"\n aria-label=\"Actions\"\n size=\"small\"\n className={styles.menuTrigger}\n />\n </Menu.Trigger>\n <Menu.List>{actions}</Menu.List>\n </Menu>\n )}\n </Flex>\n </Element>\n )}\n </li>\n );\n};\n\nEntityListItem.displayName = 'EntityListItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { EntityListItemProps } from './EntityListItem';\n\nexport const getEntityListItemStyles = () => ({\n root: (props: Pick<EntityListItemProps, 'isDragActive'>) =>\n css({\n display: 'flex',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n position: 'relative',\n transition: `${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n transitionProperty: 'box-shadow, background-color',\n backgroundColor: tokens.colorWhite,\n ...(props.isDragActive\n ? {\n boxShadow: tokens.boxShadowHeavy,\n }\n : {}),\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n }),\n card: css({\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n minHeight: tokens.spacing3Xl,\n padding: tokens.spacingXs,\n border: 'none',\n background: 'none',\n textAlign: 'left',\n }),\n content: css({\n flexGrow: 1,\n minWidth: 0,\n }),\n media: css({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: tokens.gray200,\n width: tokens.spacing2Xl,\n height: tokens.spacing2Xl,\n margin: '0',\n marginRight: tokens.spacingXs,\n }),\n thumbnail: css({\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }),\n contentType: css({\n marginLeft: tokens.spacingXs,\n }),\n description: css({\n marginTop: tokens.spacing2Xs,\n }),\n meta: css({\n marginLeft: 'auto',\n flexShrink: 0,\n }),\n dragHandle: css({\n borderBottomLeftRadius: '0',\n borderTopLeftRadius: '0',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n }),\n menuTrigger: css({\n padding: '0 0.125rem',\n minHeight: '1.5rem',\n }),\n});\n"],"names":["EntityList","EntityListProps","EntityListItem","EntityListItemProps","OriginalEntityList","CompoundEntityList","Item","React","CommonProps","ExpandProps","getEntityListStyles","children","ReactNode","_EntityList","props","ref","Ref","HTMLUListElement","styles","testId","root","className","style","displayName","forwardRef","tokens","display","listStyle","margin","padding","border","gray200","borderBottom","borderRadius","borderRadiusMedium","overflow","MouseEventHandler","EntityStatusBadge","Flex","Box","EntityStatus","PickUnion","AssetIcon","EntryIcon","ReleaseIcon","MoreHorizontalIcon","Icon","Text","DragHandle","DragHandleProps","Button","Menu","Skeleton","getEntityListItemStyles","EntityListItemStatus","ICON_MAP","asset","entry","release","title","description","contentType","status","withThumbnail","thumbnailUrl","thumbnailAltText","actions","ReactNodeArray","withDragHandle","isDragActive","cardDragHandleComponent","cardDragHandleProps","Partial","entityType","isLoading","onClick","href","isActionsDisabled","otherProps","ReactElement","renderCardDragHandle","dragHandle","Element","ElementType","isArchived","asIcon","card","undefined","media","toLowerCase","thumbnail","content","meta","menuTrigger","Pick","boxShadow","position","transition","transitionDurationShort","transitionEasingDefault","transitionProperty","backgroundColor","colorWhite","boxShadowHeavy","gray100","textDecoration","width","minHeight","spacing3Xl","spacingXs","background","textAlign","flexShrink","alignItems","justifyContent","spacing2Xl","height","marginRight","marginLeft","marginTop","spacing2Xs","borderBottomLeftRadius","borderTopLeftRadius"],"version":3,"file":"main.js.map"}
package/dist/module.js DELETED
@@ -1,225 +0,0 @@
1
- import {cx as $qeOF0$cx, css as $qeOF0$css} from "emotion";
2
- import $qeOF0$react from "react";
3
- import $qeOF0$contentfulf36tokens from "@contentful/f36-tokens";
4
- import {EntityStatusBadge as $qeOF0$EntityStatusBadge} from "@contentful/f36-badge";
5
- import {Flex as $qeOF0$Flex, Box as $qeOF0$Box} from "@contentful/f36-core";
6
- import {AssetIcon as $qeOF0$AssetIcon, EntryIcon as $qeOF0$EntryIcon, ReleaseIcon as $qeOF0$ReleaseIcon, MoreHorizontalIcon as $qeOF0$MoreHorizontalIcon} from "@contentful/f36-icons";
7
- import {Icon as $qeOF0$Icon} from "@contentful/f36-icon";
8
- import {Text as $qeOF0$Text} from "@contentful/f36-typography";
9
- import {DragHandle as $qeOF0$DragHandle} from "@contentful/f36-drag-handle";
10
- import {Button as $qeOF0$Button} from "@contentful/f36-button";
11
- import {Menu as $qeOF0$Menu} from "@contentful/f36-menu";
12
- import {Skeleton as $qeOF0$Skeleton} from "@contentful/f36-skeleton";
13
-
14
-
15
-
16
-
17
-
18
- const $32a4ed8cc58cbd41$export$2b0a239870ba448d = ()=>({
19
- root: /*#__PURE__*/ (0, $qeOF0$css)({
20
- display: "block",
21
- listStyle: "none",
22
- margin: 0,
23
- padding: 0,
24
- border: `1px solid ${(0, $qeOF0$contentfulf36tokens).gray200}`,
25
- borderBottom: "none",
26
- borderRadius: (0, $qeOF0$contentfulf36tokens).borderRadiusMedium,
27
- overflow: "hidden"
28
- })
29
- });
30
-
31
-
32
- function $3382b9e83b849fa7$var$_EntityList(props, ref) {
33
- const styles = (0, $32a4ed8cc58cbd41$export$2b0a239870ba448d)();
34
- return /*#__PURE__*/ (0, $qeOF0$react).createElement("ul", {
35
- "data-test-id": props.testId || "cf-ui-entity-list",
36
- ref: ref,
37
- className: (0, $qeOF0$cx)(styles.root, props.className),
38
- style: props.style
39
- }, props.children);
40
- }
41
- $3382b9e83b849fa7$var$_EntityList.displayName = "EntityList";
42
- const $3382b9e83b849fa7$export$8bb466c13870163e = /*#__PURE__*/ (0, $qeOF0$react).forwardRef($3382b9e83b849fa7$var$_EntityList);
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
- const $7cd3138fd5d2efdd$export$3bb342229d68a121 = ()=>({
59
- root: (props)=>/*#__PURE__*/ (0, $qeOF0$css)({
60
- display: "flex",
61
- boxShadow: `inset 0 -1px 0 ${(0, $qeOF0$contentfulf36tokens).gray200}`,
62
- position: "relative",
63
- transition: `${(0, $qeOF0$contentfulf36tokens).transitionDurationShort} ${(0, $qeOF0$contentfulf36tokens).transitionEasingDefault}`,
64
- transitionProperty: "box-shadow, background-color",
65
- backgroundColor: (0, $qeOF0$contentfulf36tokens).colorWhite,
66
- ...props.isDragActive ? {
67
- boxShadow: (0, $qeOF0$contentfulf36tokens).boxShadowHeavy
68
- } : {},
69
- "&:hover": {
70
- backgroundColor: (0, $qeOF0$contentfulf36tokens).gray100
71
- }
72
- }),
73
- card: /*#__PURE__*/ (0, $qeOF0$css)({
74
- display: "flex",
75
- textDecoration: "none",
76
- width: "100%",
77
- minHeight: (0, $qeOF0$contentfulf36tokens).spacing3Xl,
78
- padding: (0, $qeOF0$contentfulf36tokens).spacingXs,
79
- border: "none",
80
- background: "none",
81
- textAlign: "left"
82
- }),
83
- content: /*#__PURE__*/ (0, $qeOF0$css)({
84
- name: "15ync0s",
85
- styles: "flex-grow:1;min-width:0;"
86
- }),
87
- media: /*#__PURE__*/ (0, $qeOF0$css)({
88
- display: "flex",
89
- flexShrink: 0,
90
- alignItems: "center",
91
- justifyContent: "center",
92
- backgroundColor: (0, $qeOF0$contentfulf36tokens).gray200,
93
- width: (0, $qeOF0$contentfulf36tokens).spacing2Xl,
94
- height: (0, $qeOF0$contentfulf36tokens).spacing2Xl,
95
- margin: "0",
96
- marginRight: (0, $qeOF0$contentfulf36tokens).spacingXs
97
- }),
98
- thumbnail: /*#__PURE__*/ (0, $qeOF0$css)({
99
- name: "12qah06",
100
- styles: "display:block;width:100%;height:100%;object-fit:cover;"
101
- }),
102
- contentType: /*#__PURE__*/ (0, $qeOF0$css)({
103
- marginLeft: (0, $qeOF0$contentfulf36tokens).spacingXs
104
- }),
105
- description: /*#__PURE__*/ (0, $qeOF0$css)({
106
- marginTop: (0, $qeOF0$contentfulf36tokens).spacing2Xs
107
- }),
108
- meta: /*#__PURE__*/ (0, $qeOF0$css)({
109
- name: "1n0gfod",
110
- styles: "margin-left:auto;flex-shrink:0;"
111
- }),
112
- dragHandle: /*#__PURE__*/ (0, $qeOF0$css)({
113
- borderBottomLeftRadius: "0",
114
- borderTopLeftRadius: "0",
115
- boxShadow: `inset 0 -1px 0 ${(0, $qeOF0$contentfulf36tokens).gray200}`
116
- }),
117
- menuTrigger: /*#__PURE__*/ (0, $qeOF0$css)({
118
- name: "c1v07n",
119
- styles: "padding:0 0.125rem;min-height:1.5rem;"
120
- })
121
- });
122
-
123
-
124
- const $b8d6b7ec5fedd0fe$var$ICON_MAP = {
125
- asset: (0, $qeOF0$AssetIcon),
126
- entry: (0, $qeOF0$EntryIcon),
127
- release: (0, $qeOF0$ReleaseIcon)
128
- };
129
- const $b8d6b7ec5fedd0fe$export$65b9c70c5f42a158 = ({ className: className , testId: testId = "cf-ui-entity-list-item" , title: title , description: description , contentType: contentType , entityType: entityType = "entry" , withThumbnail: withThumbnail = true , thumbnailUrl: thumbnailUrl , thumbnailAltText: thumbnailAltText , status: status , actions: actions , withDragHandle: withDragHandle , isDragActive: isDragActive , isLoading: isLoading , onClick: onClick , href: href , cardDragHandleProps: cardDragHandleProps , cardDragHandleComponent: cardDragHandleComponent , isActionsDisabled: isActionsDisabled = false , ...otherProps })=>{
130
- const styles = (0, $7cd3138fd5d2efdd$export$3bb342229d68a121)();
131
- const renderCardDragHandle = ()=>{
132
- if (cardDragHandleComponent) return cardDragHandleComponent;
133
- else if (withDragHandle) return /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$DragHandle), {
134
- className: styles.dragHandle,
135
- isActive: isDragActive,
136
- label: "Reorder entry",
137
- ...cardDragHandleProps
138
- });
139
- };
140
- let Element = "article";
141
- if (href || onClick) Element = href ? "a" : "button";
142
- // archived assets will not be available on the CDN, resulting in a broken image src
143
- const isArchived = status === "archived";
144
- const asIcon = isArchived || !thumbnailUrl;
145
- return /*#__PURE__*/ (0, $qeOF0$react).createElement("li", {
146
- ...otherProps,
147
- className: (0, $qeOF0$cx)(styles.root({
148
- isDragActive: isDragActive
149
- }), className),
150
- "data-test-id": testId
151
- }, renderCardDragHandle(), isLoading ? /*#__PURE__*/ (0, $qeOF0$react).createElement("article", {
152
- className: styles.card
153
- }, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Skeleton).Container, {
154
- clipId: "f36-entity-list-item-skeleton"
155
- }, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Skeleton).Image, {
156
- height: 46,
157
- width: 46
158
- }), /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Skeleton).BodyText, {
159
- numberOfLines: 2,
160
- lineHeight: 18,
161
- offsetLeft: 54
162
- }))) : /*#__PURE__*/ (0, $qeOF0$react).createElement(Element, {
163
- className: styles.card,
164
- onClick: onClick,
165
- href: href,
166
- type: Element === "button" ? "button" : undefined,
167
- target: href ? "_blank" : undefined
168
- }, withThumbnail && /*#__PURE__*/ (0, $qeOF0$react).createElement("figure", {
169
- className: styles.media
170
- }, asIcon ? /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Icon), {
171
- as: $b8d6b7ec5fedd0fe$var$ICON_MAP[entityType.toLowerCase()],
172
- variant: "muted"
173
- }) : /*#__PURE__*/ (0, $qeOF0$react).createElement("img", {
174
- src: thumbnailUrl,
175
- className: styles.thumbnail,
176
- alt: thumbnailAltText
177
- })), /*#__PURE__*/ (0, $qeOF0$react).createElement("div", {
178
- className: styles.content
179
- }, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Flex), null, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Text), {
180
- as: "h3",
181
- lineHeight: "lineHeightM",
182
- fontColor: "gray900",
183
- fontWeight: "fontWeightDemiBold",
184
- isTruncated: true
185
- }, title), contentType && /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Text), {
186
- as: "span",
187
- lineHeight: "lineHeightM",
188
- fontColor: "gray600",
189
- className: styles.contentType,
190
- isTruncated: true
191
- }, "(", contentType, ")")), description && /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Text), {
192
- as: "p",
193
- lineHeight: "lineHeightM",
194
- fontColor: "gray900",
195
- isTruncated: true,
196
- className: styles.description
197
- }, description)), /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Flex), {
198
- className: styles.meta,
199
- alignItems: "flex-start",
200
- paddingLeft: "spacingXs"
201
- }, status && /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Box), {
202
- marginRight: actions ? "spacingXs" : "none"
203
- }, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$EntityStatusBadge), {
204
- entityStatus: status
205
- })), actions && /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Menu), null, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Menu).Trigger, null, /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Button), {
206
- isDisabled: isActionsDisabled,
207
- startIcon: /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$MoreHorizontalIcon), null),
208
- variant: "transparent",
209
- "aria-label": "Actions",
210
- size: "small",
211
- className: styles.menuTrigger
212
- })), /*#__PURE__*/ (0, $qeOF0$react).createElement((0, $qeOF0$Menu).List, null, actions)))));
213
- };
214
- $b8d6b7ec5fedd0fe$export$65b9c70c5f42a158.displayName = "EntityListItem";
215
-
216
-
217
- const $bbd0ee2d7d3132a2$export$8bb466c13870163e = (0, $3382b9e83b849fa7$export$8bb466c13870163e);
218
- $bbd0ee2d7d3132a2$export$8bb466c13870163e.Item = (0, $b8d6b7ec5fedd0fe$export$65b9c70c5f42a158);
219
-
220
-
221
-
222
-
223
-
224
- export {$bbd0ee2d7d3132a2$export$8bb466c13870163e as EntityList, $b8d6b7ec5fedd0fe$export$65b9c70c5f42a158 as EntityListItem};
225
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/components/entity-list/src/index.ts","packages/components/entity-list/src/CompoundEntityList.tsx","packages/components/entity-list/src/EntityList.tsx","packages/components/entity-list/src/EntityList.styles.ts","packages/components/entity-list/src/EntityListItem/EntityListItem.tsx","packages/components/entity-list/src/EntityListItem/EntityListItem.styles.ts"],"sourcesContent":["export { EntityList } from './CompoundEntityList';\nexport type { EntityListProps } from './EntityList';\nexport { EntityListItem } from './EntityListItem/EntityListItem';\nexport type { EntityListItemProps } from './EntityListItem/EntityListItem';\n","import { EntityList as OriginalEntityList } from './EntityList';\nimport { EntityListItem } from './EntityListItem/EntityListItem';\n\ntype CompoundEntityList = typeof OriginalEntityList & {\n Item: typeof EntityListItem;\n};\n\nexport const EntityList = OriginalEntityList as CompoundEntityList;\nEntityList.Item = EntityListItem;\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { getEntityListStyles } from './EntityList.styles';\n\nexport interface EntityListProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction _EntityList(\n props: ExpandProps<EntityListProps>,\n ref: React.Ref<HTMLUListElement>,\n) {\n const styles = getEntityListStyles();\n\n return (\n <ul\n data-test-id={props.testId || 'cf-ui-entity-list'}\n ref={ref}\n className={cx(styles.root, props.className)}\n style={props.style}\n >\n {props.children}\n </ul>\n );\n}\n\n_EntityList.displayName = 'EntityList';\n\nexport const EntityList = React.forwardRef(_EntityList);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getEntityListStyles = () => ({\n root: css({\n display: 'block',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n border: `1px solid ${tokens.gray200}`,\n borderBottom: 'none',\n borderRadius: tokens.borderRadiusMedium,\n overflow: 'hidden',\n }),\n});\n","import React, { type MouseEventHandler } from 'react';\nimport { cx } from 'emotion';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Flex,\n Box,\n type CommonProps,\n type EntityStatus,\n type PickUnion,\n} from '@contentful/f36-core';\nimport {\n AssetIcon,\n EntryIcon,\n ReleaseIcon,\n MoreHorizontalIcon,\n} from '@contentful/f36-icons';\nimport { Icon } from '@contentful/f36-icon';\nimport { Text } from '@contentful/f36-typography';\nimport { DragHandle, type DragHandleProps } from '@contentful/f36-drag-handle';\nimport { Button } from '@contentful/f36-button';\nimport { Menu } from '@contentful/f36-menu';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getEntityListItemStyles } from './EntityListItem.styles';\n\ntype EntityListItemStatus = PickUnion<\n EntityStatus,\n 'archived' | 'changed' | 'draft' | 'published'\n>;\n\nconst ICON_MAP = {\n asset: AssetIcon,\n entry: EntryIcon,\n release: ReleaseIcon,\n};\n\nexport interface EntityListItemProps extends CommonProps {\n /**\n * The title of the entity\n */\n title: string;\n /**\n * The description of the entity\n */\n description?: string;\n /**\n * The content type of the entity\n */\n contentType?: string;\n /**\n * The publish status of the entry\n */\n status?: EntityListItemStatus;\n /**\n * A boolean used to render the Thumbnail or not\n */\n withThumbnail?: boolean;\n /**\n * The URL of the entity's preview thumbnail. Use 46px x 46px images for best results\n */\n thumbnailUrl?: string;\n /**\n * The alt text for the thumbnail\n */\n thumbnailAltText?: string;\n /**\n * Menu elements rendered as actions in Menu\n */\n actions?: React.ReactNodeArray;\n /**\n * Renders a drag handle for the component for use in drag and drop contexts\n */\n withDragHandle?: boolean;\n /**\n * Applies styling for when the component is actively being dragged by the user\n */\n isDragActive?: boolean;\n /**\n * Prop to pass a custom CardDragHandle component to for use in drag and drop contexts\n */\n cardDragHandleComponent?: React.ReactNode;\n /**\n * Props to pass down to the default CardDragHandle component (does not work with cardDragHandleComponent prop)\n */\n cardDragHandleProps?: Partial<DragHandleProps>;\n /**\n * An entity can either be an Entry, an Asset or a Release. This prop will apply styling based on if the entity is an asset, a release or an entry\n *\n * Note: 'entry' and 'asset' are @deprecated but supported in v1.x for backwards compatibility\n */\n entityType?: 'Entry' | 'Asset' | 'entry' | 'asset' | 'Release';\n /**\n * Loading state for the component - when true will display loading feedback to the user\n */\n isLoading?: boolean;\n /**\n * The action to be performed on click of the EntryCard\n */\n onClick?: MouseEventHandler;\n /**\n * The href for the component. Will render the card as an `a` element for native browser link handling\n */\n href?: string;\n /**\n * A boolean used to disable the CardActions\n */\n isActionsDisabled?: boolean;\n}\n\nexport const EntityListItem = ({\n className,\n testId = 'cf-ui-entity-list-item',\n title,\n description,\n contentType,\n entityType = 'entry',\n withThumbnail = true,\n thumbnailUrl,\n thumbnailAltText,\n status,\n actions,\n withDragHandle,\n isDragActive,\n isLoading,\n onClick,\n href,\n cardDragHandleProps,\n cardDragHandleComponent,\n isActionsDisabled = false,\n ...otherProps\n}: EntityListItemProps): React.ReactElement => {\n const styles = getEntityListItemStyles();\n\n const renderCardDragHandle = () => {\n if (cardDragHandleComponent) {\n return cardDragHandleComponent;\n } else if (withDragHandle) {\n return (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragActive}\n label=\"Reorder entry\"\n {...cardDragHandleProps}\n />\n );\n }\n };\n\n let Element: React.ElementType = 'article';\n if (href || onClick) {\n Element = href ? 'a' : 'button';\n }\n\n // archived assets will not be available on the CDN, resulting in a broken image src\n const isArchived = status === 'archived';\n const asIcon = isArchived || !thumbnailUrl;\n\n return (\n <li\n {...otherProps}\n className={cx(styles.root({ isDragActive }), className)}\n data-test-id={testId}\n >\n {renderCardDragHandle()}\n {isLoading ? (\n <article className={styles.card}>\n <Skeleton.Container clipId=\"f36-entity-list-item-skeleton\">\n <Skeleton.Image height={46} width={46} />\n <Skeleton.BodyText\n numberOfLines={2}\n lineHeight={18}\n offsetLeft={54}\n />\n </Skeleton.Container>\n </article>\n ) : (\n <Element\n className={styles.card}\n onClick={onClick}\n href={href}\n type={Element === 'button' ? 'button' : undefined}\n target={href ? '_blank' : undefined}\n >\n {withThumbnail && (\n <figure className={styles.media}>\n {asIcon ? (\n <Icon as={ICON_MAP[entityType.toLowerCase()]} variant=\"muted\" />\n ) : (\n <img\n src={thumbnailUrl}\n className={styles.thumbnail}\n alt={thumbnailAltText}\n />\n )}\n </figure>\n )}\n\n <div className={styles.content}>\n <Flex>\n <Text\n as=\"h3\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n fontWeight=\"fontWeightDemiBold\"\n isTruncated\n >\n {title}\n </Text>\n\n {contentType && (\n <Text\n as=\"span\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray600\"\n className={styles.contentType}\n isTruncated\n >\n ({contentType})\n </Text>\n )}\n </Flex>\n {description && (\n <Text\n as=\"p\"\n lineHeight=\"lineHeightM\"\n fontColor=\"gray900\"\n isTruncated\n className={styles.description}\n >\n {description}\n </Text>\n )}\n </div>\n\n <Flex\n className={styles.meta}\n alignItems=\"flex-start\"\n paddingLeft=\"spacingXs\"\n >\n {status && (\n <Box marginRight={actions ? 'spacingXs' : 'none'}>\n <EntityStatusBadge entityStatus={status} />\n </Box>\n )}\n\n {actions && (\n <Menu>\n <Menu.Trigger>\n <Button\n isDisabled={isActionsDisabled}\n startIcon={<MoreHorizontalIcon />}\n variant=\"transparent\"\n aria-label=\"Actions\"\n size=\"small\"\n className={styles.menuTrigger}\n />\n </Menu.Trigger>\n <Menu.List>{actions}</Menu.List>\n </Menu>\n )}\n </Flex>\n </Element>\n )}\n </li>\n );\n};\n\nEntityListItem.displayName = 'EntityListItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { EntityListItemProps } from './EntityListItem';\n\nexport const getEntityListItemStyles = () => ({\n root: (props: Pick<EntityListItemProps, 'isDragActive'>) =>\n css({\n display: 'flex',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n position: 'relative',\n transition: `${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n transitionProperty: 'box-shadow, background-color',\n backgroundColor: tokens.colorWhite,\n ...(props.isDragActive\n ? {\n boxShadow: tokens.boxShadowHeavy,\n }\n : {}),\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n }),\n card: css({\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n minHeight: tokens.spacing3Xl,\n padding: tokens.spacingXs,\n border: 'none',\n background: 'none',\n textAlign: 'left',\n }),\n content: css({\n flexGrow: 1,\n minWidth: 0,\n }),\n media: css({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: tokens.gray200,\n width: tokens.spacing2Xl,\n height: tokens.spacing2Xl,\n margin: '0',\n marginRight: tokens.spacingXs,\n }),\n thumbnail: css({\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }),\n contentType: css({\n marginLeft: tokens.spacingXs,\n }),\n description: css({\n marginTop: tokens.spacing2Xs,\n }),\n meta: css({\n marginLeft: 'auto',\n flexShrink: 0,\n }),\n dragHandle: css({\n borderBottomLeftRadius: '0',\n borderTopLeftRadius: '0',\n boxShadow: `inset 0 -1px 0 ${tokens.gray200}`,\n }),\n menuTrigger: css({\n padding: '0 0.125rem',\n minHeight: '1.5rem',\n }),\n});\n"],"names":["EntityList","EntityListProps","EntityListItem","EntityListItemProps","OriginalEntityList","CompoundEntityList","Item","React","CommonProps","ExpandProps","getEntityListStyles","children","ReactNode","_EntityList","props","ref","Ref","HTMLUListElement","styles","testId","root","className","style","displayName","forwardRef","tokens","display","listStyle","margin","padding","border","gray200","borderBottom","borderRadius","borderRadiusMedium","overflow","MouseEventHandler","EntityStatusBadge","Flex","Box","EntityStatus","PickUnion","AssetIcon","EntryIcon","ReleaseIcon","MoreHorizontalIcon","Icon","Text","DragHandle","DragHandleProps","Button","Menu","Skeleton","getEntityListItemStyles","EntityListItemStatus","ICON_MAP","asset","entry","release","title","description","contentType","status","withThumbnail","thumbnailUrl","thumbnailAltText","actions","ReactNodeArray","withDragHandle","isDragActive","cardDragHandleComponent","cardDragHandleProps","Partial","entityType","isLoading","onClick","href","isActionsDisabled","otherProps","ReactElement","renderCardDragHandle","dragHandle","Element","ElementType","isArchived","asIcon","card","undefined","media","toLowerCase","thumbnail","content","meta","menuTrigger","Pick","boxShadow","position","transition","transitionDurationShort","transitionEasingDefault","transitionProperty","backgroundColor","colorWhite","boxShadowHeavy","gray100","textDecoration","width","minHeight","spacing3Xl","spacingXs","background","textAlign","flexShrink","alignItems","justifyContent","spacing2Xl","height","marginRight","marginLeft","marginTop","spacing2Xs","borderBottomLeftRadius","borderTopLeftRadius"],"version":3,"file":"module.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;ACMA,gCAAiC,SAAQ,WAAW;IAClD,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;CAC5B;AAsBD,QAAO,MAAM,sGAA0C,CAAC;AELxD,4BAA4B,UAC1B,YAAY,EACZ,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAC/C,CAAC;AAQF,oCAAqC,SAAQ,WAAW;IACtD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,cAAc,CAAC;IAC/B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,SAAS,CAAC;IAC1C;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,OAAO,MAAM;iRAqBV,mBAAmB,GAAG,MAAM,YAAY;;CAuI1C,CAAC;ACtQF,0BAA0B,mBAAyB,GAAG;IACpD,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAEF,OAAO,MAAM,8BAAqD,CAAC","sources":["packages/components/entity-list/src/src/EntityList.styles.ts","packages/components/entity-list/src/src/EntityList.tsx","packages/components/entity-list/src/src/EntityListItem/EntityListItem.styles.ts","packages/components/entity-list/src/src/EntityListItem/EntityListItem.tsx","packages/components/entity-list/src/src/CompoundEntityList.tsx","packages/components/entity-list/src/src/index.ts","packages/components/entity-list/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,"export { EntityList } from './CompoundEntityList';\nexport type { EntityListProps } from './EntityList';\nexport { EntityListItem } from './EntityListItem/EntityListItem';\nexport type { EntityListItemProps } from './EntityListItem/EntityListItem';\n"],"names":[],"version":3,"file":"types.d.ts.map"}