snapshot of https://github.com/ueberdosis/tiptap.git (main, 2026-09-15; blobs > 131072B omitted)
Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
import { Extension } from '@tiptap/core'
|
||||
|
||||
import { InvisibleCharactersPlugin, InvisibleCharactersPluginKey } from './plugin/index.js'
|
||||
import { HardBreakNode } from './plugin/invisible-characters/hardBreak.js'
|
||||
import { ParagraphNode } from './plugin/invisible-characters/paragraph.js'
|
||||
import { SpaceCharacter } from './plugin/invisible-characters/space.js'
|
||||
import type { InvisibleCharactersOptions } from './types.js'
|
||||
|
||||
export { HardBreakNode, ParagraphNode, SpaceCharacter }
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface Commands<ReturnType> {
|
||||
invisibleCharacters: {
|
||||
/**
|
||||
* Show invisible characters
|
||||
*/
|
||||
showInvisibleCharacters: (show?: boolean) => ReturnType
|
||||
|
||||
/**
|
||||
* Hide invisible characters
|
||||
*/
|
||||
hideInvisibleCharacters: () => ReturnType
|
||||
|
||||
/**
|
||||
* Toggle invisible characters
|
||||
*/
|
||||
toggleInvisibleCharacters: () => ReturnType
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const InvisibleCharacters = Extension.create<InvisibleCharactersOptions>({
|
||||
name: 'invisibleCharacters',
|
||||
|
||||
addOptions() {
|
||||
return {
|
||||
visible: true,
|
||||
builders: [new SpaceCharacter(), new ParagraphNode(), new HardBreakNode()],
|
||||
injectCSS: true,
|
||||
injectNonce: undefined,
|
||||
}
|
||||
},
|
||||
|
||||
addProseMirrorPlugins() {
|
||||
return [InvisibleCharactersPlugin(this.editor.state, this.options)]
|
||||
},
|
||||
|
||||
addStorage() {
|
||||
return {
|
||||
visibility: () => this.options.visible,
|
||||
}
|
||||
},
|
||||
|
||||
onBeforeCreate() {
|
||||
this.storage.visibility = () => {
|
||||
return InvisibleCharactersPluginKey.getState(this.editor.state)?.visible
|
||||
}
|
||||
},
|
||||
|
||||
addCommands() {
|
||||
return {
|
||||
showInvisibleCharacters:
|
||||
(visibility = true) =>
|
||||
({ dispatch, tr }) => {
|
||||
if (dispatch) {
|
||||
tr.setMeta('setInvisibleCharactersVisible', visibility)
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
hideInvisibleCharacters:
|
||||
() =>
|
||||
({ dispatch, tr }) => {
|
||||
if (dispatch) {
|
||||
tr.setMeta('setInvisibleCharactersVisible', false)
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
toggleInvisibleCharacters:
|
||||
() =>
|
||||
({ dispatch, tr, state }) => {
|
||||
const visibility = !InvisibleCharactersPluginKey.getState(state)?.visible
|
||||
|
||||
if (dispatch) {
|
||||
tr.setMeta('setInvisibleCharactersVisible', visibility)
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
export default InvisibleCharacters
|
||||
Reference in New Issue
Block a user