@contentful/field-editor-shared 2.13.4 → 2.13.5

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.
@@ -10,38 +10,17 @@ Object.defineProperty(exports, "ReleaseEntityStatusBadge", {
10
10
  });
11
11
  const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
+ const _getReleaseStatusBadgeConfig = require("../utils/getReleaseStatusBadgeConfig");
13
14
  function _interop_require_default(obj) {
14
15
  return obj && obj.__esModule ? obj : {
15
16
  default: obj
16
17
  };
17
18
  }
18
- const config = {
19
- willPublish: {
20
- label: 'Will publish',
21
- variant: 'positive'
22
- },
23
- becomesDraft: {
24
- label: 'Becomes draft',
25
- variant: 'warning'
26
- },
27
- remainsDraft: {
28
- label: 'Remains draft',
29
- variant: 'warning'
30
- },
31
- notInRelease: {
32
- label: 'Not in release',
33
- variant: 'secondary'
34
- },
35
- published: {
36
- label: 'Published',
37
- variant: 'positive'
38
- }
39
- };
40
19
  function ReleaseEntityStatusBadge({ className, status }) {
41
- const badgeConfig = config[status];
20
+ const { label, variant } = (0, _getReleaseStatusBadgeConfig.getReleaseStatusBadgeConfig)(status);
42
21
  return /*#__PURE__*/ _react.default.createElement(_f36components.Badge, {
43
22
  testId: "release-entity-action-status",
44
23
  className: className,
45
- variant: badgeConfig.variant
46
- }, badgeConfig.label);
24
+ variant: variant
25
+ }, label);
47
26
  }
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "ReleaseEntityStatusLocale", {
11
11
  const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _core = require("@lingui/core");
14
15
  const _emotion = require("emotion");
15
16
  function _interop_require_default(obj) {
16
17
  return obj && obj.__esModule ? obj : {
@@ -34,6 +35,8 @@ const styles = {
34
35
  })
35
36
  };
36
37
  function ReleaseEntityStatusLocale({ locale, label, variant }) {
38
+ const localeCode = locale.code;
39
+ const isDefaultLocale = `${locale.default ? ', Default' : ''}`;
37
40
  return /*#__PURE__*/ _react.default.createElement("div", {
38
41
  className: styles.localePublishStatus,
39
42
  "data-test-id": "locale-publishing-status"
@@ -42,7 +45,14 @@ function ReleaseEntityStatusLocale({ locale, label, variant }) {
42
45
  fontColor: "gray700"
43
46
  }, locale.name, ' ', /*#__PURE__*/ _react.default.createElement(_f36components.Text, {
44
47
  fontColor: "gray500"
45
- }, "(", locale.code, ")", locale.default && ', Default')), /*#__PURE__*/ _react.default.createElement(_f36components.Badge, {
48
+ }, _core.i18n._({
49
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocale.LocaleCode",
50
+ message: "({localeCode}) {isDefaultLocale}",
51
+ values: {
52
+ localeCode: localeCode,
53
+ isDefaultLocale: isDefaultLocale
54
+ }
55
+ }))), /*#__PURE__*/ _react.default.createElement(_f36components.Badge, {
46
56
  className: styles.status,
47
57
  variant: variant
48
58
  }, label));
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "ReleaseEntityStatusLocalesList", {
10
10
  });
11
11
  const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
+ const _core = require("@lingui/core");
13
14
  const _lodash = require("lodash");
14
15
  const _Banner = require("./Banner");
15
16
  const _ReleaseEntityStatusLocale = require("./ReleaseEntityStatusLocale");
@@ -54,7 +55,7 @@ function ReleaseEntityStatusLocalesList({ statusMap, activeLocales }) {
54
55
  const entries = [
55
56
  ...statusMap.entries()
56
57
  ];
57
- const counters = entries.reduce((prev, [, { status }])=>({
58
+ const { willPublish, becomesDraft, remainsDraft } = entries.reduce((prev, [, { status }])=>({
58
59
  becomesDraft: prev.becomesDraft + (status === 'becomesDraft' ? 1 : 0),
59
60
  willPublish: prev.willPublish + (status === 'willPublish' ? 1 : 0),
60
61
  remainsDraft: prev.remainsDraft + (status === 'remainsDraft' ? 1 : 0)
@@ -65,18 +66,35 @@ function ReleaseEntityStatusLocalesList({ statusMap, activeLocales }) {
65
66
  });
66
67
  const { selected, nonSelected } = groupAndSortLocales(entries, activeLocales);
67
68
  return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_Banner.Banner, {
68
- content: "The statuses of the locales for this content:",
69
- highlight: `${counters.becomesDraft} becomes draft, ${counters.willPublish} will publish, ${counters.remainsDraft} remains draft`
69
+ content: _core.i18n._({
70
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.BannerContent",
71
+ message: "The statuses of the locales for this content:"
72
+ }),
73
+ highlight: _core.i18n._({
74
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.BannerHighlight",
75
+ message: "{becomesDraft} becomes draft, {willPublish} will publish, {remainsDraft} remains draft",
76
+ values: {
77
+ becomesDraft: becomesDraft,
78
+ willPublish: willPublish,
79
+ remainsDraft: remainsDraft
80
+ }
81
+ })
70
82
  }), /*#__PURE__*/ _react.default.createElement("div", {
71
83
  "data-test-id": "locale-publishing-selected"
72
- }, /*#__PURE__*/ _react.default.createElement(_f36components.MenuSectionTitle, null, "Locales in the entry editor:"), selected.map(({ locale, label, variant })=>/*#__PURE__*/ _react.default.createElement(_ReleaseEntityStatusLocale.ReleaseEntityStatusLocale, {
84
+ }, /*#__PURE__*/ _react.default.createElement(_f36components.MenuSectionTitle, null, _core.i18n._({
85
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.SelectedLocalesTitle",
86
+ message: "Locales in the entry editor:"
87
+ })), selected.map(({ locale, label, variant })=>/*#__PURE__*/ _react.default.createElement(_ReleaseEntityStatusLocale.ReleaseEntityStatusLocale, {
73
88
  key: `selected-${locale.code}`,
74
89
  label: label,
75
90
  variant: variant,
76
91
  locale: locale
77
92
  }))), nonSelected.length > 0 && /*#__PURE__*/ _react.default.createElement("div", {
78
93
  "data-test-id": "locale-publishing-others"
79
- }, /*#__PURE__*/ _react.default.createElement(_f36components.MenuSectionTitle, null, "Other locales:"), nonSelected.map(({ locale, label, variant })=>/*#__PURE__*/ _react.default.createElement(_ReleaseEntityStatusLocale.ReleaseEntityStatusLocale, {
94
+ }, /*#__PURE__*/ _react.default.createElement(_f36components.MenuSectionTitle, null, _core.i18n._({
95
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.OtherLocalesTitle",
96
+ message: "Other locales:"
97
+ })), nonSelected.map(({ locale, label, variant })=>/*#__PURE__*/ _react.default.createElement(_ReleaseEntityStatusLocale.ReleaseEntityStatusLocale, {
80
98
  key: `others-${locale.code}`,
81
99
  label: label,
82
100
  variant: variant,
@@ -13,7 +13,7 @@ const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
14
  const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
15
15
  const _emotion = require("emotion");
16
- const _constants = require("./constants");
16
+ const _getReleaseStatusBadgeConfig = require("../utils/getReleaseStatusBadgeConfig");
17
17
  const _ReleaseEntityStatusLocalesList = require("./ReleaseEntityStatusLocalesList");
18
18
  function _interop_require_default(obj) {
19
19
  return obj && obj.__esModule ? obj : {
@@ -63,7 +63,8 @@ function _interop_require_wildcard(obj, nodeInterop) {
63
63
  }
64
64
  const getColor = ({ secondary, tertiary, isHover })=>{
65
65
  const status = secondary || tertiary;
66
- return isHover ? _constants.RELEASE_BADGES[status]?.hover : _constants.RELEASE_BADGES[status]?.default;
66
+ const config = (0, _getReleaseStatusBadgeConfig.getReleaseStatusBadgeConfig)(status);
67
+ return isHover ? config?.hover : config?.default;
67
68
  };
68
69
  const generateDynamicStyles = (status)=>{
69
70
  const wrapperClass = (0, _emotion.css)({
@@ -210,6 +211,7 @@ function ReleaseEntityStatusPopover({ releaseStatusMap, activeLocales }) {
210
211
  const status = determineBadgeStatus(releaseStatusMap, activeLocales);
211
212
  const ariaLabel = status.secondary ? 'Multiple statuses' : status.primary;
212
213
  const wrapperClass = generateDynamicStyles(status);
214
+ const { label, icon, variant } = (0, _getReleaseStatusBadgeConfig.getReleaseStatusBadgeConfig)(status.primary);
213
215
  return /*#__PURE__*/ _react.default.createElement(_f36components.Popover, {
214
216
  isOpen: releaseStatusMap && isOpen,
215
217
  onClose: ()=>setIsOpen(false),
@@ -221,17 +223,17 @@ function ReleaseEntityStatusPopover({ releaseStatusMap, activeLocales }) {
221
223
  className: (0, _emotion.cx)(styles.wrapper, wrapperClass)
222
224
  }, /*#__PURE__*/ _react.default.createElement(_f36components.Badge, {
223
225
  tabIndex: 0,
224
- variant: _constants.RELEASE_BADGES[status.primary].variant,
226
+ variant: variant,
225
227
  onFocus: ()=>setIsOpen(true),
226
228
  onBlur: ()=>setIsOpen(false),
227
229
  endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.CaretDownIcon, {
228
230
  size: "tiny",
229
- color: _constants.RELEASE_BADGES[status.primary].icon
231
+ color: icon
230
232
  }),
231
233
  onMouseOver: onMouseEnter,
232
234
  onMouseEnter: onMouseEnter,
233
235
  onMouseLeave: onMouseLeave
234
- }, _constants.RELEASE_BADGES[status.primary].label), status.secondary && /*#__PURE__*/ _react.default.createElement("svg", {
236
+ }, label), status.secondary && /*#__PURE__*/ _react.default.createElement("svg", {
235
237
  "data-status": "secondary",
236
238
  "aria-hidden": "true",
237
239
  width: "4",
package/dist/cjs/index.js CHANGED
@@ -112,6 +112,7 @@ _export_star(require("./LocalePublishingEntityStatusBadge"), exports);
112
112
  _export_star(require("./ReleaseEntityStatusBadge"), exports);
113
113
  _export_star(require("./utils/determineReleaseAction"), exports);
114
114
  _export_star(require("./utils/getEntityReleaseStatus"), exports);
115
+ _export_star(require("./utils/getReleaseStatusBadgeConfig"), exports);
115
116
  function _export_star(from, to) {
116
117
  Object.keys(from).forEach(function(k) {
117
118
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getReleaseStatusBadgeConfig", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getReleaseStatusBadgeConfig;
9
+ }
10
+ });
11
+ const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
12
+ const _core = require("@lingui/core");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function getReleaseStatusBadgeConfig(status) {
19
+ switch(status){
20
+ case 'willPublish':
21
+ return {
22
+ label: _core.i18n._({
23
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.WillPublish",
24
+ message: "Will publish"
25
+ }),
26
+ variant: 'positive',
27
+ default: _f36tokens.default.green300,
28
+ hover: _f36tokens.default.green400,
29
+ icon: _f36tokens.default.green400
30
+ };
31
+ case 'becomesDraft':
32
+ return {
33
+ label: _core.i18n._({
34
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.BecomesDraft",
35
+ message: "Becomes draft"
36
+ }),
37
+ variant: 'warning',
38
+ default: _f36tokens.default.orange300,
39
+ hover: _f36tokens.default.orange400,
40
+ icon: _f36tokens.default.orange400
41
+ };
42
+ case 'remainsDraft':
43
+ return {
44
+ label: _core.i18n._({
45
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.RemainsDraft",
46
+ message: "Remains draft"
47
+ }),
48
+ variant: 'warning',
49
+ default: _f36tokens.default.orange300,
50
+ hover: _f36tokens.default.orange400,
51
+ icon: _f36tokens.default.orange400
52
+ };
53
+ case 'notInRelease':
54
+ return {
55
+ label: _core.i18n._({
56
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.NotInRelease",
57
+ message: "Not in release"
58
+ }),
59
+ variant: 'secondary',
60
+ default: _f36tokens.default.gray300,
61
+ hover: _f36tokens.default.gray400,
62
+ icon: _f36tokens.default.gray400
63
+ };
64
+ case 'published':
65
+ return {
66
+ label: _core.i18n._({
67
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.Published",
68
+ message: "Published"
69
+ }),
70
+ variant: 'positive',
71
+ default: _f36tokens.default.green300,
72
+ hover: _f36tokens.default.green400,
73
+ icon: _f36tokens.default.green400
74
+ };
75
+ }
76
+ }
@@ -1,32 +1,11 @@
1
1
  import React from 'react';
2
2
  import { Badge } from '@contentful/f36-components';
3
- const config = {
4
- willPublish: {
5
- label: 'Will publish',
6
- variant: 'positive'
7
- },
8
- becomesDraft: {
9
- label: 'Becomes draft',
10
- variant: 'warning'
11
- },
12
- remainsDraft: {
13
- label: 'Remains draft',
14
- variant: 'warning'
15
- },
16
- notInRelease: {
17
- label: 'Not in release',
18
- variant: 'secondary'
19
- },
20
- published: {
21
- label: 'Published',
22
- variant: 'positive'
23
- }
24
- };
3
+ import { getReleaseStatusBadgeConfig } from '../utils/getReleaseStatusBadgeConfig';
25
4
  export function ReleaseEntityStatusBadge({ className, status }) {
26
- const badgeConfig = config[status];
5
+ const { label, variant } = getReleaseStatusBadgeConfig(status);
27
6
  return /*#__PURE__*/ React.createElement(Badge, {
28
7
  testId: "release-entity-action-status",
29
8
  className: className,
30
- variant: badgeConfig.variant
31
- }, badgeConfig.label);
9
+ variant: variant
10
+ }, label);
32
11
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Badge, Text } from '@contentful/f36-components';
3
3
  import tokens from '@contentful/f36-tokens';
4
+ import { i18n as $_i18n } from "@lingui/core";
4
5
  import { css } from 'emotion';
5
6
  const styles = {
6
7
  locale: css({
@@ -19,6 +20,8 @@ const styles = {
19
20
  })
20
21
  };
21
22
  export function ReleaseEntityStatusLocale({ locale, label, variant }) {
23
+ const localeCode = locale.code;
24
+ const isDefaultLocale = `${locale.default ? ', Default' : ''}`;
22
25
  return /*#__PURE__*/ React.createElement("div", {
23
26
  className: styles.localePublishStatus,
24
27
  "data-test-id": "locale-publishing-status"
@@ -27,7 +30,14 @@ export function ReleaseEntityStatusLocale({ locale, label, variant }) {
27
30
  fontColor: "gray700"
28
31
  }, locale.name, ' ', /*#__PURE__*/ React.createElement(Text, {
29
32
  fontColor: "gray500"
30
- }, "(", locale.code, ")", locale.default && ', Default')), /*#__PURE__*/ React.createElement(Badge, {
33
+ }, $_i18n._({
34
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocale.LocaleCode",
35
+ message: "({localeCode}) {isDefaultLocale}",
36
+ values: {
37
+ localeCode: localeCode,
38
+ isDefaultLocale: isDefaultLocale
39
+ }
40
+ }))), /*#__PURE__*/ React.createElement(Badge, {
31
41
  className: styles.status,
32
42
  variant: variant
33
43
  }, label));
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { MenuSectionTitle } from '@contentful/f36-components';
3
+ import { i18n as $_i18n } from "@lingui/core";
3
4
  import { sortBy } from 'lodash';
4
5
  import { Banner } from './Banner';
5
6
  import { ReleaseEntityStatusLocale } from './ReleaseEntityStatusLocale';
@@ -39,7 +40,7 @@ export function ReleaseEntityStatusLocalesList({ statusMap, activeLocales }) {
39
40
  const entries = [
40
41
  ...statusMap.entries()
41
42
  ];
42
- const counters = entries.reduce((prev, [, { status }])=>({
43
+ const { willPublish, becomesDraft, remainsDraft } = entries.reduce((prev, [, { status }])=>({
43
44
  becomesDraft: prev.becomesDraft + (status === 'becomesDraft' ? 1 : 0),
44
45
  willPublish: prev.willPublish + (status === 'willPublish' ? 1 : 0),
45
46
  remainsDraft: prev.remainsDraft + (status === 'remainsDraft' ? 1 : 0)
@@ -50,18 +51,35 @@ export function ReleaseEntityStatusLocalesList({ statusMap, activeLocales }) {
50
51
  });
51
52
  const { selected, nonSelected } = groupAndSortLocales(entries, activeLocales);
52
53
  return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Banner, {
53
- content: "The statuses of the locales for this content:",
54
- highlight: `${counters.becomesDraft} becomes draft, ${counters.willPublish} will publish, ${counters.remainsDraft} remains draft`
54
+ content: $_i18n._({
55
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.BannerContent",
56
+ message: "The statuses of the locales for this content:"
57
+ }),
58
+ highlight: $_i18n._({
59
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.BannerHighlight",
60
+ message: "{becomesDraft} becomes draft, {willPublish} will publish, {remainsDraft} remains draft",
61
+ values: {
62
+ becomesDraft: becomesDraft,
63
+ willPublish: willPublish,
64
+ remainsDraft: remainsDraft
65
+ }
66
+ })
55
67
  }), /*#__PURE__*/ React.createElement("div", {
56
68
  "data-test-id": "locale-publishing-selected"
57
- }, /*#__PURE__*/ React.createElement(MenuSectionTitle, null, "Locales in the entry editor:"), selected.map(({ locale, label, variant })=>/*#__PURE__*/ React.createElement(ReleaseEntityStatusLocale, {
69
+ }, /*#__PURE__*/ React.createElement(MenuSectionTitle, null, $_i18n._({
70
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.SelectedLocalesTitle",
71
+ message: "Locales in the entry editor:"
72
+ })), selected.map(({ locale, label, variant })=>/*#__PURE__*/ React.createElement(ReleaseEntityStatusLocale, {
58
73
  key: `selected-${locale.code}`,
59
74
  label: label,
60
75
  variant: variant,
61
76
  locale: locale
62
77
  }))), nonSelected.length > 0 && /*#__PURE__*/ React.createElement("div", {
63
78
  "data-test-id": "locale-publishing-others"
64
- }, /*#__PURE__*/ React.createElement(MenuSectionTitle, null, "Other locales:"), nonSelected.map(({ locale, label, variant })=>/*#__PURE__*/ React.createElement(ReleaseEntityStatusLocale, {
79
+ }, /*#__PURE__*/ React.createElement(MenuSectionTitle, null, $_i18n._({
80
+ id: "FieldEditors.Shared.ReleaseEntityStatusLocalesList.OtherLocalesTitle",
81
+ message: "Other locales:"
82
+ })), nonSelected.map(({ locale, label, variant })=>/*#__PURE__*/ React.createElement(ReleaseEntityStatusLocale, {
65
83
  key: `others-${locale.code}`,
66
84
  label: label,
67
85
  variant: variant,
@@ -2,12 +2,13 @@ import React, { useCallback, useRef, useState } from 'react';
2
2
  import { Badge, Flex, Popover } from '@contentful/f36-components';
3
3
  import { CaretDownIcon } from '@contentful/f36-icons';
4
4
  import tokens from '@contentful/f36-tokens';
5
- import { cx, css } from 'emotion';
6
- import { RELEASE_BADGES } from './constants';
5
+ import { css, cx } from 'emotion';
6
+ import { getReleaseStatusBadgeConfig } from '../utils/getReleaseStatusBadgeConfig';
7
7
  import { ReleaseEntityStatusLocalesList } from './ReleaseEntityStatusLocalesList';
8
8
  const getColor = ({ secondary, tertiary, isHover })=>{
9
9
  const status = secondary || tertiary;
10
- return isHover ? RELEASE_BADGES[status]?.hover : RELEASE_BADGES[status]?.default;
10
+ const config = getReleaseStatusBadgeConfig(status);
11
+ return isHover ? config?.hover : config?.default;
11
12
  };
12
13
  const generateDynamicStyles = (status)=>{
13
14
  const wrapperClass = css({
@@ -154,6 +155,7 @@ export function ReleaseEntityStatusPopover({ releaseStatusMap, activeLocales })
154
155
  const status = determineBadgeStatus(releaseStatusMap, activeLocales);
155
156
  const ariaLabel = status.secondary ? 'Multiple statuses' : status.primary;
156
157
  const wrapperClass = generateDynamicStyles(status);
158
+ const { label, icon, variant } = getReleaseStatusBadgeConfig(status.primary);
157
159
  return /*#__PURE__*/ React.createElement(Popover, {
158
160
  isOpen: releaseStatusMap && isOpen,
159
161
  onClose: ()=>setIsOpen(false),
@@ -165,17 +167,17 @@ export function ReleaseEntityStatusPopover({ releaseStatusMap, activeLocales })
165
167
  className: cx(styles.wrapper, wrapperClass)
166
168
  }, /*#__PURE__*/ React.createElement(Badge, {
167
169
  tabIndex: 0,
168
- variant: RELEASE_BADGES[status.primary].variant,
170
+ variant: variant,
169
171
  onFocus: ()=>setIsOpen(true),
170
172
  onBlur: ()=>setIsOpen(false),
171
173
  endIcon: /*#__PURE__*/ React.createElement(CaretDownIcon, {
172
174
  size: "tiny",
173
- color: RELEASE_BADGES[status.primary].icon
175
+ color: icon
174
176
  }),
175
177
  onMouseOver: onMouseEnter,
176
178
  onMouseEnter: onMouseEnter,
177
179
  onMouseLeave: onMouseLeave
178
- }, RELEASE_BADGES[status.primary].label), status.secondary && /*#__PURE__*/ React.createElement("svg", {
180
+ }, label), status.secondary && /*#__PURE__*/ React.createElement("svg", {
179
181
  "data-status": "secondary",
180
182
  "aria-hidden": "true",
181
183
  width: "4",
package/dist/esm/index.js CHANGED
@@ -19,3 +19,4 @@ export * from './LocalePublishingEntityStatusBadge';
19
19
  export * from './ReleaseEntityStatusBadge';
20
20
  export * from './utils/determineReleaseAction';
21
21
  export * from './utils/getEntityReleaseStatus';
22
+ export * from './utils/getReleaseStatusBadgeConfig';
@@ -0,0 +1,61 @@
1
+ import tokens from '@contentful/f36-tokens';
2
+ import { i18n as $_i18n } from "@lingui/core";
3
+ export function getReleaseStatusBadgeConfig(status) {
4
+ switch(status){
5
+ case 'willPublish':
6
+ return {
7
+ label: $_i18n._({
8
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.WillPublish",
9
+ message: "Will publish"
10
+ }),
11
+ variant: 'positive',
12
+ default: tokens.green300,
13
+ hover: tokens.green400,
14
+ icon: tokens.green400
15
+ };
16
+ case 'becomesDraft':
17
+ return {
18
+ label: $_i18n._({
19
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.BecomesDraft",
20
+ message: "Becomes draft"
21
+ }),
22
+ variant: 'warning',
23
+ default: tokens.orange300,
24
+ hover: tokens.orange400,
25
+ icon: tokens.orange400
26
+ };
27
+ case 'remainsDraft':
28
+ return {
29
+ label: $_i18n._({
30
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.RemainsDraft",
31
+ message: "Remains draft"
32
+ }),
33
+ variant: 'warning',
34
+ default: tokens.orange300,
35
+ hover: tokens.orange400,
36
+ icon: tokens.orange400
37
+ };
38
+ case 'notInRelease':
39
+ return {
40
+ label: $_i18n._({
41
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.NotInRelease",
42
+ message: "Not in release"
43
+ }),
44
+ variant: 'secondary',
45
+ default: tokens.gray300,
46
+ hover: tokens.gray400,
47
+ icon: tokens.gray400
48
+ };
49
+ case 'published':
50
+ return {
51
+ label: $_i18n._({
52
+ id: "FieldEditors.Shared.ReleaseEntityStatusBadge.Published",
53
+ message: "Published"
54
+ }),
55
+ variant: 'positive',
56
+ default: tokens.green300,
57
+ hover: tokens.green400,
58
+ icon: tokens.green400
59
+ };
60
+ }
61
+ }
@@ -21,3 +21,4 @@ export * from './LocalePublishingEntityStatusBadge';
21
21
  export * from './ReleaseEntityStatusBadge';
22
22
  export * from './utils/determineReleaseAction';
23
23
  export * from './utils/getEntityReleaseStatus';
24
+ export * from './utils/getReleaseStatusBadgeConfig';
@@ -0,0 +1,9 @@
1
+ import { BadgeVariant } from '@contentful/f36-components';
2
+ import { ReleaseEntityStatus } from 'types';
3
+ export declare function getReleaseStatusBadgeConfig(status: ReleaseEntityStatus): {
4
+ label: string;
5
+ variant: BadgeVariant;
6
+ default: string;
7
+ hover: string;
8
+ icon: string;
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/field-editor-shared",
3
- "version": "2.13.4",
3
+ "version": "2.13.5",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -58,5 +58,5 @@
58
58
  "publishConfig": {
59
59
  "registry": "https://npm.pkg.github.com/"
60
60
  },
61
- "gitHead": "6b347423eb0afd1ec8af88f48298db3201b8246a"
61
+ "gitHead": "0534746626483359387c34f48952d76f90be6e1f"
62
62
  }