diff --git a/packages/sanity/src/_exports/_unstable.ts b/packages/sanity/src/_exports/_unstable.ts index 9e32724af6f..fea61019802 100644 --- a/packages/sanity/src/_exports/_unstable.ts +++ b/packages/sanity/src/_exports/_unstable.ts @@ -131,7 +131,6 @@ export type { MissingKeysError, MixedArray, MoveItemEvent, - NodePresence, NodeValidation, NumberFieldProps, NumberFormNode, diff --git a/packages/sanity/src/_exports/desk.ts b/packages/sanity/src/_exports/desk.ts index 74297bce700..33087678e61 100644 --- a/packages/sanity/src/_exports/desk.ts +++ b/packages/sanity/src/_exports/desk.ts @@ -247,7 +247,6 @@ export type { MissingKeysError, MixedArray, MoveItemEvent, - NodePresence, NodeValidation, NumberFieldProps, NumberFormNode, diff --git a/packages/sanity/src/_exports/index.ts b/packages/sanity/src/_exports/index.ts index c2c6064fd82..20b0dcfe473 100644 --- a/packages/sanity/src/_exports/index.ts +++ b/packages/sanity/src/_exports/index.ts @@ -133,7 +133,6 @@ export type { MissingKeysError, MixedArray, MoveItemEvent, - NodePresence, NodeValidation, NumberFieldProps, NumberInputProps, diff --git a/packages/sanity/src/form/components/formField/FormField.tsx b/packages/sanity/src/form/components/formField/FormField.tsx index 097a6d732f1..31f6a867bc2 100644 --- a/packages/sanity/src/form/components/formField/FormField.tsx +++ b/packages/sanity/src/form/components/formField/FormField.tsx @@ -2,8 +2,8 @@ import {Stack} from '@sanity/ui' import React, {memo} from 'react' - -import {NodePresence, NodeValidation} from '../../types/common' +import {FormFieldPresence} from '../../../presence' +import {NodeValidation} from '../../types/common' import {FormFieldHeader} from './FormFieldHeader' export interface FormFieldProps { @@ -14,7 +14,7 @@ export interface FormFieldProps { /** * @alpha */ - __unstable_presence?: NodePresence[] + __unstable_presence?: FormFieldPresence[] children: React.ReactNode description?: React.ReactNode /** diff --git a/packages/sanity/src/form/components/formField/FormFieldHeader.tsx b/packages/sanity/src/form/components/formField/FormFieldHeader.tsx index 578a9eddf29..80012c3ecec 100644 --- a/packages/sanity/src/form/components/formField/FormFieldHeader.tsx +++ b/packages/sanity/src/form/components/formField/FormFieldHeader.tsx @@ -2,8 +2,8 @@ import React, {memo} from 'react' import {Box, Flex} from '@sanity/ui' -import {FieldPresence} from '../../../presence' -import {NodePresence, NodeValidation} from '../../types' +import {FieldPresence, FormFieldPresence} from '../../../presence' +import {NodeValidation} from '../../types' import {FormFieldHeaderText} from './FormFieldHeaderText' export interface FormFieldHeaderProps { @@ -14,7 +14,7 @@ export interface FormFieldHeaderProps { /** * @alpha */ - __unstable_presence?: NodePresence[] + __unstable_presence?: FormFieldPresence[] description?: React.ReactNode /** * The unique ID used to target the actual input element diff --git a/packages/sanity/src/form/components/formField/FormFieldSet.tsx b/packages/sanity/src/form/components/formField/FormFieldSet.tsx index eb86b7d64e5..a301cc043a5 100644 --- a/packages/sanity/src/form/components/formField/FormFieldSet.tsx +++ b/packages/sanity/src/form/components/formField/FormFieldSet.tsx @@ -3,8 +3,8 @@ import {Box, Flex, Grid, rem, Stack, Text, Theme, useForwardedRef} from '@sanity/ui' import React, {forwardRef, useCallback, useMemo} from 'react' import styled, {css} from 'styled-components' -import {FieldPresence} from '../../../presence' -import {NodePresence, NodeValidation} from '../../types' +import {FieldPresence, FormFieldPresence} from '../../../presence' +import {NodeValidation} from '../../types' import {FormFieldValidationStatus} from './FormFieldValidationStatus' import {FormFieldSetLegend} from './FormFieldSetLegend' import {focusRingStyle} from './styles' @@ -13,7 +13,7 @@ export interface FormFieldSetProps { /** * @alpha */ - __unstable_presence?: NodePresence[] + __unstable_presence?: FormFieldPresence[] children: React.ReactNode | (() => React.ReactNode) collapsed?: boolean collapsible?: boolean diff --git a/packages/sanity/src/form/inputs/arrays/ArrayOfObjectsInput/item/ItemLayoutProps.ts b/packages/sanity/src/form/inputs/arrays/ArrayOfObjectsInput/item/ItemLayoutProps.ts index 87f2ff5cb71..6d67b88c2fb 100644 --- a/packages/sanity/src/form/inputs/arrays/ArrayOfObjectsInput/item/ItemLayoutProps.ts +++ b/packages/sanity/src/form/inputs/arrays/ArrayOfObjectsInput/item/ItemLayoutProps.ts @@ -1,6 +1,7 @@ import {SchemaType} from '@sanity/types' import React from 'react' -import {NodePresence, NodeValidation, RenderPreviewCallback} from '../../../../types' +import {FormFieldPresence} from '../../../../../presence' +import {NodeValidation, RenderPreviewCallback} from '../../../../types' export interface ItemLayoutProps { index: number @@ -10,7 +11,7 @@ export interface ItemLayoutProps { onFocus?: (event: React.FocusEvent) => void onInsert: (event: {items: unknown[]; position: 'before' | 'after'}) => void onRemove: () => void - presence: NodePresence[] + presence: FormFieldPresence[] readOnly?: boolean renderPreview: RenderPreviewCallback type?: SchemaType // note: type might be undefined here if the value doesn't have a matching schema type definition diff --git a/packages/sanity/src/form/store/types/nodes.ts b/packages/sanity/src/form/store/types/nodes.ts index 8abf4c9a357..62a385d8d3d 100644 --- a/packages/sanity/src/form/store/types/nodes.ts +++ b/packages/sanity/src/form/store/types/nodes.ts @@ -7,7 +7,8 @@ import { SchemaType, StringSchemaType, } from '@sanity/types' -import {NodePresence, NodeValidation} from '../../types/common' +import {FormFieldPresence} from '../../../presence' +import {NodeValidation} from '../../types/common' import {ArrayOfObjectsMember, ArrayOfPrimitivesMember, ObjectMember} from './members' import {FormFieldGroup} from './fieldGroup' @@ -19,7 +20,7 @@ export interface BaseFormNode { path: Path // state - presence: NodePresence[] + presence: FormFieldPresence[] validation: NodeValidation[] value: T | undefined readOnly?: boolean diff --git a/packages/sanity/src/form/types/common.ts b/packages/sanity/src/form/types/common.ts index dfe88a97a39..ff120480408 100644 --- a/packages/sanity/src/form/types/common.ts +++ b/packages/sanity/src/form/types/common.ts @@ -1,7 +1,4 @@ import {Path} from '@sanity/types' -import {FormFieldPresence} from '../../presence' - -export type NodePresence = FormFieldPresence export interface NodeValidation { level: 'error' | 'warning' | 'info' diff --git a/packages/sanity/src/form/types/fieldProps.ts b/packages/sanity/src/form/types/fieldProps.ts index 34259a535e8..e0111e93a27 100644 --- a/packages/sanity/src/form/types/fieldProps.ts +++ b/packages/sanity/src/form/types/fieldProps.ts @@ -7,6 +7,7 @@ import { SchemaType, StringSchemaType, } from '@sanity/types' +import {FormFieldPresence} from '../../presence' import { ArrayOfObjectsInputProps, ArrayOfPrimitivesInputProps, @@ -15,13 +16,13 @@ import { ObjectInputProps, StringInputProps, } from './inputProps' -import {NodePresence, NodeValidation} from './common' +import {NodeValidation} from './common' export interface BaseFieldProps { schemaType: SchemaType title: string | undefined description: string | undefined - presence: NodePresence[] + presence: FormFieldPresence[] validation: NodeValidation[] level: number inputId: string diff --git a/packages/sanity/src/form/types/itemProps.ts b/packages/sanity/src/form/types/itemProps.ts index 33070d254df..7d13279e1e9 100644 --- a/packages/sanity/src/form/types/itemProps.ts +++ b/packages/sanity/src/form/types/itemProps.ts @@ -7,7 +7,8 @@ import { StringSchemaType, } from '@sanity/types' import React from 'react' -import {NodePresence, NodeValidation} from './common' +import {FormFieldPresence} from '../../presence' +import {NodeValidation} from './common' export interface BaseItemProps { schemaType: SchemaType @@ -33,7 +34,7 @@ export interface BaseItemProps { children: React.ReactNode | null validation: NodeValidation[] - presence: NodePresence[] + presence: FormFieldPresence[] } export interface ObjectItemProps extends BaseItemProps { diff --git a/packages/sanity/src/presence/FieldPresence.tsx b/packages/sanity/src/presence/FieldPresence.tsx index 90bd983a915..dc170c32a4e 100644 --- a/packages/sanity/src/presence/FieldPresence.tsx +++ b/packages/sanity/src/presence/FieldPresence.tsx @@ -3,7 +3,6 @@ import {sortBy, uniqBy} from 'lodash' import {AvatarCounter, AvatarPosition} from '@sanity/ui' import {useId} from '@reach/auto-id' import {UserAvatar} from '../components/UserAvatar' -import {NodePresence} from '../form' import { AVATAR_DISTANCE, AVATAR_SIZE, @@ -15,9 +14,10 @@ import {FlexWrapper, InnerBox} from './FieldPresence.styled' import {FormFieldPresenceContext} from './context' import {PresenceTooltip} from './PresenceTooltip' import {useReporter} from './overlay/tracker' +import {FormFieldPresence} from './types' export interface FieldPresenceProps { - presence: NodePresence[] + presence: FormFieldPresence[] maxAvatars: number } @@ -56,7 +56,7 @@ export function FieldPresenceWithoutOverlay(props: FieldPresenceProps) { export interface FieldPresenceInnerProps { maxAvatars?: number - presence: NodePresence[] + presence: FormFieldPresence[] stack?: boolean position?: AvatarPosition animateArrowFrom?: AvatarPosition diff --git a/packages/sanity/src/presence/PresenceTooltip.tsx b/packages/sanity/src/presence/PresenceTooltip.tsx index 25bfb470a01..7ab674e621e 100644 --- a/packages/sanity/src/presence/PresenceTooltip.tsx +++ b/packages/sanity/src/presence/PresenceTooltip.tsx @@ -1,11 +1,11 @@ import React, {useMemo} from 'react' import {Box, Flex, Stack, Text, Tooltip} from '@sanity/ui' import {UserAvatar} from '../components/UserAvatar' -import {NodePresence} from '../form' +import {FormFieldPresence} from './types' interface PresenceTooltipProps { children?: React.ReactElement - items: NodePresence[] + items: FormFieldPresence[] } /** diff --git a/packages/sanity/src/presence/types.ts b/packages/sanity/src/presence/types.ts index 6e44decf338..d2920af64cf 100644 --- a/packages/sanity/src/presence/types.ts +++ b/packages/sanity/src/presence/types.ts @@ -1,6 +1,5 @@ import {Path, User} from '@sanity/types' import {Session, Status} from '../datastores/presence/types' -import {NodePresence} from '../form' export type Position = 'top' | 'bottom' | 'inside' | null export type Size = 'xsmall' | 'small' | 'medium' @@ -15,7 +14,7 @@ export type RegionWithIntersectionDetails = { export type FieldPresenceData = { element: HTMLElement - presence: NodePresence[] + presence: FormFieldPresence[] maxAvatars: number } diff --git a/packages/sanity/test/form/renderInput.tsx b/packages/sanity/test/form/renderInput.tsx index 47a3e9c390c..2233b59ba8e 100644 --- a/packages/sanity/test/form/renderInput.tsx +++ b/packages/sanity/test/form/renderInput.tsx @@ -12,7 +12,6 @@ import React, {FocusEvent} from 'react' import { createPatchChannel, FieldMember, - NodePresence, NodeValidation, PatchArg, PatchEvent, @@ -22,6 +21,7 @@ import { import {FormState} from '../../src/form/store/useFormState' import {EMPTY_ARRAY} from '../../src/form/utils/empty' import {useSchema} from '../../src/hooks' +import {FormFieldPresence} from '../../src/presence' import {createMockSanityClient} from '../mocks/mockSanityClient' import {createTestProvider} from '../testUtils/TestProvider' import {TestRenderProps} from './types' @@ -41,7 +41,7 @@ export interface TestRenderInputProps { onPathBlur: (path: Path) => void onPathFocus: (path: Path) => void path: Path - presence: NodePresence[] + presence: FormFieldPresence[] readOnly: boolean | undefined schemaType: SchemaType validation: NodeValidation[]