@contentful/f36-badge 4.18.0 → 4.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.19.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @contentful/f36-core@4.19.2
9
+
10
+ ## 4.19.1
11
+
12
+ ### Patch Changes
13
+
14
+ - [#2209](https://github.com/contentful/forma-36/pull/2209) [`42f0c321`](https://github.com/contentful/forma-36/commit/42f0c3218965137191842f492fe5dbf4bd10784c) Thanks [@denkristoffer](https://github.com/denkristoffer)! - build: build ESM to JS file - legacy output
15
+ fix(notification): use type imports
16
+ - Updated dependencies []:
17
+ - @contentful/f36-core@4.19.1
18
+
19
+ ## 4.19.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies []:
24
+ - @contentful/f36-core@4.19.0
25
+
3
26
  ## 4.18.0
4
27
 
5
28
  ### Patch Changes
@@ -0,0 +1,9 @@
1
+ import d from 'react';
2
+ import { cx, css } from 'emotion';
3
+ import { Box } from '@contentful/f36-core';
4
+ import e from '@contentful/f36-tokens';
5
+
6
+ var y=({variant:t})=>{switch(t){case"positive":return {color:e.green600,backgroundColor:e.green200};case"primary":return {color:e.blue600,backgroundColor:e.blue200};case"negative":return {color:e.red600,backgroundColor:e.red200};case"warning":return {color:e.orange600,backgroundColor:e.orange200};case"secondary":return {color:e.gray700,backgroundColor:e.gray200};case"primary-filled":return {color:e.colorWhite,backgroundColor:e.blue600};case"featured":return {color:e.purple600,backgroundColor:e.purple200};default:return {}}},f=({size:t})=>{switch(t){case"small":return {padding:`3px ${e.spacing2Xs}`,fontSize:"0.625rem",lineHeight:"0.625rem",maxHeight:"16px"};default:return {padding:`0 ${e.spacingXs}`,fontSize:`calc(1rem * (12 / ${e.fontBaseDefault}))`,lineHeight:"20px",maxHeight:"20px"}}},s=({variant:t,size:r})=>css({fontFamily:e.fontStackPrimary,fontWeight:e.fontWeightDemiBold,textTransform:"uppercase",letterSpacing:"0.06rem",borderRadius:`${e.borderRadiusSmall}`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle",...y({variant:t}),...f({size:r})});var o=d.forwardRef((t,r)=>{let{children:a,variant:i="primary",size:n="default",testId:l="cf-ui-badge",className:c,...m}=t;return d.createElement(Box,{as:"div",testId:l,display:"inline-block",className:cx(s({variant:i,size:n}),c),...m,ref:r},a)});o.displayName="Badge";var x={published:"positive",draft:"warning",archived:"negative",changed:"primary",deleted:"negative",new:"primary-filled"};function g(t,r){let{entityStatus:a,...i}=t,n=x[a];return d.createElement(o,{...i,variant:n,ref:r},a)}g.displayName="EntityStatusBadge";var E=d.forwardRef(g);
7
+
8
+ export { o as Badge, E as EntityStatusBadge };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Badge/Badge.tsx","../../src/Badge/Badge.styles.ts","../../src/EntityStatusBadge/EntityStatusBadge.tsx"],"names":["React","cx","Box","tokens","css","variantToStyles","variant","sizeToStyles","size","getBadgeStyles","Badge","props","ref","children","testId","className","otherProps","statusMap","EntityStatusBadge","entityStatus","_EntityStatusBadge"],"mappings":"AAAA,OAAOA,MAAW,QAClB,OAAS,MAAAC,MAAU,UACnB,OACE,OAAAC,MAIK,uBCPP,OAAOC,MAAY,yBACnB,OAAS,OAAAC,MAAW,UAIpB,IAAMC,EAAkB,CAAC,CAAE,QAAAC,CAAQ,IAA4C,CAC7E,OAAQA,OACD,WACH,MAAO,CACL,MAAOH,EAAO,SACd,gBAAiBA,EAAO,QAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,OACd,gBAAiBA,EAAO,MAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,MACG,YACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,iBACH,MAAO,CACL,MAAOA,EAAO,WACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,UAEA,MAAO,CAAC,EAEd,EAEMI,EAAe,CAAC,CAAE,KAAAC,CAAK,IAAsC,CACjE,OAAQA,OACD,QACH,MAAO,CACL,QAAS,OAAOL,EAAO,aACvB,SAAU,WACV,WAAY,WACZ,UAAW,MACb,UAEA,MAAO,CACL,QAAS,KAAKA,EAAO,YACrB,SAAU,qBAAqBA,EAAO,oBACtC,WAAY,OACZ,UAAW,MACb,EAEN,EAEaM,EAAiB,CAAC,CAC7B,QAAAH,EACA,KAAAE,CACF,IAISJ,EAAI,CACT,WAAYD,EAAO,iBACnB,WAAYA,EAAO,mBAEnB,cAAe,YACf,cACE,UACF,aAAc,GAAGA,EAAO,oBACxB,WAAY,SACZ,SAAU,SACV,aAAc,WACd,cAAe,SACf,GAAGE,EAAgB,CAAE,QAAAC,CAAQ,CAAC,EAC9B,GAAGC,EAAa,CAAE,KAAAC,CAAK,CAAC,CAC1B,CAAC,ED1DI,IAAME,EAAQV,EAAM,WACzB,CAACW,EAAOC,IAAQ,CACd,GAAM,CACJ,SAAAC,EACA,QAAAP,EAAU,UACV,KAAAE,EAAO,UACP,OAAAM,EAAS,cACT,UAAAC,KACGC,CACL,EAAIL,EAEJ,OACEX,EAAA,cAACE,EAAA,CACC,GAAG,MACH,OAAQY,EACR,QAAQ,eACR,UAAWb,EAAGQ,EAAe,CAAE,QAAAH,EAAS,KAAAE,CAAK,CAAC,EAAGO,CAAS,EACzD,GAAGC,EACJ,IAAKJ,GAEJC,CACH,CAEJ,CACF,EAEAH,EAAM,YAAc,QEvDpB,OAAOV,MAAW,QAMlB,IAAMiB,EAAqD,CACzD,UAAW,WACX,MAAO,UACP,SAAU,WACV,QAAS,UACT,QAAS,WACT,IAAK,gBACP,EAQA,SAASC,EACPP,EACAC,EACA,CACA,GAAM,CAAE,aAAAO,KAAiBH,CAAW,EAAIL,EAClCL,EAAUW,EAAUE,GAC1B,OACEnB,EAAA,cAACU,EAAA,CAAO,GAAGM,EAAY,QAASV,EAAS,IAAKM,GAC3CO,CACH,CAEJ,CAEAD,EAAkB,YAAc,oBAEhC,IAAME,EAAqBpB,EAAM,WAG/BkB,CAAiB","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport type { BadgeSize, BadgeVariant } from '../types';\nimport { getBadgeStyles } from './Badge.styles';\n\nexport interface BadgeInternalProps extends CommonProps {\n /**\n * Sets the size of the component\n * @default default\n */\n size?: BadgeSize;\n /**\n * Determines the variation of the component\n * @default primary\n */\n variant?: BadgeVariant;\n\n children: React.ReactNode;\n}\n\nexport type BadgeProps = PropsWithHTMLElement<BadgeInternalProps, 'div'>;\n\nexport const Badge = React.forwardRef<HTMLDivElement, ExpandProps<BadgeProps>>(\n (props, ref) => {\n const {\n children,\n variant = 'primary',\n size = 'default',\n testId = 'cf-ui-badge',\n className,\n ...otherProps\n } = props;\n\n return (\n <Box\n as=\"div\"\n testId={testId}\n display=\"inline-block\"\n className={cx(getBadgeStyles({ variant, size }), className)}\n {...otherProps}\n ref={ref}\n >\n {children}\n </Box>\n );\n },\n);\n\nBadge.displayName = 'Badge';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\nimport type { BadgeVariant, BadgeSize } from '../types';\nimport type { CSSObject } from '@emotion/serialize';\n\nconst variantToStyles = ({ variant }: { variant: BadgeVariant }): CSSObject => {\n switch (variant) {\n case 'positive':\n return {\n color: tokens.green600,\n backgroundColor: tokens.green200,\n };\n case 'primary':\n return {\n color: tokens.blue600,\n backgroundColor: tokens.blue200,\n };\n case 'negative':\n return {\n color: tokens.red600,\n backgroundColor: tokens.red200,\n };\n case 'warning':\n return {\n color: tokens.orange600,\n backgroundColor: tokens.orange200,\n };\n case 'secondary':\n return {\n color: tokens.gray700,\n backgroundColor: tokens.gray200,\n };\n case 'primary-filled':\n return {\n color: tokens.colorWhite,\n backgroundColor: tokens.blue600,\n };\n case 'featured':\n return {\n color: tokens.purple600,\n backgroundColor: tokens.purple200,\n };\n default:\n return {};\n }\n};\n\nconst sizeToStyles = ({ size }: { size: BadgeSize }): CSSObject => {\n switch (size) {\n case 'small':\n return {\n padding: `3px ${tokens.spacing2Xs}`,\n fontSize: '0.625rem',\n lineHeight: '0.625rem',\n maxHeight: '16px',\n };\n default:\n return {\n padding: `0 ${tokens.spacingXs}`,\n fontSize: `calc(1rem * (12 / ${tokens.fontBaseDefault}))`,\n lineHeight: '20px',\n maxHeight: '20px',\n };\n }\n};\n\nexport const getBadgeStyles = ({\n variant,\n size,\n}: {\n variant: BadgeVariant;\n size: BadgeSize;\n}) => {\n return css({\n fontFamily: tokens.fontStackPrimary,\n fontWeight: tokens.fontWeightDemiBold,\n\n textTransform: 'uppercase',\n letterSpacing:\n '0.06rem' /*move to tokens or update wide letter spacing token*/,\n borderRadius: `${tokens.borderRadiusSmall}`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n ...variantToStyles({ variant }),\n ...sizeToStyles({ size }),\n });\n};\n","import React from 'react';\nimport type { EntityStatus, ExpandProps } from '@contentful/f36-core';\n\nimport { Badge, type BadgeProps } from '../Badge/Badge';\nimport type { BadgeVariant, BadgeSize } from '../types';\n\nconst statusMap: { [key in EntityStatus]: BadgeVariant } = {\n published: 'positive',\n draft: 'warning',\n archived: 'negative',\n changed: 'primary',\n deleted: 'negative',\n new: 'primary-filled',\n};\n\nexport interface EntityStatusBadgeProps\n extends Omit<BadgeProps, 'variant' | 'children'> {\n size?: BadgeSize;\n entityStatus: EntityStatus;\n}\n\nfunction EntityStatusBadge(\n props: EntityStatusBadgeProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { entityStatus, ...otherProps } = props;\n const variant = statusMap[entityStatus];\n return (\n <Badge {...otherProps} variant={variant} ref={ref}>\n {entityStatus}\n </Badge>\n );\n}\n\nEntityStatusBadge.displayName = 'EntityStatusBadge';\n\nconst _EntityStatusBadge = React.forwardRef<\n HTMLDivElement,\n ExpandProps<EntityStatusBadgeProps>\n>(EntityStatusBadge);\nexport { _EntityStatusBadge as EntityStatusBadge };\n"]}
package/dist/index.js CHANGED
@@ -2,18 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var B = require('react');
5
+ var d = require('react');
6
6
  var emotion = require('emotion');
7
7
  var f36Core = require('@contentful/f36-core');
8
- var r = require('@contentful/f36-tokens');
8
+ var e = require('@contentful/f36-tokens');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
11
 
12
- var B__default = /*#__PURE__*/_interopDefaultLegacy(B);
13
- var r__default = /*#__PURE__*/_interopDefaultLegacy(r);
12
+ var d__default = /*#__PURE__*/_interopDefaultLegacy(d);
13
+ var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
14
14
 
15
- var P=Object.defineProperty,h=Object.defineProperties;var b=Object.getOwnPropertyDescriptors;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var m=(e,t,a)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,i=(e,t)=>{for(var a in t||(t={}))u.call(t,a)&&m(e,a,t[a]);if(s)for(var a of s(t))y.call(t,a)&&m(e,a,t[a]);return e},d=(e,t)=>h(e,b(t));var p=(e,t)=>{var a={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&s)for(var o of s(e))t.indexOf(o)<0&&y.call(e,o)&&(a[o]=e[o]);return a};var C=({variant:e})=>{switch(e){case"positive":return {color:r__default["default"].green600,backgroundColor:r__default["default"].green200};case"primary":return {color:r__default["default"].blue600,backgroundColor:r__default["default"].blue200};case"negative":return {color:r__default["default"].red600,backgroundColor:r__default["default"].red200};case"warning":return {color:r__default["default"].orange600,backgroundColor:r__default["default"].orange200};case"secondary":return {color:r__default["default"].gray700,backgroundColor:r__default["default"].gray200};case"primary-filled":return {color:r__default["default"].colorWhite,backgroundColor:r__default["default"].blue600};case"featured":return {color:r__default["default"].purple600,backgroundColor:r__default["default"].purple200};default:return {}}},k=({size:e})=>{switch(e){case"small":return {padding:`3px ${r__default["default"].spacing2Xs}`,fontSize:"0.625rem",lineHeight:"0.625rem",maxHeight:"16px"};default:return {padding:`0 ${r__default["default"].spacingXs}`,fontSize:`calc(1rem * (12 / ${r__default["default"].fontBaseDefault}))`,lineHeight:"20px",maxHeight:"20px"}}},f=({variant:e,size:t})=>emotion.css(i(i({fontFamily:r__default["default"].fontStackPrimary,fontWeight:r__default["default"].fontWeightDemiBold,textTransform:"uppercase",letterSpacing:"0.06rem",borderRadius:`${r__default["default"].borderRadiusSmall}`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle"},C({variant:e})),k({size:t})));var g=B__default["default"].forwardRef((e,t)=>{let c=e,{children:a,variant:o="primary",size:l="default",testId:n="cf-ui-badge",className:E}=c,v=p(c,["children","variant","size","testId","className"]);return B__default["default"].createElement(f36Core.Box,d(i({as:"div",testId:n,display:"inline-block",className:emotion.cx(f({variant:o,size:l}),E)},v),{ref:t}),a)});g.displayName="Badge";var R={published:"positive",draft:"warning",archived:"negative",changed:"primary",deleted:"negative",new:"primary-filled"};function x(e,t){let n=e,{entityStatus:a}=n,o=p(n,["entityStatus"]),l=R[a];return B__default["default"].createElement(g,d(i({},o),{variant:l,ref:t}),a)}x.displayName="EntityStatusBadge";var T=B__default["default"].forwardRef(x);
15
+ var y=({variant:t})=>{switch(t){case"positive":return {color:e__default["default"].green600,backgroundColor:e__default["default"].green200};case"primary":return {color:e__default["default"].blue600,backgroundColor:e__default["default"].blue200};case"negative":return {color:e__default["default"].red600,backgroundColor:e__default["default"].red200};case"warning":return {color:e__default["default"].orange600,backgroundColor:e__default["default"].orange200};case"secondary":return {color:e__default["default"].gray700,backgroundColor:e__default["default"].gray200};case"primary-filled":return {color:e__default["default"].colorWhite,backgroundColor:e__default["default"].blue600};case"featured":return {color:e__default["default"].purple600,backgroundColor:e__default["default"].purple200};default:return {}}},f=({size:t})=>{switch(t){case"small":return {padding:`3px ${e__default["default"].spacing2Xs}`,fontSize:"0.625rem",lineHeight:"0.625rem",maxHeight:"16px"};default:return {padding:`0 ${e__default["default"].spacingXs}`,fontSize:`calc(1rem * (12 / ${e__default["default"].fontBaseDefault}))`,lineHeight:"20px",maxHeight:"20px"}}},s=({variant:t,size:r})=>emotion.css({fontFamily:e__default["default"].fontStackPrimary,fontWeight:e__default["default"].fontWeightDemiBold,textTransform:"uppercase",letterSpacing:"0.06rem",borderRadius:`${e__default["default"].borderRadiusSmall}`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle",...y({variant:t}),...f({size:r})});var o=d__default["default"].forwardRef((t,r)=>{let{children:a,variant:i="primary",size:n="default",testId:l="cf-ui-badge",className:c,...m}=t;return d__default["default"].createElement(f36Core.Box,{as:"div",testId:l,display:"inline-block",className:emotion.cx(s({variant:i,size:n}),c),...m,ref:r},a)});o.displayName="Badge";var x={published:"positive",draft:"warning",archived:"negative",changed:"primary",deleted:"negative",new:"primary-filled"};function g(t,r){let{entityStatus:a,...i}=t,n=x[a];return d__default["default"].createElement(o,{...i,variant:n,ref:r},a)}g.displayName="EntityStatusBadge";var E=d__default["default"].forwardRef(g);
16
16
 
17
- exports.Badge = g;
18
- exports.EntityStatusBadge = T;
17
+ exports.Badge = o;
18
+ exports.EntityStatusBadge = E;
19
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Badge/Badge.tsx","../src/Badge/Badge.styles.ts","../src/EntityStatusBadge/EntityStatusBadge.tsx"],"names":["React","cx","Box","tokens","css","variantToStyles","variant","sizeToStyles","size","getBadgeStyles","__spreadValues","Badge","props","ref","_a","children","testId","className","otherProps","__objRest","__spreadProps","statusMap","EntityStatusBadge","entityStatus","_EntityStatusBadge"],"mappings":"+kBAAA,OAAOA,MAAW,QAClB,OAAS,MAAAC,MAAU,UACnB,OACE,OAAAC,MAIK,uBCPP,OAAOC,MAAY,yBACnB,OAAS,OAAAC,MAAW,UAIpB,IAAMC,EAAkB,CAAC,CAAE,QAAAC,CAAQ,IAA4C,CAC7E,OAAQA,OACD,WACH,MAAO,CACL,MAAOH,EAAO,SACd,gBAAiBA,EAAO,QAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,OACd,gBAAiBA,EAAO,MAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,MACG,YACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,iBACH,MAAO,CACL,MAAOA,EAAO,WACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,UAEA,MAAO,CAAC,EAEd,EAEMI,EAAe,CAAC,CAAE,KAAAC,CAAK,IAAsC,CACjE,OAAQA,OACD,QACH,MAAO,CACL,QAAS,OAAOL,EAAO,aACvB,SAAU,WACV,WAAY,WACZ,UAAW,MACb,UAEA,MAAO,CACL,QAAS,KAAKA,EAAO,YACrB,SAAU,qBAAqBA,EAAO,oBACtC,WAAY,OACZ,UAAW,MACb,EAEN,EAEaM,EAAiB,CAAC,CAC7B,QAAAH,EACA,KAAAE,CACF,IAISJ,EAAIM,IAAA,CACT,WAAYP,EAAO,iBACnB,WAAYA,EAAO,mBAEnB,cAAe,YACf,cACE,UACF,aAAc,GAAGA,EAAO,oBACxB,WAAY,SACZ,SAAU,SACV,aAAc,WACd,cAAe,UACZE,EAAgB,CAAE,QAAAC,CAAQ,CAAC,GAC3BC,EAAa,CAAE,KAAAC,CAAK,CAAC,EACzB,ED1DI,IAAMG,EAAQX,EAAM,WACzB,CAACY,EAAOC,IAAQ,CACd,IAOIC,EAAAF,EANF,UAAAG,EACA,QAAAT,EAAU,UACV,KAAAE,EAAO,UACP,OAAAQ,EAAS,cACT,UAAAC,CApCN,EAsCQH,EADCI,EAAAC,EACDL,EADC,CALH,WACA,UACA,OACA,SACA,cAIF,OACEd,EAAA,cAACE,EAAAkB,EAAAV,EAAA,CACC,GAAG,MACH,OAAQM,EACR,QAAQ,eACR,UAAWf,EAAGQ,EAAe,CAAE,QAAAH,EAAS,KAAAE,CAAK,CAAC,EAAGS,CAAS,GACtDC,GALL,CAMC,IAAKL,IAEJE,CACH,CAEJ,CACF,EAEAJ,EAAM,YAAc,QEvDpB,OAAOX,MAAW,QAMlB,IAAMqB,EAAqD,CACzD,UAAW,WACX,MAAO,UACP,SAAU,WACV,QAAS,UACT,QAAS,WACT,IAAK,gBACP,EAQA,SAASC,EACPV,EACAC,EACA,CACA,IAAwCC,EAAAF,EAAhC,cAAAW,CAzBV,EAyB0CT,EAAfI,EAAAC,EAAeL,EAAf,CAAjB,iBACFR,EAAUe,EAAUE,GAC1B,OACEvB,EAAA,cAACW,EAAAS,EAAAV,EAAA,GAAUQ,GAAV,CAAsB,QAASZ,EAAS,IAAKO,IAC3CU,CACH,CAEJ,CAEAD,EAAkB,YAAc,oBAEhC,IAAME,EAAqBxB,EAAM,WAG/BsB,CAAiB","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport type { BadgeSize, BadgeVariant } from '../types';\nimport { getBadgeStyles } from './Badge.styles';\n\nexport interface BadgeInternalProps extends CommonProps {\n /**\n * Sets the size of the component\n * @default default\n */\n size?: BadgeSize;\n /**\n * Determines the variation of the component\n * @default primary\n */\n variant?: BadgeVariant;\n\n children: React.ReactNode;\n}\n\nexport type BadgeProps = PropsWithHTMLElement<BadgeInternalProps, 'div'>;\n\nexport const Badge = React.forwardRef<HTMLDivElement, ExpandProps<BadgeProps>>(\n (props, ref) => {\n const {\n children,\n variant = 'primary',\n size = 'default',\n testId = 'cf-ui-badge',\n className,\n ...otherProps\n } = props;\n\n return (\n <Box\n as=\"div\"\n testId={testId}\n display=\"inline-block\"\n className={cx(getBadgeStyles({ variant, size }), className)}\n {...otherProps}\n ref={ref}\n >\n {children}\n </Box>\n );\n },\n);\n\nBadge.displayName = 'Badge';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\nimport type { BadgeVariant, BadgeSize } from '../types';\nimport type { CSSObject } from '@emotion/serialize';\n\nconst variantToStyles = ({ variant }: { variant: BadgeVariant }): CSSObject => {\n switch (variant) {\n case 'positive':\n return {\n color: tokens.green600,\n backgroundColor: tokens.green200,\n };\n case 'primary':\n return {\n color: tokens.blue600,\n backgroundColor: tokens.blue200,\n };\n case 'negative':\n return {\n color: tokens.red600,\n backgroundColor: tokens.red200,\n };\n case 'warning':\n return {\n color: tokens.orange600,\n backgroundColor: tokens.orange200,\n };\n case 'secondary':\n return {\n color: tokens.gray700,\n backgroundColor: tokens.gray200,\n };\n case 'primary-filled':\n return {\n color: tokens.colorWhite,\n backgroundColor: tokens.blue600,\n };\n case 'featured':\n return {\n color: tokens.purple600,\n backgroundColor: tokens.purple200,\n };\n default:\n return {};\n }\n};\n\nconst sizeToStyles = ({ size }: { size: BadgeSize }): CSSObject => {\n switch (size) {\n case 'small':\n return {\n padding: `3px ${tokens.spacing2Xs}`,\n fontSize: '0.625rem',\n lineHeight: '0.625rem',\n maxHeight: '16px',\n };\n default:\n return {\n padding: `0 ${tokens.spacingXs}`,\n fontSize: `calc(1rem * (12 / ${tokens.fontBaseDefault}))`,\n lineHeight: '20px',\n maxHeight: '20px',\n };\n }\n};\n\nexport const getBadgeStyles = ({\n variant,\n size,\n}: {\n variant: BadgeVariant;\n size: BadgeSize;\n}) => {\n return css({\n fontFamily: tokens.fontStackPrimary,\n fontWeight: tokens.fontWeightDemiBold,\n\n textTransform: 'uppercase',\n letterSpacing:\n '0.06rem' /*move to tokens or update wide letter spacing token*/,\n borderRadius: `${tokens.borderRadiusSmall}`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n ...variantToStyles({ variant }),\n ...sizeToStyles({ size }),\n });\n};\n","import React from 'react';\nimport type { EntityStatus, ExpandProps } from '@contentful/f36-core';\n\nimport { Badge, type BadgeProps } from '../Badge/Badge';\nimport type { BadgeVariant, BadgeSize } from '../types';\n\nconst statusMap: { [key in EntityStatus]: BadgeVariant } = {\n published: 'positive',\n draft: 'warning',\n archived: 'negative',\n changed: 'primary',\n deleted: 'negative',\n new: 'primary-filled',\n};\n\nexport interface EntityStatusBadgeProps\n extends Omit<BadgeProps, 'variant' | 'children'> {\n size?: BadgeSize;\n entityStatus: EntityStatus;\n}\n\nfunction EntityStatusBadge(\n props: EntityStatusBadgeProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { entityStatus, ...otherProps } = props;\n const variant = statusMap[entityStatus];\n return (\n <Badge {...otherProps} variant={variant} ref={ref}>\n {entityStatus}\n </Badge>\n );\n}\n\nEntityStatusBadge.displayName = 'EntityStatusBadge';\n\nconst _EntityStatusBadge = React.forwardRef<\n HTMLDivElement,\n ExpandProps<EntityStatusBadgeProps>\n>(EntityStatusBadge);\nexport { _EntityStatusBadge as EntityStatusBadge };\n"]}
1
+ {"version":3,"sources":["../src/Badge/Badge.tsx","../src/Badge/Badge.styles.ts","../src/EntityStatusBadge/EntityStatusBadge.tsx"],"names":["React","cx","Box","tokens","css","variantToStyles","variant","sizeToStyles","size","getBadgeStyles","Badge","props","ref","children","testId","className","otherProps","statusMap","EntityStatusBadge","entityStatus","_EntityStatusBadge"],"mappings":"AAAA,OAAOA,MAAW,QAClB,OAAS,MAAAC,MAAU,UACnB,OACE,OAAAC,MAIK,uBCPP,OAAOC,MAAY,yBACnB,OAAS,OAAAC,MAAW,UAIpB,IAAMC,EAAkB,CAAC,CAAE,QAAAC,CAAQ,IAA4C,CAC7E,OAAQA,OACD,WACH,MAAO,CACL,MAAOH,EAAO,SACd,gBAAiBA,EAAO,QAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,OACd,gBAAiBA,EAAO,MAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,MACG,YACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,iBACH,MAAO,CACL,MAAOA,EAAO,WACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,UAEA,MAAO,CAAC,EAEd,EAEMI,EAAe,CAAC,CAAE,KAAAC,CAAK,IAAsC,CACjE,OAAQA,OACD,QACH,MAAO,CACL,QAAS,OAAOL,EAAO,aACvB,SAAU,WACV,WAAY,WACZ,UAAW,MACb,UAEA,MAAO,CACL,QAAS,KAAKA,EAAO,YACrB,SAAU,qBAAqBA,EAAO,oBACtC,WAAY,OACZ,UAAW,MACb,EAEN,EAEaM,EAAiB,CAAC,CAC7B,QAAAH,EACA,KAAAE,CACF,IAISJ,EAAI,CACT,WAAYD,EAAO,iBACnB,WAAYA,EAAO,mBAEnB,cAAe,YACf,cACE,UACF,aAAc,GAAGA,EAAO,oBACxB,WAAY,SACZ,SAAU,SACV,aAAc,WACd,cAAe,SACf,GAAGE,EAAgB,CAAE,QAAAC,CAAQ,CAAC,EAC9B,GAAGC,EAAa,CAAE,KAAAC,CAAK,CAAC,CAC1B,CAAC,ED1DI,IAAME,EAAQV,EAAM,WACzB,CAACW,EAAOC,IAAQ,CACd,GAAM,CACJ,SAAAC,EACA,QAAAP,EAAU,UACV,KAAAE,EAAO,UACP,OAAAM,EAAS,cACT,UAAAC,KACGC,CACL,EAAIL,EAEJ,OACEX,EAAA,cAACE,EAAA,CACC,GAAG,MACH,OAAQY,EACR,QAAQ,eACR,UAAWb,EAAGQ,EAAe,CAAE,QAAAH,EAAS,KAAAE,CAAK,CAAC,EAAGO,CAAS,EACzD,GAAGC,EACJ,IAAKJ,GAEJC,CACH,CAEJ,CACF,EAEAH,EAAM,YAAc,QEvDpB,OAAOV,MAAW,QAMlB,IAAMiB,EAAqD,CACzD,UAAW,WACX,MAAO,UACP,SAAU,WACV,QAAS,UACT,QAAS,WACT,IAAK,gBACP,EAQA,SAASC,EACPP,EACAC,EACA,CACA,GAAM,CAAE,aAAAO,KAAiBH,CAAW,EAAIL,EAClCL,EAAUW,EAAUE,GAC1B,OACEnB,EAAA,cAACU,EAAA,CAAO,GAAGM,EAAY,QAASV,EAAS,IAAKM,GAC3CO,CACH,CAEJ,CAEAD,EAAkB,YAAc,oBAEhC,IAAME,EAAqBpB,EAAM,WAG/BkB,CAAiB","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport type { BadgeSize, BadgeVariant } from '../types';\nimport { getBadgeStyles } from './Badge.styles';\n\nexport interface BadgeInternalProps extends CommonProps {\n /**\n * Sets the size of the component\n * @default default\n */\n size?: BadgeSize;\n /**\n * Determines the variation of the component\n * @default primary\n */\n variant?: BadgeVariant;\n\n children: React.ReactNode;\n}\n\nexport type BadgeProps = PropsWithHTMLElement<BadgeInternalProps, 'div'>;\n\nexport const Badge = React.forwardRef<HTMLDivElement, ExpandProps<BadgeProps>>(\n (props, ref) => {\n const {\n children,\n variant = 'primary',\n size = 'default',\n testId = 'cf-ui-badge',\n className,\n ...otherProps\n } = props;\n\n return (\n <Box\n as=\"div\"\n testId={testId}\n display=\"inline-block\"\n className={cx(getBadgeStyles({ variant, size }), className)}\n {...otherProps}\n ref={ref}\n >\n {children}\n </Box>\n );\n },\n);\n\nBadge.displayName = 'Badge';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\nimport type { BadgeVariant, BadgeSize } from '../types';\nimport type { CSSObject } from '@emotion/serialize';\n\nconst variantToStyles = ({ variant }: { variant: BadgeVariant }): CSSObject => {\n switch (variant) {\n case 'positive':\n return {\n color: tokens.green600,\n backgroundColor: tokens.green200,\n };\n case 'primary':\n return {\n color: tokens.blue600,\n backgroundColor: tokens.blue200,\n };\n case 'negative':\n return {\n color: tokens.red600,\n backgroundColor: tokens.red200,\n };\n case 'warning':\n return {\n color: tokens.orange600,\n backgroundColor: tokens.orange200,\n };\n case 'secondary':\n return {\n color: tokens.gray700,\n backgroundColor: tokens.gray200,\n };\n case 'primary-filled':\n return {\n color: tokens.colorWhite,\n backgroundColor: tokens.blue600,\n };\n case 'featured':\n return {\n color: tokens.purple600,\n backgroundColor: tokens.purple200,\n };\n default:\n return {};\n }\n};\n\nconst sizeToStyles = ({ size }: { size: BadgeSize }): CSSObject => {\n switch (size) {\n case 'small':\n return {\n padding: `3px ${tokens.spacing2Xs}`,\n fontSize: '0.625rem',\n lineHeight: '0.625rem',\n maxHeight: '16px',\n };\n default:\n return {\n padding: `0 ${tokens.spacingXs}`,\n fontSize: `calc(1rem * (12 / ${tokens.fontBaseDefault}))`,\n lineHeight: '20px',\n maxHeight: '20px',\n };\n }\n};\n\nexport const getBadgeStyles = ({\n variant,\n size,\n}: {\n variant: BadgeVariant;\n size: BadgeSize;\n}) => {\n return css({\n fontFamily: tokens.fontStackPrimary,\n fontWeight: tokens.fontWeightDemiBold,\n\n textTransform: 'uppercase',\n letterSpacing:\n '0.06rem' /*move to tokens or update wide letter spacing token*/,\n borderRadius: `${tokens.borderRadiusSmall}`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n ...variantToStyles({ variant }),\n ...sizeToStyles({ size }),\n });\n};\n","import React from 'react';\nimport type { EntityStatus, ExpandProps } from '@contentful/f36-core';\n\nimport { Badge, type BadgeProps } from '../Badge/Badge';\nimport type { BadgeVariant, BadgeSize } from '../types';\n\nconst statusMap: { [key in EntityStatus]: BadgeVariant } = {\n published: 'positive',\n draft: 'warning',\n archived: 'negative',\n changed: 'primary',\n deleted: 'negative',\n new: 'primary-filled',\n};\n\nexport interface EntityStatusBadgeProps\n extends Omit<BadgeProps, 'variant' | 'children'> {\n size?: BadgeSize;\n entityStatus: EntityStatus;\n}\n\nfunction EntityStatusBadge(\n props: EntityStatusBadgeProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { entityStatus, ...otherProps } = props;\n const variant = statusMap[entityStatus];\n return (\n <Badge {...otherProps} variant={variant} ref={ref}>\n {entityStatus}\n </Badge>\n );\n}\n\nEntityStatusBadge.displayName = 'EntityStatusBadge';\n\nconst _EntityStatusBadge = React.forwardRef<\n HTMLDivElement,\n ExpandProps<EntityStatusBadgeProps>\n>(EntityStatusBadge);\nexport { _EntityStatusBadge as EntityStatusBadge };\n"]}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@contentful/f36-badge",
3
- "version": "4.18.0",
3
+ "version": "4.19.2",
4
4
  "description": "Forma 36: Badge React Component",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
9
  "main": "dist/index.js",
10
- "module": "dist/index.mjs",
10
+ "module": "dist/esm/index.js",
11
11
  "types": "dist/index.d.ts",
12
12
  "source": "src/index.ts",
13
13
  "sideEffects": false,
@@ -21,12 +21,12 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@babel/runtime": "^7.6.2",
24
- "@contentful/f36-core": "^4.18.0",
24
+ "@contentful/f36-core": "^4.19.2",
25
25
  "@contentful/f36-tokens": "^4.0.1",
26
26
  "emotion": "^10.0.17"
27
27
  },
28
28
  "devDependencies": {
29
- "@contentful/f36-typography": "^4.18.0"
29
+ "@contentful/f36-typography": "^4.19.2"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=16.8"
package/dist/index.mjs DELETED
@@ -1,9 +0,0 @@
1
- import B from 'react';
2
- import { cx, css } from 'emotion';
3
- import { Box } from '@contentful/f36-core';
4
- import r from '@contentful/f36-tokens';
5
-
6
- var P=Object.defineProperty,h=Object.defineProperties;var b=Object.getOwnPropertyDescriptors;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var m=(e,t,a)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,i=(e,t)=>{for(var a in t||(t={}))u.call(t,a)&&m(e,a,t[a]);if(s)for(var a of s(t))y.call(t,a)&&m(e,a,t[a]);return e},d=(e,t)=>h(e,b(t));var p=(e,t)=>{var a={};for(var o in e)u.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&s)for(var o of s(e))t.indexOf(o)<0&&y.call(e,o)&&(a[o]=e[o]);return a};var C=({variant:e})=>{switch(e){case"positive":return {color:r.green600,backgroundColor:r.green200};case"primary":return {color:r.blue600,backgroundColor:r.blue200};case"negative":return {color:r.red600,backgroundColor:r.red200};case"warning":return {color:r.orange600,backgroundColor:r.orange200};case"secondary":return {color:r.gray700,backgroundColor:r.gray200};case"primary-filled":return {color:r.colorWhite,backgroundColor:r.blue600};case"featured":return {color:r.purple600,backgroundColor:r.purple200};default:return {}}},k=({size:e})=>{switch(e){case"small":return {padding:`3px ${r.spacing2Xs}`,fontSize:"0.625rem",lineHeight:"0.625rem",maxHeight:"16px"};default:return {padding:`0 ${r.spacingXs}`,fontSize:`calc(1rem * (12 / ${r.fontBaseDefault}))`,lineHeight:"20px",maxHeight:"20px"}}},f=({variant:e,size:t})=>css(i(i({fontFamily:r.fontStackPrimary,fontWeight:r.fontWeightDemiBold,textTransform:"uppercase",letterSpacing:"0.06rem",borderRadius:`${r.borderRadiusSmall}`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"middle"},C({variant:e})),k({size:t})));var g=B.forwardRef((e,t)=>{let c=e,{children:a,variant:o="primary",size:l="default",testId:n="cf-ui-badge",className:E}=c,v=p(c,["children","variant","size","testId","className"]);return B.createElement(Box,d(i({as:"div",testId:n,display:"inline-block",className:cx(f({variant:o,size:l}),E)},v),{ref:t}),a)});g.displayName="Badge";var R={published:"positive",draft:"warning",archived:"negative",changed:"primary",deleted:"negative",new:"primary-filled"};function x(e,t){let n=e,{entityStatus:a}=n,o=p(n,["entityStatus"]),l=R[a];return B.createElement(g,d(i({},o),{variant:l,ref:t}),a)}x.displayName="EntityStatusBadge";var T=B.forwardRef(x);
7
-
8
- export { g as Badge, T as EntityStatusBadge };
9
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Badge/Badge.tsx","../src/Badge/Badge.styles.ts","../src/EntityStatusBadge/EntityStatusBadge.tsx"],"names":["React","cx","Box","tokens","css","variantToStyles","variant","sizeToStyles","size","getBadgeStyles","__spreadValues","Badge","props","ref","_a","children","testId","className","otherProps","__objRest","__spreadProps","statusMap","EntityStatusBadge","entityStatus","_EntityStatusBadge"],"mappings":"+kBAAA,OAAOA,MAAW,QAClB,OAAS,MAAAC,MAAU,UACnB,OACE,OAAAC,MAIK,uBCPP,OAAOC,MAAY,yBACnB,OAAS,OAAAC,MAAW,UAIpB,IAAMC,EAAkB,CAAC,CAAE,QAAAC,CAAQ,IAA4C,CAC7E,OAAQA,OACD,WACH,MAAO,CACL,MAAOH,EAAO,SACd,gBAAiBA,EAAO,QAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,OACd,gBAAiBA,EAAO,MAC1B,MACG,UACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,MACG,YACH,MAAO,CACL,MAAOA,EAAO,QACd,gBAAiBA,EAAO,OAC1B,MACG,iBACH,MAAO,CACL,MAAOA,EAAO,WACd,gBAAiBA,EAAO,OAC1B,MACG,WACH,MAAO,CACL,MAAOA,EAAO,UACd,gBAAiBA,EAAO,SAC1B,UAEA,MAAO,CAAC,EAEd,EAEMI,EAAe,CAAC,CAAE,KAAAC,CAAK,IAAsC,CACjE,OAAQA,OACD,QACH,MAAO,CACL,QAAS,OAAOL,EAAO,aACvB,SAAU,WACV,WAAY,WACZ,UAAW,MACb,UAEA,MAAO,CACL,QAAS,KAAKA,EAAO,YACrB,SAAU,qBAAqBA,EAAO,oBACtC,WAAY,OACZ,UAAW,MACb,EAEN,EAEaM,EAAiB,CAAC,CAC7B,QAAAH,EACA,KAAAE,CACF,IAISJ,EAAIM,IAAA,CACT,WAAYP,EAAO,iBACnB,WAAYA,EAAO,mBAEnB,cAAe,YACf,cACE,UACF,aAAc,GAAGA,EAAO,oBACxB,WAAY,SACZ,SAAU,SACV,aAAc,WACd,cAAe,UACZE,EAAgB,CAAE,QAAAC,CAAQ,CAAC,GAC3BC,EAAa,CAAE,KAAAC,CAAK,CAAC,EACzB,ED1DI,IAAMG,EAAQX,EAAM,WACzB,CAACY,EAAOC,IAAQ,CACd,IAOIC,EAAAF,EANF,UAAAG,EACA,QAAAT,EAAU,UACV,KAAAE,EAAO,UACP,OAAAQ,EAAS,cACT,UAAAC,CApCN,EAsCQH,EADCI,EAAAC,EACDL,EADC,CALH,WACA,UACA,OACA,SACA,cAIF,OACEd,EAAA,cAACE,EAAAkB,EAAAV,EAAA,CACC,GAAG,MACH,OAAQM,EACR,QAAQ,eACR,UAAWf,EAAGQ,EAAe,CAAE,QAAAH,EAAS,KAAAE,CAAK,CAAC,EAAGS,CAAS,GACtDC,GALL,CAMC,IAAKL,IAEJE,CACH,CAEJ,CACF,EAEAJ,EAAM,YAAc,QEvDpB,OAAOX,MAAW,QAMlB,IAAMqB,EAAqD,CACzD,UAAW,WACX,MAAO,UACP,SAAU,WACV,QAAS,UACT,QAAS,WACT,IAAK,gBACP,EAQA,SAASC,EACPV,EACAC,EACA,CACA,IAAwCC,EAAAF,EAAhC,cAAAW,CAzBV,EAyB0CT,EAAfI,EAAAC,EAAeL,EAAf,CAAjB,iBACFR,EAAUe,EAAUE,GAC1B,OACEvB,EAAA,cAACW,EAAAS,EAAAV,EAAA,GAAUQ,GAAV,CAAsB,QAASZ,EAAS,IAAKO,IAC3CU,CACH,CAEJ,CAEAD,EAAkB,YAAc,oBAEhC,IAAME,EAAqBxB,EAAM,WAG/BsB,CAAiB","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport type { BadgeSize, BadgeVariant } from '../types';\nimport { getBadgeStyles } from './Badge.styles';\n\nexport interface BadgeInternalProps extends CommonProps {\n /**\n * Sets the size of the component\n * @default default\n */\n size?: BadgeSize;\n /**\n * Determines the variation of the component\n * @default primary\n */\n variant?: BadgeVariant;\n\n children: React.ReactNode;\n}\n\nexport type BadgeProps = PropsWithHTMLElement<BadgeInternalProps, 'div'>;\n\nexport const Badge = React.forwardRef<HTMLDivElement, ExpandProps<BadgeProps>>(\n (props, ref) => {\n const {\n children,\n variant = 'primary',\n size = 'default',\n testId = 'cf-ui-badge',\n className,\n ...otherProps\n } = props;\n\n return (\n <Box\n as=\"div\"\n testId={testId}\n display=\"inline-block\"\n className={cx(getBadgeStyles({ variant, size }), className)}\n {...otherProps}\n ref={ref}\n >\n {children}\n </Box>\n );\n },\n);\n\nBadge.displayName = 'Badge';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\nimport type { BadgeVariant, BadgeSize } from '../types';\nimport type { CSSObject } from '@emotion/serialize';\n\nconst variantToStyles = ({ variant }: { variant: BadgeVariant }): CSSObject => {\n switch (variant) {\n case 'positive':\n return {\n color: tokens.green600,\n backgroundColor: tokens.green200,\n };\n case 'primary':\n return {\n color: tokens.blue600,\n backgroundColor: tokens.blue200,\n };\n case 'negative':\n return {\n color: tokens.red600,\n backgroundColor: tokens.red200,\n };\n case 'warning':\n return {\n color: tokens.orange600,\n backgroundColor: tokens.orange200,\n };\n case 'secondary':\n return {\n color: tokens.gray700,\n backgroundColor: tokens.gray200,\n };\n case 'primary-filled':\n return {\n color: tokens.colorWhite,\n backgroundColor: tokens.blue600,\n };\n case 'featured':\n return {\n color: tokens.purple600,\n backgroundColor: tokens.purple200,\n };\n default:\n return {};\n }\n};\n\nconst sizeToStyles = ({ size }: { size: BadgeSize }): CSSObject => {\n switch (size) {\n case 'small':\n return {\n padding: `3px ${tokens.spacing2Xs}`,\n fontSize: '0.625rem',\n lineHeight: '0.625rem',\n maxHeight: '16px',\n };\n default:\n return {\n padding: `0 ${tokens.spacingXs}`,\n fontSize: `calc(1rem * (12 / ${tokens.fontBaseDefault}))`,\n lineHeight: '20px',\n maxHeight: '20px',\n };\n }\n};\n\nexport const getBadgeStyles = ({\n variant,\n size,\n}: {\n variant: BadgeVariant;\n size: BadgeSize;\n}) => {\n return css({\n fontFamily: tokens.fontStackPrimary,\n fontWeight: tokens.fontWeightDemiBold,\n\n textTransform: 'uppercase',\n letterSpacing:\n '0.06rem' /*move to tokens or update wide letter spacing token*/,\n borderRadius: `${tokens.borderRadiusSmall}`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n ...variantToStyles({ variant }),\n ...sizeToStyles({ size }),\n });\n};\n","import React from 'react';\nimport type { EntityStatus, ExpandProps } from '@contentful/f36-core';\n\nimport { Badge, type BadgeProps } from '../Badge/Badge';\nimport type { BadgeVariant, BadgeSize } from '../types';\n\nconst statusMap: { [key in EntityStatus]: BadgeVariant } = {\n published: 'positive',\n draft: 'warning',\n archived: 'negative',\n changed: 'primary',\n deleted: 'negative',\n new: 'primary-filled',\n};\n\nexport interface EntityStatusBadgeProps\n extends Omit<BadgeProps, 'variant' | 'children'> {\n size?: BadgeSize;\n entityStatus: EntityStatus;\n}\n\nfunction EntityStatusBadge(\n props: EntityStatusBadgeProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { entityStatus, ...otherProps } = props;\n const variant = statusMap[entityStatus];\n return (\n <Badge {...otherProps} variant={variant} ref={ref}>\n {entityStatus}\n </Badge>\n );\n}\n\nEntityStatusBadge.displayName = 'EntityStatusBadge';\n\nconst _EntityStatusBadge = React.forwardRef<\n HTMLDivElement,\n ExpandProps<EntityStatusBadgeProps>\n>(EntityStatusBadge);\nexport { _EntityStatusBadge as EntityStatusBadge };\n"]}