Implement 10tap
This commit is contained in:
parent
c93fddc343
commit
07a328245f
334
app/NewEntry.tsx
334
app/NewEntry.tsx
@ -1,20 +1,174 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { StyleSheet, ScrollView, View, TextInput, KeyboardAvoidingView, Platform, Keyboard } from 'react-native';
|
||||
import { Button, Text, useTheme, Appbar, IconButton, Chip, Surface } from 'react-native-paper';
|
||||
import { ThemedView } from '@/components/ThemedView';
|
||||
import { ThemedText } from '@/components/ThemedText';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { StatusBar } from 'expo-status-bar';
|
||||
import Wrapper from '@/components/ui/Wrapper';
|
||||
// import EditorMenu from '@/components/EditorMenu';
|
||||
import { format } from 'date-fns';
|
||||
import { useEditor, EditorContent } from 'rn-text-editor';
|
||||
// import { useRouter } from 'expo-router';
|
||||
// import React, { useEffect, useState } from 'react';
|
||||
// import { Keyboard, ScrollView, StyleSheet, TextInput } from 'react-native';
|
||||
import { Appbar, useTheme } from 'react-native-paper';
|
||||
// import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
// import { EditorContent, useEditor } from 'rn-text-editor';
|
||||
|
||||
// export default function NewEntryScreen() {
|
||||
// const navigation = useRouter();
|
||||
// const theme = useTheme();
|
||||
// const entryDate = format(new Date(), 'LLL d, h:mm aaa');
|
||||
|
||||
|
||||
// const editor = useEditor({
|
||||
// enableCoreExtensions: true,
|
||||
// onUpdate(props) {
|
||||
// const newText = props.editor.getNativeText();
|
||||
// // setEntryText(newText);
|
||||
// },
|
||||
// });
|
||||
|
||||
|
||||
|
||||
// return (
|
||||
// <Wrapper>
|
||||
// <Appbar.Header style={{
|
||||
// backgroundColor: theme.colors.primary,
|
||||
// borderBottomWidth: 2,
|
||||
// borderBottomColor: theme.colors.backdrop,
|
||||
// }}>
|
||||
// {
|
||||
// stats['characters'] === 0 ?
|
||||
// <Appbar.BackAction onPress={() => {
|
||||
// navigation.back();
|
||||
// }} />
|
||||
// :
|
||||
// <Appbar.Action icon="check" onPress={() => {
|
||||
// navigation.back();
|
||||
// }} />
|
||||
// }
|
||||
// <Appbar.Content title={entryDate}
|
||||
// titleStyle={{
|
||||
// fontSize: 16, fontWeight: 'bold',
|
||||
// }}
|
||||
// />
|
||||
// <Appbar.Action icon="calendar" onPress={() => { }} />
|
||||
// <Appbar.Action icon="tag" onPress={() => { }} />
|
||||
// </Appbar.Header>
|
||||
// <Text
|
||||
// style={{
|
||||
// fontSize: 10,
|
||||
// backgroundColor: theme.colors.accent,
|
||||
// color: theme.colors.onTertiary,
|
||||
// paddingVertical: 2,
|
||||
// textAlign: 'center',
|
||||
// }}>
|
||||
// {stats.words} words · {stats.characters} characters
|
||||
// </Text>
|
||||
// <EditorContent
|
||||
// editor={editor}
|
||||
// style={{
|
||||
// paddingHorizontal: 15,
|
||||
// }}
|
||||
// inputRef={inputRef}
|
||||
// autoFocus
|
||||
// />
|
||||
// {/*
|
||||
// <TextInput
|
||||
// ref={inputRef}
|
||||
// style={{
|
||||
// flex: 1,
|
||||
// fontSize: 14,
|
||||
// color: theme.colors.onSurface,
|
||||
// backgroundColor: theme.colors.surface,
|
||||
// padding: 10,
|
||||
// textAlignVertical: 'top',
|
||||
// }}
|
||||
// cursorColor={theme.colors.primary}
|
||||
// multiline
|
||||
// autoFocus
|
||||
// autoCapitalize='none'
|
||||
// placeholder="Write your entry here..."
|
||||
// value={entryText}
|
||||
// onChangeText={setEntryText}
|
||||
// /> */}
|
||||
// <ScrollView
|
||||
// horizontal={true}
|
||||
// keyboardShouldPersistTaps="always"
|
||||
// style={{
|
||||
// position: 'absolute',
|
||||
// bottom: keyboardHeight + insets.bottom + 10,
|
||||
// left: 10,
|
||||
// right: 0,
|
||||
// flexDirection: 'row',
|
||||
// }}>
|
||||
// <EditorMenu editor={editor} />
|
||||
|
||||
// {/* <View
|
||||
// pointerEvents='box-none'
|
||||
// style={{
|
||||
// borderColor: theme.colors.primary,
|
||||
// borderWidth: 1,
|
||||
// borderRadius: 24,
|
||||
// flexDirection: 'row',
|
||||
// alignItems: 'center',
|
||||
// justifyContent: 'space-around',
|
||||
// backgroundColor: theme.colors.surface,
|
||||
// shadowColor: '#000',
|
||||
// shadowOffset: {
|
||||
// width: 0,
|
||||
// height: 2,
|
||||
// },
|
||||
// shadowOpacity: 0.1,
|
||||
// shadowRadius: 8,
|
||||
// elevation: 4,
|
||||
// }}>
|
||||
// < IconButton
|
||||
// icon="format-bold"
|
||||
// size={24} accessible={false}
|
||||
|
||||
// onPress={() => {
|
||||
// console.log('Bold button pressed'); inputRef.current?.focus();
|
||||
|
||||
// }}
|
||||
// />
|
||||
// <IconButton
|
||||
// icon="format-italic"
|
||||
// size={24}
|
||||
// onPress={() => {
|
||||
// console.log('Italic button pressed');
|
||||
// }}
|
||||
// />
|
||||
// <IconButton
|
||||
// icon="format-underline"
|
||||
// size={24}
|
||||
// onPress={() => {
|
||||
// console.log('Underline button pressed');
|
||||
// }}
|
||||
// />
|
||||
// </View> */}
|
||||
// </ScrollView>
|
||||
// </Wrapper >
|
||||
// );
|
||||
// }
|
||||
// const styles = StyleSheet.create({
|
||||
// container: {
|
||||
// flex: 1,
|
||||
// justifyContent: 'center',
|
||||
// paddingHorizontal: 1,
|
||||
// },
|
||||
// editorContainer: {
|
||||
// paddingHorizontal: 5,
|
||||
// flex: 1
|
||||
// },
|
||||
// box: {
|
||||
// width: 60,
|
||||
// height: 60,
|
||||
// marginVertical: 20,
|
||||
// },
|
||||
// });
|
||||
|
||||
import Wrapper from '@/components/ui/Wrapper';
|
||||
import { CoreBridge, RichText, TenTapStartKit, Toolbar, useEditorBridge, useEditorContent } from '@10play/tentap-editor';
|
||||
import { useRouter } from 'expo-router';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Keyboard, View } from 'react-native';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
|
||||
export default function NewEntryScreen() {
|
||||
const navigation = useRouter();
|
||||
const theme = useTheme();
|
||||
const entryDate = format(new Date(), 'LLL d, h:mm aaa');
|
||||
|
||||
const [entryText, setEntryText] = useState<string>('');
|
||||
const [stats, setStats] = useState<{ words: number; characters: number }>({
|
||||
words: 0,
|
||||
@ -25,18 +179,13 @@ export default function NewEntryScreen() {
|
||||
const words = entryText.trim().split(/\s+/).filter(Boolean).length;
|
||||
const characters = entryText.length;
|
||||
setStats({ words, characters });
|
||||
console.log('Entry text updated:', entryText);
|
||||
}
|
||||
, [entryText]);
|
||||
|
||||
const inputRef = React.useRef<TextInput>(null) as React.RefObject<TextInput>;
|
||||
const editor = useEditor({
|
||||
enableCoreExtensions: true,
|
||||
onUpdate(props) {
|
||||
const newText = props.editor.getNativeText();
|
||||
setEntryText(newText);
|
||||
}, // Add these properties to improve compatibility
|
||||
|
||||
});
|
||||
const navigation = useRouter();
|
||||
const theme = useTheme();
|
||||
const entryDate = format(new Date(), 'LLL d, h:mm aaa');
|
||||
|
||||
const insets = useSafeAreaInsets();
|
||||
const [keyboardHeight, setKeyboardHeight] = useState(0);
|
||||
@ -54,6 +203,32 @@ export default function NewEntryScreen() {
|
||||
};
|
||||
}, []);
|
||||
|
||||
const editor = useEditorBridge({
|
||||
autofocus: true,
|
||||
avoidIosKeyboard: true,
|
||||
theme: {
|
||||
webviewContainer: {
|
||||
paddingLeft: 15,
|
||||
backgroundColor: theme.colors.surface,
|
||||
},
|
||||
},
|
||||
bridgeExtensions: [
|
||||
...TenTapStartKit,
|
||||
CoreBridge.configureCSS(`
|
||||
* {
|
||||
font-size: 12px;
|
||||
}
|
||||
`), // Custom font
|
||||
],
|
||||
});
|
||||
const content = {
|
||||
html: useEditorContent(editor, { type: 'html' }),
|
||||
text: useEditorContent(editor, { type: 'text' }),
|
||||
};
|
||||
useEffect(() => {
|
||||
content && setEntryText(content.text ?? '');
|
||||
}, [content]);
|
||||
|
||||
return (
|
||||
<Wrapper>
|
||||
<Appbar.Header style={{
|
||||
@ -79,112 +254,23 @@ export default function NewEntryScreen() {
|
||||
<Appbar.Action icon="calendar" onPress={() => { }} />
|
||||
<Appbar.Action icon="tag" onPress={() => { }} />
|
||||
</Appbar.Header>
|
||||
<Text
|
||||
style={{
|
||||
fontSize: 10,
|
||||
backgroundColor: theme.colors.accent,
|
||||
color: theme.colors.onTertiary,
|
||||
paddingVertical: 2,
|
||||
textAlign: 'center',
|
||||
}}>
|
||||
{stats.words} words · {stats.characters} characters
|
||||
</Text>
|
||||
<EditorContent
|
||||
editor={editor}
|
||||
placeholder="Write something..."
|
||||
inputRef={inputRef}
|
||||
autoFocus
|
||||
/>
|
||||
{/*
|
||||
<TextInput
|
||||
ref={inputRef}
|
||||
style={{
|
||||
flex: 1,
|
||||
fontSize: 14,
|
||||
color: theme.colors.onSurface,
|
||||
backgroundColor: theme.colors.surface,
|
||||
padding: 10,
|
||||
textAlignVertical: 'top',
|
||||
}}
|
||||
cursorColor={theme.colors.primary}
|
||||
multiline
|
||||
autoFocus
|
||||
autoCapitalize='none'
|
||||
placeholder="Write your entry here..."
|
||||
value={entryText}
|
||||
onChangeText={setEntryText}
|
||||
/> */}
|
||||
<ScrollView
|
||||
horizontal={true}
|
||||
keyboardShouldPersistTaps="always"
|
||||
|
||||
{/* <SafeAreaView style={{ flex: 1, backgroundColor: theme.colors.background }}> */}
|
||||
<RichText editor={editor} />
|
||||
<View
|
||||
// horizontal={true}
|
||||
// keyboardShouldPersistTaps="always"
|
||||
style={{
|
||||
position: 'absolute',
|
||||
bottom: keyboardHeight + insets.bottom,
|
||||
left: 0,
|
||||
left: 10,
|
||||
right: 0,
|
||||
flexDirection: 'row',
|
||||
}}>
|
||||
<View
|
||||
pointerEvents='box-none'
|
||||
style={{
|
||||
borderColor: theme.colors.primary,
|
||||
borderWidth: 1,
|
||||
borderRadius: 24,
|
||||
margin: 5,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-around',
|
||||
backgroundColor: theme.colors.surface,
|
||||
shadowColor: '#000',
|
||||
shadowOffset: {
|
||||
width: 0,
|
||||
height: 2,
|
||||
},
|
||||
shadowOpacity: 0.1,
|
||||
shadowRadius: 8,
|
||||
elevation: 4,
|
||||
}}>
|
||||
< IconButton
|
||||
icon="format-bold"
|
||||
size={24} accessible={false}
|
||||
|
||||
onPress={() => {
|
||||
console.log('Bold button pressed'); inputRef.current?.focus();
|
||||
|
||||
}}
|
||||
/>
|
||||
<IconButton
|
||||
icon="format-italic"
|
||||
size={24}
|
||||
onPress={() => {
|
||||
console.log('Italic button pressed');
|
||||
}}
|
||||
/>
|
||||
<IconButton
|
||||
icon="format-underline"
|
||||
size={24}
|
||||
onPress={() => {
|
||||
console.log('Underline button pressed');
|
||||
}}
|
||||
/>
|
||||
<Toolbar editor={editor} hidden={false} />
|
||||
</View>
|
||||
</ScrollView>
|
||||
</Wrapper >
|
||||
{/* </SafeAreaView> */}
|
||||
|
||||
</Wrapper>
|
||||
);
|
||||
}
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
paddingHorizontal: 1,
|
||||
},
|
||||
editorContainer: {
|
||||
paddingHorizontal: 5,
|
||||
flex: 1
|
||||
},
|
||||
box: {
|
||||
width: 60,
|
||||
height: 60,
|
||||
marginVertical: 20,
|
||||
},
|
||||
});
|
||||
};
|
||||
24
assets/fonts/inter-light.ts
Normal file
24
assets/fonts/inter-light.ts
Normal file
File diff suppressed because one or more lines are too long
81
components/EditorMenu.tsx
Normal file
81
components/EditorMenu.tsx
Normal file
@ -0,0 +1,81 @@
|
||||
import React, { Fragment, useEffect, useState } from 'react';
|
||||
import { View } from 'react-native';
|
||||
import { Divider } from 'react-native-paper';
|
||||
import { type Editor } from 'rn-text-editor';
|
||||
import MenuButton from './EditorMenuButton';
|
||||
interface EditorMenuProps {
|
||||
editor: Editor;
|
||||
}
|
||||
const EditorMenu = ({ editor }: EditorMenuProps) => {
|
||||
const [_, setForceUpdate] = useState(false);
|
||||
useEffect(() => {
|
||||
// force the ui to update when the editor updates
|
||||
editor.on('update', () => {
|
||||
setForceUpdate((prev) => !prev);
|
||||
});
|
||||
}, []);
|
||||
const actions = [
|
||||
{
|
||||
icon: 'format-bold',
|
||||
isActive: editor.isActive('bold'),
|
||||
disabled: !editor.commandManager.createCan().toggleBold(),
|
||||
onPress() {
|
||||
if (editor.commandManager.createCan().toggleBold()) {
|
||||
editor.commandManager
|
||||
.createChain(undefined, true)
|
||||
.toggleBold()
|
||||
.run();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'format-italic',
|
||||
isActive: editor.isActive('italic'),
|
||||
disabled: !editor.commandManager.createCan().toggleItalic(),
|
||||
onPress() {
|
||||
if (editor.commandManager.createCan().toggleItalic()) {
|
||||
editor.commandManager
|
||||
.createChain(undefined, true)
|
||||
.toggleItalic()
|
||||
.run();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: 'format-color-highlight',
|
||||
isActive: editor.isActive('highlight'),
|
||||
disabled: !editor.commandManager.createCan().toggleHighlight(),
|
||||
onPress() {
|
||||
if (editor.commandManager.createCan().toggleHighlight()) {
|
||||
editor.commandManager
|
||||
.createChain(undefined, true)
|
||||
.toggleHighlight()
|
||||
.run();
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<View style={{ flexDirection: 'row', justifyContent: "space-between" }}>
|
||||
<View style={{ flexDirection: "row", justifyContent: "flex-start", alignItems: "center", flex: 1 }}>
|
||||
{actions.map((action, index) => (
|
||||
<Fragment key={index}>
|
||||
<MenuButton
|
||||
key={action.icon}
|
||||
icon={action.icon}
|
||||
isActive={action.isActive}
|
||||
disabled={action.disabled}
|
||||
onPress={action.onPress}
|
||||
/>
|
||||
{index < actions.length - 1 && (
|
||||
<Divider />
|
||||
)}
|
||||
</Fragment>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
export default EditorMenu;
|
||||
16
components/EditorMenuButton.tsx
Normal file
16
components/EditorMenuButton.tsx
Normal file
@ -0,0 +1,16 @@
|
||||
import React from 'react';
|
||||
import { IconButton, type IconButtonProps } from 'react-native-paper';
|
||||
interface MenuButtonProps extends IconButtonProps {
|
||||
isActive?: boolean;
|
||||
}
|
||||
const MenuButton = ({ isActive, ...props }: MenuButtonProps) => {
|
||||
return (
|
||||
<IconButton
|
||||
size={18}
|
||||
mode={isActive ? 'contained' : 'outlined'}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default MenuButton;
|
||||
627
package-lock.json
generated
627
package-lock.json
generated
@ -8,6 +8,7 @@
|
||||
"name": "myjourney",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@10play/tentap-editor": "0.7.0",
|
||||
"@expo/ngrok": "^4.1.3",
|
||||
"@expo/vector-icons": "^14.1.0",
|
||||
"@react-native-async-storage/async-storage": "2.1.2",
|
||||
@ -75,6 +76,101 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@10play/tentap-editor": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@10play/tentap-editor/-/tentap-editor-0.7.0.tgz",
|
||||
"integrity": "sha512-+ruRz+3z+GKXdquaRxi5rUUoVy1YUtFZWqxzWQjnzYg4s6OiOWe/ptOkH5dEsPgRudxYNBjhIZFqdpWzLPolNw==",
|
||||
"license": "MIT",
|
||||
"workspaces": [
|
||||
"example",
|
||||
"example76",
|
||||
"website"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tiptap/extension-blockquote": "^2.2.1",
|
||||
"@tiptap/extension-bold": "^2.2.1",
|
||||
"@tiptap/extension-bullet-list": "^2.2.1",
|
||||
"@tiptap/extension-code": "^2.2.1",
|
||||
"@tiptap/extension-code-block": "^2.2.1",
|
||||
"@tiptap/extension-color": "^2.1.16",
|
||||
"@tiptap/extension-document": "^2.2.1",
|
||||
"@tiptap/extension-dropcursor": "^2.2.4",
|
||||
"@tiptap/extension-hard-break": "^2.3.1",
|
||||
"@tiptap/extension-heading": "^2.2.1",
|
||||
"@tiptap/extension-highlight": "^2.1.16",
|
||||
"@tiptap/extension-history": "^2.2.1",
|
||||
"@tiptap/extension-horizontal-rule": "^2.2.1",
|
||||
"@tiptap/extension-image": "^2.2.1",
|
||||
"@tiptap/extension-italic": "^2.2.1",
|
||||
"@tiptap/extension-link": "2.10.3",
|
||||
"@tiptap/extension-list-item": "^2.2.1",
|
||||
"@tiptap/extension-ordered-list": "^2.2.1",
|
||||
"@tiptap/extension-placeholder": "^2.2.1",
|
||||
"@tiptap/extension-strike": "^2.2.1",
|
||||
"@tiptap/extension-task-item": "^2.1.16",
|
||||
"@tiptap/extension-task-list": "^2.1.16",
|
||||
"@tiptap/extension-text-style": "^2.1.16",
|
||||
"@tiptap/extension-underline": "^2.1.16",
|
||||
"@tiptap/pm": "^2.1.16",
|
||||
"@tiptap/react": "^2.1.16",
|
||||
"@tiptap/starter-kit": "^2.1.16",
|
||||
"lodash": "^4.17.21",
|
||||
"react-dom": "^18.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*",
|
||||
"react-native-webview": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@10play/tentap-editor/node_modules/@tiptap/react": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.22.3.tgz",
|
||||
"integrity": "sha512-Te6e6/carhUAavcJgxC03rffLAZz1or4cjnRDFNF8G4vPOqkNgQd368N47wTMjwh5mQTdMUUI3ToZIpc45Q7Tw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@tiptap/extension-bubble-menu": "^2.22.3",
|
||||
"@tiptap/extension-floating-menu": "^2.22.3",
|
||||
"@types/use-sync-external-store": "^0.0.6",
|
||||
"fast-deep-equal": "^3",
|
||||
"use-sync-external-store": "^1"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0",
|
||||
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@10play/tentap-editor/node_modules/react-dom": {
|
||||
"version": "18.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
||||
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"scheduler": "^0.23.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@10play/tentap-editor/node_modules/scheduler": {
|
||||
"version": "0.23.2",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
||||
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
||||
@ -3013,6 +3109,16 @@
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"version": "2.11.8",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
||||
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-compose-refs": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
|
||||
@ -5487,6 +5593,500 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/core": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.22.3.tgz",
|
||||
"integrity": "sha512-czyBPXZG/ZFyObZEF1kyusGf58Ai3X8TnaxlUUn3gqLLWPy0idXZg85NETCidzi/gAxWxL9j6Pcy+zwS4pbZYQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-blockquote": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.22.3.tgz",
|
||||
"integrity": "sha512-HvTXvqeGaANg0owk0Xxkgyc4lJMO5CZES2Lc3JJp8u5kV+HZIwd78eJ7fbKBMtkpKb4zOk4xQsHQ/TuhghJaeA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-bold": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.22.3.tgz",
|
||||
"integrity": "sha512-J3GxKwijD42eqCwU1SS7PK5aSgnp0wgQDetLz9izAD0RQBrKj5WZA13GnPoTTlzLU4qwjcPRV+6mvF+llH6b6A==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-bubble-menu": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.22.3.tgz",
|
||||
"integrity": "sha512-8iQLNrRf3iBPKqI3dQnfvMxMfgp6y9TAbO803LihvzbIGqBaX264ES7fHtoyFIIeVjy2xFruVsTZCZofWTupGg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"tippy.js": "^6.3.7"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-bullet-list": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.22.3.tgz",
|
||||
"integrity": "sha512-SYvLIxqmuV0kTj4/3ZFlnZ1fr9Y233qX00BKuIpGnczeFsWQmzBJo8vGm3d1IlKPCQN+jTRtDdDE1aSum8Kv2w==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-code": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.22.3.tgz",
|
||||
"integrity": "sha512-s+W6jHezq+n9cC40xZ3hZF6cGGSl+fBELik1b2x8+cb0WoIlqmcdWin1dgeMNrWlRZUw1aD2DNwy/PdXI5vn2g==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-code-block": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.22.3.tgz",
|
||||
"integrity": "sha512-twPCBpb/ygNixlSBAXgvfo+t56Ucpb8lvPDiZn+cH8OjmmO0ayBoSfSrjKWgaEWGPcXBrFAfsBRbYHyoHj7pXg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-color": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.22.3.tgz",
|
||||
"integrity": "sha512-4GewNUnDE16cte85kG0qhMGS1NQUQ1HRObVRGP47RlrSc/6x++DOfkqYbSJ0btyfWHGBahC3QQfyQ3eCdryUxg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/extension-text-style": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-document": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.22.3.tgz",
|
||||
"integrity": "sha512-7MnILbhRZRyROlMUgyntzRZ/EZlqNB8fO761RNjJxR2WMb49R4yc04fz7/+f/QH/hwxoS13bKfsNUDAsDxA5Aw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-dropcursor": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.22.3.tgz",
|
||||
"integrity": "sha512-yQxSfTWjdUQS+bh6KiNLR9KIMsn1SElzycQe4XE+0eoaetapGtKqxfwkTbbQdNgQOU5wQG1KOda221mnPvkpAA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-floating-menu": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.22.3.tgz",
|
||||
"integrity": "sha512-GeJRRdulxpwsshxzBkpOf/xJkLD2fa+49o+3FqRCmrm7AioC8oUcZZmzuzjLj5a3ZNGKPuJ9xxDkYWUjH4tE1g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"tippy.js": "^6.3.7"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-gapcursor": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.22.3.tgz",
|
||||
"integrity": "sha512-6Q8TLL4PVGcZLn27eQazCC+be8LP8uzuz5Z5e4TpIeswPAju49cerQOdEGNFKkuYv/FelWIhXNtkWFMf4eSmyw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-hard-break": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.22.3.tgz",
|
||||
"integrity": "sha512-tbEji/V4Za3UhxYwB36amYhyonwe5j66iYTNRWzgjNixjrcGDbWk6cfaF9jMAgPgIDBmmtQLJY+moKskwgpnZg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-heading": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.22.3.tgz",
|
||||
"integrity": "sha512-+MexJD+kXtNwMDbNTFa7jCFipx1DqAdT+n9GgInqebAN9bK+CWjC+SskzZNRqeMrQ0Er7QTsi6YC09M+74sevA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-highlight": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.22.3.tgz",
|
||||
"integrity": "sha512-cdPSeQ3QcThhJdzkjK9a1871uPQjwmOf0WzTGW33lJyJDQHypWIRNUus56c3pGA7BgV9P59QW7Fm8rDnM8XkbA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-history": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.22.3.tgz",
|
||||
"integrity": "sha512-F9sC45zPw7vbjKrwSKuSLZ0ODyc/X3bGPeCa6HYLEHKfgqsdt2v2fQLvxjpmlwO2ZMrnkBkg76KDxHfVyrZ2zQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-horizontal-rule": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.22.3.tgz",
|
||||
"integrity": "sha512-3GvY798p9pCXUBbCebIdSmi1q80l7VZz/B6NN4uUMQ9iwxWopd8yaZ0O7xx2hM2UBzPEtY3M4FAhhpYUTXNFgQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-image": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.22.3.tgz",
|
||||
"integrity": "sha512-JO8n5YOqOs+bckPZZ3qJFFLpRbYlu4N52n/7Do0XmxEMWaa3fLcR0Rsa1v3X4dGH2T5cKQ475dWSpJQRc+x07w==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-italic": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.22.3.tgz",
|
||||
"integrity": "sha512-W/rQDo7qFL7MfwfaYEcdtbk862fOmBv30qIEwVdqElBye7BFJYKtRuWBzNbG2BwKanjwMbVc/tBXF5W1sqfT7Q==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-link": {
|
||||
"version": "2.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.10.3.tgz",
|
||||
"integrity": "sha512-8esKlkZBzEiNcpt7I8Cd6l1mWmCc/66pPbUq9LfnIniDXE3U+ahBf4m3TJltYFBGbiiTR/xqMtJyVHOpuLDtAw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"linkifyjs": "^4.1.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-list-item": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.22.3.tgz",
|
||||
"integrity": "sha512-B7Fze+eM1sYbGOZtDDAwAivnj1ow2wN5RqaQPC1la3wdTK4Wgp7bdzGjvUbrN6gp3zMFCEWlqP2toc/mRAHCtA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-ordered-list": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.22.3.tgz",
|
||||
"integrity": "sha512-pHGkuZhV/uAAHI9vzk/lpAkbdpMT4wUR1FI17/GE3zNrogfzx0VopCQrXq4+sQVsLUW4I6Cj6VeBjm9wB6qlIw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-paragraph": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.22.3.tgz",
|
||||
"integrity": "sha512-TYvgS7CweNFo/xVxsKWSt0wnm46Y8OtsfDSjnLbSC4Pj4ZNa6PU3zpvDTW+UxYakr+8zIPvI2WgLBkyTHq6oQA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-placeholder": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.22.3.tgz",
|
||||
"integrity": "sha512-kYrO2iTOtGRr6IaVsaWSWCJmQZL7wuPOl19AmTxIJaxsiOgViocuoU5k14Fd6pU06yn8jmglD+Rirrn6eW5+5g==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-strike": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.22.3.tgz",
|
||||
"integrity": "sha512-I+s2Csw2cTHae2vFJiojnHK+NnQjDr6441mSlAd+e7kEly1kjZ4g7J+JMj02ajNQhr/ob8/hb5r6EdIyv2xtoA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-task-item": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-2.22.3.tgz",
|
||||
"integrity": "sha512-aVfSa2dLF77bfXpAlrsfPUNdhiHJhw3VJ/pnCTxrEnBXYilDuH59AhtU6DygSNhMZWUgzI4OPqf3crF+yzrHag==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0",
|
||||
"@tiptap/pm": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-task-list": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-task-list/-/extension-task-list-2.22.3.tgz",
|
||||
"integrity": "sha512-prOnD/S6mHOhzj2CLvd4Q/GJymyJMcdgTTJaI+Yk/Plup1OuH6fRlBdo67Tve0xzeQz4sfxrzp9kQ6EsEwhv0w==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-text": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.22.3.tgz",
|
||||
"integrity": "sha512-07cymWkPTfq6nuum88Yf90YYArbowed8nNiu0Tw3jCvwpzf9J9TDaovT+LAKuSKtrOsnNpFB/9IqUwFxZepOGw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-text-style": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.22.3.tgz",
|
||||
"integrity": "sha512-M3FLOUPcO8fR+rM97mR2gQ54KFkdlAUQtEPKQpO1f312gtcVdBNxgq0WgqTnBY7thWLyqQSKiAsL6y88+JddSA==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/extension-underline": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.22.3.tgz",
|
||||
"integrity": "sha512-floLjh1UbQ2pKgdwfw7qCAJ5VojvH1uqj7xW2RCv79aWYUuJCPD6UBpaBOt/jv7gXDJJ9EeV3m2Hga49CXBrEQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tiptap/core": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/pm": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.22.3.tgz",
|
||||
"integrity": "sha512-uWPeIScnpQVCYdTnL140XgcvbT1qH288CstMJ6S0Y11lC5PclPK9CxfAipsqgWWrIK7yatxKUVCg6TzfG9zpmA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"prosemirror-changeset": "^2.3.0",
|
||||
"prosemirror-collab": "^1.3.1",
|
||||
"prosemirror-commands": "^1.6.2",
|
||||
"prosemirror-dropcursor": "^1.8.1",
|
||||
"prosemirror-gapcursor": "^1.3.2",
|
||||
"prosemirror-history": "^1.4.1",
|
||||
"prosemirror-inputrules": "^1.4.0",
|
||||
"prosemirror-keymap": "^1.2.2",
|
||||
"prosemirror-markdown": "^1.13.1",
|
||||
"prosemirror-menu": "^1.2.4",
|
||||
"prosemirror-model": "^1.23.0",
|
||||
"prosemirror-schema-basic": "^1.2.3",
|
||||
"prosemirror-schema-list": "^1.4.1",
|
||||
"prosemirror-state": "^1.4.3",
|
||||
"prosemirror-tables": "^1.6.4",
|
||||
"prosemirror-trailing-node": "^3.0.0",
|
||||
"prosemirror-transform": "^1.10.2",
|
||||
"prosemirror-view": "^1.37.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/pm/node_modules/@remirror/core-constants": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz",
|
||||
"integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@tiptap/pm/node_modules/prosemirror-trailing-node": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz",
|
||||
"integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@remirror/core-constants": "3.0.0",
|
||||
"escape-string-regexp": "^4.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prosemirror-model": "^1.22.1",
|
||||
"prosemirror-state": "^1.4.2",
|
||||
"prosemirror-view": "^1.33.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@tiptap/starter-kit": {
|
||||
"version": "2.22.3",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.22.3.tgz",
|
||||
"integrity": "sha512-GkvheaR2ORnHJ9g9R6xIT38w2uppGja/iAIrXLZ9vY1QuR+0cya/ZZ5vKU6r9C2PeyBs3aKYxRD1/j3HDhuGXw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@tiptap/core": "^2.22.3",
|
||||
"@tiptap/extension-blockquote": "^2.22.3",
|
||||
"@tiptap/extension-bold": "^2.22.3",
|
||||
"@tiptap/extension-bullet-list": "^2.22.3",
|
||||
"@tiptap/extension-code": "^2.22.3",
|
||||
"@tiptap/extension-code-block": "^2.22.3",
|
||||
"@tiptap/extension-document": "^2.22.3",
|
||||
"@tiptap/extension-dropcursor": "^2.22.3",
|
||||
"@tiptap/extension-gapcursor": "^2.22.3",
|
||||
"@tiptap/extension-hard-break": "^2.22.3",
|
||||
"@tiptap/extension-heading": "^2.22.3",
|
||||
"@tiptap/extension-history": "^2.22.3",
|
||||
"@tiptap/extension-horizontal-rule": "^2.22.3",
|
||||
"@tiptap/extension-italic": "^2.22.3",
|
||||
"@tiptap/extension-list-item": "^2.22.3",
|
||||
"@tiptap/extension-ordered-list": "^2.22.3",
|
||||
"@tiptap/extension-paragraph": "^2.22.3",
|
||||
"@tiptap/extension-strike": "^2.22.3",
|
||||
"@tiptap/extension-text": "^2.22.3",
|
||||
"@tiptap/extension-text-style": "^2.22.3",
|
||||
"@tiptap/pm": "^2.22.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ueberdosis"
|
||||
}
|
||||
},
|
||||
"node_modules/@tybys/wasm-util": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
|
||||
@ -5681,6 +6281,12 @@
|
||||
"integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/use-sync-external-store": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
|
||||
"integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/yargs": {
|
||||
"version": "17.0.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
|
||||
@ -11595,6 +12201,12 @@
|
||||
"uc.micro": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/linkifyjs": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.1.tgz",
|
||||
"integrity": "sha512-DRSlB9DKVW04c4SUdGvKK5FR6be45lTU9M76JnngqPeeGDqPwYc0zdUErtsNVMtxPXgUWV4HbXbnC4sNyBxkYg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/locate-path": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
||||
@ -11610,6 +12222,12 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.debounce": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
|
||||
@ -15952,6 +16570,15 @@
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/tippy.js": {
|
||||
"version": "6.3.7",
|
||||
"resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
|
||||
"integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@popperjs/core": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tmpl": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
"lint": "expo lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@10play/tentap-editor": "0.7.0",
|
||||
"@expo/ngrok": "^4.1.3",
|
||||
"@expo/vector-icons": "^14.1.0",
|
||||
"@react-native-async-storage/async-storage": "2.1.2",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user