@portabletext/editor 2.6.3 → 2.6.4

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 (133) hide show
  1. package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs +29 -29
  2. package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs.map +1 -1
  3. package/lib/_chunks-cjs/selector.is-selection-expanded.cjs +5 -5
  4. package/lib/_chunks-cjs/selector.is-selection-expanded.cjs.map +1 -1
  5. package/lib/_chunks-cjs/util.child-selection-point-to-block-offset.cjs +3 -3
  6. package/lib/_chunks-cjs/util.child-selection-point-to-block-offset.cjs.map +1 -1
  7. package/lib/_chunks-cjs/util.is-selection-collapsed.cjs +5 -5
  8. package/lib/_chunks-cjs/util.is-selection-collapsed.cjs.map +1 -1
  9. package/lib/_chunks-cjs/util.merge-text-blocks.cjs +2 -6
  10. package/lib/_chunks-cjs/util.merge-text-blocks.cjs.map +1 -1
  11. package/lib/_chunks-cjs/util.slice-blocks.cjs +106 -117
  12. package/lib/_chunks-cjs/util.slice-blocks.cjs.map +1 -1
  13. package/lib/_chunks-cjs/util.slice-text-block.cjs +3 -3
  14. package/lib/_chunks-cjs/util.slice-text-block.cjs.map +1 -1
  15. package/lib/_chunks-dts/behavior.types.action.d.cts +9 -9
  16. package/lib/_chunks-dts/behavior.types.action.d.ts +9 -9
  17. package/lib/_chunks-es/selector.is-selecting-entire-blocks.js +3 -2
  18. package/lib/_chunks-es/selector.is-selecting-entire-blocks.js.map +1 -1
  19. package/lib/_chunks-es/selector.is-selection-expanded.js +3 -2
  20. package/lib/_chunks-es/selector.is-selection-expanded.js.map +1 -1
  21. package/lib/_chunks-es/util.child-selection-point-to-block-offset.js +2 -1
  22. package/lib/_chunks-es/util.child-selection-point-to-block-offset.js.map +1 -1
  23. package/lib/_chunks-es/util.is-selection-collapsed.js +2 -1
  24. package/lib/_chunks-es/util.is-selection-collapsed.js.map +1 -1
  25. package/lib/_chunks-es/util.merge-text-blocks.js +2 -5
  26. package/lib/_chunks-es/util.merge-text-blocks.js.map +1 -1
  27. package/lib/_chunks-es/util.slice-blocks.js +101 -112
  28. package/lib/_chunks-es/util.slice-blocks.js.map +1 -1
  29. package/lib/_chunks-es/util.slice-text-block.js +2 -1
  30. package/lib/_chunks-es/util.slice-text-block.js.map +1 -1
  31. package/lib/index.cjs +132 -95
  32. package/lib/index.cjs.map +1 -1
  33. package/lib/index.js +41 -4
  34. package/lib/index.js.map +1 -1
  35. package/lib/plugins/index.cjs +5 -5
  36. package/lib/plugins/index.cjs.map +1 -1
  37. package/lib/plugins/index.d.cts +3 -3
  38. package/lib/plugins/index.d.ts +3 -3
  39. package/lib/plugins/index.js +6 -5
  40. package/lib/plugins/index.js.map +1 -1
  41. package/lib/selectors/index.cjs +3 -3
  42. package/lib/selectors/index.cjs.map +1 -1
  43. package/lib/selectors/index.js +2 -1
  44. package/lib/selectors/index.js.map +1 -1
  45. package/lib/utils/index.cjs +14 -4
  46. package/lib/utils/index.cjs.map +1 -1
  47. package/lib/utils/index.d.cts +2 -9
  48. package/lib/utils/index.d.ts +4 -11
  49. package/lib/utils/index.js +4 -3
  50. package/lib/utils/index.js.map +1 -1
  51. package/package.json +10 -9
  52. package/src/behaviors/behavior.abstract.delete.ts +1 -1
  53. package/src/behaviors/behavior.abstract.deserialize.ts +1 -1
  54. package/src/behaviors/behavior.abstract.split.ts +2 -1
  55. package/src/behaviors/behavior.core.block-objects.ts +1 -1
  56. package/src/behaviors/behavior.core.lists.ts +2 -1
  57. package/src/behaviors/behavior.markdown.ts +1 -1
  58. package/src/converters/converter.text-plain.ts +2 -1
  59. package/src/editor/__tests__/PortableTextEditor.test.tsx +1 -1
  60. package/src/editor/__tests__/RangeDecorations.test.tsx +1 -1
  61. package/src/editor/__tests__/self-solving.test.tsx +1 -1
  62. package/src/editor/components/render-element.tsx +1 -1
  63. package/src/editor/plugins/__tests__/withEditableAPIDelete.test.tsx +1 -1
  64. package/src/editor/plugins/__tests__/withEditableAPIGetFragment.test.tsx +2 -3
  65. package/src/editor/plugins/__tests__/withEditableAPIInsert.test.tsx +1 -1
  66. package/src/editor/plugins/__tests__/withEditableAPISelectionsOverlapping.test.tsx +1 -1
  67. package/src/editor/plugins/__tests__/withPortableTextLists.test.tsx +1 -1
  68. package/src/editor/plugins/__tests__/withPortableTextMarkModel.test.tsx +1 -1
  69. package/src/editor/plugins/__tests__/withPortableTextSelections.test.tsx +1 -1
  70. package/src/editor/plugins/__tests__/withUndoRedo.test.tsx +1 -1
  71. package/src/editor/plugins/createWithObjectKeys.ts +1 -1
  72. package/src/editor/plugins/createWithPortableTextMarkModel.ts +1 -1
  73. package/src/editor/plugins/createWithSchemaTypes.ts +2 -5
  74. package/src/internal-utils/__tests__/valueNormalization.test.tsx +1 -1
  75. package/src/internal-utils/apply-operation-to-portable-text.test.ts +1 -1
  76. package/src/internal-utils/build-index-maps.ts +1 -1
  77. package/src/internal-utils/create-test-snapshot.ts +1 -1
  78. package/src/internal-utils/drag-selection.test.ts +1 -1
  79. package/src/internal-utils/editor-selection.ts +1 -1
  80. package/src/internal-utils/operation-to-patches.ts +1 -1
  81. package/src/internal-utils/parse-blocks.test.ts +1 -1
  82. package/src/internal-utils/parse-blocks.ts +1 -38
  83. package/src/internal-utils/selection-focus-text.ts +1 -1
  84. package/src/internal-utils/selection-text.ts +1 -1
  85. package/src/internal-utils/test-editor.tsx +1 -1
  86. package/src/internal-utils/text-block-key.ts +1 -1
  87. package/src/internal-utils/text-marks.ts +1 -1
  88. package/src/internal-utils/text-selection.ts +1 -1
  89. package/src/internal-utils/to-slate-range.test.ts +1 -1
  90. package/src/internal-utils/to-slate-range.ts +1 -1
  91. package/src/internal-utils/validateValue.ts +1 -1
  92. package/src/internal-utils/value-annotations.ts +1 -1
  93. package/src/operations/behavior.operation.block.unset.ts +2 -1
  94. package/src/operations/behavior.operation.delete.ts +98 -2
  95. package/src/operations/behavior.operation.insert.block.ts +2 -1
  96. package/src/plugins/plugin.behavior.tsx +3 -1
  97. package/src/plugins/plugin.internal.auto-close-brackets.test.tsx +1 -2
  98. package/src/plugins/plugin.markdown.test.tsx +1 -2
  99. package/src/selectors/selector.get-active-annotations.ts +1 -1
  100. package/src/selectors/selector.get-active-list-item.ts +1 -1
  101. package/src/selectors/selector.get-active-style.ts +1 -1
  102. package/src/selectors/selector.get-anchor-text-block.ts +1 -1
  103. package/src/selectors/selector.get-caret-word-selection.test.ts +1 -1
  104. package/src/selectors/selector.get-focus-block-object.ts +1 -1
  105. package/src/selectors/selector.get-focus-span.ts +1 -1
  106. package/src/selectors/selector.get-focus-text-block.ts +1 -1
  107. package/src/selectors/selector.get-list-state.ts +1 -1
  108. package/src/selectors/selector.get-next-span.ts +1 -1
  109. package/src/selectors/selector.get-previous-span.ts +1 -1
  110. package/src/selectors/selector.get-selected-spans.ts +1 -1
  111. package/src/selectors/selector.get-selected-text-blocks.ts +1 -1
  112. package/src/selectors/selector.get-selection-text.ts +1 -1
  113. package/src/selectors/selector.get-trimmed-selection.test.ts +1 -1
  114. package/src/selectors/selector.get-trimmed-selection.ts +1 -1
  115. package/src/selectors/selector.is-active-annotation.ts +1 -1
  116. package/src/selectors/selector.is-point-after-selection.ts +1 -1
  117. package/src/selectors/selector.is-point-before-selection.ts +1 -1
  118. package/src/utils/index.ts +1 -2
  119. package/src/utils/util.at-the-beginning-of-block.ts +1 -1
  120. package/src/utils/util.block-offset.ts +1 -1
  121. package/src/utils/util.child-selection-point-to-block-offset.ts +1 -1
  122. package/src/utils/util.get-block-end-point.ts +1 -1
  123. package/src/utils/util.get-block-start-point.ts +1 -1
  124. package/src/utils/util.is-empty-text-block.ts +1 -1
  125. package/src/utils/util.merge-text-blocks.ts +1 -1
  126. package/src/utils/util.slice-blocks.ts +2 -2
  127. package/src/utils/util.slice-text-block.ts +2 -2
  128. package/src/utils/util.split-text-block.ts +1 -1
  129. package/src/internal-utils/terse-pt.test.ts +0 -175
  130. package/src/internal-utils/terse-pt.ts +0 -150
  131. package/src/internal-utils/test-key-generator.ts +0 -9
  132. package/src/utils/util.is-span.ts +0 -12
  133. package/src/utils/util.is-text-block.ts +0 -13
@@ -1,150 +0,0 @@
1
- import type {PortableTextBlock, PortableTextTextBlock} from '@sanity/types'
2
- import type {EditorContext} from '../editor/editor-snapshot'
3
- import {isSpan, isTextBlock} from './parse-blocks'
4
-
5
- type TersePtConfig = {
6
- style: (name?: string) => string
7
- listItem: (name?: string) => string
8
- level: (level?: number) => string
9
- }
10
-
11
- const defaultConfig: TersePtConfig = {
12
- style: (name) =>
13
- name === undefined || name === 'normal'
14
- ? ''
15
- : name === 'blockquote'
16
- ? 'q'
17
- : `${name}`,
18
- listItem: (name) => (name === undefined ? '' : name === 'number' ? '#' : '-'),
19
- level: (level) => (level === undefined ? '' : '>'.repeat(level)),
20
- }
21
-
22
- export function getTersePt(
23
- context: Pick<EditorContext, 'schema' | 'value'>,
24
- ): Array<string> {
25
- const blocks: Array<string> = []
26
-
27
- for (const block of context.value) {
28
- let terseBlock = ''
29
-
30
- if (isTextBlock(context, block)) {
31
- const blockPrefix = `${defaultConfig.level(block.level)}${defaultConfig.listItem(block.listItem)}${defaultConfig.style(block.style)}`
32
-
33
- if (blockPrefix) {
34
- terseBlock = `${blockPrefix}:`
35
- }
36
-
37
- let index = -1
38
- for (const child of block.children) {
39
- index++
40
-
41
- if (isSpan(context, child)) {
42
- terseBlock = `${terseBlock}${index > 0 ? ',' : ''}${child.text}`
43
- } else {
44
- terseBlock = `${terseBlock}${index > 0 ? ',' : ''}{${child._type}}`
45
- }
46
- }
47
- } else {
48
- terseBlock = `{${block._type}}`
49
- }
50
-
51
- blocks.push(terseBlock)
52
- }
53
-
54
- return blocks
55
- }
56
-
57
- export function parseTersePt(
58
- context: Pick<EditorContext, 'keyGenerator' | 'schema'>,
59
- tersePt: Array<string>,
60
- ): Array<PortableTextBlock> {
61
- const blocks: Array<PortableTextBlock> = []
62
-
63
- for (const terseBlock of tersePt) {
64
- if (terseBlock.startsWith('{')) {
65
- blocks.push({
66
- _type: terseBlock.slice(1, -1),
67
- _key: context.keyGenerator(),
68
- })
69
-
70
- continue
71
- }
72
-
73
- const block: PortableTextTextBlock = {
74
- _key: context.keyGenerator(),
75
- _type: context.schema.block.name,
76
- children: [],
77
- }
78
-
79
- if (terseBlock.includes(':')) {
80
- const [prefix, content] = terseBlock.split(':')
81
-
82
- const listItem = prefix.includes('#')
83
- ? 'number'
84
- : prefix.includes('-')
85
- ? 'bullet'
86
- : undefined
87
-
88
- if (listItem !== undefined) {
89
- block.listItem = listItem
90
- }
91
-
92
- const level = prefix.split('').filter((part) => part === '>').length
93
-
94
- if (level > 0) {
95
- block.level = level
96
- }
97
-
98
- const style = prefix
99
- .split('')
100
- .filter((part) => !['#', '-', '>'].includes(part))
101
- .join('')
102
-
103
- if (style) {
104
- block.style = style
105
- }
106
-
107
- const textRuns = content.split(',')
108
-
109
- for (const textRun of textRuns) {
110
- if (textRun.startsWith('{')) {
111
- block.children.push({
112
- _key: context.keyGenerator(),
113
- _type: textRun.slice(1, -1),
114
- })
115
- } else {
116
- block.children.push({
117
- _key: context.keyGenerator(),
118
- _type: context.schema.span.name,
119
- text: textRun,
120
- })
121
- }
122
- }
123
- } else {
124
- const textRuns = terseBlock.split(',')
125
-
126
- for (const textRun of textRuns) {
127
- if (textRun.startsWith('{')) {
128
- block.children.push({
129
- _key: context.keyGenerator(),
130
- _type: textRun.slice(1, -1),
131
- })
132
- } else {
133
- block.children.push({
134
- _key: context.keyGenerator(),
135
- _type: context.schema.span.name,
136
- text: textRun,
137
- })
138
- }
139
- }
140
- }
141
-
142
- blocks.push(block)
143
- }
144
-
145
- return blocks
146
- }
147
-
148
- export function parseTersePtString(text: string) {
149
- return text.split('|').map((span) => span.replace(/\\n/g, '\n'))
150
- }
@@ -1,9 +0,0 @@
1
- export function createTestKeyGenerator(prefix?: string) {
2
- let index = 0
3
-
4
- return function keyGenerator() {
5
- const key = `${prefix ?? ''}k${index}`
6
- index++
7
- return key
8
- }
9
- }
@@ -1,12 +0,0 @@
1
- import type {PortableTextChild, PortableTextSpan} from '@sanity/types'
2
- import type {EditorContext} from '..'
3
-
4
- /**
5
- * @public
6
- */
7
- export function isSpan(
8
- context: Pick<EditorContext, 'schema'>,
9
- child: PortableTextChild,
10
- ): child is PortableTextSpan {
11
- return child._type === context.schema.span.name
12
- }
@@ -1,13 +0,0 @@
1
- import type {PortableTextTextBlock} from '@sanity/types'
2
- import type {EditorContext} from '..'
3
- import {isTypedObject} from '../internal-utils/asserters'
4
-
5
- /**
6
- * @public
7
- */
8
- export function isTextBlock(
9
- context: Pick<EditorContext, 'schema'>,
10
- block: unknown,
11
- ): block is PortableTextTextBlock {
12
- return isTypedObject(block) && block._type === context.schema.block.name
13
- }