@contentful/default-field-editors 0.10.3 → 1.0.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/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0](https://github.com/contentful/field-editors/compare/@contentful/default-field-editors@0.11.0...@contentful/default-field-editors@1.0.0) (2021-11-04)
7
+
8
+ **Note:** Version bump only for package @contentful/default-field-editors
9
+
10
+ # [0.11.0](https://github.com/contentful/field-editors/compare/@contentful/default-field-editors@0.10.3...@contentful/default-field-editors@0.11.0) (2021-11-04)
11
+
12
+ ### Features
13
+
14
+ - Forma v4 components adoption ([#805](https://github.com/contentful/field-editors/issues/805)) ([526bde6](https://github.com/contentful/field-editors/commit/526bde6e10e0ee3789705ec10fb31489af7ca59e))
15
+
16
+ ### BREAKING CHANGES
17
+
18
+ - adopts a new Forma v4 beta
19
+
6
20
  ## [0.10.3](https://github.com/contentful/field-editors/compare/@contentful/default-field-editors@0.10.2...@contentful/default-field-editors@0.10.3) (2021-11-01)
7
21
 
8
22
  **Note:** Version bump only for package @contentful/default-field-editors
package/README.md CHANGED
@@ -10,7 +10,6 @@ This package provides React components for rendering all supported field editors
10
10
 
11
11
  ```js
12
12
  import 'codemirror/lib/codemirror.css';
13
- import '@contentful/forma-36-react-components/dist/styles.css';
14
13
  import '@contentful/field-editor-date/styles/styles.css';
15
14
  import { Field, FieldWrapper } from 'packages/default-field-editors';
16
15
 
@@ -24,9 +24,9 @@ var fieldEditorReference = require('@contentful/field-editor-reference');
24
24
  var fieldEditorRichText = require('@contentful/field-editor-rich-text');
25
25
  var fieldEditorMarkdown = require('@contentful/field-editor-markdown');
26
26
  var emotion = require('emotion');
27
- var forma36ReactComponents = require('@contentful/forma-36-react-components');
27
+ var f36Components = require('@contentful/f36-components');
28
28
  var fieldEditorValidationErrors = require('@contentful/field-editor-validation-errors');
29
- var tokens = _interopDefault(require('@contentful/forma-36-tokens'));
29
+ var tokens = _interopDefault(require('@contentful/f36-tokens'));
30
30
 
31
31
  function _extends() {
32
32
  _extends = Object.assign || function (target) {
@@ -245,7 +245,6 @@ var FieldWrapper = function FieldWrapper(props) {
245
245
  getEntryURL = _props$getEntryURL === void 0 ? defaultGetEntryUrl : _props$getEntryURL;
246
246
  var field = sdk.field;
247
247
  var helpText = (_sdk$parameters$insta = (_sdk$parameters = sdk.parameters) == null ? void 0 : (_sdk$parameters$insta2 = _sdk$parameters.instance) == null ? void 0 : _sdk$parameters$insta2.helpText) != null ? _sdk$parameters$insta : '';
248
- var required = field.required;
249
248
 
250
249
  var _React$useState = React.useState(false),
251
250
  hasErrors = _React$useState[0],
@@ -256,22 +255,23 @@ var FieldWrapper = function FieldWrapper(props) {
256
255
  setHasErrors((errors || []).length > 0);
257
256
  });
258
257
  }, [field]);
259
- return React.createElement(forma36ReactComponents.FieldGroup, {
258
+ return React.createElement(f36Components.FormControl, {
260
259
  testId: "entity-field-controls",
261
260
  "data-test-id": "entity-field-controls",
262
261
  className: emotion.cx(showFocusBar && styles.withFocusBar, className),
263
- "aria-invalid": hasErrors
264
- }, renderHeading ? renderHeading(name) : React.createElement(forma36ReactComponents.FormLabel, {
262
+ "aria-invalid": hasErrors,
263
+ isRequired: field.required
264
+ }, renderHeading ? renderHeading(name) : React.createElement(f36Components.FormControl.Label, {
265
265
  className: styles.label,
266
266
  htmlFor: field.id
267
- }, name, required && React.createElement("span", null, " (required)")), children, React.createElement(fieldEditorValidationErrors.ValidationErrors, {
267
+ }, name), children, React.createElement(fieldEditorValidationErrors.ValidationErrors, {
268
268
  field: field,
269
269
  space: sdk.space,
270
270
  locales: sdk.locales,
271
271
  getEntryURL: getEntryURL || defaultGetEntryUrl
272
- }), renderHelpText ? renderHelpText(helpText) : React.createElement(forma36ReactComponents.HelpText, {
273
- className: styles.helpText,
274
- testId: "field-hint"
272
+ }), renderHelpText ? renderHelpText(helpText) : React.createElement(f36Components.FormControl.HelpText, {
273
+ testId: "field-hint",
274
+ className: styles.helpText
275
275
  }, helpText));
276
276
  };
277
277
 
@@ -1 +1 @@
1
- {"version":3,"file":"default-field-editors.cjs.development.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/forma-36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { HelpText, FieldGroup, FormLabel } from '@contentful/forma-36-react-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n const required = field.required;\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FieldGroup\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormLabel className={styles.label} htmlFor={field.id}>\n {name}\n {required && <span> (required)</span>}\n </FormLabel>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <HelpText className={styles.helpText} testId=\"field-hint\">\n {helpText}\n </HelpText>\n )}\n </FieldGroup>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","hasInValidation","validations","find","v","includes","items","linkType","displayFieldId","contentType","displayField","isTextField","isDisplayField","id","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","Field","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","referenceEditorParams","parameters","instance","showCreateEntityAction","showLinkEntityAction","WidgetComponent","widgetStaticProps","widgetComponentProps","baseSdk","undefined","React","key","locale","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","FieldWrapper","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","required","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FieldGroup","testId","cx","FormLabel","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
1
+ {"version":3,"file":"default-field-editors.cjs.development.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { FormControl } from '@contentful/f36-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FormControl\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}\n isRequired={field.required}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormControl.Label className={styles.label} htmlFor={field.id}>\n {name}\n </FormControl.Label>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <FormControl.HelpText testId=\"field-hint\" className={styles.helpText}>\n {helpText}\n </FormControl.HelpText>\n )}\n </FormControl>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","hasInValidation","validations","find","v","includes","items","linkType","displayFieldId","contentType","displayField","isTextField","isDisplayField","id","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","Field","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","referenceEditorParams","parameters","instance","showCreateEntityAction","showLinkEntityAction","WidgetComponent","widgetStaticProps","widgetComponentProps","baseSdk","undefined","React","key","locale","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","FieldWrapper","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FormControl","testId","cx","isRequired","required","Label","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),i=require("@contentful/field-editor-number"),r=require("@contentful/field-editor-single-line"),n=require("@contentful/field-editor-boolean"),o=require("@contentful/field-editor-date"),l=require("@contentful/field-editor-location"),d=require("@contentful/field-editor-json"),a=require("@contentful/field-editor-multiple-line"),s=require("@contentful/field-editor-tags"),c=require("@contentful/field-editor-slug"),u=require("@contentful/field-editor-dropdown"),f=require("@contentful/field-editor-url"),E=require("@contentful/field-editor-radio"),p=require("@contentful/field-editor-rating"),m=require("@contentful/field-editor-checkbox"),g=require("@contentful/field-editor-list"),y=require("@contentful/field-editor-reference"),h=require("@contentful/field-editor-rich-text"),b=require("@contentful/field-editor-markdown"),v=require("emotion"),k=require("@contentful/forma-36-react-components"),L=require("@contentful/field-editor-validation-errors"),x=(e=require("@contentful/forma-36-tokens"))&&"object"==typeof e&&"default"in e?e.default:e;function w(){return(w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e}).apply(this,arguments)}var q=["Text","Symbol","Integer","Number","Boolean"],T={Text:"markdown",Symbol:"singleLine",Integer:"numberEditor",Number:"numberEditor",Boolean:"boolean",Date:"datePicker",Location:"locationEditor",Object:"objectEditor",RichText:"richTextEditor",Symbols:"tagEditor",File:"fileEditor"};function S(e){var t,i=e.field,r=i.type;return(i.validations||[]).find((function(e){return"in"in e}))&&q.includes(r)?"dropdown":"Array"===r?"Asset"===(null==(t=i.items)?void 0:t.linkType)?"assetLinksEditor":"entryLinksEditor":"Link"===r?"Asset"===i.linkType?"assetLinkEditor":"entryLinkEditor":"Text"===r&&i.id===e.contentType.displayField?"singleLine":T[r]}var M={multipleLine:[a.MultipleLineEditor],boolean:[n.BooleanEditor],objectEditor:[d.JsonEditor],datePicker:[o.DateEditor],locationEditor:[l.LocationEditor],checkbox:[m.CheckboxEditor],listInput:[g.ListEditor],rating:[p.RatingEditor],radio:[E.RadioEditor],tagEditor:[s.TagsEditor],numberEditor:[i.NumberEditor],urlEditor:[f.UrlEditor],slugEditor:[c.SlugEditor],singleLine:[r.SingleLineEditor],dropdown:[u.DropdownEditor],entryLinkEditor:[y.SingleEntryReferenceEditor,{viewType:"link",hasCardEditActions:!0}],entryCardEditor:[y.SingleEntryReferenceEditor,{viewType:"card",hasCardEditActions:!0}],entryLinksEditor:[y.MultipleEntryReferenceEditor,{viewType:"link",hasCardEditActions:!0}],entryCardsEditor:[y.MultipleEntryReferenceEditor,{viewType:"card",hasCardEditActions:!0}],assetLinkEditor:[y.SingleMediaEditor,{viewType:"link"}],assetLinksEditor:[y.MultipleMediaEditor,{viewType:"link"}],assetGalleryEditor:[y.MultipleMediaEditor,{viewType:"card"}],richTextEditor:[h.RichTextEditor],markdown:[b.MarkdownEditor]},C={withFocusBar:v.css({marginLeft:x.spacingL,marginRight:x.spacingL,marginBottom:"29px",marginTop:"19px",paddingLeft:x.spacingM,borderLeft:"3px solid "+x.gray300,transition:"border-color 0.18s linear","&:focus-within":{borderColor:x.colorPrimary},'&[aria-invalid="true"]':{borderLeftColor:x.red500}}),label:v.css({display:"flex",width:"100%",maxWidth:"800px",color:x.gray500,fontSize:x.fontSizeM,fontWeight:x.fontWeightNormal,lineHeight:x.lineHeightDefault,whiteSpace:"pre-wrap"}),helpText:v.css({margin:x.spacingXs+" 0",fontStyle:"italic"})};exports.Field=function(e){var i=e.sdk,r=e.widgetId,n=e.isInitiallyDisabled,o=void 0!==n&&n,l=e.renderFieldEditor,d=e.getOptions,a=i.field,s=i.locales,c=null!=r?r:S(i);if(l){var u=l(c,i,o);if(u)return u}var f=d?d(c,i):{};if(!M[c])return null;var E=M[c],p=E[0],m=w({sdk:i,field:a,locales:s,isInitiallyDisabled:o,parameters:i.parameters&&"instance"in i.parameters?i.parameters:{instance:{showCreateEntityAction:!0,showLinkEntityAction:!0}}},E[1],f[c]);return t.createElement(p,Object.assign({key:i.field.locale},m,{baseSdk:"slugEditor"===c?i:void 0}))},exports.FieldWrapper=function(e){var i,r,n,o=e.sdk.ids,l=function(e){return"/spaces/"+o.space+"/environments/"+(o.environmentAlias||o.environment)+"/entries/"+e.sys.id},d=e.name,a=e.sdk,s=e.className,c=e.children,u=e.renderHeading,f=e.renderHelpText,E=e.showFocusBar,p=void 0===E||E,m=e.getEntryURL,g=void 0===m?l:m,y=a.field,h=null!=(i=null==(r=a.parameters)||null==(n=r.instance)?void 0:n.helpText)?i:"",b=y.required,x=t.useState(!1),w=x[0],q=x[1];return t.useEffect((function(){return y.onSchemaErrorsChanged((function(e){q((e||[]).length>0)}))}),[y]),t.createElement(k.FieldGroup,{testId:"entity-field-controls","data-test-id":"entity-field-controls",className:v.cx(p&&C.withFocusBar,s),"aria-invalid":w},u?u(d):t.createElement(k.FormLabel,{className:C.label,htmlFor:y.id},d,b&&t.createElement("span",null," (required)")),c,t.createElement(L.ValidationErrors,{field:y,space:a.space,locales:a.locales,getEntryURL:g||l}),f?f(h):t.createElement(k.HelpText,{className:C.helpText,testId:"field-hint"},h))},exports.getDefaultWidgetId=S;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),i=require("@contentful/field-editor-number"),r=require("@contentful/field-editor-single-line"),n=require("@contentful/field-editor-boolean"),o=require("@contentful/field-editor-date"),l=require("@contentful/field-editor-location"),d=require("@contentful/field-editor-json"),a=require("@contentful/field-editor-multiple-line"),s=require("@contentful/field-editor-tags"),c=require("@contentful/field-editor-slug"),u=require("@contentful/field-editor-dropdown"),f=require("@contentful/field-editor-url"),E=require("@contentful/field-editor-radio"),p=require("@contentful/field-editor-rating"),g=require("@contentful/field-editor-checkbox"),m=require("@contentful/field-editor-list"),y=require("@contentful/field-editor-reference"),h=require("@contentful/field-editor-rich-text"),b=require("@contentful/field-editor-markdown"),v=require("emotion"),k=require("@contentful/f36-components"),L=require("@contentful/field-editor-validation-errors"),x=(e=require("@contentful/f36-tokens"))&&"object"==typeof e&&"default"in e?e.default:e;function w(){return(w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e}).apply(this,arguments)}var q=["Text","Symbol","Integer","Number","Boolean"],T={Text:"markdown",Symbol:"singleLine",Integer:"numberEditor",Number:"numberEditor",Boolean:"boolean",Date:"datePicker",Location:"locationEditor",Object:"objectEditor",RichText:"richTextEditor",Symbols:"tagEditor",File:"fileEditor"};function S(e){var t,i=e.field,r=i.type;return(i.validations||[]).find((function(e){return"in"in e}))&&q.includes(r)?"dropdown":"Array"===r?"Asset"===(null==(t=i.items)?void 0:t.linkType)?"assetLinksEditor":"entryLinksEditor":"Link"===r?"Asset"===i.linkType?"assetLinkEditor":"entryLinkEditor":"Text"===r&&i.id===e.contentType.displayField?"singleLine":T[r]}var C={multipleLine:[a.MultipleLineEditor],boolean:[n.BooleanEditor],objectEditor:[d.JsonEditor],datePicker:[o.DateEditor],locationEditor:[l.LocationEditor],checkbox:[g.CheckboxEditor],listInput:[m.ListEditor],rating:[p.RatingEditor],radio:[E.RadioEditor],tagEditor:[s.TagsEditor],numberEditor:[i.NumberEditor],urlEditor:[f.UrlEditor],slugEditor:[c.SlugEditor],singleLine:[r.SingleLineEditor],dropdown:[u.DropdownEditor],entryLinkEditor:[y.SingleEntryReferenceEditor,{viewType:"link",hasCardEditActions:!0}],entryCardEditor:[y.SingleEntryReferenceEditor,{viewType:"card",hasCardEditActions:!0}],entryLinksEditor:[y.MultipleEntryReferenceEditor,{viewType:"link",hasCardEditActions:!0}],entryCardsEditor:[y.MultipleEntryReferenceEditor,{viewType:"card",hasCardEditActions:!0}],assetLinkEditor:[y.SingleMediaEditor,{viewType:"link"}],assetLinksEditor:[y.MultipleMediaEditor,{viewType:"link"}],assetGalleryEditor:[y.MultipleMediaEditor,{viewType:"card"}],richTextEditor:[h.RichTextEditor],markdown:[b.MarkdownEditor]},F={withFocusBar:v.css({marginLeft:x.spacingL,marginRight:x.spacingL,marginBottom:"29px",marginTop:"19px",paddingLeft:x.spacingM,borderLeft:"3px solid "+x.gray300,transition:"border-color 0.18s linear","&:focus-within":{borderColor:x.colorPrimary},'&[aria-invalid="true"]':{borderLeftColor:x.red500}}),label:v.css({display:"flex",width:"100%",maxWidth:"800px",color:x.gray500,fontSize:x.fontSizeM,fontWeight:x.fontWeightNormal,lineHeight:x.lineHeightDefault,whiteSpace:"pre-wrap"}),helpText:v.css({margin:x.spacingXs+" 0",fontStyle:"italic"})};exports.Field=function(e){var i=e.sdk,r=e.widgetId,n=e.isInitiallyDisabled,o=void 0!==n&&n,l=e.renderFieldEditor,d=e.getOptions,a=i.field,s=i.locales,c=null!=r?r:S(i);if(l){var u=l(c,i,o);if(u)return u}var f=d?d(c,i):{};if(!C[c])return null;var E=C[c],p=E[0],g=w({sdk:i,field:a,locales:s,isInitiallyDisabled:o,parameters:i.parameters&&"instance"in i.parameters?i.parameters:{instance:{showCreateEntityAction:!0,showLinkEntityAction:!0}}},E[1],f[c]);return t.createElement(p,Object.assign({key:i.field.locale},g,{baseSdk:"slugEditor"===c?i:void 0}))},exports.FieldWrapper=function(e){var i,r,n,o=e.sdk.ids,l=function(e){return"/spaces/"+o.space+"/environments/"+(o.environmentAlias||o.environment)+"/entries/"+e.sys.id},d=e.name,a=e.sdk,s=e.className,c=e.children,u=e.renderHeading,f=e.renderHelpText,E=e.showFocusBar,p=void 0===E||E,g=e.getEntryURL,m=void 0===g?l:g,y=a.field,h=null!=(i=null==(r=a.parameters)||null==(n=r.instance)?void 0:n.helpText)?i:"",b=t.useState(!1),x=b[0],w=b[1];return t.useEffect((function(){return y.onSchemaErrorsChanged((function(e){w((e||[]).length>0)}))}),[y]),t.createElement(k.FormControl,{testId:"entity-field-controls","data-test-id":"entity-field-controls",className:v.cx(p&&F.withFocusBar,s),"aria-invalid":x,isRequired:y.required},u?u(d):t.createElement(k.FormControl.Label,{className:F.label,htmlFor:y.id},d),c,t.createElement(L.ValidationErrors,{field:y,space:a.space,locales:a.locales,getEntryURL:m||l}),f?f(h):t.createElement(k.FormControl.HelpText,{testId:"field-hint",className:F.helpText},h))},exports.getDefaultWidgetId=S;
2
2
  //# sourceMappingURL=default-field-editors.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-field-editors.cjs.production.min.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/forma-36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { HelpText, FieldGroup, FormLabel } from '@contentful/forma-36-react-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n const required = field.required;\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FieldGroup\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormLabel className={styles.label} htmlFor={field.id}>\n {name}\n {required && <span> (required)</span>}\n </FormLabel>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <HelpText className={styles.helpText} testId=\"field-hint\">\n {helpText}\n </HelpText>\n )}\n </FieldGroup>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","validations","find","v","includes","items","linkType","id","contentType","displayField","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","WidgetComponent","widgetComponentProps","parameters","instance","showCreateEntityAction","showLinkEntityAction","React","key","locale","baseSdk","undefined","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","_sdk$parameters","_sdk$parameters$insta2","required","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FieldGroup","testId","cx","FormLabel","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
1
+ {"version":3,"file":"default-field-editors.cjs.production.min.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { FormControl } from '@contentful/f36-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FormControl\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}\n isRequired={field.required}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormControl.Label className={styles.label} htmlFor={field.id}>\n {name}\n </FormControl.Label>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <FormControl.HelpText testId=\"field-hint\" className={styles.helpText}>\n {helpText}\n </FormControl.HelpText>\n )}\n </FormControl>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","validations","find","v","includes","items","linkType","id","contentType","displayField","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","WidgetComponent","widgetComponentProps","parameters","instance","showCreateEntityAction","showLinkEntityAction","React","key","locale","baseSdk","undefined","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","_sdk$parameters","_sdk$parameters$insta2","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FormControl","testId","cx","isRequired","required","Label","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
@@ -18,9 +18,9 @@ import { SingleEntryReferenceEditor, MultipleEntryReferenceEditor, SingleMediaEd
18
18
  import { RichTextEditor } from '@contentful/field-editor-rich-text';
19
19
  import { MarkdownEditor } from '@contentful/field-editor-markdown';
20
20
  import { css, cx } from 'emotion';
21
- import { FieldGroup, FormLabel, HelpText } from '@contentful/forma-36-react-components';
21
+ import { FormControl } from '@contentful/f36-components';
22
22
  import { ValidationErrors } from '@contentful/field-editor-validation-errors';
23
- import tokens from '@contentful/forma-36-tokens';
23
+ import tokens from '@contentful/f36-tokens';
24
24
 
25
25
  function _extends() {
26
26
  _extends = Object.assign || function (target) {
@@ -239,7 +239,6 @@ var FieldWrapper = function FieldWrapper(props) {
239
239
  getEntryURL = _props$getEntryURL === void 0 ? defaultGetEntryUrl : _props$getEntryURL;
240
240
  var field = sdk.field;
241
241
  var helpText = (_sdk$parameters$insta = (_sdk$parameters = sdk.parameters) == null ? void 0 : (_sdk$parameters$insta2 = _sdk$parameters.instance) == null ? void 0 : _sdk$parameters$insta2.helpText) != null ? _sdk$parameters$insta : '';
242
- var required = field.required;
243
242
 
244
243
  var _React$useState = useState(false),
245
244
  hasErrors = _React$useState[0],
@@ -250,22 +249,23 @@ var FieldWrapper = function FieldWrapper(props) {
250
249
  setHasErrors((errors || []).length > 0);
251
250
  });
252
251
  }, [field]);
253
- return createElement(FieldGroup, {
252
+ return createElement(FormControl, {
254
253
  testId: "entity-field-controls",
255
254
  "data-test-id": "entity-field-controls",
256
255
  className: cx(showFocusBar && styles.withFocusBar, className),
257
- "aria-invalid": hasErrors
258
- }, renderHeading ? renderHeading(name) : createElement(FormLabel, {
256
+ "aria-invalid": hasErrors,
257
+ isRequired: field.required
258
+ }, renderHeading ? renderHeading(name) : createElement(FormControl.Label, {
259
259
  className: styles.label,
260
260
  htmlFor: field.id
261
- }, name, required && createElement("span", null, " (required)")), children, createElement(ValidationErrors, {
261
+ }, name), children, createElement(ValidationErrors, {
262
262
  field: field,
263
263
  space: sdk.space,
264
264
  locales: sdk.locales,
265
265
  getEntryURL: getEntryURL || defaultGetEntryUrl
266
- }), renderHelpText ? renderHelpText(helpText) : createElement(HelpText, {
267
- className: styles.helpText,
268
- testId: "field-hint"
266
+ }), renderHelpText ? renderHelpText(helpText) : createElement(FormControl.HelpText, {
267
+ testId: "field-hint",
268
+ className: styles.helpText
269
269
  }, helpText));
270
270
  };
271
271
 
@@ -1 +1 @@
1
- {"version":3,"file":"default-field-editors.esm.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/forma-36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { HelpText, FieldGroup, FormLabel } from '@contentful/forma-36-react-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n const required = field.required;\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FieldGroup\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormLabel className={styles.label} htmlFor={field.id}>\n {name}\n {required && <span> (required)</span>}\n </FormLabel>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <HelpText className={styles.helpText} testId=\"field-hint\">\n {helpText}\n </HelpText>\n )}\n </FieldGroup>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","hasInValidation","validations","find","v","includes","items","linkType","displayFieldId","contentType","displayField","isTextField","isDisplayField","id","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","Field","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","referenceEditorParams","parameters","instance","showCreateEntityAction","showLinkEntityAction","WidgetComponent","widgetStaticProps","widgetComponentProps","baseSdk","undefined","React","key","locale","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","FieldWrapper","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","required","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FieldGroup","testId","cx","FormLabel","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
1
+ {"version":3,"file":"default-field-editors.esm.js","sources":["../src/getDefaultWidgetId.ts","../src/Field.tsx","../src/FieldWrapper.styles.ts","../src/FieldWrapper.tsx"],"sourcesContent":["import type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { WidgetType } from './types';\n\nconst DROPDOWN_TYPES = ['Text', 'Symbol', 'Integer', 'Number', 'Boolean'];\n\nexport const DEFAULTS: { [key: string]: WidgetType } = {\n Text: 'markdown',\n Symbol: 'singleLine',\n Integer: 'numberEditor',\n Number: 'numberEditor',\n Boolean: 'boolean',\n Date: 'datePicker',\n Location: 'locationEditor',\n Object: 'objectEditor',\n RichText: 'richTextEditor',\n Symbols: 'tagEditor',\n File: 'fileEditor',\n};\n\nexport function getDefaultWidgetId(\n sdk: Pick<FieldExtensionSDK, 'field' | 'contentType'>\n): WidgetType {\n const field = sdk.field;\n const fieldType = field.type;\n const hasInValidation = (field.validations || []).find((v) => 'in' in v);\n\n if (hasInValidation && DROPDOWN_TYPES.includes(fieldType)) {\n return 'dropdown';\n }\n\n if (fieldType === 'Array') {\n if (field.items?.linkType === 'Asset') {\n return 'assetLinksEditor';\n }\n return 'entryLinksEditor';\n }\n\n if (fieldType === 'Link') {\n // @ts-expect-error\n if (field.linkType === 'Asset') {\n return 'assetLinkEditor';\n }\n return 'entryLinkEditor';\n }\n\n const displayFieldId = sdk.contentType.displayField;\n\n const isTextField = fieldType === 'Text';\n const isDisplayField = field.id === displayFieldId;\n\n if (isTextField && isDisplayField) {\n return 'singleLine';\n }\n\n return DEFAULTS[fieldType];\n}\n","import * as React from 'react';\nimport { NumberEditor } from '@contentful/field-editor-number';\nimport { SingleLineEditor } from '@contentful/field-editor-single-line';\nimport { BooleanEditor } from '@contentful/field-editor-boolean';\nimport { DateEditor } from '@contentful/field-editor-date';\nimport { LocationEditor } from '@contentful/field-editor-location';\nimport { JsonEditor } from '@contentful/field-editor-json';\nimport { MultipleLineEditor } from '@contentful/field-editor-multiple-line';\nimport { TagsEditor } from '@contentful/field-editor-tags';\nimport { SlugEditor } from '@contentful/field-editor-slug';\nimport { DropdownEditor } from '@contentful/field-editor-dropdown';\nimport { UrlEditor } from '@contentful/field-editor-url';\nimport { RadioEditor } from '@contentful/field-editor-radio';\nimport { RatingEditor } from '@contentful/field-editor-rating';\nimport { CheckboxEditor } from '@contentful/field-editor-checkbox';\nimport { ListEditor } from '@contentful/field-editor-list';\nimport {\n SingleEntryReferenceEditor,\n MultipleEntryReferenceEditor,\n SingleMediaEditor,\n MultipleMediaEditor,\n} from '@contentful/field-editor-reference';\nimport { RichTextEditor } from '@contentful/field-editor-rich-text';\nimport { MarkdownEditor } from '@contentful/field-editor-markdown';\nimport type { FieldExtensionSDK } from '@contentful/field-editor-shared';\nimport type { EditorOptions, WidgetType } from './types';\nimport { getDefaultWidgetId } from './getDefaultWidgetId';\n\ntype FieldProps = {\n sdk: FieldExtensionSDK;\n widgetId?: WidgetType;\n isInitiallyDisabled?: boolean;\n renderFieldEditor?: (\n widgetId: WidgetType,\n sdk: FieldExtensionSDK,\n isInitiallyDisabled: boolean\n ) => JSX.Element | false;\n getOptions?: (widgetId: WidgetType, sdk: FieldExtensionSDK) => EditorOptions;\n};\n\nconst widgetComponents: Record<string, [React.ComponentType<any>, any?]> = {\n multipleLine: [MultipleLineEditor],\n boolean: [BooleanEditor],\n objectEditor: [JsonEditor],\n datePicker: [DateEditor],\n locationEditor: [LocationEditor],\n checkbox: [CheckboxEditor],\n listInput: [ListEditor],\n rating: [RatingEditor],\n radio: [RadioEditor],\n tagEditor: [TagsEditor],\n numberEditor: [NumberEditor],\n urlEditor: [UrlEditor],\n slugEditor: [SlugEditor],\n singleLine: [SingleLineEditor],\n dropdown: [DropdownEditor],\n entryLinkEditor: [SingleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardEditor: [SingleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n entryLinksEditor: [MultipleEntryReferenceEditor, { viewType: 'link', hasCardEditActions: true }],\n entryCardsEditor: [MultipleEntryReferenceEditor, { viewType: 'card', hasCardEditActions: true }],\n assetLinkEditor: [SingleMediaEditor, { viewType: 'link' }],\n assetLinksEditor: [MultipleMediaEditor, { viewType: 'link' }],\n assetGalleryEditor: [MultipleMediaEditor, { viewType: 'card' }],\n richTextEditor: [RichTextEditor],\n markdown: [MarkdownEditor],\n};\n\nexport const Field: React.FC<FieldProps> = (props: FieldProps) => {\n const {\n sdk,\n widgetId: possiblyUndefinedWidgetId,\n isInitiallyDisabled = false,\n renderFieldEditor,\n getOptions,\n } = props;\n const field = sdk.field;\n const locales = sdk.locales;\n\n const widgetId = possiblyUndefinedWidgetId ?? getDefaultWidgetId(sdk);\n\n if (renderFieldEditor) {\n const customEditor = renderFieldEditor(widgetId, sdk, isInitiallyDisabled);\n if (customEditor) {\n return customEditor;\n }\n }\n\n const options = getOptions ? getOptions(widgetId, sdk) : {};\n const referenceEditorParams =\n sdk.parameters && 'instance' in sdk.parameters\n ? sdk.parameters\n : {\n instance: {\n showCreateEntityAction: true,\n showLinkEntityAction: true,\n },\n };\n\n if (!widgetComponents[widgetId]) return null;\n\n const [WidgetComponent, widgetStaticProps] = widgetComponents[widgetId];\n\n const widgetComponentProps = {\n sdk,\n field,\n locales,\n isInitiallyDisabled,\n parameters: referenceEditorParams,\n ...widgetStaticProps,\n // @ts-expect-error\n ...options[widgetId],\n };\n\n const baseSdk = widgetId === 'slugEditor' ? sdk : undefined;\n\n return <WidgetComponent key={sdk.field.locale} {...widgetComponentProps} baseSdk={baseSdk} />;\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const styles = {\n withFocusBar: css({\n marginLeft: tokens.spacingL,\n marginRight: tokens.spacingL,\n marginBottom: '29px',\n marginTop: '19px',\n paddingLeft: tokens.spacingM,\n borderLeft: `3px solid ${tokens.gray300}`,\n transition: 'border-color 0.18s linear',\n '&:focus-within': {\n borderColor: tokens.colorPrimary,\n },\n '&[aria-invalid=\"true\"]': {\n borderLeftColor: tokens.red500,\n },\n }),\n label: css({\n display: 'flex',\n width: '100%',\n maxWidth: '800px',\n color: tokens.gray500,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n lineHeight: tokens.lineHeightDefault,\n whiteSpace: 'pre-wrap',\n }),\n helpText: css({\n margin: `${tokens.spacingXs} 0`,\n fontStyle: 'italic',\n }),\n};\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport { FormControl } from '@contentful/f36-components';\nimport { ValidationErrors } from '@contentful/field-editor-validation-errors';\nimport type { FieldExtensionSDK, Entry } from '@contentful/field-editor-shared';\nimport { styles } from './FieldWrapper.styles';\n\ntype FieldWrapperProps = {\n name: string;\n sdk: FieldExtensionSDK;\n /**\n * Generates a link to another entry with the same value when a \"non unique\" validation error occurs\n */\n getEntryURL?: (entry: Entry) => string;\n className?: string;\n showFocusBar?: boolean;\n children: React.ReactNode;\n renderHeading?: (name: string) => JSX.Element | null;\n renderHelpText?: (helpText: string) => JSX.Element | null;\n};\n\nexport const FieldWrapper: React.FC<FieldWrapperProps> = function (props: FieldWrapperProps) {\n const { ids } = props.sdk;\n const defaultGetEntryUrl = (entry: Entry) =>\n `/spaces/${ids.space}/environments/${ids.environmentAlias || ids.environment}/entries/${\n entry.sys.id\n }`;\n const {\n name,\n sdk,\n className,\n children,\n renderHeading,\n renderHelpText,\n showFocusBar = true,\n getEntryURL = defaultGetEntryUrl,\n } = props;\n const { field } = sdk;\n const helpText = (sdk.parameters?.instance as any)?.helpText ?? '';\n\n const [hasErrors, setHasErrors] = React.useState(false);\n React.useEffect(() => {\n return field.onSchemaErrorsChanged((errors: unknown[]) => {\n setHasErrors((errors || []).length > 0);\n });\n }, [field]);\n\n return (\n <FormControl\n testId=\"entity-field-controls\"\n data-test-id=\"entity-field-controls\"\n className={cx(showFocusBar && styles.withFocusBar, className)}\n aria-invalid={hasErrors}\n isRequired={field.required}>\n {renderHeading ? (\n renderHeading(name)\n ) : (\n <FormControl.Label className={styles.label} htmlFor={field.id}>\n {name}\n </FormControl.Label>\n )}\n\n {children}\n\n <ValidationErrors\n field={field}\n space={sdk.space}\n locales={sdk.locales}\n getEntryURL={getEntryURL || defaultGetEntryUrl}\n />\n\n {renderHelpText ? (\n renderHelpText(helpText)\n ) : (\n <FormControl.HelpText testId=\"field-hint\" className={styles.helpText}>\n {helpText}\n </FormControl.HelpText>\n )}\n </FormControl>\n );\n};\n"],"names":["DROPDOWN_TYPES","DEFAULTS","Text","Symbol","Integer","Number","Boolean","Date","Location","Object","RichText","Symbols","File","getDefaultWidgetId","sdk","field","fieldType","type","hasInValidation","validations","find","v","includes","items","linkType","displayFieldId","contentType","displayField","isTextField","isDisplayField","id","widgetComponents","multipleLine","MultipleLineEditor","BooleanEditor","objectEditor","JsonEditor","datePicker","DateEditor","locationEditor","LocationEditor","checkbox","CheckboxEditor","listInput","ListEditor","rating","RatingEditor","radio","RadioEditor","tagEditor","TagsEditor","numberEditor","NumberEditor","urlEditor","UrlEditor","slugEditor","SlugEditor","singleLine","SingleLineEditor","dropdown","DropdownEditor","entryLinkEditor","SingleEntryReferenceEditor","viewType","hasCardEditActions","entryCardEditor","entryLinksEditor","MultipleEntryReferenceEditor","entryCardsEditor","assetLinkEditor","SingleMediaEditor","assetLinksEditor","MultipleMediaEditor","assetGalleryEditor","richTextEditor","RichTextEditor","markdown","MarkdownEditor","Field","props","possiblyUndefinedWidgetId","widgetId","isInitiallyDisabled","renderFieldEditor","getOptions","locales","customEditor","options","referenceEditorParams","parameters","instance","showCreateEntityAction","showLinkEntityAction","WidgetComponent","widgetStaticProps","widgetComponentProps","baseSdk","undefined","React","key","locale","styles","withFocusBar","css","marginLeft","tokens","spacingL","marginRight","marginBottom","marginTop","paddingLeft","spacingM","borderLeft","gray300","transition","borderColor","colorPrimary","borderLeftColor","red500","label","display","width","maxWidth","color","gray500","fontSize","fontSizeM","fontWeight","fontWeightNormal","lineHeight","lineHeightDefault","whiteSpace","helpText","margin","spacingXs","fontStyle","FieldWrapper","ids","defaultGetEntryUrl","entry","space","environmentAlias","environment","sys","name","className","children","renderHeading","renderHelpText","showFocusBar","getEntryURL","hasErrors","setHasErrors","onSchemaErrorsChanged","errors","length","FormControl","testId","cx","isRequired","required","Label","htmlFor","ValidationErrors","HelpText"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/default-field-editors",
3
- "version": "0.10.3",
3
+ "version": "1.0.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/default-field-editors.esm.js",
6
6
  "typings": "dist/index.d.ts",
@@ -21,31 +21,31 @@
21
21
  "tsc": "tsc -p ./ --noEmit"
22
22
  },
23
23
  "dependencies": {
24
- "@contentful/field-editor-boolean": "^0.12.6",
25
- "@contentful/field-editor-checkbox": "^0.15.6",
26
- "@contentful/field-editor-date": "^0.12.6",
27
- "@contentful/field-editor-dropdown": "^0.15.1",
28
- "@contentful/field-editor-json": "^0.13.1",
29
- "@contentful/field-editor-list": "^0.15.6",
30
- "@contentful/field-editor-location": "^0.13.1",
31
- "@contentful/field-editor-markdown": "^0.17.1",
32
- "@contentful/field-editor-multiple-line": "^0.15.1",
33
- "@contentful/field-editor-number": "^0.13.6",
34
- "@contentful/field-editor-radio": "^0.14.1",
35
- "@contentful/field-editor-rating": "^0.12.6",
36
- "@contentful/field-editor-reference": "^2.21.2",
37
- "@contentful/field-editor-rich-text": "^0.19.20",
38
- "@contentful/field-editor-shared": "^0.25.1",
39
- "@contentful/field-editor-single-line": "^0.15.6",
40
- "@contentful/field-editor-slug": "^0.13.1",
41
- "@contentful/field-editor-tags": "^0.14.6",
42
- "@contentful/field-editor-url": "^0.12.6",
43
- "@contentful/field-editor-validation-errors": "^0.7.1",
44
- "@contentful/forma-36-react-components": "^3.93.4",
24
+ "@contentful/f36-components": "beta",
25
+ "@contentful/field-editor-boolean": "^1.0.0",
26
+ "@contentful/field-editor-checkbox": "^1.0.0",
27
+ "@contentful/field-editor-date": "^1.0.0",
28
+ "@contentful/field-editor-dropdown": "^1.0.0",
29
+ "@contentful/field-editor-json": "^1.0.0",
30
+ "@contentful/field-editor-list": "^1.0.0",
31
+ "@contentful/field-editor-location": "^1.0.0",
32
+ "@contentful/field-editor-markdown": "^1.0.0",
33
+ "@contentful/field-editor-multiple-line": "^1.0.0",
34
+ "@contentful/field-editor-number": "^1.0.0",
35
+ "@contentful/field-editor-radio": "^1.0.0",
36
+ "@contentful/field-editor-rating": "^1.0.0",
37
+ "@contentful/field-editor-reference": "^4.0.0",
38
+ "@contentful/field-editor-rich-text": "^1.0.0",
39
+ "@contentful/field-editor-shared": "^1.0.0",
40
+ "@contentful/field-editor-single-line": "^1.0.0",
41
+ "@contentful/field-editor-slug": "^1.0.0",
42
+ "@contentful/field-editor-tags": "^1.0.0",
43
+ "@contentful/field-editor-url": "^1.0.0",
44
+ "@contentful/field-editor-validation-errors": "^1.0.0",
45
45
  "emotion": "^10.0.27"
46
46
  },
47
47
  "devDependencies": {
48
- "@contentful/field-editor-test-utils": "^0.18.1"
48
+ "@contentful/field-editor-test-utils": "^1.0.0"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "react": ">=16.8.0"
@@ -63,5 +63,5 @@
63
63
  }
64
64
  }
65
65
  },
66
- "gitHead": "a65a6549d639b8d22b3126450e0d732a095e8abf"
66
+ "gitHead": "538c2239a48991e4bb281d4d07d8ede3413492a5"
67
67
  }