@portabletext/editor 1.15.1 → 1.15.2

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.
Files changed (60) hide show
  1. package/lib/_chunks-cjs/behavior.core.cjs +494 -0
  2. package/lib/_chunks-cjs/behavior.core.cjs.map +1 -0
  3. package/lib/_chunks-cjs/selector.get-text-before.cjs +0 -231
  4. package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
  5. package/lib/_chunks-cjs/selectors.cjs +234 -0
  6. package/lib/_chunks-cjs/selectors.cjs.map +1 -0
  7. package/lib/_chunks-es/behavior.core.js +496 -0
  8. package/lib/_chunks-es/behavior.core.js.map +1 -0
  9. package/lib/_chunks-es/selector.get-text-before.js +2 -233
  10. package/lib/_chunks-es/selector.get-text-before.js.map +1 -1
  11. package/lib/_chunks-es/selectors.js +235 -0
  12. package/lib/_chunks-es/selectors.js.map +1 -0
  13. package/lib/behaviors/index.cjs +460 -0
  14. package/lib/behaviors/index.cjs.map +1 -0
  15. package/lib/behaviors/index.d.cts +875 -0
  16. package/lib/behaviors/index.d.ts +875 -0
  17. package/lib/behaviors/index.js +464 -0
  18. package/lib/behaviors/index.js.map +1 -0
  19. package/lib/index.cjs +38 -1008
  20. package/lib/index.cjs.map +1 -1
  21. package/lib/index.d.cts +17 -536
  22. package/lib/index.d.ts +17 -536
  23. package/lib/index.js +31 -1000
  24. package/lib/index.js.map +1 -1
  25. package/lib/selectors/index.cjs +16 -16
  26. package/lib/selectors/index.cjs.map +1 -1
  27. package/lib/selectors/index.js +3 -2
  28. package/lib/selectors/index.js.map +1 -1
  29. package/package.json +10 -4
  30. package/src/{editor/behavior → behavior-actions}/behavior.action-utils.insert-block.ts +2 -2
  31. package/src/{editor/behavior → behavior-actions}/behavior.action.insert-block-object.ts +1 -1
  32. package/src/{editor/behavior → behavior-actions}/behavior.action.insert-break.ts +1 -1
  33. package/src/{editor/behavior → behavior-actions}/behavior.action.insert-inline-object.ts +1 -1
  34. package/src/{editor/behavior → behavior-actions}/behavior.action.list-item.ts +2 -2
  35. package/src/{editor/behavior → behavior-actions}/behavior.action.text-block.set.ts +1 -1
  36. package/src/{editor/behavior → behavior-actions}/behavior.action.text-block.unset.ts +1 -1
  37. package/src/{editor/behavior → behavior-actions}/behavior.actions.ts +14 -14
  38. package/src/{editor/behavior → behavior-actions}/behavior.guards.ts +1 -1
  39. package/src/{editor/behavior → behaviors}/behavior.code-editor.ts +4 -4
  40. package/src/{editor/behavior → behaviors}/behavior.core.block-objects.ts +5 -5
  41. package/src/{editor/behavior → behaviors}/behavior.core.decorators.ts +6 -16
  42. package/src/{editor/behavior → behaviors}/behavior.core.lists.ts +15 -15
  43. package/src/{editor/behavior → behaviors}/behavior.links.ts +4 -4
  44. package/src/{editor/behavior → behaviors}/behavior.markdown.ts +15 -25
  45. package/src/{editor/behavior → behaviors}/behavior.types.ts +32 -39
  46. package/src/behaviors/index.ts +28 -0
  47. package/src/editor/create-editor.ts +26 -46
  48. package/src/editor/editor-machine.ts +14 -12
  49. package/src/editor/plugins/createWithEditableAPI.ts +3 -3
  50. package/src/editor/plugins/createWithPortableTextMarkModel.ts +1 -1
  51. package/src/editor/utils/utils.block-offset.ts +1 -1
  52. package/src/index.ts +11 -26
  53. package/src/selectors/selector.get-active-list-item.ts +1 -1
  54. package/src/selectors/selectors.ts +1 -1
  55. package/src/type-utils.ts +17 -0
  56. package/src/utils/__tests__/operationToPatches.test.ts +1 -1
  57. package/src/utils/__tests__/patchToOperations.test.ts +1 -1
  58. /package/src/{editor/behavior → behavior-actions}/behavior.action.insert-span.ts +0 -0
  59. /package/src/{editor/behavior → behavior-actions}/behavior.action.style.ts +0 -0
  60. /package/src/{editor/behavior → behaviors}/behavior.core.ts +0 -0
@@ -0,0 +1,875 @@
1
+ import type {
2
+ ArraySchemaType,
3
+ BlockDecoratorDefinition,
4
+ BlockListDefinition,
5
+ BlockStyleDefinition,
6
+ KeyedSegment,
7
+ ObjectSchemaType,
8
+ Path,
9
+ PortableTextBlock,
10
+ PortableTextTextBlock,
11
+ } from '@sanity/types'
12
+ import type {TextUnit} from 'slate'
13
+ import type {TextInsertTextOptions} from 'slate/dist/interfaces/transforms/text'
14
+
15
+ /**
16
+ * @alpha
17
+ */
18
+ export declare type Behavior<
19
+ TBehaviorEventType extends BehaviorEvent['type'] = BehaviorEvent['type'],
20
+ TGuardResponse = true,
21
+ > = {
22
+ /**
23
+ * The internal editor event that triggers this behavior.
24
+ */
25
+ on: TBehaviorEventType
26
+ /**
27
+ * Predicate function that determines if the behavior should be executed.
28
+ * Returning a non-nullable value from the guard will pass the value to the
29
+ * actions and execute them.
30
+ */
31
+ guard?: BehaviorGuard<
32
+ PickFromUnion<BehaviorEvent, 'type', TBehaviorEventType>,
33
+ TGuardResponse
34
+ >
35
+ /**
36
+ * Array of behavior action sets.
37
+ */
38
+ actions: Array<BehaviorActionIntendSet<TBehaviorEventType, TGuardResponse>>
39
+ }
40
+
41
+ /**
42
+ * @alpha
43
+ */
44
+ export declare type BehaviorActionIntend =
45
+ | SyntheticBehaviorEvent
46
+ | {
47
+ type: 'insert.span'
48
+ text: string
49
+ annotations?: Array<{
50
+ name: string
51
+ value: {
52
+ [prop: string]: unknown
53
+ }
54
+ }>
55
+ decorators?: Array<string>
56
+ }
57
+ | {
58
+ type: 'insert.text block'
59
+ placement: 'auto' | 'after' | 'before'
60
+ textBlock?: {
61
+ children?: PortableTextTextBlock['children']
62
+ }
63
+ }
64
+ | {
65
+ type: 'list item.add'
66
+ listItem: string
67
+ }
68
+ | {
69
+ type: 'list item.remove'
70
+ listItem: string
71
+ }
72
+ | {
73
+ type: 'move.block'
74
+ at: [KeyedSegment]
75
+ to: [KeyedSegment]
76
+ }
77
+ | {
78
+ type: 'move.block down'
79
+ at: [KeyedSegment]
80
+ }
81
+ | {
82
+ type: 'move.block up'
83
+ at: [KeyedSegment]
84
+ }
85
+ | {
86
+ type: 'noop'
87
+ }
88
+ | {
89
+ type: 'delete.block'
90
+ blockPath: [KeyedSegment]
91
+ }
92
+ | {
93
+ type: 'delete.text'
94
+ anchor: BlockOffset
95
+ focus: BlockOffset
96
+ }
97
+ | {
98
+ type: 'effect'
99
+ effect: () => void
100
+ }
101
+ | {
102
+ type: 'select'
103
+ selection: EditorSelection
104
+ }
105
+ | {
106
+ type: 'select previous block'
107
+ }
108
+ | {
109
+ type: 'select next block'
110
+ }
111
+ | {
112
+ type: 'reselect'
113
+ }
114
+ | {
115
+ type: 'style.add'
116
+ style: string
117
+ }
118
+ | {
119
+ type: 'style.remove'
120
+ style: string
121
+ }
122
+ | {
123
+ type: 'text block.set'
124
+ at: [KeyedSegment]
125
+ level?: number
126
+ listItem?: string
127
+ style?: string
128
+ }
129
+ | {
130
+ type: 'text block.unset'
131
+ at: [KeyedSegment]
132
+ props: Array<'level' | 'listItem' | 'style'>
133
+ }
134
+
135
+ /**
136
+ * @alpha
137
+ */
138
+ export declare type BehaviorActionIntendSet<
139
+ TBehaviorEventType extends BehaviorEvent['type'] = BehaviorEvent['type'],
140
+ TGuardResponse = true,
141
+ > = (
142
+ {
143
+ context,
144
+ event,
145
+ }: {
146
+ context: EditorContext
147
+ event: PickFromUnion<BehaviorEvent, 'type', TBehaviorEventType>
148
+ },
149
+ guardResponse: TGuardResponse,
150
+ ) => Array<BehaviorActionIntend>
151
+
152
+ /**
153
+ * @alpha
154
+ */
155
+ export declare type BehaviorEvent = SyntheticBehaviorEvent | NativeBehaviorEvent
156
+
157
+ /**
158
+ * @alpha
159
+ */
160
+ export declare type BehaviorGuard<
161
+ TBehaviorEvent extends BehaviorEvent,
162
+ TGuardResponse,
163
+ > = ({
164
+ context,
165
+ event,
166
+ }: {
167
+ context: EditorContext
168
+ event: TBehaviorEvent
169
+ }) => TGuardResponse | false
170
+
171
+ /**
172
+ * @alpha
173
+ */
174
+ export declare type BlockOffset = {
175
+ path: [KeyedSegment]
176
+ offset: number
177
+ }
178
+
179
+ /**
180
+ * @alpha
181
+ */
182
+ export declare type CodeEditorBehaviorsConfig = {
183
+ moveBlockUpShortcut: string
184
+ moveBlockDownShortcut: string
185
+ }
186
+
187
+ /**
188
+ * @alpha
189
+ */
190
+ export declare const coreBehavior: {
191
+ softReturn: Behavior<
192
+ | 'annotation.add'
193
+ | 'annotation.remove'
194
+ | 'annotation.toggle'
195
+ | 'blur'
196
+ | 'decorator.add'
197
+ | 'decorator.remove'
198
+ | 'decorator.toggle'
199
+ | 'delete.backward'
200
+ | 'delete.forward'
201
+ | 'focus'
202
+ | 'insert.block object'
203
+ | 'insert.inline object'
204
+ | 'insert.soft break'
205
+ | 'insert.break'
206
+ | 'insert.text'
207
+ | 'list item.toggle'
208
+ | 'style.toggle'
209
+ | 'copy'
210
+ | 'key.down'
211
+ | 'key.up'
212
+ | 'paste',
213
+ true
214
+ >
215
+ decorators: {
216
+ decoratorAdd: Behavior<
217
+ | 'annotation.add'
218
+ | 'annotation.remove'
219
+ | 'annotation.toggle'
220
+ | 'blur'
221
+ | 'decorator.add'
222
+ | 'decorator.remove'
223
+ | 'decorator.toggle'
224
+ | 'delete.backward'
225
+ | 'delete.forward'
226
+ | 'focus'
227
+ | 'insert.block object'
228
+ | 'insert.inline object'
229
+ | 'insert.soft break'
230
+ | 'insert.break'
231
+ | 'insert.text'
232
+ | 'list item.toggle'
233
+ | 'style.toggle'
234
+ | 'copy'
235
+ | 'key.down'
236
+ | 'key.up'
237
+ | 'paste',
238
+ true
239
+ >
240
+ decoratorRemove: Behavior<
241
+ | 'annotation.add'
242
+ | 'annotation.remove'
243
+ | 'annotation.toggle'
244
+ | 'blur'
245
+ | 'decorator.add'
246
+ | 'decorator.remove'
247
+ | 'decorator.toggle'
248
+ | 'delete.backward'
249
+ | 'delete.forward'
250
+ | 'focus'
251
+ | 'insert.block object'
252
+ | 'insert.inline object'
253
+ | 'insert.soft break'
254
+ | 'insert.break'
255
+ | 'insert.text'
256
+ | 'list item.toggle'
257
+ | 'style.toggle'
258
+ | 'copy'
259
+ | 'key.down'
260
+ | 'key.up'
261
+ | 'paste',
262
+ true
263
+ >
264
+ decoratorToggle: Behavior<
265
+ | 'annotation.add'
266
+ | 'annotation.remove'
267
+ | 'annotation.toggle'
268
+ | 'blur'
269
+ | 'decorator.add'
270
+ | 'decorator.remove'
271
+ | 'decorator.toggle'
272
+ | 'delete.backward'
273
+ | 'delete.forward'
274
+ | 'focus'
275
+ | 'insert.block object'
276
+ | 'insert.inline object'
277
+ | 'insert.soft break'
278
+ | 'insert.break'
279
+ | 'insert.text'
280
+ | 'list item.toggle'
281
+ | 'style.toggle'
282
+ | 'copy'
283
+ | 'key.down'
284
+ | 'key.up'
285
+ | 'paste',
286
+ true
287
+ >
288
+ }
289
+ blockObjects: {
290
+ arrowDownOnLonelyBlockObject: Behavior<
291
+ | 'annotation.add'
292
+ | 'annotation.remove'
293
+ | 'annotation.toggle'
294
+ | 'blur'
295
+ | 'decorator.add'
296
+ | 'decorator.remove'
297
+ | 'decorator.toggle'
298
+ | 'delete.backward'
299
+ | 'delete.forward'
300
+ | 'focus'
301
+ | 'insert.block object'
302
+ | 'insert.inline object'
303
+ | 'insert.soft break'
304
+ | 'insert.break'
305
+ | 'insert.text'
306
+ | 'list item.toggle'
307
+ | 'style.toggle'
308
+ | 'copy'
309
+ | 'key.down'
310
+ | 'key.up'
311
+ | 'paste',
312
+ true
313
+ >
314
+ arrowUpOnLonelyBlockObject: Behavior<
315
+ | 'annotation.add'
316
+ | 'annotation.remove'
317
+ | 'annotation.toggle'
318
+ | 'blur'
319
+ | 'decorator.add'
320
+ | 'decorator.remove'
321
+ | 'decorator.toggle'
322
+ | 'delete.backward'
323
+ | 'delete.forward'
324
+ | 'focus'
325
+ | 'insert.block object'
326
+ | 'insert.inline object'
327
+ | 'insert.soft break'
328
+ | 'insert.break'
329
+ | 'insert.text'
330
+ | 'list item.toggle'
331
+ | 'style.toggle'
332
+ | 'copy'
333
+ | 'key.down'
334
+ | 'key.up'
335
+ | 'paste',
336
+ true
337
+ >
338
+ breakingBlockObject: Behavior<
339
+ | 'annotation.add'
340
+ | 'annotation.remove'
341
+ | 'annotation.toggle'
342
+ | 'blur'
343
+ | 'decorator.add'
344
+ | 'decorator.remove'
345
+ | 'decorator.toggle'
346
+ | 'delete.backward'
347
+ | 'delete.forward'
348
+ | 'focus'
349
+ | 'insert.block object'
350
+ | 'insert.inline object'
351
+ | 'insert.soft break'
352
+ | 'insert.break'
353
+ | 'insert.text'
354
+ | 'list item.toggle'
355
+ | 'style.toggle'
356
+ | 'copy'
357
+ | 'key.down'
358
+ | 'key.up'
359
+ | 'paste',
360
+ true
361
+ >
362
+ deletingEmptyTextBlockAfterBlockObject: Behavior<
363
+ | 'annotation.add'
364
+ | 'annotation.remove'
365
+ | 'annotation.toggle'
366
+ | 'blur'
367
+ | 'decorator.add'
368
+ | 'decorator.remove'
369
+ | 'decorator.toggle'
370
+ | 'delete.backward'
371
+ | 'delete.forward'
372
+ | 'focus'
373
+ | 'insert.block object'
374
+ | 'insert.inline object'
375
+ | 'insert.soft break'
376
+ | 'insert.break'
377
+ | 'insert.text'
378
+ | 'list item.toggle'
379
+ | 'style.toggle'
380
+ | 'copy'
381
+ | 'key.down'
382
+ | 'key.up'
383
+ | 'paste',
384
+ true
385
+ >
386
+ deletingEmptyTextBlockBeforeBlockObject: Behavior<
387
+ | 'annotation.add'
388
+ | 'annotation.remove'
389
+ | 'annotation.toggle'
390
+ | 'blur'
391
+ | 'decorator.add'
392
+ | 'decorator.remove'
393
+ | 'decorator.toggle'
394
+ | 'delete.backward'
395
+ | 'delete.forward'
396
+ | 'focus'
397
+ | 'insert.block object'
398
+ | 'insert.inline object'
399
+ | 'insert.soft break'
400
+ | 'insert.break'
401
+ | 'insert.text'
402
+ | 'list item.toggle'
403
+ | 'style.toggle'
404
+ | 'copy'
405
+ | 'key.down'
406
+ | 'key.up'
407
+ | 'paste',
408
+ true
409
+ >
410
+ }
411
+ lists: {
412
+ clearListOnBackspace: Behavior<
413
+ | 'annotation.add'
414
+ | 'annotation.remove'
415
+ | 'annotation.toggle'
416
+ | 'blur'
417
+ | 'decorator.add'
418
+ | 'decorator.remove'
419
+ | 'decorator.toggle'
420
+ | 'delete.backward'
421
+ | 'delete.forward'
422
+ | 'focus'
423
+ | 'insert.block object'
424
+ | 'insert.inline object'
425
+ | 'insert.soft break'
426
+ | 'insert.break'
427
+ | 'insert.text'
428
+ | 'list item.toggle'
429
+ | 'style.toggle'
430
+ | 'copy'
431
+ | 'key.down'
432
+ | 'key.up'
433
+ | 'paste',
434
+ true
435
+ >
436
+ unindentListOnBackspace: Behavior<
437
+ | 'annotation.add'
438
+ | 'annotation.remove'
439
+ | 'annotation.toggle'
440
+ | 'blur'
441
+ | 'decorator.add'
442
+ | 'decorator.remove'
443
+ | 'decorator.toggle'
444
+ | 'delete.backward'
445
+ | 'delete.forward'
446
+ | 'focus'
447
+ | 'insert.block object'
448
+ | 'insert.inline object'
449
+ | 'insert.soft break'
450
+ | 'insert.break'
451
+ | 'insert.text'
452
+ | 'list item.toggle'
453
+ | 'style.toggle'
454
+ | 'copy'
455
+ | 'key.down'
456
+ | 'key.up'
457
+ | 'paste',
458
+ true
459
+ >
460
+ clearListOnEnter: Behavior<
461
+ | 'annotation.add'
462
+ | 'annotation.remove'
463
+ | 'annotation.toggle'
464
+ | 'blur'
465
+ | 'decorator.add'
466
+ | 'decorator.remove'
467
+ | 'decorator.toggle'
468
+ | 'delete.backward'
469
+ | 'delete.forward'
470
+ | 'focus'
471
+ | 'insert.block object'
472
+ | 'insert.inline object'
473
+ | 'insert.soft break'
474
+ | 'insert.break'
475
+ | 'insert.text'
476
+ | 'list item.toggle'
477
+ | 'style.toggle'
478
+ | 'copy'
479
+ | 'key.down'
480
+ | 'key.up'
481
+ | 'paste',
482
+ true
483
+ >
484
+ indentListOnTab: Behavior<
485
+ | 'annotation.add'
486
+ | 'annotation.remove'
487
+ | 'annotation.toggle'
488
+ | 'blur'
489
+ | 'decorator.add'
490
+ | 'decorator.remove'
491
+ | 'decorator.toggle'
492
+ | 'delete.backward'
493
+ | 'delete.forward'
494
+ | 'focus'
495
+ | 'insert.block object'
496
+ | 'insert.inline object'
497
+ | 'insert.soft break'
498
+ | 'insert.break'
499
+ | 'insert.text'
500
+ | 'list item.toggle'
501
+ | 'style.toggle'
502
+ | 'copy'
503
+ | 'key.down'
504
+ | 'key.up'
505
+ | 'paste',
506
+ true
507
+ >
508
+ unindentListOnShiftTab: Behavior<
509
+ | 'annotation.add'
510
+ | 'annotation.remove'
511
+ | 'annotation.toggle'
512
+ | 'blur'
513
+ | 'decorator.add'
514
+ | 'decorator.remove'
515
+ | 'decorator.toggle'
516
+ | 'delete.backward'
517
+ | 'delete.forward'
518
+ | 'focus'
519
+ | 'insert.block object'
520
+ | 'insert.inline object'
521
+ | 'insert.soft break'
522
+ | 'insert.break'
523
+ | 'insert.text'
524
+ | 'list item.toggle'
525
+ | 'style.toggle'
526
+ | 'copy'
527
+ | 'key.down'
528
+ | 'key.up'
529
+ | 'paste',
530
+ true
531
+ >
532
+ }
533
+ }
534
+
535
+ /**
536
+ * @alpha
537
+ */
538
+ export declare const coreBehaviors: Behavior<
539
+ | 'annotation.add'
540
+ | 'annotation.remove'
541
+ | 'annotation.toggle'
542
+ | 'blur'
543
+ | 'decorator.add'
544
+ | 'decorator.remove'
545
+ | 'decorator.toggle'
546
+ | 'delete.backward'
547
+ | 'delete.forward'
548
+ | 'focus'
549
+ | 'insert.block object'
550
+ | 'insert.inline object'
551
+ | 'insert.soft break'
552
+ | 'insert.break'
553
+ | 'insert.text'
554
+ | 'list item.toggle'
555
+ | 'style.toggle'
556
+ | 'copy'
557
+ | 'key.down'
558
+ | 'key.up'
559
+ | 'paste',
560
+ true
561
+ >[]
562
+
563
+ /**
564
+ * @alpha
565
+ */
566
+ export declare function createCodeEditorBehaviors(
567
+ config: CodeEditorBehaviorsConfig,
568
+ ): Behavior<
569
+ | 'annotation.add'
570
+ | 'annotation.remove'
571
+ | 'annotation.toggle'
572
+ | 'blur'
573
+ | 'decorator.add'
574
+ | 'decorator.remove'
575
+ | 'decorator.toggle'
576
+ | 'delete.backward'
577
+ | 'delete.forward'
578
+ | 'focus'
579
+ | 'insert.block object'
580
+ | 'insert.inline object'
581
+ | 'insert.soft break'
582
+ | 'insert.break'
583
+ | 'insert.text'
584
+ | 'list item.toggle'
585
+ | 'style.toggle'
586
+ | 'copy'
587
+ | 'key.down'
588
+ | 'key.up'
589
+ | 'paste',
590
+ true
591
+ >[]
592
+
593
+ /**
594
+ * @alpha
595
+ */
596
+ export declare function createLinkBehaviors(
597
+ config: LinkBehaviorsConfig,
598
+ ): Behavior<
599
+ | 'annotation.add'
600
+ | 'annotation.remove'
601
+ | 'annotation.toggle'
602
+ | 'blur'
603
+ | 'decorator.add'
604
+ | 'decorator.remove'
605
+ | 'decorator.toggle'
606
+ | 'delete.backward'
607
+ | 'delete.forward'
608
+ | 'focus'
609
+ | 'insert.block object'
610
+ | 'insert.inline object'
611
+ | 'insert.soft break'
612
+ | 'insert.break'
613
+ | 'insert.text'
614
+ | 'list item.toggle'
615
+ | 'style.toggle'
616
+ | 'copy'
617
+ | 'key.down'
618
+ | 'key.up'
619
+ | 'paste',
620
+ true
621
+ >[]
622
+
623
+ /**
624
+ * @alpha
625
+ */
626
+ export declare function createMarkdownBehaviors(
627
+ config: MarkdownBehaviorsConfig,
628
+ ): Behavior<
629
+ | 'annotation.add'
630
+ | 'annotation.remove'
631
+ | 'annotation.toggle'
632
+ | 'blur'
633
+ | 'decorator.add'
634
+ | 'decorator.remove'
635
+ | 'decorator.toggle'
636
+ | 'delete.backward'
637
+ | 'delete.forward'
638
+ | 'focus'
639
+ | 'insert.block object'
640
+ | 'insert.inline object'
641
+ | 'insert.soft break'
642
+ | 'insert.break'
643
+ | 'insert.text'
644
+ | 'list item.toggle'
645
+ | 'style.toggle'
646
+ | 'copy'
647
+ | 'key.down'
648
+ | 'key.up'
649
+ | 'paste',
650
+ true
651
+ >[]
652
+
653
+ /**
654
+ * @alpha
655
+ */
656
+ export declare function defineBehavior<
657
+ TAnyBehaviorEventType extends BehaviorEvent['type'],
658
+ TGuardResponse = true,
659
+ >(behavior: Behavior<TAnyBehaviorEventType, TGuardResponse>): Behavior
660
+
661
+ /**
662
+ * @alpha
663
+ */
664
+ export declare type EditorContext = {
665
+ keyGenerator: () => string
666
+ schema: PortableTextMemberSchemaTypes
667
+ selection: NonNullable<EditorSelection>
668
+ value: Array<PortableTextBlock>
669
+ }
670
+
671
+ /** @beta */
672
+ export declare type EditorSelection = {
673
+ anchor: EditorSelectionPoint
674
+ focus: EditorSelectionPoint
675
+ backward?: boolean
676
+ } | null
677
+
678
+ /** @beta */
679
+ export declare type EditorSelectionPoint = {
680
+ path: Path
681
+ offset: number
682
+ }
683
+
684
+ /**
685
+ * @alpha
686
+ */
687
+ export declare type LinkBehaviorsConfig = {
688
+ linkAnnotation?: (context: {
689
+ schema: PortableTextMemberSchemaTypes
690
+ url: string
691
+ }) =>
692
+ | {
693
+ name: string
694
+ value: {
695
+ [prop: string]: unknown
696
+ }
697
+ }
698
+ | undefined
699
+ }
700
+
701
+ /**
702
+ * @alpha
703
+ */
704
+ export declare type MarkdownBehaviorsConfig = {
705
+ horizontalRuleObject?: (context: {schema: PortableTextMemberSchemaTypes}) =>
706
+ | {
707
+ name: string
708
+ value?: {
709
+ [prop: string]: unknown
710
+ }
711
+ }
712
+ | undefined
713
+ defaultStyle?: (context: {
714
+ schema: PortableTextMemberSchemaTypes
715
+ }) => string | undefined
716
+ headingStyle?: (context: {
717
+ schema: PortableTextMemberSchemaTypes
718
+ level: number
719
+ }) => string | undefined
720
+ blockquoteStyle?: (context: {
721
+ schema: PortableTextMemberSchemaTypes
722
+ }) => string | undefined
723
+ unorderedListStyle?: (context: {
724
+ schema: PortableTextMemberSchemaTypes
725
+ }) => string | undefined
726
+ orderedListStyle?: (context: {
727
+ schema: PortableTextMemberSchemaTypes
728
+ }) => string | undefined
729
+ }
730
+
731
+ /**
732
+ * @alpha
733
+ */
734
+ export declare type NativeBehaviorEvent =
735
+ | {
736
+ type: 'copy'
737
+ data: DataTransfer
738
+ }
739
+ | {
740
+ type: 'key.down'
741
+ keyboardEvent: Pick<
742
+ KeyboardEvent,
743
+ 'key' | 'code' | 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'
744
+ >
745
+ }
746
+ | {
747
+ type: 'key.up'
748
+ keyboardEvent: Pick<
749
+ KeyboardEvent,
750
+ 'key' | 'code' | 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'
751
+ >
752
+ }
753
+ | {
754
+ type: 'paste'
755
+ data: DataTransfer
756
+ }
757
+
758
+ /**
759
+ * @alpha
760
+ */
761
+ export declare type PickFromUnion<
762
+ TUnion,
763
+ TTagKey extends keyof TUnion,
764
+ TPickedTags extends TUnion[TTagKey],
765
+ > = TUnion extends Record<TTagKey, TPickedTags> ? TUnion : never
766
+
767
+ /** @internal */
768
+ export declare type PortableTextMemberSchemaTypes = {
769
+ annotations: (ObjectSchemaType & {
770
+ i18nTitleKey?: string
771
+ })[]
772
+ block: ObjectSchemaType
773
+ blockObjects: ObjectSchemaType[]
774
+ decorators: BlockDecoratorDefinition[]
775
+ inlineObjects: ObjectSchemaType[]
776
+ portableText: ArraySchemaType<PortableTextBlock>
777
+ span: ObjectSchemaType
778
+ styles: BlockStyleDefinition[]
779
+ lists: BlockListDefinition[]
780
+ }
781
+
782
+ /**
783
+ * @alpha
784
+ */
785
+ export declare type SyntheticBehaviorEvent =
786
+ | {
787
+ type: 'annotation.add'
788
+ annotation: {
789
+ name: string
790
+ value: {
791
+ [prop: string]: unknown
792
+ }
793
+ }
794
+ }
795
+ | {
796
+ type: 'annotation.remove'
797
+ annotation: {
798
+ name: string
799
+ }
800
+ }
801
+ | {
802
+ type: 'annotation.toggle'
803
+ annotation: {
804
+ name: string
805
+ value: {
806
+ [prop: string]: unknown
807
+ }
808
+ }
809
+ }
810
+ | {
811
+ type: 'blur'
812
+ }
813
+ | {
814
+ type: 'decorator.add'
815
+ decorator: string
816
+ }
817
+ | {
818
+ type: 'decorator.remove'
819
+ decorator: string
820
+ }
821
+ | {
822
+ type: 'decorator.toggle'
823
+ decorator: string
824
+ }
825
+ | {
826
+ type: 'delete.backward'
827
+ unit: TextUnit
828
+ }
829
+ | {
830
+ type: 'delete.forward'
831
+ unit: TextUnit
832
+ }
833
+ | {
834
+ type: 'focus'
835
+ }
836
+ | {
837
+ type: 'insert.block object'
838
+ placement: 'auto' | 'after' | 'before'
839
+ blockObject: {
840
+ name: string
841
+ value?: {
842
+ [prop: string]: unknown
843
+ }
844
+ }
845
+ }
846
+ | {
847
+ type: 'insert.inline object'
848
+ inlineObject: {
849
+ name: string
850
+ value?: {
851
+ [prop: string]: unknown
852
+ }
853
+ }
854
+ }
855
+ | {
856
+ type: 'insert.soft break'
857
+ }
858
+ | {
859
+ type: 'insert.break'
860
+ }
861
+ | {
862
+ type: 'insert.text'
863
+ text: string
864
+ options?: TextInsertTextOptions
865
+ }
866
+ | {
867
+ type: 'list item.toggle'
868
+ listItem: string
869
+ }
870
+ | {
871
+ type: 'style.toggle'
872
+ style: string
873
+ }
874
+
875
+ export {}