@contentful/f36-card 4.48.1 → 4.49.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.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AssetCard/AssetCard.tsx","../../src/BaseCard/BaseCard.tsx","../../src/BaseCard/BaseCard.styles.ts","../../src/BaseCard/DefaultCardHeader.tsx","../../src/BaseCard/CardActions.tsx","../../src/BaseCard/CardActions.styles.ts","../../src/AssetCard/AssetCard.styles.ts","../../src/Card/Card.tsx","../../src/Card/Card.styles.ts","../../src/EntryCard/EntryCard.tsx","../../src/EntryCard/EntryCard.styles.ts","../../src/InlineEntryCard/InlineEntryCard.tsx","../../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'badge' | 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n 'type' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && actions.length > 0 && (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n )}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<MoreHorizontalIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n marginLeft: tokens.spacingXs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AssetCard/AssetCard.tsx","../../src/BaseCard/BaseCard.tsx","../../src/BaseCard/BaseCard.styles.ts","../../src/BaseCard/DefaultCardHeader.tsx","../../src/BaseCard/CardActions.tsx","../../src/BaseCard/CardActions.styles.ts","../../src/AssetCard/AssetCard.styles.ts","../../src/Card/Card.tsx","../../src/Card/Card.styles.ts","../../src/EntryCard/EntryCard.tsx","../../src/EntryCard/EntryCard.styles.ts","../../src/InlineEntryCard/InlineEntryCard.tsx","../../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'badge' | 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n 'type' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && actions.length > 0 && (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n )}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<MoreHorizontalIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n marginLeft: tokens.spacingXs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -150,7 +150,7 @@ declare const ENTRY_CARD_DEFAULT_TAG = "article";
|
|
|
150
150
|
declare type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
|
|
151
151
|
declare const EntryCard: PolymorphicComponent<ExpandProps<EntryCardInternalProps>, typeof ENTRY_CARD_DEFAULT_TAG>;
|
|
152
152
|
|
|
153
|
-
declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'type' | keyof BaseCardDragHandleProps>;
|
|
153
|
+
declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
|
|
154
154
|
declare type InlineEntryCardProps = InlineEntryCardInternalProps;
|
|
155
155
|
declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => JSX.Element;
|
|
156
156
|
|
package/dist/index.d.ts
CHANGED
|
@@ -150,7 +150,7 @@ declare const ENTRY_CARD_DEFAULT_TAG = "article";
|
|
|
150
150
|
declare type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
|
|
151
151
|
declare const EntryCard: PolymorphicComponent<ExpandProps<EntryCardInternalProps>, typeof ENTRY_CARD_DEFAULT_TAG>;
|
|
152
152
|
|
|
153
|
-
declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'type' | keyof BaseCardDragHandleProps>;
|
|
153
|
+
declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
|
|
154
154
|
declare type InlineEntryCardProps = InlineEntryCardInternalProps;
|
|
155
155
|
declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => JSX.Element;
|
|
156
156
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AssetCard/AssetCard.tsx","../src/BaseCard/BaseCard.tsx","../src/BaseCard/BaseCard.styles.ts","../src/BaseCard/DefaultCardHeader.tsx","../src/BaseCard/CardActions.tsx","../src/BaseCard/CardActions.styles.ts","../src/AssetCard/AssetCard.styles.ts","../src/Card/Card.tsx","../src/Card/Card.styles.ts","../src/EntryCard/EntryCard.tsx","../src/EntryCard/EntryCard.styles.ts","../src/InlineEntryCard/InlineEntryCard.tsx","../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'badge' | 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n 'type' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && actions.length > 0 && (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n )}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<MoreHorizontalIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n marginLeft: tokens.spacingXs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/AssetCard/AssetCard.tsx","../src/BaseCard/BaseCard.tsx","../src/BaseCard/BaseCard.styles.ts","../src/BaseCard/DefaultCardHeader.tsx","../src/BaseCard/CardActions.tsx","../src/BaseCard/CardActions.styles.ts","../src/AssetCard/AssetCard.styles.ts","../src/Card/Card.tsx","../src/Card/Card.styles.ts","../src/EntryCard/EntryCard.tsx","../src/EntryCard/EntryCard.styles.ts","../src/InlineEntryCard/InlineEntryCard.tsx","../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'badge' | 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n 'type' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && actions.length > 0 && (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n )}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<MoreHorizontalIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n marginLeft: tokens.spacingXs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/f36-card",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.49.0",
|
|
4
4
|
"description": "Forma 36: Card components",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@contentful/f36-asset": "^4.
|
|
10
|
-
"@contentful/f36-badge": "^4.
|
|
11
|
-
"@contentful/f36-button": "^4.
|
|
12
|
-
"@contentful/f36-core": "^4.
|
|
13
|
-
"@contentful/f36-drag-handle": "^4.
|
|
14
|
-
"@contentful/f36-icon": "^4.
|
|
9
|
+
"@contentful/f36-asset": "^4.49.0",
|
|
10
|
+
"@contentful/f36-badge": "^4.49.0",
|
|
11
|
+
"@contentful/f36-button": "^4.49.0",
|
|
12
|
+
"@contentful/f36-core": "^4.49.0",
|
|
13
|
+
"@contentful/f36-drag-handle": "^4.49.0",
|
|
14
|
+
"@contentful/f36-icon": "^4.49.0",
|
|
15
15
|
"@contentful/f36-icons": "^4.27.0",
|
|
16
|
-
"@contentful/f36-menu": "^4.
|
|
17
|
-
"@contentful/f36-skeleton": "^4.
|
|
16
|
+
"@contentful/f36-menu": "^4.49.0",
|
|
17
|
+
"@contentful/f36-skeleton": "^4.49.0",
|
|
18
18
|
"@contentful/f36-tokens": "^4.0.2",
|
|
19
|
-
"@contentful/f36-tooltip": "^4.
|
|
20
|
-
"@contentful/f36-typography": "^4.
|
|
19
|
+
"@contentful/f36-tooltip": "^4.49.0",
|
|
20
|
+
"@contentful/f36-typography": "^4.49.0",
|
|
21
21
|
"emotion": "^10.0.17",
|
|
22
22
|
"truncate": "^3.0.0"
|
|
23
23
|
},
|