diff --git a/packages/client/package.json b/packages/client/package.json index 83e9cf6c..a7d43d8f 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -39,6 +39,8 @@ "@tiptap/extension-paragraph": "^2.0.0-beta.23", "@tiptap/extension-placeholder": "^2.0.0-beta.47", "@tiptap/extension-strike": "^2.0.0-beta.27", + "@tiptap/extension-subscript": "^2.0.0-beta.10", + "@tiptap/extension-superscript": "^2.0.0-beta.10", "@tiptap/extension-table": "^2.0.0-beta.48", "@tiptap/extension-table-cell": "^2.0.0-beta.20", "@tiptap/extension-table-header": "^2.0.0-beta.22", diff --git a/packages/client/src/components/icons/IconSub.tsx b/packages/client/src/components/icons/IconSub.tsx new file mode 100644 index 00000000..6eb2a3ef --- /dev/null +++ b/packages/client/src/components/icons/IconSub.tsx @@ -0,0 +1,22 @@ +import { Icon } from '@douyinfe/semi-ui'; + +export const IconSub: React.FC<{ style?: React.CSSProperties }> = ({ style = {} }) => { + return ( + + + + + + + } + /> + ); +}; diff --git a/packages/client/src/components/icons/IconSup.tsx b/packages/client/src/components/icons/IconSup.tsx new file mode 100644 index 00000000..f2e7b0d1 --- /dev/null +++ b/packages/client/src/components/icons/IconSup.tsx @@ -0,0 +1,22 @@ +import { Icon } from '@douyinfe/semi-ui'; + +export const IconSup: React.FC<{ style?: React.CSSProperties }> = ({ style = {} }) => { + return ( + + + + + + + } + /> + ); +}; diff --git a/packages/client/src/components/icons/index.tsx b/packages/client/src/components/icons/index.tsx index fb4feb8f..2a157225 100644 --- a/packages/client/src/components/icons/index.tsx +++ b/packages/client/src/components/icons/index.tsx @@ -45,3 +45,5 @@ export * from './IconHeading3'; export * from './IconTableHeaderRow'; export * from './IconTableHeaderColumn'; export * from './IconTableHeaderCell'; +export * from './IconSub'; +export * from './IconSup'; diff --git a/packages/client/src/components/tiptap/basekit.tsx b/packages/client/src/components/tiptap/basekit.tsx index e4fd19e2..f038dce9 100644 --- a/packages/client/src/components/tiptap/basekit.tsx +++ b/packages/client/src/components/tiptap/basekit.tsx @@ -36,6 +36,8 @@ import { SearchNReplace } from './extensions/search'; import { SelectionExtension } from './extensions/selection'; import { Status } from './extensions/status'; import { Strike } from './extensions/strike'; +import { Subscript } from './extensions/subscript'; +import { Superscript } from './extensions/superscript'; import { Table } from './extensions/table'; import { TableCell } from './extensions/tableCell'; import { TableHeader } from './extensions/tableHeader'; @@ -89,6 +91,8 @@ export const BaseKit = [ SelectionExtension, Status, Strike, + Subscript, + Superscript, Table, TableCell, TableHeader, diff --git a/packages/client/src/components/tiptap/extensions/subscript.ts b/packages/client/src/components/tiptap/extensions/subscript.ts new file mode 100644 index 00000000..18c9f724 --- /dev/null +++ b/packages/client/src/components/tiptap/extensions/subscript.ts @@ -0,0 +1,3 @@ +import Subscript from '@tiptap/extension-subscript'; + +export { Subscript }; diff --git a/packages/client/src/components/tiptap/extensions/superscript.ts b/packages/client/src/components/tiptap/extensions/superscript.ts new file mode 100644 index 00000000..2d1ce12e --- /dev/null +++ b/packages/client/src/components/tiptap/extensions/superscript.ts @@ -0,0 +1,3 @@ +import Superscript from '@tiptap/extension-superscript'; + +export { Superscript }; diff --git a/packages/client/src/components/tiptap/menus/baseMenu.tsx b/packages/client/src/components/tiptap/menus/baseMenu.tsx index 082b5122..fc9f59f0 100644 --- a/packages/client/src/components/tiptap/menus/baseMenu.tsx +++ b/packages/client/src/components/tiptap/menus/baseMenu.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Button } from '@douyinfe/semi-ui'; import { IconBold, IconItalic, IconStrikeThrough, IconUnderline, IconCode } from '@douyinfe/semi-icons'; +import { IconSup, IconSub } from 'components/icons'; import { Tooltip } from 'components/tooltip'; import { isTitleActive } from '../services/isActive'; import { ColorMenu } from './color'; @@ -62,6 +63,26 @@ export const BaseMenu: React.FC<{ editor: any }> = ({ editor }) => { /> + +