@portabletext/editor 1.48.8 → 1.48.9

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.
@@ -1,6 +1,17 @@
1
1
  import type {KeyedSegment as KeyedSegment_2, Patch} from '@portabletext/patches'
2
- import {ClientPerspective, SanityClient} from '@sanity/client'
3
- import {ComponentType, ElementType, ReactNode} from 'react'
2
+ import type {
3
+ ArraySchemaType,
4
+ BlockDecoratorDefinition,
5
+ BlockListDefinition,
6
+ BlockStyleDefinition,
7
+ ObjectSchemaType,
8
+ Path,
9
+ PortableTextBlock,
10
+ PortableTextChild,
11
+ PortableTextListBlock,
12
+ PortableTextTextBlock,
13
+ } from '@sanity/types'
14
+ import {KeyedSegment, PortableTextObject, PortableTextSpan} from '@sanity/types'
4
15
  import type {
5
16
  FocusEvent as FocusEvent_2,
6
17
  KeyboardEvent as KeyboardEvent_2,
@@ -201,277 +212,6 @@ declare const abstractBehaviorEventTypes: readonly [
201
212
  'style.toggle',
202
213
  ]
203
214
 
204
- /**
205
- * Types of array actions that can be performed
206
- * @beta
207
- */
208
- declare type ArrayActionName =
209
- /**
210
- * Add any item to the array at any position
211
- */
212
- | 'add'
213
- /**
214
- * Add item after an existing item
215
- */
216
- | 'addBefore'
217
- /**
218
- * Add item after an existing item
219
- */
220
- | 'addAfter'
221
- /**
222
- * Remove any item
223
- */
224
- | 'remove'
225
- /**
226
- * Duplicate item
227
- */
228
- | 'duplicate'
229
- /**
230
- * Copy item
231
- */
232
- | 'copy'
233
-
234
- /** @public */
235
- declare interface ArrayDefinition extends BaseSchemaDefinition {
236
- type: 'array'
237
- of: ArrayOfType[]
238
- initialValue?: InitialValueProperty<any, unknown[]>
239
- validation?: ValidationBuilder<ArrayRule<unknown[]>, unknown[]>
240
- options?: ArrayOptions
241
- }
242
-
243
- /** @public */
244
- declare type ArrayOfEntry<T> = Omit<T, 'name' | 'hidden'> & {
245
- name?: string
246
- }
247
-
248
- /** @public */
249
- declare type ArrayOfType<
250
- TType extends IntrinsicTypeName = IntrinsicTypeName,
251
- TAlias extends IntrinsicTypeName | undefined = undefined,
252
- > =
253
- | IntrinsicArrayOfDefinition[TType]
254
- | ArrayOfEntry<TypeAliasDefinition<string, TAlias>>
255
-
256
- /** @public */
257
- declare interface ArrayOptions<V = unknown>
258
- extends SearchConfiguration,
259
- BaseSchemaTypeOptions {
260
- list?: TitledListValue<V>[] | V[]
261
- layout?: 'list' | 'tags' | 'grid'
262
- /** @deprecated This option does not have any effect anymore */
263
- direction?: 'horizontal' | 'vertical'
264
- sortable?: boolean
265
- modal?: {
266
- type?: 'dialog' | 'popover'
267
- width?: number | 'auto'
268
- }
269
- /** @alpha This API may change */
270
- insertMenu?: InsertMenuOptions
271
- /**
272
- * A boolean flag to enable or disable tree editing for the array.
273
- * If there are any nested arrays, they will inherit this value.
274
- * @deprecated tree editing beta feature has been disabled
275
- */
276
- treeEditing?: boolean
277
- /**
278
- * A list of array actions to disable
279
- * Possible options are defined by {@link ArrayActionName}
280
- * @beta
281
- */
282
- disableActions?: ArrayActionName[]
283
- }
284
-
285
- /** @public */
286
- declare interface ArrayRule<Value> extends RuleDef<ArrayRule<Value>, Value> {
287
- min: (length: number | FieldReference) => ArrayRule<Value>
288
- max: (length: number | FieldReference) => ArrayRule<Value>
289
- length: (length: number | FieldReference) => ArrayRule<Value>
290
- unique: () => ArrayRule<Value>
291
- }
292
-
293
- /** @public */
294
- declare interface ArraySchemaType<V = unknown> extends BaseSchemaType {
295
- jsonType: 'array'
296
- of: (Exclude<SchemaType, ArraySchemaType> | ReferenceSchemaType)[]
297
- options?: ArrayOptions<V> & {
298
- layout?: V extends string ? 'tag' : 'grid'
299
- }
300
- }
301
-
302
- /** @public */
303
- declare interface Asset extends SanityDocument {
304
- url: string
305
- path: string
306
- assetId: string
307
- extension: string
308
- mimeType: string
309
- sha1hash: string
310
- size: number
311
- originalFilename?: string
312
- label?: string
313
- title?: string
314
- description?: string
315
- creditLine?: string
316
- source?: AssetSourceSpec
317
- }
318
-
319
- /** @public */
320
- declare type AssetFromSource = {
321
- kind: 'assetDocumentId' | 'file' | 'base64' | 'url'
322
- value: string | File_2
323
- assetDocumentProps?: ImageAsset
324
- mediaLibraryProps?: {
325
- mediaLibraryId: string
326
- assetId: string
327
- assetInstanceId: string
328
- }
329
- }
330
-
331
- /** @public */
332
- declare interface AssetSource {
333
- name: string
334
- /** @deprecated provide `i18nKey` instead */
335
- title?: string
336
- i18nKey?: string
337
- component: ComponentType<AssetSourceComponentProps>
338
- icon?: ComponentType<EmptyProps>
339
- /** @beta */
340
- uploader?: AssetSourceUploader
341
- }
342
-
343
- /** @public */
344
- declare interface AssetSourceComponentProps {
345
- action?: 'select' | 'upload'
346
- assetSource: AssetSource
347
- assetType?: 'file' | 'image'
348
- accept: string
349
- selectionType: 'single'
350
- dialogHeaderTitle?: React.ReactNode
351
- selectedAssets: Asset[]
352
- onClose: () => void
353
- onSelect: (assetFromSource: AssetFromSource[]) => void
354
- }
355
-
356
- /** @public */
357
- declare interface AssetSourceSpec {
358
- id: string
359
- name: string
360
- url?: string
361
- }
362
-
363
- /** @beta */
364
- declare interface AssetSourceUploader {
365
- upload(
366
- files: globalThis.File[],
367
- options?: {
368
- /**
369
- * The schema type of the field the asset is being uploaded to.
370
- * May be of interest to the uploader to read file and image options.
371
- */
372
- schemaType?: SchemaType
373
- /**
374
- * The uploader may send patches directly to the field
375
- * Typed 'unknown' as we don't have patch definitions in sanity/types yet.
376
- */
377
- onChange?: (patch: unknown) => void
378
- },
379
- ): AssetSourceUploadFile[]
380
- /**
381
- * Abort the upload of a file
382
- */
383
- abort(file?: AssetSourceUploadFile): void
384
- /**
385
- * Get the files that are currently being uploaded
386
- */
387
- getFiles(): AssetSourceUploadFile[]
388
- /**
389
- * Subscribe to upload events from the uploader
390
- */
391
- subscribe(subscriber: (event: AssetSourceUploadEvent) => void): () => void
392
- /**
393
- * Update the status of a file. Will be emitted to subscribers.
394
- */
395
- updateFile(
396
- fileId: string,
397
- data: {
398
- progress?: number
399
- status?: string
400
- error?: Error
401
- },
402
- ): void
403
- /**
404
- * Reset the uploader (clear files). Should be called by the uploader when all files are done.
405
- */
406
- reset(): void
407
- }
408
-
409
- /** @beta */
410
- declare type AssetSourceUploadEvent =
411
- | AssetSourceUploadEventProgress
412
- | AssetSourceUploadEventStatus
413
- | AssetSourceUploadEventAllComplete
414
- | AssetSourceUploadEventError
415
- | AssetSourceUploadEventAbort
416
-
417
- /**
418
- * Emitted when all files are done, either successfully, aborted or with errors
419
- * @beta */
420
- declare type AssetSourceUploadEventAbort = {
421
- type: 'abort'
422
- /**
423
- * Files aborted
424
- */
425
- files: AssetSourceUploadFile[]
426
- }
427
-
428
- /**
429
- * Emitted when all files are done, either successfully, aborted or with errors
430
- * @beta */
431
- declare type AssetSourceUploadEventAllComplete = {
432
- type: 'all-complete'
433
- files: AssetSourceUploadFile[]
434
- }
435
-
436
- /**
437
- * Emitted when all files are done, either successfully, aborted or with errors
438
- * @beta */
439
- declare type AssetSourceUploadEventError = {
440
- type: 'error'
441
- /**
442
- * Files errored
443
- */
444
- files: AssetSourceUploadFile[]
445
- }
446
-
447
- /**
448
- * Emitted when a file upload is progressing
449
- * @beta */
450
- declare type AssetSourceUploadEventProgress = {
451
- type: 'progress'
452
- file: AssetSourceUploadFile
453
- progress: number
454
- }
455
-
456
- /**
457
- * Emitted when a file upload is changing status
458
- * @beta */
459
- declare type AssetSourceUploadEventStatus = {
460
- type: 'status'
461
- file: AssetSourceUploadFile
462
- status: AssetSourceUploadFile['status']
463
- }
464
-
465
- /** @beta */
466
- declare interface AssetSourceUploadFile {
467
- id: string
468
- file: globalThis.File
469
- progress: number
470
- status: 'pending' | 'uploading' | 'complete' | 'error' | 'aborted'
471
- error?: Error
472
- result?: unknown
473
- }
474
-
475
215
  /**
476
216
  * @public
477
217
  */
@@ -480,60 +220,6 @@ declare type BaseDefinition = {
480
220
  title?: string
481
221
  }
482
222
 
483
- /** @public */
484
- declare interface BaseSchemaDefinition {
485
- name: string
486
- title?: string
487
- description?: string | React.JSX.Element
488
- hidden?: ConditionalProperty
489
- readOnly?: ConditionalProperty
490
- icon?: ComponentType | ReactNode
491
- validation?: unknown
492
- initialValue?: unknown
493
- deprecated?: DeprecatedProperty
494
- }
495
-
496
- /** @public */
497
- declare interface BaseSchemaType extends Partial<DeprecationConfiguration> {
498
- name: string
499
- title?: string
500
- description?: string
501
- type?: SchemaType
502
- liveEdit?: boolean
503
- readOnly?: ConditionalProperty
504
- hidden?: ConditionalProperty
505
- icon?: ComponentType
506
- initialValue?: InitialValueProperty<any, any>
507
- validation?: SchemaValidationValue
508
- preview?: PreviewConfig
509
- /** @beta */
510
- components?: {
511
- block?: ComponentType<any>
512
- inlineBlock?: ComponentType<any>
513
- annotation?: ComponentType<any>
514
- diff?: ComponentType<any>
515
- field?: ComponentType<any>
516
- input?: ComponentType<any>
517
- item?: ComponentType<any>
518
- preview?: ComponentType<any>
519
- }
520
- /**
521
- * @deprecated This will be removed.
522
- */
523
- placeholder?: string
524
- }
525
-
526
- /**
527
- * `BaseOptions` applies to all type options.
528
- *
529
- * It can be extended by interface declaration merging in plugins to provide generic options to all types and fields.
530
- *
531
- * @public
532
- * */
533
- declare interface BaseSchemaTypeOptions {
534
- sanityCreate?: SanityCreateOptions
535
- }
536
-
537
223
  /**
538
224
  * @beta
539
225
  */
@@ -619,142 +305,6 @@ declare type BehaviorGuard<TBehaviorEvent, TGuardResponse> = (payload: {
619
305
  event: TBehaviorEvent
620
306
  }) => TGuardResponse | false
621
307
 
622
- /**
623
- * Schema definition for text block decorators.
624
- *
625
- * @public
626
- * @example The default set of decorators
627
- * ```ts
628
- * {
629
- * name: 'blockContent',
630
- * title: 'Content',
631
- * type: 'array',
632
- * of: [
633
- * {
634
- * type: 'block',
635
- * marks: {
636
- * decorators: [
637
- * {title: 'Strong', value: 'strong'},
638
- * {title: 'Emphasis', value: 'em'},
639
- * {title: 'Underline', value: 'underline'},
640
- * {title: 'Strike', value: 'strike'},
641
- * {title: 'Code', value: 'code'},
642
- * ]
643
- * }
644
- * }
645
- * ]
646
- * }
647
- * ```
648
- */
649
- declare interface BlockDecoratorDefinition {
650
- title: string
651
- i18nTitleKey?: string
652
- value: string
653
- icon?: ReactNode | ComponentType
654
- }
655
-
656
- /**
657
- * Schema definition for text blocks.
658
- *
659
- * @public
660
- * @example the default block definition
661
- * ```ts
662
- * {
663
- * name: 'blockContent',
664
- * title: 'Content',
665
- * type: 'array',
666
- * of: [
667
- * {
668
- * type: 'block',
669
- * marks: {
670
- * decorators: [
671
- * {title: 'Strong', value: 'strong'},
672
- * {title: 'Emphasis', value: 'em'},
673
- * {title: 'Underline', value: 'underline'},
674
- * {title: 'Strike', value: 'strike'},
675
- * {title: 'Code', value: 'code'},
676
- * ],
677
- * annotations: [
678
- * {
679
- * type: 'object',
680
- * name: 'link',
681
- * fields: [
682
- * {
683
- * type: 'string',
684
- * name: 'href',
685
- * },
686
- * ],
687
- * },
688
- * ]
689
- * },
690
- * styles: [
691
- * {title: 'Normal', value: 'normal'},
692
- * {title: 'H1', value: 'h1'},
693
- * {title: 'H2', value: 'h2'},
694
- * {title: 'H3', value: 'h3'},
695
- * {title: 'H4', value: 'h4'},
696
- * {title: 'H5', value: 'h5'},
697
- * {title: 'H6', value: 'h6'},
698
- * {title: 'Quote', value: 'blockquote'}
699
- * ],
700
- * lists: [
701
- * {title: 'Bullet', value: 'bullet'},
702
- * {title: 'Number', value: 'number'},
703
- * ],
704
- * },
705
- * ]
706
- * }
707
- * ```
708
- */
709
- declare interface BlockDefinition extends BaseSchemaDefinition {
710
- type: 'block'
711
- styles?: BlockStyleDefinition[]
712
- lists?: BlockListDefinition[]
713
- marks?: BlockMarksDefinition
714
- of?: ArrayOfType<'object' | 'reference'>[]
715
- initialValue?: InitialValueProperty<any, any[]>
716
- options?: BlockOptions
717
- validation?: ValidationBuilder<BlockRule, any[]>
718
- }
719
-
720
- /**
721
- * Schema definition for a text block list style.
722
- *
723
- * @public
724
- * @example The defaults lists
725
- * ```ts
726
- * {
727
- * name: 'blockContent',
728
- * title: 'Content',
729
- * type: 'array',
730
- * of: [
731
- * {
732
- * type: 'block',
733
- * lists: [
734
- * {title: 'Bullet', value: 'bullet'},
735
- * {title: 'Number', value: 'number'},
736
- * ]
737
- * }
738
- * ]
739
- * }
740
- * ```
741
- */
742
- declare interface BlockListDefinition {
743
- title: string
744
- i18nTitleKey?: string
745
- value: string
746
- icon?: ReactNode | ComponentType
747
- }
748
-
749
- /**
750
- * Schema definition for text block marks (decorators and annotations).
751
- *
752
- * @public */
753
- declare interface BlockMarksDefinition {
754
- decorators?: BlockDecoratorDefinition[]
755
- annotations?: ArrayOfType<'object' | 'reference'>[]
756
- }
757
-
758
308
  /**
759
309
  * @beta
760
310
  */
@@ -763,108 +313,10 @@ declare type BlockOffset = {
763
313
  offset: number
764
314
  }
765
315
 
766
- /**
767
- * Schema options for a Block schema definition
768
- * @public */
769
- declare interface BlockOptions extends BaseSchemaTypeOptions {
770
- /**
771
- * Turn on or off the builtin browser spellchecking. Default is on.
772
- */
773
- spellCheck?: boolean
774
- unstable_whitespaceOnPasteMode?: 'preserve' | 'normalize' | 'remove'
775
- }
776
-
777
- /** @public */
778
- declare interface BlockRule extends RuleDef<BlockRule, any[]> {}
779
-
780
- /**
781
- * Schema definition for a text block style.
782
- * A text block may have a block style like 'header', 'normal', 'lead'
783
- * attached to it, which is stored on the `.style` property for that block.
784
- *
785
- * @public
786
- * @remarks The first defined style will become the default style.´´
787
- * @example The default set of styles
788
- * ```ts
789
- * {
790
- * name: 'blockContent',
791
- * title: 'Content',
792
- * type: 'array',
793
- * of: [
794
- * {
795
- * type: 'block',
796
- * styles: [
797
- * {title: 'Normal', value: 'normal'},
798
- * {title: 'H1', value: 'h1'},
799
- * {title: 'H2', value: 'h2'},
800
- * {title: 'H3', value: 'h3'},
801
- * {title: 'H4', value: 'h4'},
802
- * {title: 'H5', value: 'h5'},
803
- * {title: 'H6', value: 'h6'},
804
- * {title: 'Quote', value: 'blockquote'}
805
- * ]
806
- * }
807
- * ]
808
- * }
809
- * ```
810
- * @example Example of defining a block type with custom styles and render components.
811
- * ```ts
812
- * defineArrayMember({
813
- * type: 'block',
814
- * styles: [
815
- * {
816
- * title: 'Paragraph',
817
- * value: 'paragraph',
818
- * component: ParagraphStyle,
819
- * },
820
- * {
821
- * title: 'Lead',
822
- * value: 'lead',
823
- * component: LeadStyle,
824
- * },
825
- * {
826
- * title: 'Heading',
827
- * value: 'heading',
828
- * component: HeadingStyle,
829
- * },
830
- * ],
831
- * })
832
- * ```
833
- */
834
- declare interface BlockStyleDefinition {
835
- title: string
836
- value: string
837
- i18nTitleKey?: string
838
- icon?: ReactNode | ComponentType
839
- }
840
-
841
316
  declare type BlockWithOptionalKey =
842
317
  | TextBlockWithOptionalKey
843
318
  | ObjectBlockWithOptionalKey
844
319
 
845
- /** @public */
846
- declare interface BooleanDefinition extends BaseSchemaDefinition {
847
- type: 'boolean'
848
- options?: BooleanOptions
849
- initialValue?: InitialValueProperty<any, boolean>
850
- validation?: ValidationBuilder<BooleanRule, boolean>
851
- }
852
-
853
- /** @public */
854
- declare interface BooleanOptions extends BaseSchemaTypeOptions {
855
- layout?: 'switch' | 'checkbox'
856
- }
857
-
858
- /** @public */
859
- declare interface BooleanRule extends RuleDef<BooleanRule, boolean> {}
860
-
861
- /** @public */
862
- declare interface BooleanSchemaType extends BaseSchemaType {
863
- jsonType: 'boolean'
864
- options?: BooleanOptions
865
- initialValue?: InitialValueProperty<any, boolean>
866
- }
867
-
868
320
  declare type ClipboardBehaviorEvent =
869
321
  | {
870
322
  type: StrictExtract<NativeBehaviorEventType, 'clipboard.copy'>
@@ -888,35 +340,6 @@ declare type ClipboardBehaviorEvent =
888
340
  position: Pick<EventPosition, 'selection'>
889
341
  }
890
342
 
891
- /** @public */
892
- declare interface CollapseOptions {
893
- collapsed?: boolean
894
- collapsible?: boolean
895
- /**
896
- * @deprecated Use `collapsible` instead
897
- */
898
- collapsable?: boolean
899
- }
900
-
901
- /** @public */
902
- declare type ConditionalProperty =
903
- | boolean
904
- | ConditionalPropertyCallback
905
- | undefined
906
-
907
- /** @public */
908
- declare type ConditionalPropertyCallback = (
909
- context: ConditionalPropertyCallbackContext,
910
- ) => boolean
911
-
912
- /** @public */
913
- declare interface ConditionalPropertyCallbackContext {
914
- document: SanityDocument | undefined
915
- parent: any
916
- value: any
917
- currentUser: Omit<CurrentUser, 'role'> | null
918
- }
919
-
920
343
  declare type Converter<TMIMEType extends MIMEType = MIMEType> = {
921
344
  mimeType: TMIMEType
922
345
  serialize: Serializer<TMIMEType>
@@ -955,46 +378,6 @@ declare type ConverterEvent<TMIMEType extends MIMEType = MIMEType> =
955
378
  mimeType: TMIMEType
956
379
  }
957
380
 
958
- /** @public */
959
- declare interface CrossDatasetReferenceDefinition extends BaseSchemaDefinition {
960
- type: 'crossDatasetReference'
961
- weak?: boolean
962
- to: {
963
- type: string
964
- title?: string
965
- icon?: ComponentType
966
- preview?: PreviewConfig
967
- /**
968
- * @deprecated Unused. Configuring search is no longer supported.
969
- */
970
- __experimental_search?: {
971
- path: string | string[]
972
- weight?: number
973
- mapWith?: string
974
- }[]
975
- }[]
976
- dataset: string
977
- studioUrl?: (document: {id: string; type?: string}) => string | null
978
- tokenId?: string
979
- options?: ReferenceOptions
980
- /**
981
- * @deprecated Cross-project references are no longer supported, only cross-dataset
982
- */
983
- projectId?: string
984
- }
985
-
986
- /** @public */
987
- declare interface CurrentUser {
988
- id: string
989
- name: string
990
- email: string
991
- profileImage?: string
992
- provider?: string
993
- /** @deprecated use `roles` instead */
994
- role: string
995
- roles: Role[]
996
- }
997
-
998
381
  /**
999
382
  * @beta
1000
383
  */
@@ -1019,89 +402,6 @@ declare type CustomBehaviorEventType<
1019
402
  TType extends string = '',
1020
403
  > = TType extends '' ? `${TNamespace}` : `${TNamespace}.${TType}`
1021
404
 
1022
- /** @public */
1023
- declare interface CustomValidator<T = unknown> {
1024
- (
1025
- value: T,
1026
- context: ValidationContext,
1027
- ): CustomValidatorResult | Promise<CustomValidatorResult>
1028
- bypassConcurrencyLimit?: boolean
1029
- }
1030
-
1031
- /** @public */
1032
- declare type CustomValidatorResult =
1033
- | true
1034
- | string
1035
- | ValidationError
1036
- | ValidationError[]
1037
- | LocalizedValidationMessages
1038
-
1039
- /** @public */
1040
- declare interface DateDefinition extends BaseSchemaDefinition {
1041
- type: 'date'
1042
- options?: DateOptions
1043
- placeholder?: string
1044
- validation?: ValidationBuilder<DateRule, string>
1045
- initialValue?: InitialValueProperty<any, string>
1046
- }
1047
-
1048
- /** @public */
1049
- declare interface DateOptions extends BaseSchemaTypeOptions {
1050
- dateFormat?: string
1051
- }
1052
-
1053
- /** @public */
1054
- declare interface DateRule extends RuleDef<DateRule, string> {
1055
- /**
1056
- * @param minDate - Minimum date (inclusive). minDate should be in ISO 8601 format.
1057
- */
1058
- min: (minDate: string | FieldReference) => DateRule
1059
- /**
1060
- * @param maxDate - Maximum date (inclusive). maxDate should be in ISO 8601 format.
1061
- */
1062
- max: (maxDate: string | FieldReference) => DateRule
1063
- }
1064
-
1065
- /** @public */
1066
- declare interface DatetimeDefinition extends BaseSchemaDefinition {
1067
- type: 'datetime'
1068
- options?: DatetimeOptions
1069
- placeholder?: string
1070
- validation?: ValidationBuilder<DatetimeRule, string>
1071
- initialValue?: InitialValueProperty<any, string>
1072
- }
1073
-
1074
- /** @public */
1075
- declare interface DatetimeOptions extends BaseSchemaTypeOptions {
1076
- dateFormat?: string
1077
- timeFormat?: string
1078
- timeStep?: number
1079
- }
1080
-
1081
- /** @public */
1082
- declare interface DatetimeRule extends RuleDef<DatetimeRule, string> {
1083
- /**
1084
- * @param minDate - Minimum date (inclusive). minDate should be in ISO 8601 format.
1085
- */
1086
- min: (minDate: string | FieldReference) => DatetimeRule
1087
- /**
1088
- * @param maxDate - Maximum date (inclusive). maxDate should be in ISO 8601 format.
1089
- */
1090
- max: (maxDate: string | FieldReference) => DatetimeRule
1091
- }
1092
-
1093
- /** @public */
1094
- declare interface DeprecatedProperty {
1095
- reason: string
1096
- }
1097
-
1098
- /**
1099
- * @public
1100
- */
1101
- declare interface DeprecationConfiguration {
1102
- deprecated: DeprecatedProperty
1103
- }
1104
-
1105
405
  declare type Deserializer<TMIMEType extends MIMEType> = ({
1106
406
  snapshot,
1107
407
  event,
@@ -1114,40 +414,6 @@ declare type Deserializer<TMIMEType extends MIMEType> = ({
1114
414
  'deserialization.success' | 'deserialization.failure'
1115
415
  >
1116
416
 
1117
- /** @public */
1118
- declare interface DocumentDefinition extends Omit<ObjectDefinition, 'type'> {
1119
- type: 'document'
1120
- liveEdit?: boolean
1121
- /** @beta */
1122
- orderings?: SortOrdering[]
1123
- options?: DocumentOptions
1124
- validation?: ValidationBuilder<DocumentRule, SanityDocument>
1125
- initialValue?: InitialValueProperty<any, Record<string, unknown>>
1126
- /** @deprecated Unused. Use the new field-level search config. */
1127
- __experimental_search?: {
1128
- path: string
1129
- weight: number
1130
- mapWith?: string
1131
- }[]
1132
- /** @alpha */
1133
- __experimental_omnisearch_visibility?: boolean
1134
- /**
1135
- * Determines whether the large preview title is displayed in the document pane form
1136
- * @alpha
1137
- * */
1138
- __experimental_formPreviewTitle?: boolean
1139
- }
1140
-
1141
- /**
1142
- * This exists only to allow for extensions using declaration-merging.
1143
- *
1144
- * @public
1145
- */
1146
- declare interface DocumentOptions extends BaseSchemaTypeOptions {}
1147
-
1148
- /** @public */
1149
- declare interface DocumentRule extends RuleDef<DocumentRule, SanityDocument> {}
1150
-
1151
417
  declare type DragBehaviorEvent =
1152
418
  | {
1153
419
  type: StrictExtract<NativeBehaviorEventType, 'drag.dragstart'>
@@ -5864,213 +5130,17 @@ declare type EditorSnapshot = {
5864
5130
  }
5865
5131
  }
5866
5132
 
5867
- /** @public */
5868
- declare interface EmailDefinition extends BaseSchemaDefinition {
5869
- type: 'email'
5870
- options?: EmailOptions
5871
- placeholder?: string
5872
- validation?: ValidationBuilder<EmailRule, string>
5873
- initialValue?: InitialValueProperty<any, string>
5133
+ declare type EventPosition = {
5134
+ block: 'start' | 'end'
5135
+ /**
5136
+ * Did the event origin from the editor DOM node itself or from a child node?
5137
+ */
5138
+ isEditor: boolean
5139
+ selection: NonNullable<EditorSelection>
5874
5140
  }
5875
5141
 
5876
- /** @public */
5877
- declare interface EmailOptions extends BaseSchemaTypeOptions {}
5878
-
5879
- /** @public */
5880
- declare interface EmailRule extends RuleDef<EmailRule, string> {}
5881
-
5882
- /** @public */
5883
- declare interface EmptyProps {}
5884
-
5885
- /** @public */
5886
- declare interface EnumListProps<V = unknown> {
5887
- list?: Array<TitledListValue<V> | V>
5888
- layout?: 'radio' | 'dropdown'
5889
- direction?: 'horizontal' | 'vertical'
5890
- }
5891
-
5892
- declare type EventPosition = {
5893
- block: 'start' | 'end'
5894
- /**
5895
- * Did the event origin from the editor DOM node itself or from a child node?
5896
- */
5897
- isEditor: boolean
5898
- selection: NonNullable<EditorSelection>
5899
- }
5900
-
5901
- declare type ExtractNamespace<TType extends string> =
5902
- TType extends `${infer Namespace}.${string}` ? Namespace : TType
5903
-
5904
- /**
5905
- * The shape of a field definition. Note, it's recommended to use the
5906
- * `defineField` function instead of using this type directly.
5907
- *
5908
- * Where `defineField` infers the exact field type,
5909
- * FieldDefinition is a compromise union of all types a field can have.
5910
- *
5911
- * A field definition can be a reference to another registered top-level type
5912
- * or a inline type definition.
5913
- *
5914
- * @public
5915
- */
5916
- declare type FieldDefinition<
5917
- TType extends IntrinsicTypeName = IntrinsicTypeName,
5918
- TAlias extends IntrinsicTypeName | undefined = undefined,
5919
- > = (InlineFieldDefinition[TType] | TypeAliasDefinition<string, TAlias>) &
5920
- FieldDefinitionBase
5921
-
5922
- /** @public */
5923
- declare interface FieldDefinitionBase {
5924
- fieldset?: string
5925
- group?: string | string[]
5926
- }
5927
-
5928
- /** @public */
5929
- declare interface FieldGroup {
5930
- name: string
5931
- icon?: ComponentType
5932
- title?: string
5933
- description?: string
5934
- i18n?: I18nTextRecord<'title'>
5935
- hidden?: ConditionalProperty
5936
- default?: boolean
5937
- fields?: ObjectField[]
5938
- }
5939
-
5940
- /** @public */
5941
- declare type FieldGroupDefinition = {
5942
- name: string
5943
- title?: string
5944
- hidden?: ConditionalProperty
5945
- icon?: ComponentType
5946
- default?: boolean
5947
- i18n?: I18nTextRecord<'title'>
5948
- }
5949
-
5950
- /**
5951
- * Holds a reference to a different field
5952
- * NOTE: Only use this through {@link Rule.valueOfField}
5953
- *
5954
- * @public
5955
- */
5956
- declare interface FieldReference {
5957
- type: symbol
5958
- path: string | string[]
5959
- }
5960
-
5961
- /** @public */
5962
- declare type FieldRules = {
5963
- [fieldKey: string]: SchemaValidationValue
5964
- }
5965
-
5966
- /** @public */
5967
- declare type Fieldset = SingleFieldSet | MultiFieldSet
5968
-
5969
- /** @public */
5970
- declare type FieldsetDefinition = {
5971
- name: string
5972
- title?: string
5973
- description?: string
5974
- group?: string
5975
- hidden?: ConditionalProperty
5976
- readOnly?: ConditionalProperty
5977
- options?: ObjectOptions
5978
- }
5979
-
5980
- /** @public */
5981
- declare interface File_2 {
5982
- [key: string]: unknown
5983
- asset?: Reference
5984
- }
5985
-
5986
- /** @public */
5987
- declare interface FileDefinition
5988
- extends Omit<
5989
- ObjectDefinition,
5990
- 'type' | 'fields' | 'options' | 'groups' | 'validation'
5991
- > {
5992
- type: 'file'
5993
- fields?: ObjectDefinition['fields']
5994
- options?: FileOptions
5995
- validation?: ValidationBuilder<FileRule, FileValue>
5996
- initialValue?: InitialValueProperty<any, FileValue>
5997
- }
5998
-
5999
- /** @public */
6000
- declare interface FileOptions extends ObjectOptions {
6001
- storeOriginalFilename?: boolean
6002
- accept?: string
6003
- sources?: AssetSource[]
6004
- }
6005
-
6006
- /** @public */
6007
- declare interface FileRule extends RuleDef<FileRule, FileValue> {
6008
- /**
6009
- * Require a file field has an asset.
6010
- *
6011
- * @example
6012
- * ```ts
6013
- * defineField({
6014
- * name: 'file',
6015
- * title: 'File',
6016
- * type: 'file',
6017
- * validation: (Rule) => Rule.required().assetRequired(),
6018
- * })
6019
- * ```
6020
- */
6021
- assetRequired(): FileRule
6022
- }
6023
-
6024
- /** @public */
6025
- declare interface FileSchemaType extends Omit<ObjectSchemaType, 'options'> {
6026
- options?: FileOptions
6027
- }
6028
-
6029
- /** @public */
6030
- declare interface FileValue {
6031
- asset?: Reference
6032
- [index: string]: unknown
6033
- }
6034
-
6035
- /** @public */
6036
- declare interface GeopointDefinition extends BaseSchemaDefinition {
6037
- type: 'geopoint'
6038
- options?: GeopointOptions
6039
- validation?: ValidationBuilder<GeopointRule, GeopointValue>
6040
- initialValue?: InitialValueProperty<any, Omit<GeopointValue, '_type'>>
6041
- }
6042
-
6043
- /** @public */
6044
- declare interface GeopointOptions extends BaseSchemaTypeOptions {}
6045
-
6046
- /** @public */
6047
- declare interface GeopointRule extends RuleDef<GeopointRule, GeopointValue> {}
6048
-
6049
- /**
6050
- * Geographical point representing a pair of latitude and longitude coordinates,
6051
- * stored as degrees, in the World Geodetic System 1984 (WGS 84) format. Also
6052
- * includes an optional `alt` property representing the altitude in meters.
6053
- *
6054
- * @public
6055
- */
6056
- declare interface GeopointValue {
6057
- /**
6058
- * Type of the object. Must be `geopoint`.
6059
- */
6060
- _type: 'geopoint'
6061
- /**
6062
- * Latitude in degrees
6063
- */
6064
- lat: number
6065
- /**
6066
- * Longitude in degrees
6067
- */
6068
- lng: number
6069
- /**
6070
- * Altitude in meters
6071
- */
6072
- alt?: number
6073
- }
5142
+ declare type ExtractNamespace<TType extends string> =
5143
+ TType extends `${infer Namespace}.${string}` ? Namespace : TType
6074
5144
 
6075
5145
  /**
6076
5146
  * @public
@@ -6395,23 +5465,6 @@ export declare const getTrimmedSelection: EditorSelector<EditorSelection>
6395
5465
  */
6396
5466
  export declare const getValue: EditorSelector<Array<PortableTextBlock>>
6397
5467
 
6398
- /** @public */
6399
- declare interface GlobalDocumentReferenceDefinition
6400
- extends BaseSchemaDefinition {
6401
- type: 'globalDocumentReference'
6402
- weak?: boolean
6403
- to: {
6404
- type: string
6405
- title?: string
6406
- icon?: ComponentType
6407
- preview?: PreviewConfig
6408
- }[]
6409
- resourceType: string
6410
- resourceId: string
6411
- options?: ReferenceOptions
6412
- studioUrl?: (document: {id: string; type?: string}) => string | null
6413
- }
6414
-
6415
5468
  declare type HasTag = ReturnType<EditorActor['getSnapshot']>['hasTag']
6416
5469
 
6417
5470
  declare interface History_2 {
@@ -6424,178 +5477,6 @@ declare type HistoryItem = {
6424
5477
  timestamp: Date
6425
5478
  }
6426
5479
 
6427
- /** @public */
6428
- declare interface HotspotOptions {
6429
- previews?: HotspotPreview[]
6430
- }
6431
-
6432
- /** @public */
6433
- declare interface HotspotPreview {
6434
- title: string
6435
- aspectRatio: number
6436
- }
6437
-
6438
- /** @public */
6439
- declare type I18nTextRecord<K extends string> = {
6440
- [P in K]?: {
6441
- key: string
6442
- ns: string
6443
- }
6444
- }
6445
-
6446
- /** @public */
6447
- declare interface ImageAsset extends Asset {
6448
- _type: 'sanity.imageAsset'
6449
- metadata: ImageMetadata
6450
- }
6451
-
6452
- /** @public */
6453
- declare interface ImageCrop {
6454
- _type?: 'sanity.imageCrop'
6455
- left: number
6456
- bottom: number
6457
- right: number
6458
- top: number
6459
- }
6460
-
6461
- /** @public */
6462
- declare interface ImageDefinition
6463
- extends Omit<
6464
- ObjectDefinition,
6465
- 'type' | 'fields' | 'options' | 'groups' | 'validation'
6466
- > {
6467
- type: 'image'
6468
- fields?: FieldDefinition[]
6469
- options?: ImageOptions
6470
- validation?: ValidationBuilder<ImageRule, ImageValue>
6471
- initialValue?: InitialValueProperty<any, ImageValue>
6472
- }
6473
-
6474
- /** @public */
6475
- declare interface ImageDimensions {
6476
- _type: 'sanity.imageDimensions'
6477
- height: number
6478
- width: number
6479
- aspectRatio: number
6480
- }
6481
-
6482
- /** @public */
6483
- declare interface ImageHotspot {
6484
- _type?: 'sanity.imageHotspot'
6485
- width: number
6486
- height: number
6487
- x: number
6488
- y: number
6489
- }
6490
-
6491
- /** @public */
6492
- declare interface ImageMetadata {
6493
- [key: string]: unknown
6494
- _type: 'sanity.imageMetadata'
6495
- dimensions: ImageDimensions
6496
- palette?: ImagePalette
6497
- lqip?: string
6498
- blurHash?: string
6499
- hasAlpha: boolean
6500
- isOpaque: boolean
6501
- }
6502
-
6503
- /** @public */
6504
- declare type ImageMetadataType =
6505
- | 'blurhash'
6506
- | 'lqip'
6507
- | 'palette'
6508
- | 'exif'
6509
- | 'image'
6510
- | 'location'
6511
-
6512
- /** @public */
6513
- declare interface ImageOptions extends FileOptions {
6514
- metadata?: ImageMetadataType[]
6515
- hotspot?: boolean | HotspotOptions
6516
- }
6517
-
6518
- /** @public */
6519
- declare interface ImagePalette {
6520
- _type: 'sanity.imagePalette'
6521
- darkMuted?: ImageSwatch
6522
- darkVibrant?: ImageSwatch
6523
- dominant?: ImageSwatch
6524
- lightMuted?: ImageSwatch
6525
- lightVibrant?: ImageSwatch
6526
- muted?: ImageSwatch
6527
- vibrant?: ImageSwatch
6528
- }
6529
-
6530
- /** @public */
6531
- declare interface ImageRule extends RuleDef<ImageRule, ImageValue> {
6532
- /**
6533
- * Require an image field has an asset.
6534
- *
6535
- * @example
6536
- * ```ts
6537
- * defineField({
6538
- * name: 'image',
6539
- * title: 'Image',
6540
- * type: 'image',
6541
- * validation: (Rule) => Rule.required().assetRequired(),
6542
- * })
6543
- * ```
6544
- */
6545
- assetRequired(): ImageRule
6546
- }
6547
-
6548
- /** @public */
6549
- declare interface ImageSwatch {
6550
- _type: 'sanity.imagePaletteSwatch'
6551
- background: string
6552
- foreground: string
6553
- population: number
6554
- title?: string
6555
- }
6556
-
6557
- /** @public */
6558
- declare interface ImageValue extends FileValue {
6559
- crop?: ImageCrop
6560
- hotspot?: ImageHotspot
6561
- [index: string]: unknown
6562
- }
6563
-
6564
- /** @public */
6565
- declare type IndexTuple = [number | '', number | '']
6566
-
6567
- /** @public */
6568
- declare type InitialValueProperty<Params, Value> =
6569
- | Value
6570
- | InitialValueResolver<Params, Value>
6571
- | undefined
6572
-
6573
- /** @public */
6574
- declare type InitialValueResolver<Params, Value> = (
6575
- params: Params | undefined,
6576
- context: InitialValueResolverContext,
6577
- ) => Promise<Value> | Value
6578
-
6579
- /** @public */
6580
- declare interface InitialValueResolverContext {
6581
- projectId: string
6582
- dataset: string
6583
- schema: Schema
6584
- currentUser: CurrentUser | null
6585
- getClient: (options: {apiVersion: string}) => SanityClient
6586
- }
6587
-
6588
- /** @public */
6589
- declare type InlineFieldDefinition = {
6590
- [K in keyof IntrinsicDefinitions]: Omit<
6591
- IntrinsicDefinitions[K],
6592
- 'initialValue' | 'validation'
6593
- > & {
6594
- validation?: SchemaValidationValue
6595
- initialValue?: InitialValueProperty<any, any>
6596
- }
6597
- }
6598
-
6599
5480
  /**
6600
5481
  * Used to represent native InputEvents that hold a DataTransfer object.
6601
5482
  *
@@ -6614,33 +5495,6 @@ declare type InputBehaviorEvent = {
6614
5495
  }
6615
5496
  }
6616
5497
 
6617
- /** @alpha This API may change */
6618
- declare interface InsertMenuOptions {
6619
- /**
6620
- * @defaultValue `'auto'`
6621
- * `filter: 'auto'` automatically turns on filtering if there are more than 5
6622
- * schema types added to the menu.
6623
- */
6624
- filter?: 'auto' | boolean
6625
- groups?: Array<{
6626
- name: string
6627
- title?: string
6628
- of?: Array<string>
6629
- }>
6630
- /** defaultValue `true` */
6631
- showIcons?: boolean
6632
- /** @defaultValue `[{name: 'list'}]` */
6633
- views?: Array<
6634
- | {
6635
- name: 'list'
6636
- }
6637
- | {
6638
- name: 'grid'
6639
- previewImageUrl?: (schemaTypeName: string) => string | undefined
6640
- }
6641
- >
6642
- }
6643
-
6644
5498
  declare type InsertPlacement = 'auto' | 'after' | 'before'
6645
5499
 
6646
5500
  declare type InternalPatchEvent = NamespaceEvent<PatchEvent, 'internal'> & {
@@ -6648,64 +5502,6 @@ declare type InternalPatchEvent = NamespaceEvent<PatchEvent, 'internal'> & {
6648
5502
  value: Array<PortableTextBlock>
6649
5503
  }
6650
5504
 
6651
- /** @public */
6652
- declare type IntrinsicArrayOfDefinition = {
6653
- [K in keyof IntrinsicDefinitions]: Omit<
6654
- ArrayOfEntry<IntrinsicDefinitions[K]>,
6655
- 'validation' | 'initialValue'
6656
- > & {
6657
- validation?: SchemaValidationValue
6658
- initialValue?: InitialValueProperty<any, any>
6659
- }
6660
- }
6661
-
6662
- /**
6663
- * `IntrinsicDefinitions` is a lookup map for "predefined" schema definitions.
6664
- * Schema types in `IntrinsicDefinitions` will have good type-completion and type-safety in {@link defineType},
6665
- * {@link defineField} and {@link defineArrayMember} once the `type` property is provided.
6666
- *
6667
- * By default, `IntrinsicDefinitions` contains all standard Sanity schema types (`array`, `string`, `number` ect),
6668
- * but it is an interface and as such, open for extension.
6669
- *
6670
- * This type can be extended using declaration merging; this way new entries can be added.
6671
- * See {@link defineType} for examples on how this can be accomplished.
6672
- *
6673
- * @see defineType
6674
- *
6675
- * @public
6676
- */
6677
- declare interface IntrinsicDefinitions {
6678
- array: ArrayDefinition
6679
- block: BlockDefinition
6680
- boolean: BooleanDefinition
6681
- date: DateDefinition
6682
- datetime: DatetimeDefinition
6683
- document: DocumentDefinition
6684
- file: FileDefinition
6685
- geopoint: GeopointDefinition
6686
- image: ImageDefinition
6687
- number: NumberDefinition
6688
- object: ObjectDefinition
6689
- reference: ReferenceDefinition
6690
- crossDatasetReference: CrossDatasetReferenceDefinition
6691
- globalDocumentReference: GlobalDocumentReferenceDefinition
6692
- slug: SlugDefinition
6693
- string: StringDefinition
6694
- text: TextDefinition
6695
- url: UrlDefinition
6696
- email: EmailDefinition
6697
- }
6698
-
6699
- /**
6700
- * A union of all intrinsic types allowed natively in the schema.
6701
- *
6702
- * @see IntrinsicDefinitions
6703
- *
6704
- * @public
6705
- */
6706
- declare type IntrinsicTypeName =
6707
- IntrinsicDefinitions[keyof IntrinsicDefinitions]['type']
6708
-
6709
5505
  /**
6710
5506
  * The editor has invalid data in the value that can be resolved by the user
6711
5507
  * @beta */
@@ -6823,27 +5619,6 @@ declare type KeyboardBehaviorEvent =
6823
5619
  >
6824
5620
  }
6825
5621
 
6826
- /** @public */
6827
- declare type KeyedSegment = {
6828
- _key: string
6829
- }
6830
-
6831
- /**
6832
- * Holds localized validation messages for a given field.
6833
- *
6834
- * @example Custom message for English (US) and Norwegian (Bokmål):
6835
- * ```
6836
- * {
6837
- * 'en-US': 'Needs to start with a capital letter',
6838
- * 'no-NB': 'Må starte med stor bokstav',
6839
- * }
6840
- * ```
6841
- * @public
6842
- */
6843
- declare interface LocalizedValidationMessages {
6844
- [locale: string]: string
6845
- }
6846
-
6847
5622
  declare type MIMEType = `${string}/${string}`
6848
5623
 
6849
5624
  declare type MouseBehaviorEvent = {
@@ -6851,21 +5626,6 @@ declare type MouseBehaviorEvent = {
6851
5626
  position: EventPosition
6852
5627
  }
6853
5628
 
6854
- /** @public */
6855
- declare interface MultiFieldSet {
6856
- name: string
6857
- title?: string
6858
- description?: string
6859
- single?: false
6860
- group?: string | string[]
6861
- options?: CollapseOptions & {
6862
- columns?: number
6863
- }
6864
- fields: ObjectField[]
6865
- hidden?: ConditionalProperty
6866
- readOnly?: ConditionalProperty
6867
- }
6868
-
6869
5629
  /**
6870
5630
  * @public
6871
5631
  */
@@ -6933,114 +5693,10 @@ declare const nativeBehaviorEventTypes: readonly [
6933
5693
  'mouse.click',
6934
5694
  ]
6935
5695
 
6936
- /** @public */
6937
- declare interface NumberDefinition extends BaseSchemaDefinition {
6938
- type: 'number'
6939
- options?: NumberOptions
6940
- placeholder?: string
6941
- validation?: ValidationBuilder<NumberRule, number>
6942
- initialValue?: InitialValueProperty<any, number>
6943
- }
6944
-
6945
- /** @public */
6946
- declare interface NumberOptions
6947
- extends EnumListProps<number>,
6948
- BaseSchemaTypeOptions {}
6949
-
6950
- /** @public */
6951
- declare interface NumberRule extends RuleDef<NumberRule, number> {
6952
- min: (minNumber: number | FieldReference) => NumberRule
6953
- max: (maxNumber: number | FieldReference) => NumberRule
6954
- lessThan: (limit: number | FieldReference) => NumberRule
6955
- greaterThan: (limit: number | FieldReference) => NumberRule
6956
- integer: () => NumberRule
6957
- precision: (limit: number | FieldReference) => NumberRule
6958
- positive: () => NumberRule
6959
- negative: () => NumberRule
6960
- }
6961
-
6962
- /** @public */
6963
- declare interface NumberSchemaType extends BaseSchemaType {
6964
- jsonType: 'number'
6965
- options?: NumberOptions
6966
- initialValue?: InitialValueProperty<any, number>
6967
- }
6968
-
6969
5696
  declare type ObjectBlockWithOptionalKey = Omit<PortableTextObject, '_key'> & {
6970
5697
  _key?: PortableTextObject['_key']
6971
5698
  }
6972
5699
 
6973
- /** @public */
6974
- declare interface ObjectDefinition extends BaseSchemaDefinition {
6975
- type: 'object'
6976
- /**
6977
- * Object must have at least one field. This is validated at Studio startup.
6978
- */
6979
- fields: FieldDefinition[]
6980
- groups?: FieldGroupDefinition[]
6981
- fieldsets?: FieldsetDefinition[]
6982
- preview?: PreviewConfig
6983
- options?: ObjectOptions
6984
- validation?: ValidationBuilder<ObjectRule, Record<string, unknown>>
6985
- initialValue?: InitialValueProperty<any, Record<string, unknown>>
6986
- }
6987
-
6988
- /** @public */
6989
- declare interface ObjectField<T extends SchemaType = SchemaType> {
6990
- name: string
6991
- fieldset?: string
6992
- group?: string | string[]
6993
- type: ObjectFieldType<T>
6994
- }
6995
-
6996
- /** @public */
6997
- declare type ObjectFieldType<T extends SchemaType = SchemaType> = T & {
6998
- hidden?: ConditionalProperty
6999
- readOnly?: ConditionalProperty
7000
- }
7001
-
7002
- /** @public */
7003
- declare interface ObjectOptions extends BaseSchemaTypeOptions {
7004
- collapsible?: boolean
7005
- collapsed?: boolean
7006
- columns?: number
7007
- modal?: {
7008
- type?: 'dialog' | 'popover'
7009
- width?: number | number[] | 'auto'
7010
- }
7011
- }
7012
-
7013
- /** @public */
7014
- declare interface ObjectRule
7015
- extends RuleDef<ObjectRule, Record<string, unknown>> {}
7016
-
7017
- /** @public */
7018
- declare interface ObjectSchemaType extends BaseSchemaType {
7019
- jsonType: 'object'
7020
- fields: ObjectField[]
7021
- groups?: FieldGroup[]
7022
- fieldsets?: Fieldset[]
7023
- initialValue?: InitialValueProperty<any, Record<string, unknown>>
7024
- weak?: boolean
7025
- /** @deprecated Unused. Use the new field-level search config. */
7026
- __experimental_search?: {
7027
- path: (string | number)[]
7028
- weight: number
7029
- mapWith?: string
7030
- }[]
7031
- /** @alpha */
7032
- __experimental_omnisearch_visibility?: boolean
7033
- /** @alpha */
7034
- __experimental_actions?: string[]
7035
- /** @alpha */
7036
- __experimental_formPreviewTitle?: boolean
7037
- /**
7038
- * @beta
7039
- */
7040
- orderings?: SortOrdering[]
7041
- options?: any
7042
- }
7043
-
7044
5700
  /**
7045
5701
  * @public
7046
5702
  */
@@ -7055,12 +5711,6 @@ declare type PatchEvent = {
7055
5711
  patch: Patch
7056
5712
  }
7057
5713
 
7058
- /** @public */
7059
- declare type Path = PathSegment[]
7060
-
7061
- /** @public */
7062
- declare type PathSegment = string | number | KeyedSegment | IndexTuple
7063
-
7064
5714
  /**
7065
5715
  * @internal
7066
5716
  */
@@ -7070,18 +5720,6 @@ declare type PickFromUnion<
7070
5720
  TPickedTags extends TUnion[TTagKey],
7071
5721
  > = TUnion extends Record<TTagKey, TPickedTags> ? TUnion : never
7072
5722
 
7073
- /** @alpha */
7074
- declare type PortableTextBlock = PortableTextTextBlock | PortableTextObject
7075
-
7076
- /** @alpha */
7077
- declare type PortableTextChild = PortableTextObject | PortableTextSpan
7078
-
7079
- /** @alpha */
7080
- declare interface PortableTextListBlock extends PortableTextTextBlock {
7081
- listItem: string
7082
- level: number
7083
- }
7084
-
7085
5723
  /** @beta */
7086
5724
  declare type PortableTextMemberSchemaTypes = {
7087
5725
  annotations: (ObjectSchemaType & {
@@ -7097,13 +5735,6 @@ declare type PortableTextMemberSchemaTypes = {
7097
5735
  lists: BlockListDefinition[]
7098
5736
  }
7099
5737
 
7100
- /** @alpha */
7101
- declare interface PortableTextObject {
7102
- _type: string
7103
- _key: string
7104
- [other: string]: unknown
7105
- }
7106
-
7107
5738
  declare interface PortableTextSlateEditor extends ReactEditor {
7108
5739
  _key: 'editor'
7109
5740
  _type: 'editor'
@@ -7137,162 +5768,6 @@ declare interface PortableTextSlateEditor extends ReactEditor {
7137
5768
  redo: () => void
7138
5769
  }
7139
5770
 
7140
- /** @alpha */
7141
- declare interface PortableTextSpan {
7142
- _key: string
7143
- _type: 'span'
7144
- text: string
7145
- marks?: string[]
7146
- }
7147
-
7148
- /** @alpha */
7149
- declare interface PortableTextTextBlock<
7150
- TChild = PortableTextSpan | PortableTextObject,
7151
- > {
7152
- _type: string
7153
- _key: string
7154
- children: TChild[]
7155
- markDefs?: PortableTextObject[]
7156
- listItem?: string
7157
- style?: string
7158
- level?: number
7159
- }
7160
-
7161
- /** @public */
7162
- declare interface PrepareViewOptions {
7163
- /** @beta */
7164
- ordering?: SortOrdering
7165
- }
7166
-
7167
- /** @public */
7168
- declare interface PreviewConfig<
7169
- Select extends Record<string, string> = Record<string, string>,
7170
- PrepareValue extends Record<keyof Select, any> = Record<keyof Select, any>,
7171
- > {
7172
- select?: Select
7173
- prepare?: (
7174
- value: PrepareValue,
7175
- viewOptions?: PrepareViewOptions,
7176
- ) => PreviewValue
7177
- }
7178
-
7179
- /** @public */
7180
- declare interface PreviewValue {
7181
- _id?: string
7182
- _createdAt?: string
7183
- _updatedAt?: string
7184
- title?: string
7185
- subtitle?: string
7186
- description?: string
7187
- media?: ReactNode | ElementType
7188
- imageUrl?: string
7189
- }
7190
-
7191
- /** @public */
7192
- declare interface Reference {
7193
- _type: string
7194
- _ref: string
7195
- _key?: string
7196
- _weak?: boolean
7197
- _strengthenOnPublish?: {
7198
- type: string
7199
- weak?: boolean
7200
- template?: {
7201
- id: string
7202
- params: Record<string, string | number | boolean>
7203
- }
7204
- }
7205
- }
7206
-
7207
- /** @public */
7208
- declare interface ReferenceBaseOptions extends BaseSchemaTypeOptions {
7209
- disableNew?: boolean
7210
- }
7211
-
7212
- /** @public */
7213
- declare interface ReferenceDefinition extends BaseSchemaDefinition {
7214
- type: 'reference'
7215
- to: ReferenceTo
7216
- weak?: boolean
7217
- options?: ReferenceOptions
7218
- validation?: ValidationBuilder<ReferenceRule, ReferenceValue>
7219
- initialValue?: InitialValueProperty<any, Omit<ReferenceValue, '_type'>>
7220
- }
7221
-
7222
- /** @public */
7223
- declare type ReferenceFilterOptions =
7224
- | ReferenceFilterResolverOptions
7225
- | ReferenceFilterQueryOptions
7226
-
7227
- /** @public */
7228
- declare interface ReferenceFilterQueryOptions {
7229
- filter: string
7230
- filterParams?: Record<string, unknown>
7231
- }
7232
-
7233
- /** @public */
7234
- declare type ReferenceFilterResolver = (
7235
- context: ReferenceFilterResolverContext,
7236
- ) => ReferenceFilterSearchOptions | Promise<ReferenceFilterSearchOptions>
7237
-
7238
- /** @public */
7239
- declare interface ReferenceFilterResolverContext {
7240
- document: SanityDocument
7241
- parent?: Record<string, unknown> | Record<string, unknown>[]
7242
- parentPath: Path
7243
- getClient: (options: {apiVersion: string}) => SanityClient
7244
- }
7245
-
7246
- /** @public */
7247
- declare interface ReferenceFilterResolverOptions {
7248
- filter?: ReferenceFilterResolver
7249
- filterParams?: never
7250
- }
7251
-
7252
- /** @public */
7253
- declare type ReferenceFilterSearchOptions = {
7254
- filter?: string
7255
- params?: Record<string, unknown>
7256
- tag?: string
7257
- maxFieldDepth?: number
7258
- strategy?: SearchStrategy
7259
- perspective?: ClientPerspective
7260
- }
7261
-
7262
- /**
7263
- * Types are closed for extension. To add properties via declaration merging to this type,
7264
- * redeclare and add the properties to the interfaces that make up ReferenceOptions type.
7265
- *
7266
- * @see ReferenceFilterOptions
7267
- * @see ReferenceFilterResolverOptions
7268
- * @see ReferenceBaseOptions
7269
- *
7270
- * @public
7271
- */
7272
- declare type ReferenceOptions = ReferenceBaseOptions & ReferenceFilterOptions
7273
-
7274
- /** @public */
7275
- declare interface ReferenceRule
7276
- extends RuleDef<ReferenceRule, ReferenceValue> {}
7277
-
7278
- /** @public */
7279
- declare interface ReferenceSchemaType
7280
- extends Omit<ObjectSchemaType, 'options'> {
7281
- jsonType: 'object'
7282
- to: ObjectSchemaType[]
7283
- weak?: boolean
7284
- options?: ReferenceOptions
7285
- }
7286
-
7287
- /** @public */
7288
- declare type ReferenceTo =
7289
- | SchemaTypeDefinition
7290
- | TypeReference
7291
- | Array<SchemaTypeDefinition | TypeReference>
7292
-
7293
- /** @public */
7294
- declare type ReferenceValue = Reference
7295
-
7296
5771
  /**************************************
7297
5772
  * Resolve behavior event
7298
5773
  **************************************/
@@ -7318,437 +5793,6 @@ declare type ResolveBehaviorEvent<
7318
5793
  ? PickFromUnion<BehaviorEvent, 'type', TBehaviorEventType>
7319
5794
  : never
7320
5795
 
7321
- /** @public */
7322
- declare interface Role {
7323
- name: string
7324
- title: string
7325
- description?: string
7326
- }
7327
-
7328
- /** @public */
7329
- declare interface Rule {
7330
- /**
7331
- * @internal
7332
- * @deprecated internal use only
7333
- */
7334
- _type: RuleTypeConstraint | undefined
7335
- /**
7336
- * @internal
7337
- * @deprecated internal use only
7338
- */
7339
- _level: 'error' | 'warning' | 'info' | undefined
7340
- /**
7341
- * @internal
7342
- * @deprecated internal use only
7343
- */
7344
- _required: 'required' | 'optional' | undefined
7345
- /**
7346
- * @internal
7347
- * @deprecated internal use only
7348
- */
7349
- _typeDef: SchemaType | undefined
7350
- /**
7351
- * @internal
7352
- * @deprecated internal use only
7353
- */
7354
- _message: string | LocalizedValidationMessages | undefined
7355
- /**
7356
- * @internal
7357
- * @deprecated internal use only
7358
- */
7359
- _rules: RuleSpec[]
7360
- /**
7361
- * @internal
7362
- * @deprecated internal use only
7363
- */
7364
- _fieldRules: FieldRules | undefined
7365
- /**
7366
- * Takes in a path and returns an object with a symbol.
7367
- *
7368
- * When the validation lib sees this symbol, it will use the provided path to
7369
- * get a value from the current field's parent and use that value as the input
7370
- * to the Rule.
7371
- *
7372
- * The path that's given is forwarded to `lodash/get`
7373
- *
7374
- * ```js
7375
- * fields: [
7376
- * // ...
7377
- * {
7378
- * // ...
7379
- * name: 'highestTemperature',
7380
- * type: 'number',
7381
- * validation: (Rule) => Rule.positive().min(Rule.valueOfField('lowestTemperature')),
7382
- * // ...
7383
- * },
7384
- * ]
7385
- * ```
7386
- */
7387
- valueOfField: (path: string | string[]) => FieldReference
7388
- error(message?: string | LocalizedValidationMessages): Rule
7389
- warning(message?: string | LocalizedValidationMessages): Rule
7390
- info(message?: string | LocalizedValidationMessages): Rule
7391
- reset(): this
7392
- isRequired(): boolean
7393
- clone(): Rule
7394
- cloneWithRules(rules: RuleSpec[]): Rule
7395
- merge(rule: Rule): Rule
7396
- type(targetType: RuleTypeConstraint | Lowercase<RuleTypeConstraint>): Rule
7397
- all(children: Rule[]): Rule
7398
- either(children: Rule[]): Rule
7399
- optional(): Rule
7400
- required(): Rule
7401
- custom<T = unknown>(
7402
- fn: CustomValidator<T>,
7403
- options?: {
7404
- bypassConcurrencyLimit?: boolean
7405
- },
7406
- ): Rule
7407
- min(len: number | string | FieldReference): Rule
7408
- max(len: number | string | FieldReference): Rule
7409
- length(len: number | FieldReference): Rule
7410
- valid(value: unknown | unknown[]): Rule
7411
- integer(): Rule
7412
- precision(limit: number | FieldReference): Rule
7413
- positive(): Rule
7414
- negative(): Rule
7415
- greaterThan(num: number | FieldReference): Rule
7416
- lessThan(num: number | FieldReference): Rule
7417
- uppercase(): Rule
7418
- lowercase(): Rule
7419
- regex(
7420
- pattern: RegExp,
7421
- name: string,
7422
- options: {
7423
- name?: string
7424
- invert?: boolean
7425
- },
7426
- ): Rule
7427
- regex(
7428
- pattern: RegExp,
7429
- options: {
7430
- name?: string
7431
- invert?: boolean
7432
- },
7433
- ): Rule
7434
- regex(pattern: RegExp, name: string): Rule
7435
- regex(pattern: RegExp): Rule
7436
- email(): Rule
7437
- uri(options?: UriValidationOptions): Rule
7438
- unique(): Rule
7439
- reference(): Rule
7440
- fields(rules: FieldRules): Rule
7441
- assetRequired(): Rule
7442
- validate(
7443
- value: unknown,
7444
- options: ValidationContext & {
7445
- /**
7446
- * @deprecated Internal use only
7447
- * @internal
7448
- */
7449
- __internal?: {
7450
- customValidationConcurrencyLimiter?: {
7451
- ready: () => Promise<void>
7452
- release: () => void
7453
- }
7454
- }
7455
- },
7456
- ): Promise<ValidationMarker[]>
7457
- }
7458
-
7459
- /** @public */
7460
- declare type RuleBuilder<
7461
- T extends RuleDef<T, FieldValue>,
7462
- FieldValue = unknown,
7463
- > = T | T[]
7464
-
7465
- /** @public */
7466
- declare interface RuleDef<T, FieldValue = unknown> {
7467
- required: () => T
7468
- custom: <LenientFieldValue extends FieldValue>(
7469
- fn: CustomValidator<LenientFieldValue | undefined>,
7470
- ) => T
7471
- info: (message?: string | LocalizedValidationMessages) => T
7472
- error: (message?: string | LocalizedValidationMessages) => T
7473
- warning: (message?: string | LocalizedValidationMessages) => T
7474
- valueOfField: (path: string | string[]) => FieldReference
7475
- }
7476
-
7477
- /** @public */
7478
- declare type RuleSpec =
7479
- | {
7480
- flag: 'integer'
7481
- }
7482
- | {
7483
- flag: 'email'
7484
- }
7485
- | {
7486
- flag: 'unique'
7487
- }
7488
- | {
7489
- flag: 'reference'
7490
- }
7491
- | {
7492
- flag: 'type'
7493
- constraint: RuleTypeConstraint
7494
- }
7495
- | {
7496
- flag: 'all'
7497
- constraint: Rule[]
7498
- }
7499
- | {
7500
- flag: 'either'
7501
- constraint: Rule[]
7502
- }
7503
- | {
7504
- flag: 'presence'
7505
- constraint: 'optional' | 'required'
7506
- }
7507
- | {
7508
- flag: 'custom'
7509
- constraint: CustomValidator
7510
- }
7511
- | {
7512
- flag: 'min'
7513
- constraint: number | string
7514
- }
7515
- | {
7516
- flag: 'max'
7517
- constraint: number | string
7518
- }
7519
- | {
7520
- flag: 'length'
7521
- constraint: number
7522
- }
7523
- | {
7524
- flag: 'valid'
7525
- constraint: unknown[]
7526
- }
7527
- | {
7528
- flag: 'precision'
7529
- constraint: number
7530
- }
7531
- | {
7532
- flag: 'lessThan'
7533
- constraint: number
7534
- }
7535
- | {
7536
- flag: 'greaterThan'
7537
- constraint: number
7538
- }
7539
- | {
7540
- flag: 'stringCasing'
7541
- constraint: 'uppercase' | 'lowercase'
7542
- }
7543
- | {
7544
- flag: 'assetRequired'
7545
- constraint: {
7546
- assetType: 'asset' | 'image' | 'file'
7547
- }
7548
- }
7549
- | {
7550
- flag: 'regex'
7551
- constraint: {
7552
- pattern: RegExp
7553
- name?: string
7554
- invert: boolean
7555
- }
7556
- }
7557
- | {
7558
- flag: 'uri'
7559
- constraint: {
7560
- options: {
7561
- scheme: RegExp[]
7562
- allowRelative: boolean
7563
- relativeOnly: boolean
7564
- allowCredentials: boolean
7565
- }
7566
- }
7567
- }
7568
-
7569
- /** @public */
7570
- declare type RuleTypeConstraint =
7571
- | 'Array'
7572
- | 'Boolean'
7573
- | 'Date'
7574
- | 'Number'
7575
- | 'Object'
7576
- | 'String'
7577
-
7578
- /**
7579
- * Options for configuring how Sanity Create interfaces with the type or field.
7580
- *
7581
- * @public
7582
- */
7583
- declare interface SanityCreateOptions {
7584
- /** Set to true to exclude a type or field from appearing in Sanity Create */
7585
- exclude?: boolean
7586
- /**
7587
- * A short description of what the type or field is used for.
7588
- * Purpose can be used to improve how and when content mapping uses the field.
7589
- * */
7590
- purpose?: string
7591
- }
7592
-
7593
- /** @public */
7594
- declare interface SanityDocument {
7595
- _id: string
7596
- _type: string
7597
- _createdAt: string
7598
- _updatedAt: string
7599
- _rev: string
7600
- [key: string]: unknown
7601
- }
7602
-
7603
- /** @public */
7604
- declare interface Schema {
7605
- /** @internal */
7606
- _original?: {
7607
- name: string
7608
- types: SchemaTypeDefinition[]
7609
- }
7610
- /** @internal */
7611
- _registry: {
7612
- [typeName: string]: any
7613
- }
7614
- /** @internal */
7615
- _validation?: SchemaValidationProblemGroup[]
7616
- name: string
7617
- get: (name: string) => SchemaType | undefined
7618
- has: (name: string) => boolean
7619
- getTypeNames: () => string[]
7620
- }
7621
-
7622
- /**
7623
- * Note: you probably want `SchemaTypeDefinition` instead
7624
- * @see SchemaTypeDefinition
7625
- *
7626
- * @public
7627
- */
7628
- declare type SchemaType =
7629
- | ArraySchemaType
7630
- | BooleanSchemaType
7631
- | FileSchemaType
7632
- | NumberSchemaType
7633
- | ObjectSchemaType
7634
- | StringSchemaType
7635
- | ReferenceSchemaType
7636
-
7637
- /**
7638
- * Represents a Sanity schema type definition with an optional type parameter.
7639
- *
7640
- * It's recommend to use the `defineType` helper instead of this type by
7641
- * itself.
7642
- *
7643
- * @see defineType
7644
- *
7645
- * @public
7646
- */
7647
- declare type SchemaTypeDefinition<
7648
- TType extends IntrinsicTypeName = IntrinsicTypeName,
7649
- > = IntrinsicDefinitions[IntrinsicTypeName] | TypeAliasDefinition<string, TType>
7650
-
7651
- /** @public */
7652
- declare interface SchemaValidationError {
7653
- helpId?: string
7654
- message: string
7655
- severity: 'error'
7656
- }
7657
-
7658
- /** @internal */
7659
- declare type SchemaValidationProblem =
7660
- | SchemaValidationError
7661
- | SchemaValidationWarning
7662
-
7663
- /** @internal */
7664
- declare interface SchemaValidationProblemGroup {
7665
- path: SchemaValidationProblemPath
7666
- problems: SchemaValidationProblem[]
7667
- }
7668
-
7669
- /** @internal */
7670
- declare type SchemaValidationProblemPath = Array<
7671
- | {
7672
- kind: 'type'
7673
- type: string
7674
- name?: string
7675
- }
7676
- | {
7677
- kind: 'property'
7678
- name: string
7679
- }
7680
- >
7681
-
7682
- /**
7683
- * Represents the possible values of a schema type's `validation` field.
7684
- *
7685
- * If the schema has not been run through `inferFromSchema` from
7686
- * `sanity/validation` then value could be a function.
7687
- *
7688
- * `inferFromSchema` mutates the schema converts this value to an array of
7689
- * `Rule` instances.
7690
- *
7691
- * @privateRemarks
7692
- *
7693
- * Usage of the schema inside the studio will almost always be from the compiled
7694
- * `createSchema` function. In this case, you can cast the value or throw to
7695
- * narrow the type. E.g.:
7696
- *
7697
- * ```ts
7698
- * if (typeof type.validation === 'function') {
7699
- * throw new Error(
7700
- * `Schema type "${type.name}"'s \`validation\` was not run though \`inferFromSchema\``
7701
- * )
7702
- * }
7703
- * ```
7704
- *
7705
- * @public
7706
- */
7707
- declare type SchemaValidationValue =
7708
- | false
7709
- | undefined
7710
- | Rule
7711
- | SchemaValidationValue[]
7712
- | ((rule: Rule) => SchemaValidationValue)
7713
-
7714
- /** @internal */
7715
- declare interface SchemaValidationWarning {
7716
- helpId?: string
7717
- message: string
7718
- severity: 'warning'
7719
- }
7720
-
7721
- /** @public */
7722
- declare interface SearchConfiguration {
7723
- search?: {
7724
- /**
7725
- * Defines a search weight for this field to prioritize its importance
7726
- * during search operations in the Studio. This setting allows the specified
7727
- * field to be ranked higher in search results compared to other fields.
7728
- *
7729
- * By default, all fields are assigned a weight of 1. However, if a field is
7730
- * chosen as the `title` in the preview configuration's `select` option, it
7731
- * will automatically receive a default weight of 10. Similarly, if selected
7732
- * as the `subtitle`, the default weight is 5. Fields marked as
7733
- * `hidden: true` (no function) are assigned a weight of 0 by default.
7734
- *
7735
- * Note: Search weight configuration is currently supported only for fields
7736
- * of type string or portable text arrays.
7737
- */
7738
- weight?: number
7739
- }
7740
- }
7741
-
7742
- /**
7743
- * @public
7744
- */
7745
- declare const searchStrategies: readonly ['groqLegacy', 'groq2024']
7746
-
7747
- /**
7748
- * @public
7749
- */
7750
- declare type SearchStrategy = (typeof searchStrategies)[number]
7751
-
7752
5796
  declare type Serializer<TMIMEType extends MIMEType> = ({
7753
5797
  snapshot,
7754
5798
  event,
@@ -7761,159 +5805,8 @@ declare type Serializer<TMIMEType extends MIMEType> = ({
7761
5805
  'serialization.success' | 'serialization.failure'
7762
5806
  >
7763
5807
 
7764
- /** @public */
7765
- declare interface SingleFieldSet {
7766
- single: true
7767
- field: ObjectField
7768
- hidden?: ConditionalProperty
7769
- readOnly?: ConditionalProperty
7770
- group?: string | string[]
7771
- }
7772
-
7773
- /** @public */
7774
- declare interface SlugDefinition extends BaseSchemaDefinition {
7775
- type: 'slug'
7776
- options?: SlugOptions
7777
- validation?: ValidationBuilder<SlugRule, SlugValue>
7778
- initialValue?: InitialValueProperty<any, Omit<SlugValue, '_type'>>
7779
- }
7780
-
7781
- /** @public */
7782
- declare type SlugifierFn = (
7783
- source: string,
7784
- schemaType: SlugSchemaType,
7785
- context: SlugSourceContext,
7786
- ) => string | Promise<string>
7787
-
7788
- /** @public */
7789
- declare type SlugIsUniqueValidator = (
7790
- slug: string,
7791
- context: SlugValidationContext,
7792
- ) => boolean | Promise<boolean>
7793
-
7794
- /** @public */
7795
- declare interface SlugOptions
7796
- extends SearchConfiguration,
7797
- BaseSchemaTypeOptions {
7798
- source?: string | Path | SlugSourceFn
7799
- maxLength?: number
7800
- slugify?: SlugifierFn
7801
- isUnique?: SlugIsUniqueValidator
7802
- disableArrayWarning?: boolean
7803
- }
7804
-
7805
- /** @public */
7806
- declare type SlugParent = Record<string, unknown> | Record<string, unknown>[]
7807
-
7808
- /** @public */
7809
- declare interface SlugRule extends RuleDef<SlugRule, SlugValue> {}
7810
-
7811
- /** @public */
7812
- declare interface SlugSchemaType extends ObjectSchemaType {
7813
- jsonType: 'object'
7814
- options?: SlugOptions
7815
- }
7816
-
7817
- /** @public */
7818
- declare interface SlugSourceContext {
7819
- parentPath: Path
7820
- parent: SlugParent
7821
- projectId: string
7822
- dataset: string
7823
- schema: Schema
7824
- currentUser: CurrentUser | null
7825
- getClient: (options: {apiVersion: string}) => SanityClient
7826
- }
7827
-
7828
- /** @public */
7829
- declare type SlugSourceFn = (
7830
- document: SanityDocument,
7831
- context: SlugSourceContext,
7832
- ) => string | Promise<string>
7833
-
7834
- /** @public */
7835
- declare interface SlugValidationContext extends ValidationContext {
7836
- parent: SlugParent
7837
- type: SlugSchemaType
7838
- defaultIsUnique: SlugIsUniqueValidator
7839
- }
7840
-
7841
- /** @public */
7842
- declare interface SlugValue {
7843
- _type: 'slug'
7844
- current?: string
7845
- }
7846
-
7847
- /** @beta */
7848
- declare type SortOrdering = {
7849
- title: string
7850
- i18n?: I18nTextRecord<'title'>
7851
- name: string
7852
- by: SortOrderingItem[]
7853
- }
7854
-
7855
- /** @beta */
7856
- declare interface SortOrderingItem {
7857
- field: string
7858
- direction: 'asc' | 'desc'
7859
- }
7860
-
7861
5808
  declare type StrictExtract<T, U extends T> = U
7862
5809
 
7863
- /** @public */
7864
- declare interface StringDefinition extends BaseSchemaDefinition {
7865
- type: 'string'
7866
- options?: StringOptions
7867
- placeholder?: string
7868
- validation?: ValidationBuilder<StringRule, string>
7869
- initialValue?: InitialValueProperty<any, string>
7870
- }
7871
-
7872
- /** @public */
7873
- declare interface StringOptions
7874
- extends EnumListProps<string>,
7875
- SearchConfiguration,
7876
- BaseSchemaTypeOptions {}
7877
-
7878
- /** @public */
7879
- declare interface StringRule extends RuleDef<StringRule, string> {
7880
- min: (minNumber: number | FieldReference) => StringRule
7881
- max: (maxNumber: number | FieldReference) => StringRule
7882
- length: (exactLength: number | FieldReference) => StringRule
7883
- uppercase: () => StringRule
7884
- lowercase: () => StringRule
7885
- regex(
7886
- pattern: RegExp,
7887
- name: string,
7888
- options: {
7889
- name?: string
7890
- invert?: boolean
7891
- },
7892
- ): StringRule
7893
- regex(
7894
- pattern: RegExp,
7895
- options: {
7896
- name?: string
7897
- invert?: boolean
7898
- },
7899
- ): StringRule
7900
- regex(pattern: RegExp, name: string): StringRule
7901
- regex(pattern: RegExp): StringRule
7902
- email(): StringRule
7903
- }
7904
-
7905
- /**
7906
- * This is used for string, text, date and datetime.
7907
- * This interface represent the compiled version at runtime, when accessed through Schema.
7908
- *
7909
- * @public
7910
- */
7911
- declare interface StringSchemaType extends BaseSchemaType {
7912
- jsonType: 'string'
7913
- options?: StringOptions & TextOptions & DateOptions & DatetimeOptions
7914
- initialValue?: InitialValueProperty<any, string>
7915
- }
7916
-
7917
5810
  /**
7918
5811
  * @beta
7919
5812
  */
@@ -8063,199 +5956,9 @@ declare type TextBlockWithOptionalKey = Omit<PortableTextTextBlock, '_key'> & {
8063
5956
  _key?: PortableTextTextBlock['_key']
8064
5957
  }
8065
5958
 
8066
- /** @public */
8067
- declare interface TextDefinition extends BaseSchemaDefinition {
8068
- type: 'text'
8069
- rows?: number
8070
- options?: TextOptions
8071
- placeholder?: string
8072
- validation?: ValidationBuilder<TextRule, string>
8073
- initialValue?: InitialValueProperty<any, string>
8074
- }
8075
-
8076
- /** @public */
8077
- declare interface TextOptions extends StringOptions {}
8078
-
8079
- /** @public */
8080
- declare interface TextRule extends StringRule {}
8081
-
8082
- /** @public */
8083
- declare interface TitledListValue<V = unknown> {
8084
- _key?: string
8085
- title: string
8086
- value?: V
8087
- }
8088
-
8089
- /**
8090
- * Represents a type definition that is an alias/extension of an existing type
8091
- * in your schema. Creating a type alias will re-register that existing type
8092
- * under a different name. You can also override the default type options with
8093
- * a type alias definition.
8094
- *
8095
- * @public
8096
- */
8097
- declare interface TypeAliasDefinition<
8098
- TType extends string,
8099
- TAlias extends IntrinsicTypeName | undefined,
8100
- > extends BaseSchemaDefinition {
8101
- type: TType
8102
- options?: TAlias extends IntrinsicTypeName
8103
- ? IntrinsicDefinitions[TAlias]['options']
8104
- : unknown
8105
- validation?: SchemaValidationValue
8106
- initialValue?: InitialValueProperty<any, any>
8107
- preview?: PreviewConfig
8108
- components?: {
8109
- annotation?: ComponentType<any>
8110
- block?: ComponentType<any>
8111
- inlineBlock?: ComponentType<any>
8112
- diff?: ComponentType<any>
8113
- field?: ComponentType<any>
8114
- input?: ComponentType<any>
8115
- item?: ComponentType<any>
8116
- preview?: ComponentType<any>
8117
- }
8118
- }
8119
-
8120
- /**
8121
- * Represents a reference to another type registered top-level in your schema.
8122
- *
8123
- * @public
8124
- */
8125
- declare interface TypeReference {
8126
- type: string
8127
- name?: string
8128
- icon?: ComponentType | ReactNode
8129
- options?: {
8130
- [key: string]: unknown
8131
- }
8132
- }
8133
-
8134
5959
  declare type UnsetEvent = {
8135
5960
  type: 'unset'
8136
5961
  previousValue: Array<PortableTextBlock>
8137
5962
  }
8138
5963
 
8139
- /** @public */
8140
- declare interface UriValidationOptions {
8141
- scheme?: (string | RegExp) | Array<string | RegExp>
8142
- allowRelative?: boolean
8143
- relativeOnly?: boolean
8144
- allowCredentials?: boolean
8145
- }
8146
-
8147
- /** @public */
8148
- declare interface UrlDefinition extends BaseSchemaDefinition {
8149
- type: 'url'
8150
- options?: UrlOptions
8151
- placeholder?: string
8152
- validation?: ValidationBuilder<UrlRule, string>
8153
- initialValue?: InitialValueProperty<any, string>
8154
- }
8155
-
8156
- /** @public */
8157
- declare interface UrlOptions extends BaseSchemaTypeOptions {}
8158
-
8159
- /** @public */
8160
- declare interface UrlRule extends RuleDef<UrlRule, string> {
8161
- uri(options: UriValidationOptions): UrlRule
8162
- }
8163
-
8164
- /** @public */
8165
- declare type ValidationBuilder<
8166
- T extends RuleDef<T, FieldValue>,
8167
- FieldValue = unknown,
8168
- > = (rule: T) => RuleBuilder<T, FieldValue>
8169
-
8170
- /**
8171
- * A context object passed around during validation. This includes the
8172
- * `Rule.custom` context.
8173
- *
8174
- * e.g.
8175
- *
8176
- * ```js
8177
- * Rule.custom((_, validationContext) => {
8178
- * // ...
8179
- * })`
8180
- * ```
8181
- *
8182
- * @public
8183
- */
8184
- declare interface ValidationContext {
8185
- getClient: (options: {apiVersion: string}) => SanityClient
8186
- schema: Schema
8187
- parent?: unknown
8188
- type?: SchemaType
8189
- document?: SanityDocument
8190
- path?: Path
8191
- getDocumentExists?: (options: {id: string}) => Promise<boolean>
8192
- environment: 'cli' | 'studio'
8193
- }
8194
-
8195
- /**
8196
- * The shape that can be returned from a custom validator to be converted into
8197
- * a validation marker by the validation logic. Inside of a custom validator,
8198
- * you can return an array of these in order to specify multiple paths within
8199
- * an object or array.
8200
- *
8201
- * @public
8202
- */
8203
- declare interface ValidationError {
8204
- /**
8205
- * The message describing why the value is not valid. This message will be
8206
- * included in the validation markers after validation has finished running.
8207
- */
8208
- message: string
8209
- /**
8210
- * If writing a custom validator, you can return validation messages to
8211
- * specific path inside of the current value (object or array) by populating
8212
- * this `path` prop.
8213
- *
8214
- * NOTE: This path is relative to the current value and _not_ relative to
8215
- * the document.
8216
- */
8217
- path?: Path
8218
- /**
8219
- * Same as `path` but allows more than one value. If provided, the same
8220
- * message will create two markers from each path with the same message
8221
- * provided.
8222
- *
8223
- * @deprecated prefer `path`
8224
- */
8225
- paths?: Path[]
8226
- /**
8227
- * @deprecated Unused. Was used to store the results from `.either()` /`.all()`
8228
- */
8229
- children?: ValidationMarker[]
8230
- /**
8231
- * @deprecated Unused. Was used to signal if this error came from an `.either()`/`.all()`.
8232
- */
8233
- operation?: 'AND' | 'OR'
8234
- /**
8235
- * @deprecated Unused. Was relevant when validation error was used as a class.
8236
- */
8237
- cloneWithMessage?(message: string): ValidationError
8238
- }
8239
-
8240
- /** @public */
8241
- declare interface ValidationMarker {
8242
- level: 'error' | 'warning' | 'info'
8243
- /**
8244
- * The validation message for this marker. E.g. "Must be greater than 0"
8245
- */
8246
- message: string
8247
- /**
8248
- * @deprecated use `message` instead
8249
- */
8250
- item?: ValidationError
8251
- /**
8252
- * The sanity path _relative to the root of the current document_ to this
8253
- * marker.
8254
- *
8255
- * NOTE: Sanity paths may contain keyed segments (i.e. `{_key: string}`) that
8256
- * are not compatible with deep getters like lodash/get
8257
- */
8258
- path: Path
8259
- }
8260
-
8261
5964
  export {}