@portabletext/editor 1.48.7 → 1.48.8
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/lib/_chunks-cjs/behavior.core.cjs +20 -8
- package/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
- package/lib/_chunks-cjs/behavior.markdown.cjs +5 -5
- package/lib/_chunks-cjs/behavior.markdown.cjs.map +1 -1
- package/lib/_chunks-cjs/editor-provider.cjs +121 -90
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs +2 -2
- package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.get-text-before.cjs +7 -4
- package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs +63 -47
- package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs +29 -23
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/util.merge-text-blocks.cjs +3 -3
- package/lib/_chunks-cjs/util.merge-text-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/util.selection-point-to-block-offset.cjs +15 -15
- package/lib/_chunks-cjs/util.selection-point-to-block-offset.cjs.map +1 -1
- package/lib/_chunks-cjs/util.slice-blocks.cjs +258 -38
- package/lib/_chunks-cjs/util.slice-blocks.cjs.map +1 -1
- package/lib/_chunks-es/behavior.core.js +21 -10
- package/lib/_chunks-es/behavior.core.js.map +1 -1
- package/lib/_chunks-es/behavior.markdown.js +5 -6
- package/lib/_chunks-es/behavior.markdown.js.map +1 -1
- package/lib/_chunks-es/editor-provider.js +75 -46
- package/lib/_chunks-es/editor-provider.js.map +1 -1
- package/lib/_chunks-es/selector.get-focus-inline-object.js +1 -2
- package/lib/_chunks-es/selector.get-focus-inline-object.js.map +1 -1
- package/lib/_chunks-es/selector.get-text-before.js +7 -4
- package/lib/_chunks-es/selector.get-text-before.js.map +1 -1
- package/lib/_chunks-es/selector.is-overlapping-selection.js +61 -46
- package/lib/_chunks-es/selector.is-overlapping-selection.js.map +1 -1
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js +30 -26
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js.map +1 -1
- package/lib/_chunks-es/util.merge-text-blocks.js +1 -1
- package/lib/_chunks-es/util.selection-point-to-block-offset.js +15 -16
- package/lib/_chunks-es/util.selection-point-to-block-offset.js.map +1 -1
- package/lib/_chunks-es/util.slice-blocks.js +258 -38
- package/lib/_chunks-es/util.slice-blocks.js.map +1 -1
- package/lib/behaviors/index.d.cts +2552 -251
- package/lib/behaviors/index.d.ts +2552 -251
- package/lib/index.cjs +45 -21
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +2350 -51
- package/lib/index.d.ts +2350 -51
- package/lib/index.js +44 -21
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs +16 -7
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +2324 -24
- package/lib/plugins/index.d.ts +2324 -24
- package/lib/plugins/index.js +16 -7
- package/lib/plugins/index.js.map +1 -1
- package/lib/selectors/index.cjs +5 -5
- package/lib/selectors/index.cjs.map +1 -1
- package/lib/selectors/index.d.cts +2321 -28
- package/lib/selectors/index.d.ts +2321 -28
- package/lib/selectors/index.js +5 -6
- package/lib/selectors/index.js.map +1 -1
- package/lib/utils/index.cjs +30 -24
- package/lib/utils/index.cjs.map +1 -1
- package/lib/utils/index.d.cts +2350 -44
- package/lib/utils/index.d.ts +2350 -44
- package/lib/utils/index.js +30 -24
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -2
- package/src/behavior-actions/behavior.action.block.unset.ts +1 -1
- package/src/behavior-actions/behavior.action.decorator.add.ts +20 -5
- package/src/behaviors/behavior.abstract.decorator.ts +1 -1
- package/src/behaviors/behavior.abstract.delete.ts +1 -1
- package/src/behaviors/behavior.abstract.insert.ts +2 -2
- package/src/behaviors/behavior.abstract.select.ts +16 -4
- package/src/behaviors/behavior.abstract.split.ts +9 -6
- package/src/behaviors/behavior.core.block-objects.ts +5 -5
- package/src/behaviors/behavior.core.insert-break.ts +16 -4
- package/src/behaviors/behavior.core.lists.ts +4 -6
- package/src/behaviors/behavior.decorator-pair.ts +13 -4
- package/src/behaviors/behavior.default.ts +1 -1
- package/src/behaviors/behavior.markdown.ts +5 -5
- package/src/converters/converter.portable-text.ts +1 -1
- package/src/converters/converter.text-html.ts +1 -1
- package/src/converters/converter.text-plain.ts +4 -4
- package/src/editor/plugins/__tests__/withEditableAPIGetFragment.test.tsx +10 -2
- package/src/editor/plugins/createWithSchemaTypes.ts +12 -19
- package/src/internal-utils/__tests__/dmpToOperations.test.ts +13 -12
- package/src/internal-utils/drag-selection.ts +16 -4
- package/src/internal-utils/event-position.ts +20 -8
- package/src/internal-utils/parse-blocks.ts +17 -5
- package/src/internal-utils/validateValue.ts +6 -6
- package/src/plugins/plugin.decorator-shortcut.ts +2 -2
- package/src/selectors/selector.get-active-annotations.ts +5 -2
- package/src/selectors/selector.get-active-list-item.ts +4 -3
- package/src/selectors/selector.get-active-style.ts +4 -3
- package/src/selectors/selector.get-anchor-text-block.ts +3 -6
- package/src/selectors/selector.get-block-offsets.ts +2 -2
- package/src/selectors/selector.get-caret-word-selection.ts +11 -5
- package/src/selectors/selector.get-selected-slice.ts +1 -1
- package/src/selectors/selector.get-selected-spans.ts +11 -15
- package/src/selectors/selector.get-selected-text-blocks.ts +3 -3
- package/src/selectors/selector.get-selection-text.ts +3 -3
- package/src/selectors/selector.get-text-before.ts +5 -2
- package/src/selectors/selector.get-trimmed-selection.ts +20 -14
- package/src/selectors/selector.is-active-annotation.ts +4 -2
- package/src/selectors/selector.is-active-decorator.test.ts +3 -3
- package/src/selectors/selector.is-at-the-end-of-block.ts +4 -1
- package/src/selectors/selector.is-at-the-start-of-block.ts +4 -1
- package/src/selectors/selector.is-point-after-selection.ts +7 -6
- package/src/selectors/selector.is-point-before-selection.ts +7 -6
- package/src/selectors/selector.is-selecting-entire-blocks.ts +8 -2
- package/src/selectors/selectors.ts +25 -28
- package/src/utils/util.block-offset-to-block-selection-point.ts +4 -4
- package/src/utils/util.block-offset-to-selection-point.ts +5 -5
- package/src/utils/util.block-offset.test.ts +219 -156
- package/src/utils/util.block-offset.ts +14 -17
- package/src/utils/util.block-offsets-to-selection.ts +5 -5
- package/src/utils/util.child-selection-point-to-block-offset.ts +7 -10
- package/src/utils/util.get-block-end-point.ts +15 -15
- package/src/utils/util.get-block-start-point.ts +13 -12
- package/src/utils/util.is-empty-text-block.ts +9 -8
- package/src/utils/util.selection-point-to-block-offset.ts +4 -4
- package/src/utils/util.slice-blocks.test.ts +178 -121
- package/src/utils/util.slice-blocks.ts +25 -24
- package/src/utils/util.split-text-block.ts +18 -12
- package/lib/_chunks-cjs/parse-blocks.cjs +0 -205
- package/lib/_chunks-cjs/parse-blocks.cjs.map +0 -1
- package/lib/_chunks-es/parse-blocks.js +0 -206
- package/lib/_chunks-es/parse-blocks.js.map +0 -1
- package/src/behavior-actions/behavior.guards.ts +0 -24
package/lib/utils/index.d.cts
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
import type {Patch} from '@portabletext/patches'
|
|
2
|
-
import
|
|
3
|
-
ArraySchemaType,
|
|
4
|
-
BlockDecoratorDefinition,
|
|
5
|
-
BlockListDefinition,
|
|
6
|
-
BlockStyleDefinition,
|
|
7
|
-
ObjectSchemaType,
|
|
8
|
-
Path,
|
|
9
|
-
PortableTextChild,
|
|
10
|
-
PortableTextListBlock,
|
|
11
|
-
PortableTextTextBlock,
|
|
12
|
-
} from '@sanity/types'
|
|
2
|
+
import {ClientPerspective, SanityClient} from '@sanity/client'
|
|
13
3
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
PortableTextObject,
|
|
17
|
-
PortableTextSpan,
|
|
4
|
+
PortableTextObject as PortableTextObject_2,
|
|
5
|
+
PortableTextSpan as PortableTextSpan_2,
|
|
18
6
|
} from '@sanity/types'
|
|
7
|
+
import {ComponentType, ElementType, ReactNode} from 'react'
|
|
19
8
|
import type {
|
|
20
9
|
FocusEvent as FocusEvent_2,
|
|
21
10
|
KeyboardEvent as KeyboardEvent_2,
|
|
@@ -216,6 +205,277 @@ declare const abstractBehaviorEventTypes: readonly [
|
|
|
216
205
|
'style.toggle',
|
|
217
206
|
]
|
|
218
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Types of array actions that can be performed
|
|
210
|
+
* @beta
|
|
211
|
+
*/
|
|
212
|
+
declare type ArrayActionName =
|
|
213
|
+
/**
|
|
214
|
+
* Add any item to the array at any position
|
|
215
|
+
*/
|
|
216
|
+
| 'add'
|
|
217
|
+
/**
|
|
218
|
+
* Add item after an existing item
|
|
219
|
+
*/
|
|
220
|
+
| 'addBefore'
|
|
221
|
+
/**
|
|
222
|
+
* Add item after an existing item
|
|
223
|
+
*/
|
|
224
|
+
| 'addAfter'
|
|
225
|
+
/**
|
|
226
|
+
* Remove any item
|
|
227
|
+
*/
|
|
228
|
+
| 'remove'
|
|
229
|
+
/**
|
|
230
|
+
* Duplicate item
|
|
231
|
+
*/
|
|
232
|
+
| 'duplicate'
|
|
233
|
+
/**
|
|
234
|
+
* Copy item
|
|
235
|
+
*/
|
|
236
|
+
| 'copy'
|
|
237
|
+
|
|
238
|
+
/** @public */
|
|
239
|
+
declare interface ArrayDefinition extends BaseSchemaDefinition {
|
|
240
|
+
type: 'array'
|
|
241
|
+
of: ArrayOfType[]
|
|
242
|
+
initialValue?: InitialValueProperty<any, unknown[]>
|
|
243
|
+
validation?: ValidationBuilder<ArrayRule<unknown[]>, unknown[]>
|
|
244
|
+
options?: ArrayOptions
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/** @public */
|
|
248
|
+
declare type ArrayOfEntry<T> = Omit<T, 'name' | 'hidden'> & {
|
|
249
|
+
name?: string
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/** @public */
|
|
253
|
+
declare type ArrayOfType<
|
|
254
|
+
TType extends IntrinsicTypeName = IntrinsicTypeName,
|
|
255
|
+
TAlias extends IntrinsicTypeName | undefined = undefined,
|
|
256
|
+
> =
|
|
257
|
+
| IntrinsicArrayOfDefinition[TType]
|
|
258
|
+
| ArrayOfEntry<TypeAliasDefinition<string, TAlias>>
|
|
259
|
+
|
|
260
|
+
/** @public */
|
|
261
|
+
declare interface ArrayOptions<V = unknown>
|
|
262
|
+
extends SearchConfiguration,
|
|
263
|
+
BaseSchemaTypeOptions {
|
|
264
|
+
list?: TitledListValue<V>[] | V[]
|
|
265
|
+
layout?: 'list' | 'tags' | 'grid'
|
|
266
|
+
/** @deprecated This option does not have any effect anymore */
|
|
267
|
+
direction?: 'horizontal' | 'vertical'
|
|
268
|
+
sortable?: boolean
|
|
269
|
+
modal?: {
|
|
270
|
+
type?: 'dialog' | 'popover'
|
|
271
|
+
width?: number | 'auto'
|
|
272
|
+
}
|
|
273
|
+
/** @alpha This API may change */
|
|
274
|
+
insertMenu?: InsertMenuOptions
|
|
275
|
+
/**
|
|
276
|
+
* A boolean flag to enable or disable tree editing for the array.
|
|
277
|
+
* If there are any nested arrays, they will inherit this value.
|
|
278
|
+
* @deprecated tree editing beta feature has been disabled
|
|
279
|
+
*/
|
|
280
|
+
treeEditing?: boolean
|
|
281
|
+
/**
|
|
282
|
+
* A list of array actions to disable
|
|
283
|
+
* Possible options are defined by {@link ArrayActionName}
|
|
284
|
+
* @beta
|
|
285
|
+
*/
|
|
286
|
+
disableActions?: ArrayActionName[]
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/** @public */
|
|
290
|
+
declare interface ArrayRule<Value> extends RuleDef<ArrayRule<Value>, Value> {
|
|
291
|
+
min: (length: number | FieldReference) => ArrayRule<Value>
|
|
292
|
+
max: (length: number | FieldReference) => ArrayRule<Value>
|
|
293
|
+
length: (length: number | FieldReference) => ArrayRule<Value>
|
|
294
|
+
unique: () => ArrayRule<Value>
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** @public */
|
|
298
|
+
declare interface ArraySchemaType<V = unknown> extends BaseSchemaType {
|
|
299
|
+
jsonType: 'array'
|
|
300
|
+
of: (Exclude<SchemaType, ArraySchemaType> | ReferenceSchemaType)[]
|
|
301
|
+
options?: ArrayOptions<V> & {
|
|
302
|
+
layout?: V extends string ? 'tag' : 'grid'
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** @public */
|
|
307
|
+
declare interface Asset extends SanityDocument {
|
|
308
|
+
url: string
|
|
309
|
+
path: string
|
|
310
|
+
assetId: string
|
|
311
|
+
extension: string
|
|
312
|
+
mimeType: string
|
|
313
|
+
sha1hash: string
|
|
314
|
+
size: number
|
|
315
|
+
originalFilename?: string
|
|
316
|
+
label?: string
|
|
317
|
+
title?: string
|
|
318
|
+
description?: string
|
|
319
|
+
creditLine?: string
|
|
320
|
+
source?: AssetSourceSpec
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/** @public */
|
|
324
|
+
declare type AssetFromSource = {
|
|
325
|
+
kind: 'assetDocumentId' | 'file' | 'base64' | 'url'
|
|
326
|
+
value: string | File_2
|
|
327
|
+
assetDocumentProps?: ImageAsset
|
|
328
|
+
mediaLibraryProps?: {
|
|
329
|
+
mediaLibraryId: string
|
|
330
|
+
assetId: string
|
|
331
|
+
assetInstanceId: string
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/** @public */
|
|
336
|
+
declare interface AssetSource {
|
|
337
|
+
name: string
|
|
338
|
+
/** @deprecated provide `i18nKey` instead */
|
|
339
|
+
title?: string
|
|
340
|
+
i18nKey?: string
|
|
341
|
+
component: ComponentType<AssetSourceComponentProps>
|
|
342
|
+
icon?: ComponentType<EmptyProps>
|
|
343
|
+
/** @beta */
|
|
344
|
+
uploader?: AssetSourceUploader
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/** @public */
|
|
348
|
+
declare interface AssetSourceComponentProps {
|
|
349
|
+
action?: 'select' | 'upload'
|
|
350
|
+
assetSource: AssetSource
|
|
351
|
+
assetType?: 'file' | 'image'
|
|
352
|
+
accept: string
|
|
353
|
+
selectionType: 'single'
|
|
354
|
+
dialogHeaderTitle?: React.ReactNode
|
|
355
|
+
selectedAssets: Asset[]
|
|
356
|
+
onClose: () => void
|
|
357
|
+
onSelect: (assetFromSource: AssetFromSource[]) => void
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/** @public */
|
|
361
|
+
declare interface AssetSourceSpec {
|
|
362
|
+
id: string
|
|
363
|
+
name: string
|
|
364
|
+
url?: string
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/** @beta */
|
|
368
|
+
declare interface AssetSourceUploader {
|
|
369
|
+
upload(
|
|
370
|
+
files: globalThis.File[],
|
|
371
|
+
options?: {
|
|
372
|
+
/**
|
|
373
|
+
* The schema type of the field the asset is being uploaded to.
|
|
374
|
+
* May be of interest to the uploader to read file and image options.
|
|
375
|
+
*/
|
|
376
|
+
schemaType?: SchemaType
|
|
377
|
+
/**
|
|
378
|
+
* The uploader may send patches directly to the field
|
|
379
|
+
* Typed 'unknown' as we don't have patch definitions in sanity/types yet.
|
|
380
|
+
*/
|
|
381
|
+
onChange?: (patch: unknown) => void
|
|
382
|
+
},
|
|
383
|
+
): AssetSourceUploadFile[]
|
|
384
|
+
/**
|
|
385
|
+
* Abort the upload of a file
|
|
386
|
+
*/
|
|
387
|
+
abort(file?: AssetSourceUploadFile): void
|
|
388
|
+
/**
|
|
389
|
+
* Get the files that are currently being uploaded
|
|
390
|
+
*/
|
|
391
|
+
getFiles(): AssetSourceUploadFile[]
|
|
392
|
+
/**
|
|
393
|
+
* Subscribe to upload events from the uploader
|
|
394
|
+
*/
|
|
395
|
+
subscribe(subscriber: (event: AssetSourceUploadEvent) => void): () => void
|
|
396
|
+
/**
|
|
397
|
+
* Update the status of a file. Will be emitted to subscribers.
|
|
398
|
+
*/
|
|
399
|
+
updateFile(
|
|
400
|
+
fileId: string,
|
|
401
|
+
data: {
|
|
402
|
+
progress?: number
|
|
403
|
+
status?: string
|
|
404
|
+
error?: Error
|
|
405
|
+
},
|
|
406
|
+
): void
|
|
407
|
+
/**
|
|
408
|
+
* Reset the uploader (clear files). Should be called by the uploader when all files are done.
|
|
409
|
+
*/
|
|
410
|
+
reset(): void
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/** @beta */
|
|
414
|
+
declare type AssetSourceUploadEvent =
|
|
415
|
+
| AssetSourceUploadEventProgress
|
|
416
|
+
| AssetSourceUploadEventStatus
|
|
417
|
+
| AssetSourceUploadEventAllComplete
|
|
418
|
+
| AssetSourceUploadEventError
|
|
419
|
+
| AssetSourceUploadEventAbort
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Emitted when all files are done, either successfully, aborted or with errors
|
|
423
|
+
* @beta */
|
|
424
|
+
declare type AssetSourceUploadEventAbort = {
|
|
425
|
+
type: 'abort'
|
|
426
|
+
/**
|
|
427
|
+
* Files aborted
|
|
428
|
+
*/
|
|
429
|
+
files: AssetSourceUploadFile[]
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Emitted when all files are done, either successfully, aborted or with errors
|
|
434
|
+
* @beta */
|
|
435
|
+
declare type AssetSourceUploadEventAllComplete = {
|
|
436
|
+
type: 'all-complete'
|
|
437
|
+
files: AssetSourceUploadFile[]
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Emitted when all files are done, either successfully, aborted or with errors
|
|
442
|
+
* @beta */
|
|
443
|
+
declare type AssetSourceUploadEventError = {
|
|
444
|
+
type: 'error'
|
|
445
|
+
/**
|
|
446
|
+
* Files errored
|
|
447
|
+
*/
|
|
448
|
+
files: AssetSourceUploadFile[]
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Emitted when a file upload is progressing
|
|
453
|
+
* @beta */
|
|
454
|
+
declare type AssetSourceUploadEventProgress = {
|
|
455
|
+
type: 'progress'
|
|
456
|
+
file: AssetSourceUploadFile
|
|
457
|
+
progress: number
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* Emitted when a file upload is changing status
|
|
462
|
+
* @beta */
|
|
463
|
+
declare type AssetSourceUploadEventStatus = {
|
|
464
|
+
type: 'status'
|
|
465
|
+
file: AssetSourceUploadFile
|
|
466
|
+
status: AssetSourceUploadFile['status']
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
/** @beta */
|
|
470
|
+
declare interface AssetSourceUploadFile {
|
|
471
|
+
id: string
|
|
472
|
+
file: globalThis.File
|
|
473
|
+
progress: number
|
|
474
|
+
status: 'pending' | 'uploading' | 'complete' | 'error' | 'aborted'
|
|
475
|
+
error?: Error
|
|
476
|
+
result?: unknown
|
|
477
|
+
}
|
|
478
|
+
|
|
219
479
|
/**
|
|
220
480
|
* @public
|
|
221
481
|
*/
|
|
@@ -224,6 +484,60 @@ declare type BaseDefinition = {
|
|
|
224
484
|
title?: string
|
|
225
485
|
}
|
|
226
486
|
|
|
487
|
+
/** @public */
|
|
488
|
+
declare interface BaseSchemaDefinition {
|
|
489
|
+
name: string
|
|
490
|
+
title?: string
|
|
491
|
+
description?: string | React.JSX.Element
|
|
492
|
+
hidden?: ConditionalProperty
|
|
493
|
+
readOnly?: ConditionalProperty
|
|
494
|
+
icon?: ComponentType | ReactNode
|
|
495
|
+
validation?: unknown
|
|
496
|
+
initialValue?: unknown
|
|
497
|
+
deprecated?: DeprecatedProperty
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/** @public */
|
|
501
|
+
declare interface BaseSchemaType extends Partial<DeprecationConfiguration> {
|
|
502
|
+
name: string
|
|
503
|
+
title?: string
|
|
504
|
+
description?: string
|
|
505
|
+
type?: SchemaType
|
|
506
|
+
liveEdit?: boolean
|
|
507
|
+
readOnly?: ConditionalProperty
|
|
508
|
+
hidden?: ConditionalProperty
|
|
509
|
+
icon?: ComponentType
|
|
510
|
+
initialValue?: InitialValueProperty<any, any>
|
|
511
|
+
validation?: SchemaValidationValue
|
|
512
|
+
preview?: PreviewConfig
|
|
513
|
+
/** @beta */
|
|
514
|
+
components?: {
|
|
515
|
+
block?: ComponentType<any>
|
|
516
|
+
inlineBlock?: ComponentType<any>
|
|
517
|
+
annotation?: ComponentType<any>
|
|
518
|
+
diff?: ComponentType<any>
|
|
519
|
+
field?: ComponentType<any>
|
|
520
|
+
input?: ComponentType<any>
|
|
521
|
+
item?: ComponentType<any>
|
|
522
|
+
preview?: ComponentType<any>
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* @deprecated This will be removed.
|
|
526
|
+
*/
|
|
527
|
+
placeholder?: string
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* `BaseOptions` applies to all type options.
|
|
532
|
+
*
|
|
533
|
+
* It can be extended by interface declaration merging in plugins to provide generic options to all types and fields.
|
|
534
|
+
*
|
|
535
|
+
* @public
|
|
536
|
+
* */
|
|
537
|
+
declare interface BaseSchemaTypeOptions {
|
|
538
|
+
sanityCreate?: SanityCreateOptions
|
|
539
|
+
}
|
|
540
|
+
|
|
227
541
|
/**
|
|
228
542
|
* @beta
|
|
229
543
|
*/
|
|
@@ -309,6 +623,142 @@ declare type BehaviorGuard<TBehaviorEvent, TGuardResponse> = (payload: {
|
|
|
309
623
|
event: TBehaviorEvent
|
|
310
624
|
}) => TGuardResponse | false
|
|
311
625
|
|
|
626
|
+
/**
|
|
627
|
+
* Schema definition for text block decorators.
|
|
628
|
+
*
|
|
629
|
+
* @public
|
|
630
|
+
* @example The default set of decorators
|
|
631
|
+
* ```ts
|
|
632
|
+
* {
|
|
633
|
+
* name: 'blockContent',
|
|
634
|
+
* title: 'Content',
|
|
635
|
+
* type: 'array',
|
|
636
|
+
* of: [
|
|
637
|
+
* {
|
|
638
|
+
* type: 'block',
|
|
639
|
+
* marks: {
|
|
640
|
+
* decorators: [
|
|
641
|
+
* {title: 'Strong', value: 'strong'},
|
|
642
|
+
* {title: 'Emphasis', value: 'em'},
|
|
643
|
+
* {title: 'Underline', value: 'underline'},
|
|
644
|
+
* {title: 'Strike', value: 'strike'},
|
|
645
|
+
* {title: 'Code', value: 'code'},
|
|
646
|
+
* ]
|
|
647
|
+
* }
|
|
648
|
+
* }
|
|
649
|
+
* ]
|
|
650
|
+
* }
|
|
651
|
+
* ```
|
|
652
|
+
*/
|
|
653
|
+
declare interface BlockDecoratorDefinition {
|
|
654
|
+
title: string
|
|
655
|
+
i18nTitleKey?: string
|
|
656
|
+
value: string
|
|
657
|
+
icon?: ReactNode | ComponentType
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* Schema definition for text blocks.
|
|
662
|
+
*
|
|
663
|
+
* @public
|
|
664
|
+
* @example the default block definition
|
|
665
|
+
* ```ts
|
|
666
|
+
* {
|
|
667
|
+
* name: 'blockContent',
|
|
668
|
+
* title: 'Content',
|
|
669
|
+
* type: 'array',
|
|
670
|
+
* of: [
|
|
671
|
+
* {
|
|
672
|
+
* type: 'block',
|
|
673
|
+
* marks: {
|
|
674
|
+
* decorators: [
|
|
675
|
+
* {title: 'Strong', value: 'strong'},
|
|
676
|
+
* {title: 'Emphasis', value: 'em'},
|
|
677
|
+
* {title: 'Underline', value: 'underline'},
|
|
678
|
+
* {title: 'Strike', value: 'strike'},
|
|
679
|
+
* {title: 'Code', value: 'code'},
|
|
680
|
+
* ],
|
|
681
|
+
* annotations: [
|
|
682
|
+
* {
|
|
683
|
+
* type: 'object',
|
|
684
|
+
* name: 'link',
|
|
685
|
+
* fields: [
|
|
686
|
+
* {
|
|
687
|
+
* type: 'string',
|
|
688
|
+
* name: 'href',
|
|
689
|
+
* },
|
|
690
|
+
* ],
|
|
691
|
+
* },
|
|
692
|
+
* ]
|
|
693
|
+
* },
|
|
694
|
+
* styles: [
|
|
695
|
+
* {title: 'Normal', value: 'normal'},
|
|
696
|
+
* {title: 'H1', value: 'h1'},
|
|
697
|
+
* {title: 'H2', value: 'h2'},
|
|
698
|
+
* {title: 'H3', value: 'h3'},
|
|
699
|
+
* {title: 'H4', value: 'h4'},
|
|
700
|
+
* {title: 'H5', value: 'h5'},
|
|
701
|
+
* {title: 'H6', value: 'h6'},
|
|
702
|
+
* {title: 'Quote', value: 'blockquote'}
|
|
703
|
+
* ],
|
|
704
|
+
* lists: [
|
|
705
|
+
* {title: 'Bullet', value: 'bullet'},
|
|
706
|
+
* {title: 'Number', value: 'number'},
|
|
707
|
+
* ],
|
|
708
|
+
* },
|
|
709
|
+
* ]
|
|
710
|
+
* }
|
|
711
|
+
* ```
|
|
712
|
+
*/
|
|
713
|
+
declare interface BlockDefinition extends BaseSchemaDefinition {
|
|
714
|
+
type: 'block'
|
|
715
|
+
styles?: BlockStyleDefinition[]
|
|
716
|
+
lists?: BlockListDefinition[]
|
|
717
|
+
marks?: BlockMarksDefinition
|
|
718
|
+
of?: ArrayOfType<'object' | 'reference'>[]
|
|
719
|
+
initialValue?: InitialValueProperty<any, any[]>
|
|
720
|
+
options?: BlockOptions
|
|
721
|
+
validation?: ValidationBuilder<BlockRule, any[]>
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
/**
|
|
725
|
+
* Schema definition for a text block list style.
|
|
726
|
+
*
|
|
727
|
+
* @public
|
|
728
|
+
* @example The defaults lists
|
|
729
|
+
* ```ts
|
|
730
|
+
* {
|
|
731
|
+
* name: 'blockContent',
|
|
732
|
+
* title: 'Content',
|
|
733
|
+
* type: 'array',
|
|
734
|
+
* of: [
|
|
735
|
+
* {
|
|
736
|
+
* type: 'block',
|
|
737
|
+
* lists: [
|
|
738
|
+
* {title: 'Bullet', value: 'bullet'},
|
|
739
|
+
* {title: 'Number', value: 'number'},
|
|
740
|
+
* ]
|
|
741
|
+
* }
|
|
742
|
+
* ]
|
|
743
|
+
* }
|
|
744
|
+
* ```
|
|
745
|
+
*/
|
|
746
|
+
declare interface BlockListDefinition {
|
|
747
|
+
title: string
|
|
748
|
+
i18nTitleKey?: string
|
|
749
|
+
value: string
|
|
750
|
+
icon?: ReactNode | ComponentType
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* Schema definition for text block marks (decorators and annotations).
|
|
755
|
+
*
|
|
756
|
+
* @public */
|
|
757
|
+
declare interface BlockMarksDefinition {
|
|
758
|
+
decorators?: BlockDecoratorDefinition[]
|
|
759
|
+
annotations?: ArrayOfType<'object' | 'reference'>[]
|
|
760
|
+
}
|
|
761
|
+
|
|
312
762
|
/**
|
|
313
763
|
* @beta
|
|
314
764
|
*/
|
|
@@ -321,11 +771,11 @@ declare type BlockOffset = {
|
|
|
321
771
|
* @public
|
|
322
772
|
*/
|
|
323
773
|
export declare function blockOffsetsToSelection({
|
|
324
|
-
|
|
774
|
+
context,
|
|
325
775
|
offsets,
|
|
326
776
|
backward,
|
|
327
777
|
}: {
|
|
328
|
-
|
|
778
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
329
779
|
offsets: {
|
|
330
780
|
anchor: BlockOffset
|
|
331
781
|
focus: BlockOffset
|
|
@@ -337,10 +787,10 @@ export declare function blockOffsetsToSelection({
|
|
|
337
787
|
* @public
|
|
338
788
|
*/
|
|
339
789
|
export declare function blockOffsetToBlockSelectionPoint({
|
|
340
|
-
|
|
790
|
+
context,
|
|
341
791
|
blockOffset,
|
|
342
792
|
}: {
|
|
343
|
-
|
|
793
|
+
context: Pick<EditorContext, 'value'>
|
|
344
794
|
blockOffset: BlockOffset
|
|
345
795
|
}): EditorSelectionPoint | undefined
|
|
346
796
|
|
|
@@ -348,11 +798,11 @@ export declare function blockOffsetToBlockSelectionPoint({
|
|
|
348
798
|
* @public
|
|
349
799
|
*/
|
|
350
800
|
export declare function blockOffsetToSelectionPoint({
|
|
351
|
-
|
|
801
|
+
context,
|
|
352
802
|
blockOffset,
|
|
353
803
|
direction,
|
|
354
804
|
}: {
|
|
355
|
-
|
|
805
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
356
806
|
blockOffset: BlockOffset
|
|
357
807
|
direction: 'forward' | 'backward'
|
|
358
808
|
}): EditorSelectionPoint | undefined
|
|
@@ -361,11 +811,11 @@ export declare function blockOffsetToSelectionPoint({
|
|
|
361
811
|
* @public
|
|
362
812
|
*/
|
|
363
813
|
export declare function blockOffsetToSpanSelectionPoint({
|
|
364
|
-
|
|
814
|
+
context,
|
|
365
815
|
blockOffset,
|
|
366
816
|
direction,
|
|
367
817
|
}: {
|
|
368
|
-
|
|
818
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
369
819
|
blockOffset: BlockOffset
|
|
370
820
|
direction: 'forward' | 'backward'
|
|
371
821
|
}):
|
|
@@ -375,18 +825,116 @@ export declare function blockOffsetToSpanSelectionPoint({
|
|
|
375
825
|
}
|
|
376
826
|
| undefined
|
|
377
827
|
|
|
828
|
+
/**
|
|
829
|
+
* Schema options for a Block schema definition
|
|
830
|
+
* @public */
|
|
831
|
+
declare interface BlockOptions extends BaseSchemaTypeOptions {
|
|
832
|
+
/**
|
|
833
|
+
* Turn on or off the builtin browser spellchecking. Default is on.
|
|
834
|
+
*/
|
|
835
|
+
spellCheck?: boolean
|
|
836
|
+
unstable_whitespaceOnPasteMode?: 'preserve' | 'normalize' | 'remove'
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
/** @public */
|
|
840
|
+
declare interface BlockRule extends RuleDef<BlockRule, any[]> {}
|
|
841
|
+
|
|
842
|
+
/**
|
|
843
|
+
* Schema definition for a text block style.
|
|
844
|
+
* A text block may have a block style like 'header', 'normal', 'lead'
|
|
845
|
+
* attached to it, which is stored on the `.style` property for that block.
|
|
846
|
+
*
|
|
847
|
+
* @public
|
|
848
|
+
* @remarks The first defined style will become the default style.´´
|
|
849
|
+
* @example The default set of styles
|
|
850
|
+
* ```ts
|
|
851
|
+
* {
|
|
852
|
+
* name: 'blockContent',
|
|
853
|
+
* title: 'Content',
|
|
854
|
+
* type: 'array',
|
|
855
|
+
* of: [
|
|
856
|
+
* {
|
|
857
|
+
* type: 'block',
|
|
858
|
+
* styles: [
|
|
859
|
+
* {title: 'Normal', value: 'normal'},
|
|
860
|
+
* {title: 'H1', value: 'h1'},
|
|
861
|
+
* {title: 'H2', value: 'h2'},
|
|
862
|
+
* {title: 'H3', value: 'h3'},
|
|
863
|
+
* {title: 'H4', value: 'h4'},
|
|
864
|
+
* {title: 'H5', value: 'h5'},
|
|
865
|
+
* {title: 'H6', value: 'h6'},
|
|
866
|
+
* {title: 'Quote', value: 'blockquote'}
|
|
867
|
+
* ]
|
|
868
|
+
* }
|
|
869
|
+
* ]
|
|
870
|
+
* }
|
|
871
|
+
* ```
|
|
872
|
+
* @example Example of defining a block type with custom styles and render components.
|
|
873
|
+
* ```ts
|
|
874
|
+
* defineArrayMember({
|
|
875
|
+
* type: 'block',
|
|
876
|
+
* styles: [
|
|
877
|
+
* {
|
|
878
|
+
* title: 'Paragraph',
|
|
879
|
+
* value: 'paragraph',
|
|
880
|
+
* component: ParagraphStyle,
|
|
881
|
+
* },
|
|
882
|
+
* {
|
|
883
|
+
* title: 'Lead',
|
|
884
|
+
* value: 'lead',
|
|
885
|
+
* component: LeadStyle,
|
|
886
|
+
* },
|
|
887
|
+
* {
|
|
888
|
+
* title: 'Heading',
|
|
889
|
+
* value: 'heading',
|
|
890
|
+
* component: HeadingStyle,
|
|
891
|
+
* },
|
|
892
|
+
* ],
|
|
893
|
+
* })
|
|
894
|
+
* ```
|
|
895
|
+
*/
|
|
896
|
+
declare interface BlockStyleDefinition {
|
|
897
|
+
title: string
|
|
898
|
+
value: string
|
|
899
|
+
i18nTitleKey?: string
|
|
900
|
+
icon?: ReactNode | ComponentType
|
|
901
|
+
}
|
|
902
|
+
|
|
378
903
|
declare type BlockWithOptionalKey =
|
|
379
904
|
| TextBlockWithOptionalKey
|
|
380
905
|
| ObjectBlockWithOptionalKey
|
|
381
906
|
|
|
907
|
+
/** @public */
|
|
908
|
+
declare interface BooleanDefinition extends BaseSchemaDefinition {
|
|
909
|
+
type: 'boolean'
|
|
910
|
+
options?: BooleanOptions
|
|
911
|
+
initialValue?: InitialValueProperty<any, boolean>
|
|
912
|
+
validation?: ValidationBuilder<BooleanRule, boolean>
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
/** @public */
|
|
916
|
+
declare interface BooleanOptions extends BaseSchemaTypeOptions {
|
|
917
|
+
layout?: 'switch' | 'checkbox'
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
/** @public */
|
|
921
|
+
declare interface BooleanRule extends RuleDef<BooleanRule, boolean> {}
|
|
922
|
+
|
|
923
|
+
/** @public */
|
|
924
|
+
declare interface BooleanSchemaType extends BaseSchemaType {
|
|
925
|
+
jsonType: 'boolean'
|
|
926
|
+
options?: BooleanOptions
|
|
927
|
+
initialValue?: InitialValueProperty<any, boolean>
|
|
928
|
+
}
|
|
929
|
+
|
|
382
930
|
/**
|
|
383
931
|
* @public
|
|
384
932
|
*/
|
|
385
933
|
export declare function childSelectionPointToBlockOffset({
|
|
386
|
-
|
|
934
|
+
context,
|
|
387
935
|
selectionPoint,
|
|
388
936
|
}: {
|
|
389
|
-
|
|
937
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
390
938
|
selectionPoint: EditorSelectionPoint
|
|
391
939
|
}): BlockOffset | undefined
|
|
392
940
|
|
|
@@ -413,6 +961,35 @@ declare type ClipboardBehaviorEvent =
|
|
|
413
961
|
position: Pick<EventPosition, 'selection'>
|
|
414
962
|
}
|
|
415
963
|
|
|
964
|
+
/** @public */
|
|
965
|
+
declare interface CollapseOptions {
|
|
966
|
+
collapsed?: boolean
|
|
967
|
+
collapsible?: boolean
|
|
968
|
+
/**
|
|
969
|
+
* @deprecated Use `collapsible` instead
|
|
970
|
+
*/
|
|
971
|
+
collapsable?: boolean
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/** @public */
|
|
975
|
+
declare type ConditionalProperty =
|
|
976
|
+
| boolean
|
|
977
|
+
| ConditionalPropertyCallback
|
|
978
|
+
| undefined
|
|
979
|
+
|
|
980
|
+
/** @public */
|
|
981
|
+
declare type ConditionalPropertyCallback = (
|
|
982
|
+
context: ConditionalPropertyCallbackContext,
|
|
983
|
+
) => boolean
|
|
984
|
+
|
|
985
|
+
/** @public */
|
|
986
|
+
declare interface ConditionalPropertyCallbackContext {
|
|
987
|
+
document: SanityDocument | undefined
|
|
988
|
+
parent: any
|
|
989
|
+
value: any
|
|
990
|
+
currentUser: Omit<CurrentUser, 'role'> | null
|
|
991
|
+
}
|
|
992
|
+
|
|
416
993
|
declare type Converter<TMIMEType extends MIMEType = MIMEType> = {
|
|
417
994
|
mimeType: TMIMEType
|
|
418
995
|
serialize: Serializer<TMIMEType>
|
|
@@ -451,6 +1028,46 @@ declare type ConverterEvent<TMIMEType extends MIMEType = MIMEType> =
|
|
|
451
1028
|
mimeType: TMIMEType
|
|
452
1029
|
}
|
|
453
1030
|
|
|
1031
|
+
/** @public */
|
|
1032
|
+
declare interface CrossDatasetReferenceDefinition extends BaseSchemaDefinition {
|
|
1033
|
+
type: 'crossDatasetReference'
|
|
1034
|
+
weak?: boolean
|
|
1035
|
+
to: {
|
|
1036
|
+
type: string
|
|
1037
|
+
title?: string
|
|
1038
|
+
icon?: ComponentType
|
|
1039
|
+
preview?: PreviewConfig
|
|
1040
|
+
/**
|
|
1041
|
+
* @deprecated Unused. Configuring search is no longer supported.
|
|
1042
|
+
*/
|
|
1043
|
+
__experimental_search?: {
|
|
1044
|
+
path: string | string[]
|
|
1045
|
+
weight?: number
|
|
1046
|
+
mapWith?: string
|
|
1047
|
+
}[]
|
|
1048
|
+
}[]
|
|
1049
|
+
dataset: string
|
|
1050
|
+
studioUrl?: (document: {id: string; type?: string}) => string | null
|
|
1051
|
+
tokenId?: string
|
|
1052
|
+
options?: ReferenceOptions
|
|
1053
|
+
/**
|
|
1054
|
+
* @deprecated Cross-project references are no longer supported, only cross-dataset
|
|
1055
|
+
*/
|
|
1056
|
+
projectId?: string
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
/** @public */
|
|
1060
|
+
declare interface CurrentUser {
|
|
1061
|
+
id: string
|
|
1062
|
+
name: string
|
|
1063
|
+
email: string
|
|
1064
|
+
profileImage?: string
|
|
1065
|
+
provider?: string
|
|
1066
|
+
/** @deprecated use `roles` instead */
|
|
1067
|
+
role: string
|
|
1068
|
+
roles: Role[]
|
|
1069
|
+
}
|
|
1070
|
+
|
|
454
1071
|
/**
|
|
455
1072
|
* @beta
|
|
456
1073
|
*/
|
|
@@ -475,6 +1092,89 @@ declare type CustomBehaviorEventType<
|
|
|
475
1092
|
TType extends string = '',
|
|
476
1093
|
> = TType extends '' ? `${TNamespace}` : `${TNamespace}.${TType}`
|
|
477
1094
|
|
|
1095
|
+
/** @public */
|
|
1096
|
+
declare interface CustomValidator<T = unknown> {
|
|
1097
|
+
(
|
|
1098
|
+
value: T,
|
|
1099
|
+
context: ValidationContext,
|
|
1100
|
+
): CustomValidatorResult | Promise<CustomValidatorResult>
|
|
1101
|
+
bypassConcurrencyLimit?: boolean
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/** @public */
|
|
1105
|
+
declare type CustomValidatorResult =
|
|
1106
|
+
| true
|
|
1107
|
+
| string
|
|
1108
|
+
| ValidationError
|
|
1109
|
+
| ValidationError[]
|
|
1110
|
+
| LocalizedValidationMessages
|
|
1111
|
+
|
|
1112
|
+
/** @public */
|
|
1113
|
+
declare interface DateDefinition extends BaseSchemaDefinition {
|
|
1114
|
+
type: 'date'
|
|
1115
|
+
options?: DateOptions
|
|
1116
|
+
placeholder?: string
|
|
1117
|
+
validation?: ValidationBuilder<DateRule, string>
|
|
1118
|
+
initialValue?: InitialValueProperty<any, string>
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
/** @public */
|
|
1122
|
+
declare interface DateOptions extends BaseSchemaTypeOptions {
|
|
1123
|
+
dateFormat?: string
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/** @public */
|
|
1127
|
+
declare interface DateRule extends RuleDef<DateRule, string> {
|
|
1128
|
+
/**
|
|
1129
|
+
* @param minDate - Minimum date (inclusive). minDate should be in ISO 8601 format.
|
|
1130
|
+
*/
|
|
1131
|
+
min: (minDate: string | FieldReference) => DateRule
|
|
1132
|
+
/**
|
|
1133
|
+
* @param maxDate - Maximum date (inclusive). maxDate should be in ISO 8601 format.
|
|
1134
|
+
*/
|
|
1135
|
+
max: (maxDate: string | FieldReference) => DateRule
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
/** @public */
|
|
1139
|
+
declare interface DatetimeDefinition extends BaseSchemaDefinition {
|
|
1140
|
+
type: 'datetime'
|
|
1141
|
+
options?: DatetimeOptions
|
|
1142
|
+
placeholder?: string
|
|
1143
|
+
validation?: ValidationBuilder<DatetimeRule, string>
|
|
1144
|
+
initialValue?: InitialValueProperty<any, string>
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
/** @public */
|
|
1148
|
+
declare interface DatetimeOptions extends BaseSchemaTypeOptions {
|
|
1149
|
+
dateFormat?: string
|
|
1150
|
+
timeFormat?: string
|
|
1151
|
+
timeStep?: number
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
/** @public */
|
|
1155
|
+
declare interface DatetimeRule extends RuleDef<DatetimeRule, string> {
|
|
1156
|
+
/**
|
|
1157
|
+
* @param minDate - Minimum date (inclusive). minDate should be in ISO 8601 format.
|
|
1158
|
+
*/
|
|
1159
|
+
min: (minDate: string | FieldReference) => DatetimeRule
|
|
1160
|
+
/**
|
|
1161
|
+
* @param maxDate - Maximum date (inclusive). maxDate should be in ISO 8601 format.
|
|
1162
|
+
*/
|
|
1163
|
+
max: (maxDate: string | FieldReference) => DatetimeRule
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
/** @public */
|
|
1167
|
+
declare interface DeprecatedProperty {
|
|
1168
|
+
reason: string
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
/**
|
|
1172
|
+
* @public
|
|
1173
|
+
*/
|
|
1174
|
+
declare interface DeprecationConfiguration {
|
|
1175
|
+
deprecated: DeprecatedProperty
|
|
1176
|
+
}
|
|
1177
|
+
|
|
478
1178
|
declare type Deserializer<TMIMEType extends MIMEType> = ({
|
|
479
1179
|
snapshot,
|
|
480
1180
|
event,
|
|
@@ -487,6 +1187,40 @@ declare type Deserializer<TMIMEType extends MIMEType> = ({
|
|
|
487
1187
|
'deserialization.success' | 'deserialization.failure'
|
|
488
1188
|
>
|
|
489
1189
|
|
|
1190
|
+
/** @public */
|
|
1191
|
+
declare interface DocumentDefinition extends Omit<ObjectDefinition, 'type'> {
|
|
1192
|
+
type: 'document'
|
|
1193
|
+
liveEdit?: boolean
|
|
1194
|
+
/** @beta */
|
|
1195
|
+
orderings?: SortOrdering[]
|
|
1196
|
+
options?: DocumentOptions
|
|
1197
|
+
validation?: ValidationBuilder<DocumentRule, SanityDocument>
|
|
1198
|
+
initialValue?: InitialValueProperty<any, Record<string, unknown>>
|
|
1199
|
+
/** @deprecated Unused. Use the new field-level search config. */
|
|
1200
|
+
__experimental_search?: {
|
|
1201
|
+
path: string
|
|
1202
|
+
weight: number
|
|
1203
|
+
mapWith?: string
|
|
1204
|
+
}[]
|
|
1205
|
+
/** @alpha */
|
|
1206
|
+
__experimental_omnisearch_visibility?: boolean
|
|
1207
|
+
/**
|
|
1208
|
+
* Determines whether the large preview title is displayed in the document pane form
|
|
1209
|
+
* @alpha
|
|
1210
|
+
* */
|
|
1211
|
+
__experimental_formPreviewTitle?: boolean
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
/**
|
|
1215
|
+
* This exists only to allow for extensions using declaration-merging.
|
|
1216
|
+
*
|
|
1217
|
+
* @public
|
|
1218
|
+
*/
|
|
1219
|
+
declare interface DocumentOptions extends BaseSchemaTypeOptions {}
|
|
1220
|
+
|
|
1221
|
+
/** @public */
|
|
1222
|
+
declare interface DocumentRule extends RuleDef<DocumentRule, SanityDocument> {}
|
|
1223
|
+
|
|
490
1224
|
declare type DragBehaviorEvent =
|
|
491
1225
|
| {
|
|
492
1226
|
type: StrictExtract<NativeBehaviorEventType, 'drag.dragstart'>
|
|
@@ -5198,6 +5932,31 @@ declare type EditorSnapshot = {
|
|
|
5198
5932
|
}
|
|
5199
5933
|
}
|
|
5200
5934
|
|
|
5935
|
+
/** @public */
|
|
5936
|
+
declare interface EmailDefinition extends BaseSchemaDefinition {
|
|
5937
|
+
type: 'email'
|
|
5938
|
+
options?: EmailOptions
|
|
5939
|
+
placeholder?: string
|
|
5940
|
+
validation?: ValidationBuilder<EmailRule, string>
|
|
5941
|
+
initialValue?: InitialValueProperty<any, string>
|
|
5942
|
+
}
|
|
5943
|
+
|
|
5944
|
+
/** @public */
|
|
5945
|
+
declare interface EmailOptions extends BaseSchemaTypeOptions {}
|
|
5946
|
+
|
|
5947
|
+
/** @public */
|
|
5948
|
+
declare interface EmailRule extends RuleDef<EmailRule, string> {}
|
|
5949
|
+
|
|
5950
|
+
/** @public */
|
|
5951
|
+
declare interface EmptyProps {}
|
|
5952
|
+
|
|
5953
|
+
/** @public */
|
|
5954
|
+
declare interface EnumListProps<V = unknown> {
|
|
5955
|
+
list?: Array<TitledListValue<V> | V>
|
|
5956
|
+
layout?: 'radio' | 'dropdown'
|
|
5957
|
+
direction?: 'horizontal' | 'vertical'
|
|
5958
|
+
}
|
|
5959
|
+
|
|
5201
5960
|
declare type EventPosition = {
|
|
5202
5961
|
block: 'start' | 'end'
|
|
5203
5962
|
/**
|
|
@@ -5210,26 +5969,203 @@ declare type EventPosition = {
|
|
|
5210
5969
|
declare type ExtractNamespace<TType extends string> =
|
|
5211
5970
|
TType extends `${infer Namespace}.${string}` ? Namespace : TType
|
|
5212
5971
|
|
|
5972
|
+
/**
|
|
5973
|
+
* The shape of a field definition. Note, it's recommended to use the
|
|
5974
|
+
* `defineField` function instead of using this type directly.
|
|
5975
|
+
*
|
|
5976
|
+
* Where `defineField` infers the exact field type,
|
|
5977
|
+
* FieldDefinition is a compromise union of all types a field can have.
|
|
5978
|
+
*
|
|
5979
|
+
* A field definition can be a reference to another registered top-level type
|
|
5980
|
+
* or a inline type definition.
|
|
5981
|
+
*
|
|
5982
|
+
* @public
|
|
5983
|
+
*/
|
|
5984
|
+
declare type FieldDefinition<
|
|
5985
|
+
TType extends IntrinsicTypeName = IntrinsicTypeName,
|
|
5986
|
+
TAlias extends IntrinsicTypeName | undefined = undefined,
|
|
5987
|
+
> = (InlineFieldDefinition[TType] | TypeAliasDefinition<string, TAlias>) &
|
|
5988
|
+
FieldDefinitionBase
|
|
5989
|
+
|
|
5990
|
+
/** @public */
|
|
5991
|
+
declare interface FieldDefinitionBase {
|
|
5992
|
+
fieldset?: string
|
|
5993
|
+
group?: string | string[]
|
|
5994
|
+
}
|
|
5995
|
+
|
|
5996
|
+
/** @public */
|
|
5997
|
+
declare interface FieldGroup {
|
|
5998
|
+
name: string
|
|
5999
|
+
icon?: ComponentType
|
|
6000
|
+
title?: string
|
|
6001
|
+
description?: string
|
|
6002
|
+
i18n?: I18nTextRecord<'title'>
|
|
6003
|
+
hidden?: ConditionalProperty
|
|
6004
|
+
default?: boolean
|
|
6005
|
+
fields?: ObjectField[]
|
|
6006
|
+
}
|
|
6007
|
+
|
|
6008
|
+
/** @public */
|
|
6009
|
+
declare type FieldGroupDefinition = {
|
|
6010
|
+
name: string
|
|
6011
|
+
title?: string
|
|
6012
|
+
hidden?: ConditionalProperty
|
|
6013
|
+
icon?: ComponentType
|
|
6014
|
+
default?: boolean
|
|
6015
|
+
i18n?: I18nTextRecord<'title'>
|
|
6016
|
+
}
|
|
6017
|
+
|
|
6018
|
+
/**
|
|
6019
|
+
* Holds a reference to a different field
|
|
6020
|
+
* NOTE: Only use this through {@link Rule.valueOfField}
|
|
6021
|
+
*
|
|
6022
|
+
* @public
|
|
6023
|
+
*/
|
|
6024
|
+
declare interface FieldReference {
|
|
6025
|
+
type: symbol
|
|
6026
|
+
path: string | string[]
|
|
6027
|
+
}
|
|
6028
|
+
|
|
6029
|
+
/** @public */
|
|
6030
|
+
declare type FieldRules = {
|
|
6031
|
+
[fieldKey: string]: SchemaValidationValue
|
|
6032
|
+
}
|
|
6033
|
+
|
|
6034
|
+
/** @public */
|
|
6035
|
+
declare type Fieldset = SingleFieldSet | MultiFieldSet
|
|
6036
|
+
|
|
6037
|
+
/** @public */
|
|
6038
|
+
declare type FieldsetDefinition = {
|
|
6039
|
+
name: string
|
|
6040
|
+
title?: string
|
|
6041
|
+
description?: string
|
|
6042
|
+
group?: string
|
|
6043
|
+
hidden?: ConditionalProperty
|
|
6044
|
+
readOnly?: ConditionalProperty
|
|
6045
|
+
options?: ObjectOptions
|
|
6046
|
+
}
|
|
6047
|
+
|
|
6048
|
+
/** @public */
|
|
6049
|
+
declare interface File_2 {
|
|
6050
|
+
[key: string]: unknown
|
|
6051
|
+
asset?: Reference
|
|
6052
|
+
}
|
|
6053
|
+
|
|
6054
|
+
/** @public */
|
|
6055
|
+
declare interface FileDefinition
|
|
6056
|
+
extends Omit<
|
|
6057
|
+
ObjectDefinition,
|
|
6058
|
+
'type' | 'fields' | 'options' | 'groups' | 'validation'
|
|
6059
|
+
> {
|
|
6060
|
+
type: 'file'
|
|
6061
|
+
fields?: ObjectDefinition['fields']
|
|
6062
|
+
options?: FileOptions
|
|
6063
|
+
validation?: ValidationBuilder<FileRule, FileValue>
|
|
6064
|
+
initialValue?: InitialValueProperty<any, FileValue>
|
|
6065
|
+
}
|
|
6066
|
+
|
|
6067
|
+
/** @public */
|
|
6068
|
+
declare interface FileOptions extends ObjectOptions {
|
|
6069
|
+
storeOriginalFilename?: boolean
|
|
6070
|
+
accept?: string
|
|
6071
|
+
sources?: AssetSource[]
|
|
6072
|
+
}
|
|
6073
|
+
|
|
6074
|
+
/** @public */
|
|
6075
|
+
declare interface FileRule extends RuleDef<FileRule, FileValue> {
|
|
6076
|
+
/**
|
|
6077
|
+
* Require a file field has an asset.
|
|
6078
|
+
*
|
|
6079
|
+
* @example
|
|
6080
|
+
* ```ts
|
|
6081
|
+
* defineField({
|
|
6082
|
+
* name: 'file',
|
|
6083
|
+
* title: 'File',
|
|
6084
|
+
* type: 'file',
|
|
6085
|
+
* validation: (Rule) => Rule.required().assetRequired(),
|
|
6086
|
+
* })
|
|
6087
|
+
* ```
|
|
6088
|
+
*/
|
|
6089
|
+
assetRequired(): FileRule
|
|
6090
|
+
}
|
|
6091
|
+
|
|
6092
|
+
/** @public */
|
|
6093
|
+
declare interface FileSchemaType extends Omit<ObjectSchemaType, 'options'> {
|
|
6094
|
+
options?: FileOptions
|
|
6095
|
+
}
|
|
6096
|
+
|
|
6097
|
+
/** @public */
|
|
6098
|
+
declare interface FileValue {
|
|
6099
|
+
asset?: Reference
|
|
6100
|
+
[index: string]: unknown
|
|
6101
|
+
}
|
|
6102
|
+
|
|
6103
|
+
/** @public */
|
|
6104
|
+
declare interface GeopointDefinition extends BaseSchemaDefinition {
|
|
6105
|
+
type: 'geopoint'
|
|
6106
|
+
options?: GeopointOptions
|
|
6107
|
+
validation?: ValidationBuilder<GeopointRule, GeopointValue>
|
|
6108
|
+
initialValue?: InitialValueProperty<any, Omit<GeopointValue, '_type'>>
|
|
6109
|
+
}
|
|
6110
|
+
|
|
6111
|
+
/** @public */
|
|
6112
|
+
declare interface GeopointOptions extends BaseSchemaTypeOptions {}
|
|
6113
|
+
|
|
6114
|
+
/** @public */
|
|
6115
|
+
declare interface GeopointRule extends RuleDef<GeopointRule, GeopointValue> {}
|
|
6116
|
+
|
|
6117
|
+
/**
|
|
6118
|
+
* Geographical point representing a pair of latitude and longitude coordinates,
|
|
6119
|
+
* stored as degrees, in the World Geodetic System 1984 (WGS 84) format. Also
|
|
6120
|
+
* includes an optional `alt` property representing the altitude in meters.
|
|
6121
|
+
*
|
|
6122
|
+
* @public
|
|
6123
|
+
*/
|
|
6124
|
+
declare interface GeopointValue {
|
|
6125
|
+
/**
|
|
6126
|
+
* Type of the object. Must be `geopoint`.
|
|
6127
|
+
*/
|
|
6128
|
+
_type: 'geopoint'
|
|
6129
|
+
/**
|
|
6130
|
+
* Latitude in degrees
|
|
6131
|
+
*/
|
|
6132
|
+
lat: number
|
|
6133
|
+
/**
|
|
6134
|
+
* Longitude in degrees
|
|
6135
|
+
*/
|
|
6136
|
+
lng: number
|
|
6137
|
+
/**
|
|
6138
|
+
* Altitude in meters
|
|
6139
|
+
*/
|
|
6140
|
+
alt?: number
|
|
6141
|
+
}
|
|
6142
|
+
|
|
5213
6143
|
/**
|
|
5214
6144
|
* @public
|
|
5215
6145
|
*/
|
|
5216
6146
|
export declare function getBlockEndPoint({
|
|
5217
|
-
|
|
5218
|
-
|
|
6147
|
+
context,
|
|
6148
|
+
block,
|
|
5219
6149
|
}: {
|
|
5220
|
-
|
|
5221
|
-
|
|
6150
|
+
context: Pick<EditorContext, 'schema'>
|
|
6151
|
+
block: {
|
|
6152
|
+
node: PortableTextBlock
|
|
6153
|
+
path: [KeyedSegment]
|
|
6154
|
+
}
|
|
5222
6155
|
}): EditorSelectionPoint
|
|
5223
6156
|
|
|
5224
6157
|
/**
|
|
5225
6158
|
* @public
|
|
5226
6159
|
*/
|
|
5227
6160
|
export declare function getBlockStartPoint({
|
|
5228
|
-
|
|
5229
|
-
|
|
6161
|
+
context,
|
|
6162
|
+
block,
|
|
5230
6163
|
}: {
|
|
5231
|
-
|
|
5232
|
-
|
|
6164
|
+
context: Pick<EditorContext, 'schema'>
|
|
6165
|
+
block: {
|
|
6166
|
+
node: PortableTextBlock
|
|
6167
|
+
path: [KeyedSegment]
|
|
6168
|
+
}
|
|
5233
6169
|
}): EditorSelectionPoint
|
|
5234
6170
|
|
|
5235
6171
|
/**
|
|
@@ -5259,6 +6195,23 @@ export declare function getSelectionStartPoint<
|
|
|
5259
6195
|
*/
|
|
5260
6196
|
export declare function getTextBlockText(block: PortableTextTextBlock): string
|
|
5261
6197
|
|
|
6198
|
+
/** @public */
|
|
6199
|
+
declare interface GlobalDocumentReferenceDefinition
|
|
6200
|
+
extends BaseSchemaDefinition {
|
|
6201
|
+
type: 'globalDocumentReference'
|
|
6202
|
+
weak?: boolean
|
|
6203
|
+
to: {
|
|
6204
|
+
type: string
|
|
6205
|
+
title?: string
|
|
6206
|
+
icon?: ComponentType
|
|
6207
|
+
preview?: PreviewConfig
|
|
6208
|
+
}[]
|
|
6209
|
+
resourceType: string
|
|
6210
|
+
resourceId: string
|
|
6211
|
+
options?: ReferenceOptions
|
|
6212
|
+
studioUrl?: (document: {id: string; type?: string}) => string | null
|
|
6213
|
+
}
|
|
6214
|
+
|
|
5262
6215
|
declare type HasTag = ReturnType<EditorActor['getSnapshot']>['hasTag']
|
|
5263
6216
|
|
|
5264
6217
|
declare interface History_2 {
|
|
@@ -5271,6 +6224,178 @@ declare type HistoryItem = {
|
|
|
5271
6224
|
timestamp: Date
|
|
5272
6225
|
}
|
|
5273
6226
|
|
|
6227
|
+
/** @public */
|
|
6228
|
+
declare interface HotspotOptions {
|
|
6229
|
+
previews?: HotspotPreview[]
|
|
6230
|
+
}
|
|
6231
|
+
|
|
6232
|
+
/** @public */
|
|
6233
|
+
declare interface HotspotPreview {
|
|
6234
|
+
title: string
|
|
6235
|
+
aspectRatio: number
|
|
6236
|
+
}
|
|
6237
|
+
|
|
6238
|
+
/** @public */
|
|
6239
|
+
declare type I18nTextRecord<K extends string> = {
|
|
6240
|
+
[P in K]?: {
|
|
6241
|
+
key: string
|
|
6242
|
+
ns: string
|
|
6243
|
+
}
|
|
6244
|
+
}
|
|
6245
|
+
|
|
6246
|
+
/** @public */
|
|
6247
|
+
declare interface ImageAsset extends Asset {
|
|
6248
|
+
_type: 'sanity.imageAsset'
|
|
6249
|
+
metadata: ImageMetadata
|
|
6250
|
+
}
|
|
6251
|
+
|
|
6252
|
+
/** @public */
|
|
6253
|
+
declare interface ImageCrop {
|
|
6254
|
+
_type?: 'sanity.imageCrop'
|
|
6255
|
+
left: number
|
|
6256
|
+
bottom: number
|
|
6257
|
+
right: number
|
|
6258
|
+
top: number
|
|
6259
|
+
}
|
|
6260
|
+
|
|
6261
|
+
/** @public */
|
|
6262
|
+
declare interface ImageDefinition
|
|
6263
|
+
extends Omit<
|
|
6264
|
+
ObjectDefinition,
|
|
6265
|
+
'type' | 'fields' | 'options' | 'groups' | 'validation'
|
|
6266
|
+
> {
|
|
6267
|
+
type: 'image'
|
|
6268
|
+
fields?: FieldDefinition[]
|
|
6269
|
+
options?: ImageOptions
|
|
6270
|
+
validation?: ValidationBuilder<ImageRule, ImageValue>
|
|
6271
|
+
initialValue?: InitialValueProperty<any, ImageValue>
|
|
6272
|
+
}
|
|
6273
|
+
|
|
6274
|
+
/** @public */
|
|
6275
|
+
declare interface ImageDimensions {
|
|
6276
|
+
_type: 'sanity.imageDimensions'
|
|
6277
|
+
height: number
|
|
6278
|
+
width: number
|
|
6279
|
+
aspectRatio: number
|
|
6280
|
+
}
|
|
6281
|
+
|
|
6282
|
+
/** @public */
|
|
6283
|
+
declare interface ImageHotspot {
|
|
6284
|
+
_type?: 'sanity.imageHotspot'
|
|
6285
|
+
width: number
|
|
6286
|
+
height: number
|
|
6287
|
+
x: number
|
|
6288
|
+
y: number
|
|
6289
|
+
}
|
|
6290
|
+
|
|
6291
|
+
/** @public */
|
|
6292
|
+
declare interface ImageMetadata {
|
|
6293
|
+
[key: string]: unknown
|
|
6294
|
+
_type: 'sanity.imageMetadata'
|
|
6295
|
+
dimensions: ImageDimensions
|
|
6296
|
+
palette?: ImagePalette
|
|
6297
|
+
lqip?: string
|
|
6298
|
+
blurHash?: string
|
|
6299
|
+
hasAlpha: boolean
|
|
6300
|
+
isOpaque: boolean
|
|
6301
|
+
}
|
|
6302
|
+
|
|
6303
|
+
/** @public */
|
|
6304
|
+
declare type ImageMetadataType =
|
|
6305
|
+
| 'blurhash'
|
|
6306
|
+
| 'lqip'
|
|
6307
|
+
| 'palette'
|
|
6308
|
+
| 'exif'
|
|
6309
|
+
| 'image'
|
|
6310
|
+
| 'location'
|
|
6311
|
+
|
|
6312
|
+
/** @public */
|
|
6313
|
+
declare interface ImageOptions extends FileOptions {
|
|
6314
|
+
metadata?: ImageMetadataType[]
|
|
6315
|
+
hotspot?: boolean | HotspotOptions
|
|
6316
|
+
}
|
|
6317
|
+
|
|
6318
|
+
/** @public */
|
|
6319
|
+
declare interface ImagePalette {
|
|
6320
|
+
_type: 'sanity.imagePalette'
|
|
6321
|
+
darkMuted?: ImageSwatch
|
|
6322
|
+
darkVibrant?: ImageSwatch
|
|
6323
|
+
dominant?: ImageSwatch
|
|
6324
|
+
lightMuted?: ImageSwatch
|
|
6325
|
+
lightVibrant?: ImageSwatch
|
|
6326
|
+
muted?: ImageSwatch
|
|
6327
|
+
vibrant?: ImageSwatch
|
|
6328
|
+
}
|
|
6329
|
+
|
|
6330
|
+
/** @public */
|
|
6331
|
+
declare interface ImageRule extends RuleDef<ImageRule, ImageValue> {
|
|
6332
|
+
/**
|
|
6333
|
+
* Require an image field has an asset.
|
|
6334
|
+
*
|
|
6335
|
+
* @example
|
|
6336
|
+
* ```ts
|
|
6337
|
+
* defineField({
|
|
6338
|
+
* name: 'image',
|
|
6339
|
+
* title: 'Image',
|
|
6340
|
+
* type: 'image',
|
|
6341
|
+
* validation: (Rule) => Rule.required().assetRequired(),
|
|
6342
|
+
* })
|
|
6343
|
+
* ```
|
|
6344
|
+
*/
|
|
6345
|
+
assetRequired(): ImageRule
|
|
6346
|
+
}
|
|
6347
|
+
|
|
6348
|
+
/** @public */
|
|
6349
|
+
declare interface ImageSwatch {
|
|
6350
|
+
_type: 'sanity.imagePaletteSwatch'
|
|
6351
|
+
background: string
|
|
6352
|
+
foreground: string
|
|
6353
|
+
population: number
|
|
6354
|
+
title?: string
|
|
6355
|
+
}
|
|
6356
|
+
|
|
6357
|
+
/** @public */
|
|
6358
|
+
declare interface ImageValue extends FileValue {
|
|
6359
|
+
crop?: ImageCrop
|
|
6360
|
+
hotspot?: ImageHotspot
|
|
6361
|
+
[index: string]: unknown
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6364
|
+
/** @public */
|
|
6365
|
+
declare type IndexTuple = [number | '', number | '']
|
|
6366
|
+
|
|
6367
|
+
/** @public */
|
|
6368
|
+
declare type InitialValueProperty<Params, Value> =
|
|
6369
|
+
| Value
|
|
6370
|
+
| InitialValueResolver<Params, Value>
|
|
6371
|
+
| undefined
|
|
6372
|
+
|
|
6373
|
+
/** @public */
|
|
6374
|
+
declare type InitialValueResolver<Params, Value> = (
|
|
6375
|
+
params: Params | undefined,
|
|
6376
|
+
context: InitialValueResolverContext,
|
|
6377
|
+
) => Promise<Value> | Value
|
|
6378
|
+
|
|
6379
|
+
/** @public */
|
|
6380
|
+
declare interface InitialValueResolverContext {
|
|
6381
|
+
projectId: string
|
|
6382
|
+
dataset: string
|
|
6383
|
+
schema: Schema
|
|
6384
|
+
currentUser: CurrentUser | null
|
|
6385
|
+
getClient: (options: {apiVersion: string}) => SanityClient
|
|
6386
|
+
}
|
|
6387
|
+
|
|
6388
|
+
/** @public */
|
|
6389
|
+
declare type InlineFieldDefinition = {
|
|
6390
|
+
[K in keyof IntrinsicDefinitions]: Omit<
|
|
6391
|
+
IntrinsicDefinitions[K],
|
|
6392
|
+
'initialValue' | 'validation'
|
|
6393
|
+
> & {
|
|
6394
|
+
validation?: SchemaValidationValue
|
|
6395
|
+
initialValue?: InitialValueProperty<any, any>
|
|
6396
|
+
}
|
|
6397
|
+
}
|
|
6398
|
+
|
|
5274
6399
|
/**
|
|
5275
6400
|
* Used to represent native InputEvents that hold a DataTransfer object.
|
|
5276
6401
|
*
|
|
@@ -5289,6 +6414,33 @@ declare type InputBehaviorEvent = {
|
|
|
5289
6414
|
}
|
|
5290
6415
|
}
|
|
5291
6416
|
|
|
6417
|
+
/** @alpha This API may change */
|
|
6418
|
+
declare interface InsertMenuOptions {
|
|
6419
|
+
/**
|
|
6420
|
+
* @defaultValue `'auto'`
|
|
6421
|
+
* `filter: 'auto'` automatically turns on filtering if there are more than 5
|
|
6422
|
+
* schema types added to the menu.
|
|
6423
|
+
*/
|
|
6424
|
+
filter?: 'auto' | boolean
|
|
6425
|
+
groups?: Array<{
|
|
6426
|
+
name: string
|
|
6427
|
+
title?: string
|
|
6428
|
+
of?: Array<string>
|
|
6429
|
+
}>
|
|
6430
|
+
/** defaultValue `true` */
|
|
6431
|
+
showIcons?: boolean
|
|
6432
|
+
/** @defaultValue `[{name: 'list'}]` */
|
|
6433
|
+
views?: Array<
|
|
6434
|
+
| {
|
|
6435
|
+
name: 'list'
|
|
6436
|
+
}
|
|
6437
|
+
| {
|
|
6438
|
+
name: 'grid'
|
|
6439
|
+
previewImageUrl?: (schemaTypeName: string) => string | undefined
|
|
6440
|
+
}
|
|
6441
|
+
>
|
|
6442
|
+
}
|
|
6443
|
+
|
|
5292
6444
|
declare type InsertPlacement = 'auto' | 'after' | 'before'
|
|
5293
6445
|
|
|
5294
6446
|
declare type InternalPatchEvent = NamespaceEvent<PatchEvent, 'internal'> & {
|
|
@@ -5296,6 +6448,64 @@ declare type InternalPatchEvent = NamespaceEvent<PatchEvent, 'internal'> & {
|
|
|
5296
6448
|
value: Array<PortableTextBlock>
|
|
5297
6449
|
}
|
|
5298
6450
|
|
|
6451
|
+
/** @public */
|
|
6452
|
+
declare type IntrinsicArrayOfDefinition = {
|
|
6453
|
+
[K in keyof IntrinsicDefinitions]: Omit<
|
|
6454
|
+
ArrayOfEntry<IntrinsicDefinitions[K]>,
|
|
6455
|
+
'validation' | 'initialValue'
|
|
6456
|
+
> & {
|
|
6457
|
+
validation?: SchemaValidationValue
|
|
6458
|
+
initialValue?: InitialValueProperty<any, any>
|
|
6459
|
+
}
|
|
6460
|
+
}
|
|
6461
|
+
|
|
6462
|
+
/**
|
|
6463
|
+
* `IntrinsicDefinitions` is a lookup map for "predefined" schema definitions.
|
|
6464
|
+
* Schema types in `IntrinsicDefinitions` will have good type-completion and type-safety in {@link defineType},
|
|
6465
|
+
* {@link defineField} and {@link defineArrayMember} once the `type` property is provided.
|
|
6466
|
+
*
|
|
6467
|
+
* By default, `IntrinsicDefinitions` contains all standard Sanity schema types (`array`, `string`, `number` ect),
|
|
6468
|
+
* but it is an interface and as such, open for extension.
|
|
6469
|
+
*
|
|
6470
|
+
* This type can be extended using declaration merging; this way new entries can be added.
|
|
6471
|
+
* See {@link defineType} for examples on how this can be accomplished.
|
|
6472
|
+
*
|
|
6473
|
+
* @see defineType
|
|
6474
|
+
*
|
|
6475
|
+
* @public
|
|
6476
|
+
*/
|
|
6477
|
+
declare interface IntrinsicDefinitions {
|
|
6478
|
+
array: ArrayDefinition
|
|
6479
|
+
block: BlockDefinition
|
|
6480
|
+
boolean: BooleanDefinition
|
|
6481
|
+
date: DateDefinition
|
|
6482
|
+
datetime: DatetimeDefinition
|
|
6483
|
+
document: DocumentDefinition
|
|
6484
|
+
file: FileDefinition
|
|
6485
|
+
geopoint: GeopointDefinition
|
|
6486
|
+
image: ImageDefinition
|
|
6487
|
+
number: NumberDefinition
|
|
6488
|
+
object: ObjectDefinition
|
|
6489
|
+
reference: ReferenceDefinition
|
|
6490
|
+
crossDatasetReference: CrossDatasetReferenceDefinition
|
|
6491
|
+
globalDocumentReference: GlobalDocumentReferenceDefinition
|
|
6492
|
+
slug: SlugDefinition
|
|
6493
|
+
string: StringDefinition
|
|
6494
|
+
text: TextDefinition
|
|
6495
|
+
url: UrlDefinition
|
|
6496
|
+
email: EmailDefinition
|
|
6497
|
+
}
|
|
6498
|
+
|
|
6499
|
+
/**
|
|
6500
|
+
* A union of all intrinsic types allowed natively in the schema.
|
|
6501
|
+
*
|
|
6502
|
+
* @see IntrinsicDefinitions
|
|
6503
|
+
*
|
|
6504
|
+
* @public
|
|
6505
|
+
*/
|
|
6506
|
+
declare type IntrinsicTypeName =
|
|
6507
|
+
IntrinsicDefinitions[keyof IntrinsicDefinitions]['type']
|
|
6508
|
+
|
|
5299
6509
|
/**
|
|
5300
6510
|
* The editor has invalid data in the value that can be resolved by the user
|
|
5301
6511
|
* @beta */
|
|
@@ -5322,7 +6532,10 @@ declare type InvalidValueResolution = {
|
|
|
5322
6532
|
/**
|
|
5323
6533
|
* @public
|
|
5324
6534
|
*/
|
|
5325
|
-
export declare function isEmptyTextBlock(
|
|
6535
|
+
export declare function isEmptyTextBlock(
|
|
6536
|
+
context: Pick<EditorContext, 'schema'>,
|
|
6537
|
+
block: PortableTextBlock,
|
|
6538
|
+
): boolean
|
|
5326
6539
|
|
|
5327
6540
|
/**
|
|
5328
6541
|
* @public
|
|
@@ -5386,6 +6599,27 @@ declare type KeyboardBehaviorEvent =
|
|
|
5386
6599
|
>
|
|
5387
6600
|
}
|
|
5388
6601
|
|
|
6602
|
+
/** @public */
|
|
6603
|
+
declare type KeyedSegment = {
|
|
6604
|
+
_key: string
|
|
6605
|
+
}
|
|
6606
|
+
|
|
6607
|
+
/**
|
|
6608
|
+
* Holds localized validation messages for a given field.
|
|
6609
|
+
*
|
|
6610
|
+
* @example Custom message for English (US) and Norwegian (Bokmål):
|
|
6611
|
+
* ```
|
|
6612
|
+
* {
|
|
6613
|
+
* 'en-US': 'Needs to start with a capital letter',
|
|
6614
|
+
* 'no-NB': 'Må starte med stor bokstav',
|
|
6615
|
+
* }
|
|
6616
|
+
* ```
|
|
6617
|
+
* @public
|
|
6618
|
+
*/
|
|
6619
|
+
declare interface LocalizedValidationMessages {
|
|
6620
|
+
[locale: string]: string
|
|
6621
|
+
}
|
|
6622
|
+
|
|
5389
6623
|
/**
|
|
5390
6624
|
* @beta
|
|
5391
6625
|
*/
|
|
@@ -5397,7 +6631,7 @@ export declare function mergeTextBlocks({
|
|
|
5397
6631
|
context: Pick<EditorContext, 'keyGenerator' | 'schema'>
|
|
5398
6632
|
targetBlock: PortableTextTextBlock
|
|
5399
6633
|
incomingBlock: PortableTextTextBlock
|
|
5400
|
-
}): PortableTextTextBlock<
|
|
6634
|
+
}): PortableTextTextBlock<PortableTextObject_2 | PortableTextSpan_2>
|
|
5401
6635
|
|
|
5402
6636
|
declare type MIMEType = `${string}/${string}`
|
|
5403
6637
|
|
|
@@ -5406,6 +6640,21 @@ declare type MouseBehaviorEvent = {
|
|
|
5406
6640
|
position: EventPosition
|
|
5407
6641
|
}
|
|
5408
6642
|
|
|
6643
|
+
/** @public */
|
|
6644
|
+
declare interface MultiFieldSet {
|
|
6645
|
+
name: string
|
|
6646
|
+
title?: string
|
|
6647
|
+
description?: string
|
|
6648
|
+
single?: false
|
|
6649
|
+
group?: string | string[]
|
|
6650
|
+
options?: CollapseOptions & {
|
|
6651
|
+
columns?: number
|
|
6652
|
+
}
|
|
6653
|
+
fields: ObjectField[]
|
|
6654
|
+
hidden?: ConditionalProperty
|
|
6655
|
+
readOnly?: ConditionalProperty
|
|
6656
|
+
}
|
|
6657
|
+
|
|
5409
6658
|
/**
|
|
5410
6659
|
* @public
|
|
5411
6660
|
*/
|
|
@@ -5473,10 +6722,114 @@ declare const nativeBehaviorEventTypes: readonly [
|
|
|
5473
6722
|
'mouse.click',
|
|
5474
6723
|
]
|
|
5475
6724
|
|
|
6725
|
+
/** @public */
|
|
6726
|
+
declare interface NumberDefinition extends BaseSchemaDefinition {
|
|
6727
|
+
type: 'number'
|
|
6728
|
+
options?: NumberOptions
|
|
6729
|
+
placeholder?: string
|
|
6730
|
+
validation?: ValidationBuilder<NumberRule, number>
|
|
6731
|
+
initialValue?: InitialValueProperty<any, number>
|
|
6732
|
+
}
|
|
6733
|
+
|
|
6734
|
+
/** @public */
|
|
6735
|
+
declare interface NumberOptions
|
|
6736
|
+
extends EnumListProps<number>,
|
|
6737
|
+
BaseSchemaTypeOptions {}
|
|
6738
|
+
|
|
6739
|
+
/** @public */
|
|
6740
|
+
declare interface NumberRule extends RuleDef<NumberRule, number> {
|
|
6741
|
+
min: (minNumber: number | FieldReference) => NumberRule
|
|
6742
|
+
max: (maxNumber: number | FieldReference) => NumberRule
|
|
6743
|
+
lessThan: (limit: number | FieldReference) => NumberRule
|
|
6744
|
+
greaterThan: (limit: number | FieldReference) => NumberRule
|
|
6745
|
+
integer: () => NumberRule
|
|
6746
|
+
precision: (limit: number | FieldReference) => NumberRule
|
|
6747
|
+
positive: () => NumberRule
|
|
6748
|
+
negative: () => NumberRule
|
|
6749
|
+
}
|
|
6750
|
+
|
|
6751
|
+
/** @public */
|
|
6752
|
+
declare interface NumberSchemaType extends BaseSchemaType {
|
|
6753
|
+
jsonType: 'number'
|
|
6754
|
+
options?: NumberOptions
|
|
6755
|
+
initialValue?: InitialValueProperty<any, number>
|
|
6756
|
+
}
|
|
6757
|
+
|
|
5476
6758
|
declare type ObjectBlockWithOptionalKey = Omit<PortableTextObject, '_key'> & {
|
|
5477
6759
|
_key?: PortableTextObject['_key']
|
|
5478
6760
|
}
|
|
5479
6761
|
|
|
6762
|
+
/** @public */
|
|
6763
|
+
declare interface ObjectDefinition extends BaseSchemaDefinition {
|
|
6764
|
+
type: 'object'
|
|
6765
|
+
/**
|
|
6766
|
+
* Object must have at least one field. This is validated at Studio startup.
|
|
6767
|
+
*/
|
|
6768
|
+
fields: FieldDefinition[]
|
|
6769
|
+
groups?: FieldGroupDefinition[]
|
|
6770
|
+
fieldsets?: FieldsetDefinition[]
|
|
6771
|
+
preview?: PreviewConfig
|
|
6772
|
+
options?: ObjectOptions
|
|
6773
|
+
validation?: ValidationBuilder<ObjectRule, Record<string, unknown>>
|
|
6774
|
+
initialValue?: InitialValueProperty<any, Record<string, unknown>>
|
|
6775
|
+
}
|
|
6776
|
+
|
|
6777
|
+
/** @public */
|
|
6778
|
+
declare interface ObjectField<T extends SchemaType = SchemaType> {
|
|
6779
|
+
name: string
|
|
6780
|
+
fieldset?: string
|
|
6781
|
+
group?: string | string[]
|
|
6782
|
+
type: ObjectFieldType<T>
|
|
6783
|
+
}
|
|
6784
|
+
|
|
6785
|
+
/** @public */
|
|
6786
|
+
declare type ObjectFieldType<T extends SchemaType = SchemaType> = T & {
|
|
6787
|
+
hidden?: ConditionalProperty
|
|
6788
|
+
readOnly?: ConditionalProperty
|
|
6789
|
+
}
|
|
6790
|
+
|
|
6791
|
+
/** @public */
|
|
6792
|
+
declare interface ObjectOptions extends BaseSchemaTypeOptions {
|
|
6793
|
+
collapsible?: boolean
|
|
6794
|
+
collapsed?: boolean
|
|
6795
|
+
columns?: number
|
|
6796
|
+
modal?: {
|
|
6797
|
+
type?: 'dialog' | 'popover'
|
|
6798
|
+
width?: number | number[] | 'auto'
|
|
6799
|
+
}
|
|
6800
|
+
}
|
|
6801
|
+
|
|
6802
|
+
/** @public */
|
|
6803
|
+
declare interface ObjectRule
|
|
6804
|
+
extends RuleDef<ObjectRule, Record<string, unknown>> {}
|
|
6805
|
+
|
|
6806
|
+
/** @public */
|
|
6807
|
+
declare interface ObjectSchemaType extends BaseSchemaType {
|
|
6808
|
+
jsonType: 'object'
|
|
6809
|
+
fields: ObjectField[]
|
|
6810
|
+
groups?: FieldGroup[]
|
|
6811
|
+
fieldsets?: Fieldset[]
|
|
6812
|
+
initialValue?: InitialValueProperty<any, Record<string, unknown>>
|
|
6813
|
+
weak?: boolean
|
|
6814
|
+
/** @deprecated Unused. Use the new field-level search config. */
|
|
6815
|
+
__experimental_search?: {
|
|
6816
|
+
path: (string | number)[]
|
|
6817
|
+
weight: number
|
|
6818
|
+
mapWith?: string
|
|
6819
|
+
}[]
|
|
6820
|
+
/** @alpha */
|
|
6821
|
+
__experimental_omnisearch_visibility?: boolean
|
|
6822
|
+
/** @alpha */
|
|
6823
|
+
__experimental_actions?: string[]
|
|
6824
|
+
/** @alpha */
|
|
6825
|
+
__experimental_formPreviewTitle?: boolean
|
|
6826
|
+
/**
|
|
6827
|
+
* @beta
|
|
6828
|
+
*/
|
|
6829
|
+
orderings?: SortOrdering[]
|
|
6830
|
+
options?: any
|
|
6831
|
+
}
|
|
6832
|
+
|
|
5480
6833
|
/**
|
|
5481
6834
|
* @public
|
|
5482
6835
|
*/
|
|
@@ -5491,6 +6844,12 @@ declare type PatchEvent = {
|
|
|
5491
6844
|
patch: Patch
|
|
5492
6845
|
}
|
|
5493
6846
|
|
|
6847
|
+
/** @public */
|
|
6848
|
+
declare type Path = PathSegment[]
|
|
6849
|
+
|
|
6850
|
+
/** @public */
|
|
6851
|
+
declare type PathSegment = string | number | KeyedSegment | IndexTuple
|
|
6852
|
+
|
|
5494
6853
|
/**
|
|
5495
6854
|
* @internal
|
|
5496
6855
|
*/
|
|
@@ -5500,9 +6859,21 @@ declare type PickFromUnion<
|
|
|
5500
6859
|
TPickedTags extends TUnion[TTagKey],
|
|
5501
6860
|
> = TUnion extends Record<TTagKey, TPickedTags> ? TUnion : never
|
|
5502
6861
|
|
|
5503
|
-
/** @
|
|
5504
|
-
declare type
|
|
5505
|
-
|
|
6862
|
+
/** @alpha */
|
|
6863
|
+
declare type PortableTextBlock = PortableTextTextBlock | PortableTextObject
|
|
6864
|
+
|
|
6865
|
+
/** @alpha */
|
|
6866
|
+
declare type PortableTextChild = PortableTextObject | PortableTextSpan
|
|
6867
|
+
|
|
6868
|
+
/** @alpha */
|
|
6869
|
+
declare interface PortableTextListBlock extends PortableTextTextBlock {
|
|
6870
|
+
listItem: string
|
|
6871
|
+
level: number
|
|
6872
|
+
}
|
|
6873
|
+
|
|
6874
|
+
/** @beta */
|
|
6875
|
+
declare type PortableTextMemberSchemaTypes = {
|
|
6876
|
+
annotations: (ObjectSchemaType & {
|
|
5506
6877
|
i18nTitleKey?: string
|
|
5507
6878
|
})[]
|
|
5508
6879
|
block: ObjectSchemaType
|
|
@@ -5515,6 +6886,13 @@ declare type PortableTextMemberSchemaTypes = {
|
|
|
5515
6886
|
lists: BlockListDefinition[]
|
|
5516
6887
|
}
|
|
5517
6888
|
|
|
6889
|
+
/** @alpha */
|
|
6890
|
+
declare interface PortableTextObject {
|
|
6891
|
+
_type: string
|
|
6892
|
+
_key: string
|
|
6893
|
+
[other: string]: unknown
|
|
6894
|
+
}
|
|
6895
|
+
|
|
5518
6896
|
declare interface PortableTextSlateEditor extends ReactEditor {
|
|
5519
6897
|
_key: 'editor'
|
|
5520
6898
|
_type: 'editor'
|
|
@@ -5548,6 +6926,162 @@ declare interface PortableTextSlateEditor extends ReactEditor {
|
|
|
5548
6926
|
redo: () => void
|
|
5549
6927
|
}
|
|
5550
6928
|
|
|
6929
|
+
/** @alpha */
|
|
6930
|
+
declare interface PortableTextSpan {
|
|
6931
|
+
_key: string
|
|
6932
|
+
_type: 'span'
|
|
6933
|
+
text: string
|
|
6934
|
+
marks?: string[]
|
|
6935
|
+
}
|
|
6936
|
+
|
|
6937
|
+
/** @alpha */
|
|
6938
|
+
declare interface PortableTextTextBlock<
|
|
6939
|
+
TChild = PortableTextSpan | PortableTextObject,
|
|
6940
|
+
> {
|
|
6941
|
+
_type: string
|
|
6942
|
+
_key: string
|
|
6943
|
+
children: TChild[]
|
|
6944
|
+
markDefs?: PortableTextObject[]
|
|
6945
|
+
listItem?: string
|
|
6946
|
+
style?: string
|
|
6947
|
+
level?: number
|
|
6948
|
+
}
|
|
6949
|
+
|
|
6950
|
+
/** @public */
|
|
6951
|
+
declare interface PrepareViewOptions {
|
|
6952
|
+
/** @beta */
|
|
6953
|
+
ordering?: SortOrdering
|
|
6954
|
+
}
|
|
6955
|
+
|
|
6956
|
+
/** @public */
|
|
6957
|
+
declare interface PreviewConfig<
|
|
6958
|
+
Select extends Record<string, string> = Record<string, string>,
|
|
6959
|
+
PrepareValue extends Record<keyof Select, any> = Record<keyof Select, any>,
|
|
6960
|
+
> {
|
|
6961
|
+
select?: Select
|
|
6962
|
+
prepare?: (
|
|
6963
|
+
value: PrepareValue,
|
|
6964
|
+
viewOptions?: PrepareViewOptions,
|
|
6965
|
+
) => PreviewValue
|
|
6966
|
+
}
|
|
6967
|
+
|
|
6968
|
+
/** @public */
|
|
6969
|
+
declare interface PreviewValue {
|
|
6970
|
+
_id?: string
|
|
6971
|
+
_createdAt?: string
|
|
6972
|
+
_updatedAt?: string
|
|
6973
|
+
title?: string
|
|
6974
|
+
subtitle?: string
|
|
6975
|
+
description?: string
|
|
6976
|
+
media?: ReactNode | ElementType
|
|
6977
|
+
imageUrl?: string
|
|
6978
|
+
}
|
|
6979
|
+
|
|
6980
|
+
/** @public */
|
|
6981
|
+
declare interface Reference {
|
|
6982
|
+
_type: string
|
|
6983
|
+
_ref: string
|
|
6984
|
+
_key?: string
|
|
6985
|
+
_weak?: boolean
|
|
6986
|
+
_strengthenOnPublish?: {
|
|
6987
|
+
type: string
|
|
6988
|
+
weak?: boolean
|
|
6989
|
+
template?: {
|
|
6990
|
+
id: string
|
|
6991
|
+
params: Record<string, string | number | boolean>
|
|
6992
|
+
}
|
|
6993
|
+
}
|
|
6994
|
+
}
|
|
6995
|
+
|
|
6996
|
+
/** @public */
|
|
6997
|
+
declare interface ReferenceBaseOptions extends BaseSchemaTypeOptions {
|
|
6998
|
+
disableNew?: boolean
|
|
6999
|
+
}
|
|
7000
|
+
|
|
7001
|
+
/** @public */
|
|
7002
|
+
declare interface ReferenceDefinition extends BaseSchemaDefinition {
|
|
7003
|
+
type: 'reference'
|
|
7004
|
+
to: ReferenceTo
|
|
7005
|
+
weak?: boolean
|
|
7006
|
+
options?: ReferenceOptions
|
|
7007
|
+
validation?: ValidationBuilder<ReferenceRule, ReferenceValue>
|
|
7008
|
+
initialValue?: InitialValueProperty<any, Omit<ReferenceValue, '_type'>>
|
|
7009
|
+
}
|
|
7010
|
+
|
|
7011
|
+
/** @public */
|
|
7012
|
+
declare type ReferenceFilterOptions =
|
|
7013
|
+
| ReferenceFilterResolverOptions
|
|
7014
|
+
| ReferenceFilterQueryOptions
|
|
7015
|
+
|
|
7016
|
+
/** @public */
|
|
7017
|
+
declare interface ReferenceFilterQueryOptions {
|
|
7018
|
+
filter: string
|
|
7019
|
+
filterParams?: Record<string, unknown>
|
|
7020
|
+
}
|
|
7021
|
+
|
|
7022
|
+
/** @public */
|
|
7023
|
+
declare type ReferenceFilterResolver = (
|
|
7024
|
+
context: ReferenceFilterResolverContext,
|
|
7025
|
+
) => ReferenceFilterSearchOptions | Promise<ReferenceFilterSearchOptions>
|
|
7026
|
+
|
|
7027
|
+
/** @public */
|
|
7028
|
+
declare interface ReferenceFilterResolverContext {
|
|
7029
|
+
document: SanityDocument
|
|
7030
|
+
parent?: Record<string, unknown> | Record<string, unknown>[]
|
|
7031
|
+
parentPath: Path
|
|
7032
|
+
getClient: (options: {apiVersion: string}) => SanityClient
|
|
7033
|
+
}
|
|
7034
|
+
|
|
7035
|
+
/** @public */
|
|
7036
|
+
declare interface ReferenceFilterResolverOptions {
|
|
7037
|
+
filter?: ReferenceFilterResolver
|
|
7038
|
+
filterParams?: never
|
|
7039
|
+
}
|
|
7040
|
+
|
|
7041
|
+
/** @public */
|
|
7042
|
+
declare type ReferenceFilterSearchOptions = {
|
|
7043
|
+
filter?: string
|
|
7044
|
+
params?: Record<string, unknown>
|
|
7045
|
+
tag?: string
|
|
7046
|
+
maxFieldDepth?: number
|
|
7047
|
+
strategy?: SearchStrategy
|
|
7048
|
+
perspective?: ClientPerspective
|
|
7049
|
+
}
|
|
7050
|
+
|
|
7051
|
+
/**
|
|
7052
|
+
* Types are closed for extension. To add properties via declaration merging to this type,
|
|
7053
|
+
* redeclare and add the properties to the interfaces that make up ReferenceOptions type.
|
|
7054
|
+
*
|
|
7055
|
+
* @see ReferenceFilterOptions
|
|
7056
|
+
* @see ReferenceFilterResolverOptions
|
|
7057
|
+
* @see ReferenceBaseOptions
|
|
7058
|
+
*
|
|
7059
|
+
* @public
|
|
7060
|
+
*/
|
|
7061
|
+
declare type ReferenceOptions = ReferenceBaseOptions & ReferenceFilterOptions
|
|
7062
|
+
|
|
7063
|
+
/** @public */
|
|
7064
|
+
declare interface ReferenceRule
|
|
7065
|
+
extends RuleDef<ReferenceRule, ReferenceValue> {}
|
|
7066
|
+
|
|
7067
|
+
/** @public */
|
|
7068
|
+
declare interface ReferenceSchemaType
|
|
7069
|
+
extends Omit<ObjectSchemaType, 'options'> {
|
|
7070
|
+
jsonType: 'object'
|
|
7071
|
+
to: ObjectSchemaType[]
|
|
7072
|
+
weak?: boolean
|
|
7073
|
+
options?: ReferenceOptions
|
|
7074
|
+
}
|
|
7075
|
+
|
|
7076
|
+
/** @public */
|
|
7077
|
+
declare type ReferenceTo =
|
|
7078
|
+
| SchemaTypeDefinition
|
|
7079
|
+
| TypeReference
|
|
7080
|
+
| Array<SchemaTypeDefinition | TypeReference>
|
|
7081
|
+
|
|
7082
|
+
/** @public */
|
|
7083
|
+
declare type ReferenceValue = Reference
|
|
7084
|
+
|
|
5551
7085
|
/**************************************
|
|
5552
7086
|
* Resolve behavior event
|
|
5553
7087
|
**************************************/
|
|
@@ -5580,14 +7114,445 @@ export declare function reverseSelection<
|
|
|
5580
7114
|
TEditorSelection extends NonNullable<EditorSelection> | null,
|
|
5581
7115
|
>(selection: TEditorSelection): TEditorSelection
|
|
5582
7116
|
|
|
7117
|
+
/** @public */
|
|
7118
|
+
declare interface Role {
|
|
7119
|
+
name: string
|
|
7120
|
+
title: string
|
|
7121
|
+
description?: string
|
|
7122
|
+
}
|
|
7123
|
+
|
|
7124
|
+
/** @public */
|
|
7125
|
+
declare interface Rule {
|
|
7126
|
+
/**
|
|
7127
|
+
* @internal
|
|
7128
|
+
* @deprecated internal use only
|
|
7129
|
+
*/
|
|
7130
|
+
_type: RuleTypeConstraint | undefined
|
|
7131
|
+
/**
|
|
7132
|
+
* @internal
|
|
7133
|
+
* @deprecated internal use only
|
|
7134
|
+
*/
|
|
7135
|
+
_level: 'error' | 'warning' | 'info' | undefined
|
|
7136
|
+
/**
|
|
7137
|
+
* @internal
|
|
7138
|
+
* @deprecated internal use only
|
|
7139
|
+
*/
|
|
7140
|
+
_required: 'required' | 'optional' | undefined
|
|
7141
|
+
/**
|
|
7142
|
+
* @internal
|
|
7143
|
+
* @deprecated internal use only
|
|
7144
|
+
*/
|
|
7145
|
+
_typeDef: SchemaType | undefined
|
|
7146
|
+
/**
|
|
7147
|
+
* @internal
|
|
7148
|
+
* @deprecated internal use only
|
|
7149
|
+
*/
|
|
7150
|
+
_message: string | LocalizedValidationMessages | undefined
|
|
7151
|
+
/**
|
|
7152
|
+
* @internal
|
|
7153
|
+
* @deprecated internal use only
|
|
7154
|
+
*/
|
|
7155
|
+
_rules: RuleSpec[]
|
|
7156
|
+
/**
|
|
7157
|
+
* @internal
|
|
7158
|
+
* @deprecated internal use only
|
|
7159
|
+
*/
|
|
7160
|
+
_fieldRules: FieldRules | undefined
|
|
7161
|
+
/**
|
|
7162
|
+
* Takes in a path and returns an object with a symbol.
|
|
7163
|
+
*
|
|
7164
|
+
* When the validation lib sees this symbol, it will use the provided path to
|
|
7165
|
+
* get a value from the current field's parent and use that value as the input
|
|
7166
|
+
* to the Rule.
|
|
7167
|
+
*
|
|
7168
|
+
* The path that's given is forwarded to `lodash/get`
|
|
7169
|
+
*
|
|
7170
|
+
* ```js
|
|
7171
|
+
* fields: [
|
|
7172
|
+
* // ...
|
|
7173
|
+
* {
|
|
7174
|
+
* // ...
|
|
7175
|
+
* name: 'highestTemperature',
|
|
7176
|
+
* type: 'number',
|
|
7177
|
+
* validation: (Rule) => Rule.positive().min(Rule.valueOfField('lowestTemperature')),
|
|
7178
|
+
* // ...
|
|
7179
|
+
* },
|
|
7180
|
+
* ]
|
|
7181
|
+
* ```
|
|
7182
|
+
*/
|
|
7183
|
+
valueOfField: (path: string | string[]) => FieldReference
|
|
7184
|
+
error(message?: string | LocalizedValidationMessages): Rule
|
|
7185
|
+
warning(message?: string | LocalizedValidationMessages): Rule
|
|
7186
|
+
info(message?: string | LocalizedValidationMessages): Rule
|
|
7187
|
+
reset(): this
|
|
7188
|
+
isRequired(): boolean
|
|
7189
|
+
clone(): Rule
|
|
7190
|
+
cloneWithRules(rules: RuleSpec[]): Rule
|
|
7191
|
+
merge(rule: Rule): Rule
|
|
7192
|
+
type(targetType: RuleTypeConstraint | Lowercase<RuleTypeConstraint>): Rule
|
|
7193
|
+
all(children: Rule[]): Rule
|
|
7194
|
+
either(children: Rule[]): Rule
|
|
7195
|
+
optional(): Rule
|
|
7196
|
+
required(): Rule
|
|
7197
|
+
custom<T = unknown>(
|
|
7198
|
+
fn: CustomValidator<T>,
|
|
7199
|
+
options?: {
|
|
7200
|
+
bypassConcurrencyLimit?: boolean
|
|
7201
|
+
},
|
|
7202
|
+
): Rule
|
|
7203
|
+
min(len: number | string | FieldReference): Rule
|
|
7204
|
+
max(len: number | string | FieldReference): Rule
|
|
7205
|
+
length(len: number | FieldReference): Rule
|
|
7206
|
+
valid(value: unknown | unknown[]): Rule
|
|
7207
|
+
integer(): Rule
|
|
7208
|
+
precision(limit: number | FieldReference): Rule
|
|
7209
|
+
positive(): Rule
|
|
7210
|
+
negative(): Rule
|
|
7211
|
+
greaterThan(num: number | FieldReference): Rule
|
|
7212
|
+
lessThan(num: number | FieldReference): Rule
|
|
7213
|
+
uppercase(): Rule
|
|
7214
|
+
lowercase(): Rule
|
|
7215
|
+
regex(
|
|
7216
|
+
pattern: RegExp,
|
|
7217
|
+
name: string,
|
|
7218
|
+
options: {
|
|
7219
|
+
name?: string
|
|
7220
|
+
invert?: boolean
|
|
7221
|
+
},
|
|
7222
|
+
): Rule
|
|
7223
|
+
regex(
|
|
7224
|
+
pattern: RegExp,
|
|
7225
|
+
options: {
|
|
7226
|
+
name?: string
|
|
7227
|
+
invert?: boolean
|
|
7228
|
+
},
|
|
7229
|
+
): Rule
|
|
7230
|
+
regex(pattern: RegExp, name: string): Rule
|
|
7231
|
+
regex(pattern: RegExp): Rule
|
|
7232
|
+
email(): Rule
|
|
7233
|
+
uri(options?: UriValidationOptions): Rule
|
|
7234
|
+
unique(): Rule
|
|
7235
|
+
reference(): Rule
|
|
7236
|
+
fields(rules: FieldRules): Rule
|
|
7237
|
+
assetRequired(): Rule
|
|
7238
|
+
validate(
|
|
7239
|
+
value: unknown,
|
|
7240
|
+
options: ValidationContext & {
|
|
7241
|
+
/**
|
|
7242
|
+
* @deprecated Internal use only
|
|
7243
|
+
* @internal
|
|
7244
|
+
*/
|
|
7245
|
+
__internal?: {
|
|
7246
|
+
customValidationConcurrencyLimiter?: {
|
|
7247
|
+
ready: () => Promise<void>
|
|
7248
|
+
release: () => void
|
|
7249
|
+
}
|
|
7250
|
+
}
|
|
7251
|
+
},
|
|
7252
|
+
): Promise<ValidationMarker[]>
|
|
7253
|
+
}
|
|
7254
|
+
|
|
7255
|
+
/** @public */
|
|
7256
|
+
declare type RuleBuilder<
|
|
7257
|
+
T extends RuleDef<T, FieldValue>,
|
|
7258
|
+
FieldValue = unknown,
|
|
7259
|
+
> = T | T[]
|
|
7260
|
+
|
|
7261
|
+
/** @public */
|
|
7262
|
+
declare interface RuleDef<T, FieldValue = unknown> {
|
|
7263
|
+
required: () => T
|
|
7264
|
+
custom: <LenientFieldValue extends FieldValue>(
|
|
7265
|
+
fn: CustomValidator<LenientFieldValue | undefined>,
|
|
7266
|
+
) => T
|
|
7267
|
+
info: (message?: string | LocalizedValidationMessages) => T
|
|
7268
|
+
error: (message?: string | LocalizedValidationMessages) => T
|
|
7269
|
+
warning: (message?: string | LocalizedValidationMessages) => T
|
|
7270
|
+
valueOfField: (path: string | string[]) => FieldReference
|
|
7271
|
+
}
|
|
7272
|
+
|
|
7273
|
+
/** @public */
|
|
7274
|
+
declare type RuleSpec =
|
|
7275
|
+
| {
|
|
7276
|
+
flag: 'integer'
|
|
7277
|
+
}
|
|
7278
|
+
| {
|
|
7279
|
+
flag: 'email'
|
|
7280
|
+
}
|
|
7281
|
+
| {
|
|
7282
|
+
flag: 'unique'
|
|
7283
|
+
}
|
|
7284
|
+
| {
|
|
7285
|
+
flag: 'reference'
|
|
7286
|
+
}
|
|
7287
|
+
| {
|
|
7288
|
+
flag: 'type'
|
|
7289
|
+
constraint: RuleTypeConstraint
|
|
7290
|
+
}
|
|
7291
|
+
| {
|
|
7292
|
+
flag: 'all'
|
|
7293
|
+
constraint: Rule[]
|
|
7294
|
+
}
|
|
7295
|
+
| {
|
|
7296
|
+
flag: 'either'
|
|
7297
|
+
constraint: Rule[]
|
|
7298
|
+
}
|
|
7299
|
+
| {
|
|
7300
|
+
flag: 'presence'
|
|
7301
|
+
constraint: 'optional' | 'required'
|
|
7302
|
+
}
|
|
7303
|
+
| {
|
|
7304
|
+
flag: 'custom'
|
|
7305
|
+
constraint: CustomValidator
|
|
7306
|
+
}
|
|
7307
|
+
| {
|
|
7308
|
+
flag: 'min'
|
|
7309
|
+
constraint: number | string
|
|
7310
|
+
}
|
|
7311
|
+
| {
|
|
7312
|
+
flag: 'max'
|
|
7313
|
+
constraint: number | string
|
|
7314
|
+
}
|
|
7315
|
+
| {
|
|
7316
|
+
flag: 'length'
|
|
7317
|
+
constraint: number
|
|
7318
|
+
}
|
|
7319
|
+
| {
|
|
7320
|
+
flag: 'valid'
|
|
7321
|
+
constraint: unknown[]
|
|
7322
|
+
}
|
|
7323
|
+
| {
|
|
7324
|
+
flag: 'precision'
|
|
7325
|
+
constraint: number
|
|
7326
|
+
}
|
|
7327
|
+
| {
|
|
7328
|
+
flag: 'lessThan'
|
|
7329
|
+
constraint: number
|
|
7330
|
+
}
|
|
7331
|
+
| {
|
|
7332
|
+
flag: 'greaterThan'
|
|
7333
|
+
constraint: number
|
|
7334
|
+
}
|
|
7335
|
+
| {
|
|
7336
|
+
flag: 'stringCasing'
|
|
7337
|
+
constraint: 'uppercase' | 'lowercase'
|
|
7338
|
+
}
|
|
7339
|
+
| {
|
|
7340
|
+
flag: 'assetRequired'
|
|
7341
|
+
constraint: {
|
|
7342
|
+
assetType: 'asset' | 'image' | 'file'
|
|
7343
|
+
}
|
|
7344
|
+
}
|
|
7345
|
+
| {
|
|
7346
|
+
flag: 'regex'
|
|
7347
|
+
constraint: {
|
|
7348
|
+
pattern: RegExp
|
|
7349
|
+
name?: string
|
|
7350
|
+
invert: boolean
|
|
7351
|
+
}
|
|
7352
|
+
}
|
|
7353
|
+
| {
|
|
7354
|
+
flag: 'uri'
|
|
7355
|
+
constraint: {
|
|
7356
|
+
options: {
|
|
7357
|
+
scheme: RegExp[]
|
|
7358
|
+
allowRelative: boolean
|
|
7359
|
+
relativeOnly: boolean
|
|
7360
|
+
allowCredentials: boolean
|
|
7361
|
+
}
|
|
7362
|
+
}
|
|
7363
|
+
}
|
|
7364
|
+
|
|
7365
|
+
/** @public */
|
|
7366
|
+
declare type RuleTypeConstraint =
|
|
7367
|
+
| 'Array'
|
|
7368
|
+
| 'Boolean'
|
|
7369
|
+
| 'Date'
|
|
7370
|
+
| 'Number'
|
|
7371
|
+
| 'Object'
|
|
7372
|
+
| 'String'
|
|
7373
|
+
|
|
7374
|
+
/**
|
|
7375
|
+
* Options for configuring how Sanity Create interfaces with the type or field.
|
|
7376
|
+
*
|
|
7377
|
+
* @public
|
|
7378
|
+
*/
|
|
7379
|
+
declare interface SanityCreateOptions {
|
|
7380
|
+
/** Set to true to exclude a type or field from appearing in Sanity Create */
|
|
7381
|
+
exclude?: boolean
|
|
7382
|
+
/**
|
|
7383
|
+
* A short description of what the type or field is used for.
|
|
7384
|
+
* Purpose can be used to improve how and when content mapping uses the field.
|
|
7385
|
+
* */
|
|
7386
|
+
purpose?: string
|
|
7387
|
+
}
|
|
7388
|
+
|
|
7389
|
+
/** @public */
|
|
7390
|
+
declare interface SanityDocument {
|
|
7391
|
+
_id: string
|
|
7392
|
+
_type: string
|
|
7393
|
+
_createdAt: string
|
|
7394
|
+
_updatedAt: string
|
|
7395
|
+
_rev: string
|
|
7396
|
+
[key: string]: unknown
|
|
7397
|
+
}
|
|
7398
|
+
|
|
7399
|
+
/** @public */
|
|
7400
|
+
declare interface Schema {
|
|
7401
|
+
/** @internal */
|
|
7402
|
+
_original?: {
|
|
7403
|
+
name: string
|
|
7404
|
+
types: SchemaTypeDefinition[]
|
|
7405
|
+
}
|
|
7406
|
+
/** @internal */
|
|
7407
|
+
_registry: {
|
|
7408
|
+
[typeName: string]: any
|
|
7409
|
+
}
|
|
7410
|
+
/** @internal */
|
|
7411
|
+
_validation?: SchemaValidationProblemGroup[]
|
|
7412
|
+
name: string
|
|
7413
|
+
get: (name: string) => SchemaType | undefined
|
|
7414
|
+
has: (name: string) => boolean
|
|
7415
|
+
getTypeNames: () => string[]
|
|
7416
|
+
}
|
|
7417
|
+
|
|
7418
|
+
/**
|
|
7419
|
+
* Note: you probably want `SchemaTypeDefinition` instead
|
|
7420
|
+
* @see SchemaTypeDefinition
|
|
7421
|
+
*
|
|
7422
|
+
* @public
|
|
7423
|
+
*/
|
|
7424
|
+
declare type SchemaType =
|
|
7425
|
+
| ArraySchemaType
|
|
7426
|
+
| BooleanSchemaType
|
|
7427
|
+
| FileSchemaType
|
|
7428
|
+
| NumberSchemaType
|
|
7429
|
+
| ObjectSchemaType
|
|
7430
|
+
| StringSchemaType
|
|
7431
|
+
| ReferenceSchemaType
|
|
7432
|
+
|
|
7433
|
+
/**
|
|
7434
|
+
* Represents a Sanity schema type definition with an optional type parameter.
|
|
7435
|
+
*
|
|
7436
|
+
* It's recommend to use the `defineType` helper instead of this type by
|
|
7437
|
+
* itself.
|
|
7438
|
+
*
|
|
7439
|
+
* @see defineType
|
|
7440
|
+
*
|
|
7441
|
+
* @public
|
|
7442
|
+
*/
|
|
7443
|
+
declare type SchemaTypeDefinition<
|
|
7444
|
+
TType extends IntrinsicTypeName = IntrinsicTypeName,
|
|
7445
|
+
> = IntrinsicDefinitions[IntrinsicTypeName] | TypeAliasDefinition<string, TType>
|
|
7446
|
+
|
|
7447
|
+
/** @public */
|
|
7448
|
+
declare interface SchemaValidationError {
|
|
7449
|
+
helpId?: string
|
|
7450
|
+
message: string
|
|
7451
|
+
severity: 'error'
|
|
7452
|
+
}
|
|
7453
|
+
|
|
7454
|
+
/** @internal */
|
|
7455
|
+
declare type SchemaValidationProblem =
|
|
7456
|
+
| SchemaValidationError
|
|
7457
|
+
| SchemaValidationWarning
|
|
7458
|
+
|
|
7459
|
+
/** @internal */
|
|
7460
|
+
declare interface SchemaValidationProblemGroup {
|
|
7461
|
+
path: SchemaValidationProblemPath
|
|
7462
|
+
problems: SchemaValidationProblem[]
|
|
7463
|
+
}
|
|
7464
|
+
|
|
7465
|
+
/** @internal */
|
|
7466
|
+
declare type SchemaValidationProblemPath = Array<
|
|
7467
|
+
| {
|
|
7468
|
+
kind: 'type'
|
|
7469
|
+
type: string
|
|
7470
|
+
name?: string
|
|
7471
|
+
}
|
|
7472
|
+
| {
|
|
7473
|
+
kind: 'property'
|
|
7474
|
+
name: string
|
|
7475
|
+
}
|
|
7476
|
+
>
|
|
7477
|
+
|
|
7478
|
+
/**
|
|
7479
|
+
* Represents the possible values of a schema type's `validation` field.
|
|
7480
|
+
*
|
|
7481
|
+
* If the schema has not been run through `inferFromSchema` from
|
|
7482
|
+
* `sanity/validation` then value could be a function.
|
|
7483
|
+
*
|
|
7484
|
+
* `inferFromSchema` mutates the schema converts this value to an array of
|
|
7485
|
+
* `Rule` instances.
|
|
7486
|
+
*
|
|
7487
|
+
* @privateRemarks
|
|
7488
|
+
*
|
|
7489
|
+
* Usage of the schema inside the studio will almost always be from the compiled
|
|
7490
|
+
* `createSchema` function. In this case, you can cast the value or throw to
|
|
7491
|
+
* narrow the type. E.g.:
|
|
7492
|
+
*
|
|
7493
|
+
* ```ts
|
|
7494
|
+
* if (typeof type.validation === 'function') {
|
|
7495
|
+
* throw new Error(
|
|
7496
|
+
* `Schema type "${type.name}"'s \`validation\` was not run though \`inferFromSchema\``
|
|
7497
|
+
* )
|
|
7498
|
+
* }
|
|
7499
|
+
* ```
|
|
7500
|
+
*
|
|
7501
|
+
* @public
|
|
7502
|
+
*/
|
|
7503
|
+
declare type SchemaValidationValue =
|
|
7504
|
+
| false
|
|
7505
|
+
| undefined
|
|
7506
|
+
| Rule
|
|
7507
|
+
| SchemaValidationValue[]
|
|
7508
|
+
| ((rule: Rule) => SchemaValidationValue)
|
|
7509
|
+
|
|
7510
|
+
/** @internal */
|
|
7511
|
+
declare interface SchemaValidationWarning {
|
|
7512
|
+
helpId?: string
|
|
7513
|
+
message: string
|
|
7514
|
+
severity: 'warning'
|
|
7515
|
+
}
|
|
7516
|
+
|
|
7517
|
+
/** @public */
|
|
7518
|
+
declare interface SearchConfiguration {
|
|
7519
|
+
search?: {
|
|
7520
|
+
/**
|
|
7521
|
+
* Defines a search weight for this field to prioritize its importance
|
|
7522
|
+
* during search operations in the Studio. This setting allows the specified
|
|
7523
|
+
* field to be ranked higher in search results compared to other fields.
|
|
7524
|
+
*
|
|
7525
|
+
* By default, all fields are assigned a weight of 1. However, if a field is
|
|
7526
|
+
* chosen as the `title` in the preview configuration's `select` option, it
|
|
7527
|
+
* will automatically receive a default weight of 10. Similarly, if selected
|
|
7528
|
+
* as the `subtitle`, the default weight is 5. Fields marked as
|
|
7529
|
+
* `hidden: true` (no function) are assigned a weight of 0 by default.
|
|
7530
|
+
*
|
|
7531
|
+
* Note: Search weight configuration is currently supported only for fields
|
|
7532
|
+
* of type string or portable text arrays.
|
|
7533
|
+
*/
|
|
7534
|
+
weight?: number
|
|
7535
|
+
}
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7538
|
+
/**
|
|
7539
|
+
* @public
|
|
7540
|
+
*/
|
|
7541
|
+
declare const searchStrategies: readonly ['groqLegacy', 'groq2024']
|
|
7542
|
+
|
|
7543
|
+
/**
|
|
7544
|
+
* @public
|
|
7545
|
+
*/
|
|
7546
|
+
declare type SearchStrategy = (typeof searchStrategies)[number]
|
|
7547
|
+
|
|
5583
7548
|
/**
|
|
5584
7549
|
* @public
|
|
5585
7550
|
*/
|
|
5586
7551
|
export declare function selectionPointToBlockOffset({
|
|
5587
|
-
|
|
7552
|
+
context,
|
|
5588
7553
|
selectionPoint,
|
|
5589
7554
|
}: {
|
|
5590
|
-
|
|
7555
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
5591
7556
|
selectionPoint: EditorSelectionPoint
|
|
5592
7557
|
}): BlockOffset | undefined
|
|
5593
7558
|
|
|
@@ -5603,25 +7568,122 @@ declare type Serializer<TMIMEType extends MIMEType> = ({
|
|
|
5603
7568
|
'serialization.success' | 'serialization.failure'
|
|
5604
7569
|
>
|
|
5605
7570
|
|
|
7571
|
+
/** @public */
|
|
7572
|
+
declare interface SingleFieldSet {
|
|
7573
|
+
single: true
|
|
7574
|
+
field: ObjectField
|
|
7575
|
+
hidden?: ConditionalProperty
|
|
7576
|
+
readOnly?: ConditionalProperty
|
|
7577
|
+
group?: string | string[]
|
|
7578
|
+
}
|
|
7579
|
+
|
|
5606
7580
|
/**
|
|
5607
7581
|
* @public
|
|
5608
7582
|
*/
|
|
5609
7583
|
export declare function sliceBlocks({
|
|
7584
|
+
context,
|
|
5610
7585
|
blocks,
|
|
5611
|
-
selection,
|
|
5612
7586
|
}: {
|
|
7587
|
+
context: Pick<EditorContext, 'schema' | 'selection'>
|
|
5613
7588
|
blocks: Array<PortableTextBlock>
|
|
5614
|
-
selection: EditorSelection
|
|
5615
7589
|
}): Array<PortableTextBlock>
|
|
5616
7590
|
|
|
7591
|
+
/** @public */
|
|
7592
|
+
declare interface SlugDefinition extends BaseSchemaDefinition {
|
|
7593
|
+
type: 'slug'
|
|
7594
|
+
options?: SlugOptions
|
|
7595
|
+
validation?: ValidationBuilder<SlugRule, SlugValue>
|
|
7596
|
+
initialValue?: InitialValueProperty<any, Omit<SlugValue, '_type'>>
|
|
7597
|
+
}
|
|
7598
|
+
|
|
7599
|
+
/** @public */
|
|
7600
|
+
declare type SlugifierFn = (
|
|
7601
|
+
source: string,
|
|
7602
|
+
schemaType: SlugSchemaType,
|
|
7603
|
+
context: SlugSourceContext,
|
|
7604
|
+
) => string | Promise<string>
|
|
7605
|
+
|
|
7606
|
+
/** @public */
|
|
7607
|
+
declare type SlugIsUniqueValidator = (
|
|
7608
|
+
slug: string,
|
|
7609
|
+
context: SlugValidationContext,
|
|
7610
|
+
) => boolean | Promise<boolean>
|
|
7611
|
+
|
|
7612
|
+
/** @public */
|
|
7613
|
+
declare interface SlugOptions
|
|
7614
|
+
extends SearchConfiguration,
|
|
7615
|
+
BaseSchemaTypeOptions {
|
|
7616
|
+
source?: string | Path | SlugSourceFn
|
|
7617
|
+
maxLength?: number
|
|
7618
|
+
slugify?: SlugifierFn
|
|
7619
|
+
isUnique?: SlugIsUniqueValidator
|
|
7620
|
+
disableArrayWarning?: boolean
|
|
7621
|
+
}
|
|
7622
|
+
|
|
7623
|
+
/** @public */
|
|
7624
|
+
declare type SlugParent = Record<string, unknown> | Record<string, unknown>[]
|
|
7625
|
+
|
|
7626
|
+
/** @public */
|
|
7627
|
+
declare interface SlugRule extends RuleDef<SlugRule, SlugValue> {}
|
|
7628
|
+
|
|
7629
|
+
/** @public */
|
|
7630
|
+
declare interface SlugSchemaType extends ObjectSchemaType {
|
|
7631
|
+
jsonType: 'object'
|
|
7632
|
+
options?: SlugOptions
|
|
7633
|
+
}
|
|
7634
|
+
|
|
7635
|
+
/** @public */
|
|
7636
|
+
declare interface SlugSourceContext {
|
|
7637
|
+
parentPath: Path
|
|
7638
|
+
parent: SlugParent
|
|
7639
|
+
projectId: string
|
|
7640
|
+
dataset: string
|
|
7641
|
+
schema: Schema
|
|
7642
|
+
currentUser: CurrentUser | null
|
|
7643
|
+
getClient: (options: {apiVersion: string}) => SanityClient
|
|
7644
|
+
}
|
|
7645
|
+
|
|
7646
|
+
/** @public */
|
|
7647
|
+
declare type SlugSourceFn = (
|
|
7648
|
+
document: SanityDocument,
|
|
7649
|
+
context: SlugSourceContext,
|
|
7650
|
+
) => string | Promise<string>
|
|
7651
|
+
|
|
7652
|
+
/** @public */
|
|
7653
|
+
declare interface SlugValidationContext extends ValidationContext {
|
|
7654
|
+
parent: SlugParent
|
|
7655
|
+
type: SlugSchemaType
|
|
7656
|
+
defaultIsUnique: SlugIsUniqueValidator
|
|
7657
|
+
}
|
|
7658
|
+
|
|
7659
|
+
/** @public */
|
|
7660
|
+
declare interface SlugValue {
|
|
7661
|
+
_type: 'slug'
|
|
7662
|
+
current?: string
|
|
7663
|
+
}
|
|
7664
|
+
|
|
7665
|
+
/** @beta */
|
|
7666
|
+
declare type SortOrdering = {
|
|
7667
|
+
title: string
|
|
7668
|
+
i18n?: I18nTextRecord<'title'>
|
|
7669
|
+
name: string
|
|
7670
|
+
by: SortOrderingItem[]
|
|
7671
|
+
}
|
|
7672
|
+
|
|
7673
|
+
/** @beta */
|
|
7674
|
+
declare interface SortOrderingItem {
|
|
7675
|
+
field: string
|
|
7676
|
+
direction: 'asc' | 'desc'
|
|
7677
|
+
}
|
|
7678
|
+
|
|
5617
7679
|
/**
|
|
5618
7680
|
* @public
|
|
5619
7681
|
*/
|
|
5620
7682
|
export declare function spanSelectionPointToBlockOffset({
|
|
5621
|
-
|
|
7683
|
+
context,
|
|
5622
7684
|
selectionPoint,
|
|
5623
7685
|
}: {
|
|
5624
|
-
|
|
7686
|
+
context: Pick<EditorContext, 'schema' | 'value'>
|
|
5625
7687
|
selectionPoint: EditorSelectionPoint
|
|
5626
7688
|
}): BlockOffset | undefined
|
|
5627
7689
|
|
|
@@ -5645,6 +7707,60 @@ export declare function splitTextBlock({
|
|
|
5645
7707
|
|
|
5646
7708
|
declare type StrictExtract<T, U extends T> = U
|
|
5647
7709
|
|
|
7710
|
+
/** @public */
|
|
7711
|
+
declare interface StringDefinition extends BaseSchemaDefinition {
|
|
7712
|
+
type: 'string'
|
|
7713
|
+
options?: StringOptions
|
|
7714
|
+
placeholder?: string
|
|
7715
|
+
validation?: ValidationBuilder<StringRule, string>
|
|
7716
|
+
initialValue?: InitialValueProperty<any, string>
|
|
7717
|
+
}
|
|
7718
|
+
|
|
7719
|
+
/** @public */
|
|
7720
|
+
declare interface StringOptions
|
|
7721
|
+
extends EnumListProps<string>,
|
|
7722
|
+
SearchConfiguration,
|
|
7723
|
+
BaseSchemaTypeOptions {}
|
|
7724
|
+
|
|
7725
|
+
/** @public */
|
|
7726
|
+
declare interface StringRule extends RuleDef<StringRule, string> {
|
|
7727
|
+
min: (minNumber: number | FieldReference) => StringRule
|
|
7728
|
+
max: (maxNumber: number | FieldReference) => StringRule
|
|
7729
|
+
length: (exactLength: number | FieldReference) => StringRule
|
|
7730
|
+
uppercase: () => StringRule
|
|
7731
|
+
lowercase: () => StringRule
|
|
7732
|
+
regex(
|
|
7733
|
+
pattern: RegExp,
|
|
7734
|
+
name: string,
|
|
7735
|
+
options: {
|
|
7736
|
+
name?: string
|
|
7737
|
+
invert?: boolean
|
|
7738
|
+
},
|
|
7739
|
+
): StringRule
|
|
7740
|
+
regex(
|
|
7741
|
+
pattern: RegExp,
|
|
7742
|
+
options: {
|
|
7743
|
+
name?: string
|
|
7744
|
+
invert?: boolean
|
|
7745
|
+
},
|
|
7746
|
+
): StringRule
|
|
7747
|
+
regex(pattern: RegExp, name: string): StringRule
|
|
7748
|
+
regex(pattern: RegExp): StringRule
|
|
7749
|
+
email(): StringRule
|
|
7750
|
+
}
|
|
7751
|
+
|
|
7752
|
+
/**
|
|
7753
|
+
* This is used for string, text, date and datetime.
|
|
7754
|
+
* This interface represent the compiled version at runtime, when accessed through Schema.
|
|
7755
|
+
*
|
|
7756
|
+
* @public
|
|
7757
|
+
*/
|
|
7758
|
+
declare interface StringSchemaType extends BaseSchemaType {
|
|
7759
|
+
jsonType: 'string'
|
|
7760
|
+
options?: StringOptions & TextOptions & DateOptions & DatetimeOptions
|
|
7761
|
+
initialValue?: InitialValueProperty<any, string>
|
|
7762
|
+
}
|
|
7763
|
+
|
|
5648
7764
|
/**
|
|
5649
7765
|
* @beta
|
|
5650
7766
|
*/
|
|
@@ -5794,9 +7910,199 @@ declare type TextBlockWithOptionalKey = Omit<PortableTextTextBlock, '_key'> & {
|
|
|
5794
7910
|
_key?: PortableTextTextBlock['_key']
|
|
5795
7911
|
}
|
|
5796
7912
|
|
|
7913
|
+
/** @public */
|
|
7914
|
+
declare interface TextDefinition extends BaseSchemaDefinition {
|
|
7915
|
+
type: 'text'
|
|
7916
|
+
rows?: number
|
|
7917
|
+
options?: TextOptions
|
|
7918
|
+
placeholder?: string
|
|
7919
|
+
validation?: ValidationBuilder<TextRule, string>
|
|
7920
|
+
initialValue?: InitialValueProperty<any, string>
|
|
7921
|
+
}
|
|
7922
|
+
|
|
7923
|
+
/** @public */
|
|
7924
|
+
declare interface TextOptions extends StringOptions {}
|
|
7925
|
+
|
|
7926
|
+
/** @public */
|
|
7927
|
+
declare interface TextRule extends StringRule {}
|
|
7928
|
+
|
|
7929
|
+
/** @public */
|
|
7930
|
+
declare interface TitledListValue<V = unknown> {
|
|
7931
|
+
_key?: string
|
|
7932
|
+
title: string
|
|
7933
|
+
value?: V
|
|
7934
|
+
}
|
|
7935
|
+
|
|
7936
|
+
/**
|
|
7937
|
+
* Represents a type definition that is an alias/extension of an existing type
|
|
7938
|
+
* in your schema. Creating a type alias will re-register that existing type
|
|
7939
|
+
* under a different name. You can also override the default type options with
|
|
7940
|
+
* a type alias definition.
|
|
7941
|
+
*
|
|
7942
|
+
* @public
|
|
7943
|
+
*/
|
|
7944
|
+
declare interface TypeAliasDefinition<
|
|
7945
|
+
TType extends string,
|
|
7946
|
+
TAlias extends IntrinsicTypeName | undefined,
|
|
7947
|
+
> extends BaseSchemaDefinition {
|
|
7948
|
+
type: TType
|
|
7949
|
+
options?: TAlias extends IntrinsicTypeName
|
|
7950
|
+
? IntrinsicDefinitions[TAlias]['options']
|
|
7951
|
+
: unknown
|
|
7952
|
+
validation?: SchemaValidationValue
|
|
7953
|
+
initialValue?: InitialValueProperty<any, any>
|
|
7954
|
+
preview?: PreviewConfig
|
|
7955
|
+
components?: {
|
|
7956
|
+
annotation?: ComponentType<any>
|
|
7957
|
+
block?: ComponentType<any>
|
|
7958
|
+
inlineBlock?: ComponentType<any>
|
|
7959
|
+
diff?: ComponentType<any>
|
|
7960
|
+
field?: ComponentType<any>
|
|
7961
|
+
input?: ComponentType<any>
|
|
7962
|
+
item?: ComponentType<any>
|
|
7963
|
+
preview?: ComponentType<any>
|
|
7964
|
+
}
|
|
7965
|
+
}
|
|
7966
|
+
|
|
7967
|
+
/**
|
|
7968
|
+
* Represents a reference to another type registered top-level in your schema.
|
|
7969
|
+
*
|
|
7970
|
+
* @public
|
|
7971
|
+
*/
|
|
7972
|
+
declare interface TypeReference {
|
|
7973
|
+
type: string
|
|
7974
|
+
name?: string
|
|
7975
|
+
icon?: ComponentType | ReactNode
|
|
7976
|
+
options?: {
|
|
7977
|
+
[key: string]: unknown
|
|
7978
|
+
}
|
|
7979
|
+
}
|
|
7980
|
+
|
|
5797
7981
|
declare type UnsetEvent = {
|
|
5798
7982
|
type: 'unset'
|
|
5799
7983
|
previousValue: Array<PortableTextBlock>
|
|
5800
7984
|
}
|
|
5801
7985
|
|
|
7986
|
+
/** @public */
|
|
7987
|
+
declare interface UriValidationOptions {
|
|
7988
|
+
scheme?: (string | RegExp) | Array<string | RegExp>
|
|
7989
|
+
allowRelative?: boolean
|
|
7990
|
+
relativeOnly?: boolean
|
|
7991
|
+
allowCredentials?: boolean
|
|
7992
|
+
}
|
|
7993
|
+
|
|
7994
|
+
/** @public */
|
|
7995
|
+
declare interface UrlDefinition extends BaseSchemaDefinition {
|
|
7996
|
+
type: 'url'
|
|
7997
|
+
options?: UrlOptions
|
|
7998
|
+
placeholder?: string
|
|
7999
|
+
validation?: ValidationBuilder<UrlRule, string>
|
|
8000
|
+
initialValue?: InitialValueProperty<any, string>
|
|
8001
|
+
}
|
|
8002
|
+
|
|
8003
|
+
/** @public */
|
|
8004
|
+
declare interface UrlOptions extends BaseSchemaTypeOptions {}
|
|
8005
|
+
|
|
8006
|
+
/** @public */
|
|
8007
|
+
declare interface UrlRule extends RuleDef<UrlRule, string> {
|
|
8008
|
+
uri(options: UriValidationOptions): UrlRule
|
|
8009
|
+
}
|
|
8010
|
+
|
|
8011
|
+
/** @public */
|
|
8012
|
+
declare type ValidationBuilder<
|
|
8013
|
+
T extends RuleDef<T, FieldValue>,
|
|
8014
|
+
FieldValue = unknown,
|
|
8015
|
+
> = (rule: T) => RuleBuilder<T, FieldValue>
|
|
8016
|
+
|
|
8017
|
+
/**
|
|
8018
|
+
* A context object passed around during validation. This includes the
|
|
8019
|
+
* `Rule.custom` context.
|
|
8020
|
+
*
|
|
8021
|
+
* e.g.
|
|
8022
|
+
*
|
|
8023
|
+
* ```js
|
|
8024
|
+
* Rule.custom((_, validationContext) => {
|
|
8025
|
+
* // ...
|
|
8026
|
+
* })`
|
|
8027
|
+
* ```
|
|
8028
|
+
*
|
|
8029
|
+
* @public
|
|
8030
|
+
*/
|
|
8031
|
+
declare interface ValidationContext {
|
|
8032
|
+
getClient: (options: {apiVersion: string}) => SanityClient
|
|
8033
|
+
schema: Schema
|
|
8034
|
+
parent?: unknown
|
|
8035
|
+
type?: SchemaType
|
|
8036
|
+
document?: SanityDocument
|
|
8037
|
+
path?: Path
|
|
8038
|
+
getDocumentExists?: (options: {id: string}) => Promise<boolean>
|
|
8039
|
+
environment: 'cli' | 'studio'
|
|
8040
|
+
}
|
|
8041
|
+
|
|
8042
|
+
/**
|
|
8043
|
+
* The shape that can be returned from a custom validator to be converted into
|
|
8044
|
+
* a validation marker by the validation logic. Inside of a custom validator,
|
|
8045
|
+
* you can return an array of these in order to specify multiple paths within
|
|
8046
|
+
* an object or array.
|
|
8047
|
+
*
|
|
8048
|
+
* @public
|
|
8049
|
+
*/
|
|
8050
|
+
declare interface ValidationError {
|
|
8051
|
+
/**
|
|
8052
|
+
* The message describing why the value is not valid. This message will be
|
|
8053
|
+
* included in the validation markers after validation has finished running.
|
|
8054
|
+
*/
|
|
8055
|
+
message: string
|
|
8056
|
+
/**
|
|
8057
|
+
* If writing a custom validator, you can return validation messages to
|
|
8058
|
+
* specific path inside of the current value (object or array) by populating
|
|
8059
|
+
* this `path` prop.
|
|
8060
|
+
*
|
|
8061
|
+
* NOTE: This path is relative to the current value and _not_ relative to
|
|
8062
|
+
* the document.
|
|
8063
|
+
*/
|
|
8064
|
+
path?: Path
|
|
8065
|
+
/**
|
|
8066
|
+
* Same as `path` but allows more than one value. If provided, the same
|
|
8067
|
+
* message will create two markers from each path with the same message
|
|
8068
|
+
* provided.
|
|
8069
|
+
*
|
|
8070
|
+
* @deprecated prefer `path`
|
|
8071
|
+
*/
|
|
8072
|
+
paths?: Path[]
|
|
8073
|
+
/**
|
|
8074
|
+
* @deprecated Unused. Was used to store the results from `.either()` /`.all()`
|
|
8075
|
+
*/
|
|
8076
|
+
children?: ValidationMarker[]
|
|
8077
|
+
/**
|
|
8078
|
+
* @deprecated Unused. Was used to signal if this error came from an `.either()`/`.all()`.
|
|
8079
|
+
*/
|
|
8080
|
+
operation?: 'AND' | 'OR'
|
|
8081
|
+
/**
|
|
8082
|
+
* @deprecated Unused. Was relevant when validation error was used as a class.
|
|
8083
|
+
*/
|
|
8084
|
+
cloneWithMessage?(message: string): ValidationError
|
|
8085
|
+
}
|
|
8086
|
+
|
|
8087
|
+
/** @public */
|
|
8088
|
+
declare interface ValidationMarker {
|
|
8089
|
+
level: 'error' | 'warning' | 'info'
|
|
8090
|
+
/**
|
|
8091
|
+
* The validation message for this marker. E.g. "Must be greater than 0"
|
|
8092
|
+
*/
|
|
8093
|
+
message: string
|
|
8094
|
+
/**
|
|
8095
|
+
* @deprecated use `message` instead
|
|
8096
|
+
*/
|
|
8097
|
+
item?: ValidationError
|
|
8098
|
+
/**
|
|
8099
|
+
* The sanity path _relative to the root of the current document_ to this
|
|
8100
|
+
* marker.
|
|
8101
|
+
*
|
|
8102
|
+
* NOTE: Sanity paths may contain keyed segments (i.e. `{_key: string}`) that
|
|
8103
|
+
* are not compatible with deep getters like lodash/get
|
|
8104
|
+
*/
|
|
8105
|
+
path: Path
|
|
8106
|
+
}
|
|
8107
|
+
|
|
5802
8108
|
export {}
|