[WIKI-402] feat: emoji support for all editors (#7275)
* feat: basic emoji * feat:emoji slash command * update slice command * refactor: emoji storage * refactor:types * refactor: emoji list * refactor: restructure extension * chore: add comments * chore: update comments * fix: fallback image
This commit is contained in:
parent
757019bf43
commit
ba6b822f60
17 changed files with 969 additions and 21 deletions
|
|
@ -46,6 +46,7 @@
|
||||||
"@tiptap/extension-blockquote": "2.10.4",
|
"@tiptap/extension-blockquote": "2.10.4",
|
||||||
"@tiptap/extension-character-count": "2.11.0",
|
"@tiptap/extension-character-count": "2.11.0",
|
||||||
"@tiptap/extension-collaboration": "2.11.0",
|
"@tiptap/extension-collaboration": "2.11.0",
|
||||||
|
"@tiptap/extension-emoji": "^2.22.3",
|
||||||
"@tiptap/extension-image": "2.11.0",
|
"@tiptap/extension-image": "2.11.0",
|
||||||
"@tiptap/extension-list-item": "2.11.0",
|
"@tiptap/extension-list-item": "2.11.0",
|
||||||
"@tiptap/extension-mention": "2.11.0",
|
"@tiptap/extension-mention": "2.11.0",
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,21 @@
|
||||||
import { CharacterCountStorage } from "@tiptap/extension-character-count";
|
import { CharacterCountStorage } from "@tiptap/extension-character-count";
|
||||||
// constants
|
// constants
|
||||||
|
import type { EmojiStorage } from "@tiptap/extension-emoji";
|
||||||
import { CORE_EXTENSIONS } from "@/constants/extension";
|
import { CORE_EXTENSIONS } from "@/constants/extension";
|
||||||
// extensions
|
// extensions
|
||||||
import { type HeadingExtensionStorage } from "@/extensions";
|
import type { HeadingExtensionStorage } from "@/extensions";
|
||||||
import { type CustomImageExtensionStorage } from "@/extensions/custom-image/types";
|
import type { CustomImageExtensionStorage } from "@/extensions/custom-image/types";
|
||||||
import { type CustomLinkStorage } from "@/extensions/custom-link";
|
import type { CustomLinkStorage } from "@/extensions/custom-link";
|
||||||
import { type ImageExtensionStorage } from "@/extensions/image";
|
import type { ImageExtensionStorage } from "@/extensions/image";
|
||||||
import { type MentionExtensionStorage } from "@/extensions/mentions";
|
import type { UtilityExtensionStorage } from "@/extensions/utility";
|
||||||
import { type UtilityExtensionStorage } from "@/extensions/utility";
|
|
||||||
|
|
||||||
export type ExtensionStorageMap = {
|
export type ExtensionStorageMap = {
|
||||||
[CORE_EXTENSIONS.CUSTOM_IMAGE]: CustomImageExtensionStorage;
|
[CORE_EXTENSIONS.CUSTOM_IMAGE]: CustomImageExtensionStorage;
|
||||||
[CORE_EXTENSIONS.IMAGE]: ImageExtensionStorage;
|
[CORE_EXTENSIONS.IMAGE]: ImageExtensionStorage;
|
||||||
[CORE_EXTENSIONS.CUSTOM_LINK]: CustomLinkStorage;
|
[CORE_EXTENSIONS.CUSTOM_LINK]: CustomLinkStorage;
|
||||||
[CORE_EXTENSIONS.HEADINGS_LIST]: HeadingExtensionStorage;
|
[CORE_EXTENSIONS.HEADINGS_LIST]: HeadingExtensionStorage;
|
||||||
[CORE_EXTENSIONS.MENTION]: MentionExtensionStorage;
|
|
||||||
[CORE_EXTENSIONS.UTILITY]: UtilityExtensionStorage;
|
[CORE_EXTENSIONS.UTILITY]: UtilityExtensionStorage;
|
||||||
|
[CORE_EXTENSIONS.EMOJI]: EmojiStorage;
|
||||||
[CORE_EXTENSIONS.CHARACTER_COUNT]: CharacterCountStorage;
|
[CORE_EXTENSIONS.CHARACTER_COUNT]: CharacterCountStorage;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
1
packages/editor/src/ce/types/utils.ts
Normal file
1
packages/editor/src/ce/types/utils.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export type TAdditionalActiveDropbarExtensions = never;
|
||||||
|
|
@ -41,4 +41,5 @@ export enum CORE_EXTENSIONS {
|
||||||
UNDERLINE = "underline",
|
UNDERLINE = "underline",
|
||||||
UTILITY = "utility",
|
UTILITY = "utility",
|
||||||
WORK_ITEM_EMBED = "issue-embed-component",
|
WORK_ITEM_EMBED = "issue-embed-component",
|
||||||
|
EMOJI = "emoji",
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import { CustomCodeInlineExtension } from "./code-inline";
|
||||||
import { CustomColorExtension } from "./custom-color";
|
import { CustomColorExtension } from "./custom-color";
|
||||||
import { CustomImageExtensionConfig } from "./custom-image/extension-config";
|
import { CustomImageExtensionConfig } from "./custom-image/extension-config";
|
||||||
import { CustomLinkExtension } from "./custom-link";
|
import { CustomLinkExtension } from "./custom-link";
|
||||||
|
import { EmojiExtension } from "./emoji/extension";
|
||||||
import { CustomHorizontalRule } from "./horizontal-rule";
|
import { CustomHorizontalRule } from "./horizontal-rule";
|
||||||
import { ImageExtensionConfig } from "./image";
|
import { ImageExtensionConfig } from "./image";
|
||||||
import { CustomMentionExtensionConfig } from "./mentions/extension-config";
|
import { CustomMentionExtensionConfig } from "./mentions/extension-config";
|
||||||
|
|
@ -55,6 +56,7 @@ export const CoreEditorExtensionsWithoutProps = [
|
||||||
},
|
},
|
||||||
dropcursor: false,
|
dropcursor: false,
|
||||||
}),
|
}),
|
||||||
|
EmojiExtension,
|
||||||
CustomQuoteExtension,
|
CustomQuoteExtension,
|
||||||
CustomHorizontalRule.configure({
|
CustomHorizontalRule.configure({
|
||||||
HTMLAttributes: {
|
HTMLAttributes: {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,151 @@
|
||||||
|
import { Editor } from "@tiptap/react";
|
||||||
|
import { forwardRef, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
|
||||||
|
// plane imports
|
||||||
|
import { cn } from "@plane/utils";
|
||||||
|
|
||||||
|
export interface EmojiItem {
|
||||||
|
name: string;
|
||||||
|
emoji: string;
|
||||||
|
shortcodes: string[];
|
||||||
|
tags: string[];
|
||||||
|
fallbackImage?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EmojiListProps {
|
||||||
|
items: EmojiItem[];
|
||||||
|
command: (item: { name: string }) => void;
|
||||||
|
editor: Editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EmojiListRef {
|
||||||
|
onKeyDown: (props: { event: KeyboardEvent }) => boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const EmojiList = forwardRef<EmojiListRef, EmojiListProps>((props, ref) => {
|
||||||
|
const { items, command } = props;
|
||||||
|
const [selectedIndex, setSelectedIndex] = useState<number>(0);
|
||||||
|
// refs
|
||||||
|
const emojiListContainer = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
const selectItem = useCallback(
|
||||||
|
(index: number): void => {
|
||||||
|
const item = items[index];
|
||||||
|
if (item) {
|
||||||
|
command({ name: item.name });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[command, items]
|
||||||
|
);
|
||||||
|
|
||||||
|
const upHandler = useCallback(() => {
|
||||||
|
setSelectedIndex((prevIndex) => (prevIndex + items.length - 1) % items.length);
|
||||||
|
}, [items.length]);
|
||||||
|
|
||||||
|
const downHandler = useCallback(() => {
|
||||||
|
setSelectedIndex((prevIndex) => (prevIndex + 1) % items.length);
|
||||||
|
}, [items.length]);
|
||||||
|
|
||||||
|
const enterHandler = useCallback(() => {
|
||||||
|
setSelectedIndex((prevIndex) => {
|
||||||
|
selectItem(prevIndex);
|
||||||
|
return prevIndex;
|
||||||
|
});
|
||||||
|
}, [selectItem]);
|
||||||
|
|
||||||
|
useEffect(() => setSelectedIndex(0), [items]);
|
||||||
|
|
||||||
|
// scroll to the dropdown item when navigating via keyboard
|
||||||
|
useLayoutEffect(() => {
|
||||||
|
const container = emojiListContainer?.current;
|
||||||
|
if (!container) return;
|
||||||
|
|
||||||
|
const item = container.querySelector(`#emoji-item-${selectedIndex}`) as HTMLElement;
|
||||||
|
if (item) {
|
||||||
|
const containerRect = container.getBoundingClientRect();
|
||||||
|
const itemRect = item.getBoundingClientRect();
|
||||||
|
|
||||||
|
const isItemInView = itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom;
|
||||||
|
|
||||||
|
if (!isItemInView) {
|
||||||
|
item.scrollIntoView({ block: "nearest" });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [selectedIndex]);
|
||||||
|
|
||||||
|
useImperativeHandle(
|
||||||
|
ref,
|
||||||
|
() => ({
|
||||||
|
onKeyDown: ({ event }: { event: KeyboardEvent }): boolean => {
|
||||||
|
if (event.key === "ArrowUp") {
|
||||||
|
upHandler();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.key === "ArrowDown") {
|
||||||
|
downHandler();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.key === "Enter") {
|
||||||
|
enterHandler();
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
[upHandler, downHandler, enterHandler]
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
ref={emojiListContainer}
|
||||||
|
role="listbox"
|
||||||
|
aria-label="Emoji suggestions"
|
||||||
|
className="z-10 max-h-[90vh] w-[16rem] overflow-y-auto rounded-md border-[0.5px] border-custom-border-300 bg-custom-background-100 px-2 py-2.5 shadow-custom-shadow-rg space-y-1"
|
||||||
|
>
|
||||||
|
{items.length ? (
|
||||||
|
items.map((item, index) => {
|
||||||
|
const isSelected = index === selectedIndex;
|
||||||
|
const emojiKey = item.shortcodes.join(" - ");
|
||||||
|
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
key={emojiKey}
|
||||||
|
role="option"
|
||||||
|
aria-selected={isSelected}
|
||||||
|
aria-label={`${item.name} emoji`}
|
||||||
|
id={`emoji-item-${index}`}
|
||||||
|
type="button"
|
||||||
|
className={cn(
|
||||||
|
"flex items-center gap-2 w-full rounded px-2 py-1.5 text-sm text-left truncate text-custom-text-200 hover:bg-custom-background-80 transition-colors duration-150",
|
||||||
|
{
|
||||||
|
"bg-custom-background-80": isSelected,
|
||||||
|
}
|
||||||
|
)}
|
||||||
|
onClick={() => selectItem(index)}
|
||||||
|
onMouseEnter={() => setSelectedIndex(index)}
|
||||||
|
>
|
||||||
|
<span className="size-5 grid place-items-center flex-shrink-0 text-base">
|
||||||
|
{item.fallbackImage ? (
|
||||||
|
<img src={item.fallbackImage} alt={item.name} className="size-4 object-contain" />
|
||||||
|
) : (
|
||||||
|
item.emoji
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
<span className="flex-grow truncate">
|
||||||
|
<span className="font-medium">:{item.name}:</span>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
})
|
||||||
|
) : (
|
||||||
|
<div className="text-center text-sm text-custom-text-400 py-2">No emojis found</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
EmojiList.displayName = "EmojiList";
|
||||||
30
packages/editor/src/core/extensions/emoji/extension.ts
Normal file
30
packages/editor/src/core/extensions/emoji/extension.ts
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
import Emoji, { EmojiItem, gitHubEmojis, shortcodeToEmoji } from "@tiptap/extension-emoji";
|
||||||
|
// local imports
|
||||||
|
import { MarkdownSerializerState } from "@tiptap/pm/markdown";
|
||||||
|
import { Node as ProseMirrorNode } from "@tiptap/pm/model";
|
||||||
|
import suggestion from "./suggestion";
|
||||||
|
|
||||||
|
export const EmojiExtension = Emoji.extend({
|
||||||
|
addStorage() {
|
||||||
|
return {
|
||||||
|
...this.parent?.(),
|
||||||
|
markdown: {
|
||||||
|
serialize(state: MarkdownSerializerState, node: ProseMirrorNode) {
|
||||||
|
const emojiItem = shortcodeToEmoji(node.attrs.name, this.options.emojis)
|
||||||
|
if(emojiItem?.emoji) {
|
||||||
|
state.write(emojiItem?.emoji);
|
||||||
|
} else if(emojiItem?.fallbackImage) {
|
||||||
|
state.write(`\n![${emojiItem.name}-${emojiItem.shortcodes[0]}](${emojiItem?.fallbackImage})\n`);
|
||||||
|
} else {
|
||||||
|
state.write(`:${node.attrs.name}:`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
}).configure({
|
||||||
|
emojis: gitHubEmojis,
|
||||||
|
suggestion: suggestion,
|
||||||
|
enableEmoticons: true,
|
||||||
|
});
|
||||||
126
packages/editor/src/core/extensions/emoji/suggestion.ts
Normal file
126
packages/editor/src/core/extensions/emoji/suggestion.ts
Normal file
|
|
@ -0,0 +1,126 @@
|
||||||
|
import type { EmojiOptions } from "@tiptap/extension-emoji";
|
||||||
|
import { ReactRenderer, Editor } from "@tiptap/react";
|
||||||
|
import { SuggestionProps, SuggestionKeyDownProps } from "@tiptap/suggestion";
|
||||||
|
import tippy, { Instance as TippyInstance } from "tippy.js";
|
||||||
|
// constants
|
||||||
|
import { CORE_EXTENSIONS } from "@/constants/extension";
|
||||||
|
// helpers
|
||||||
|
import { getExtensionStorage } from "@/helpers/get-extension-storage";
|
||||||
|
// local imports
|
||||||
|
import { EmojiItem, EmojiList, EmojiListRef, EmojiListProps } from "./components/emojis-list";
|
||||||
|
|
||||||
|
const DEFAULT_EMOJIS = ["+1", "-1", "smile", "orange_heart", "eyes"];
|
||||||
|
|
||||||
|
const emojiSuggestion: EmojiOptions["suggestion"] = {
|
||||||
|
items: ({ editor, query }: { editor: Editor; query: string }): EmojiItem[] => {
|
||||||
|
if (query.trim() === "") {
|
||||||
|
const { emojis } = getExtensionStorage(editor, CORE_EXTENSIONS.EMOJI);
|
||||||
|
const defaultEmojis = DEFAULT_EMOJIS.map((name) =>
|
||||||
|
emojis.find((emoji: EmojiItem) => emoji.shortcodes.includes(name) || emoji.name === name)
|
||||||
|
)
|
||||||
|
.filter(Boolean)
|
||||||
|
.slice(0, 5);
|
||||||
|
return defaultEmojis as EmojiItem[];
|
||||||
|
}
|
||||||
|
return getExtensionStorage(editor, CORE_EXTENSIONS.EMOJI)
|
||||||
|
.emojis.filter(({ shortcodes, tags }) => {
|
||||||
|
const lowerQuery = query.toLowerCase();
|
||||||
|
return (
|
||||||
|
shortcodes.find((shortcode: string) => shortcode.startsWith(lowerQuery)) ||
|
||||||
|
tags.find((tag: string) => tag.startsWith(lowerQuery))
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.slice(0, 5) as EmojiItem[];
|
||||||
|
},
|
||||||
|
|
||||||
|
allowSpaces: false,
|
||||||
|
|
||||||
|
render: () => {
|
||||||
|
let component: ReactRenderer<EmojiListRef, EmojiListProps>;
|
||||||
|
let popup: TippyInstance[] | null = null;
|
||||||
|
|
||||||
|
return {
|
||||||
|
onStart: (props: SuggestionProps): void => {
|
||||||
|
const emojiListProps: EmojiListProps = {
|
||||||
|
items: props.items,
|
||||||
|
command: props.command,
|
||||||
|
editor: props.editor,
|
||||||
|
};
|
||||||
|
|
||||||
|
getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY).activeDropbarExtensions.push(CORE_EXTENSIONS.EMOJI);
|
||||||
|
|
||||||
|
component = new ReactRenderer(EmojiList, {
|
||||||
|
props: emojiListProps,
|
||||||
|
editor: props.editor,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!props.clientRect) return;
|
||||||
|
|
||||||
|
popup = tippy("body", {
|
||||||
|
getReferenceClientRect: props.clientRect as () => DOMRect,
|
||||||
|
appendTo: () =>
|
||||||
|
document.querySelector(".active-editor") ??
|
||||||
|
document.querySelector('[id^="editor-container"]') ??
|
||||||
|
document.body,
|
||||||
|
content: component.element,
|
||||||
|
showOnCreate: true,
|
||||||
|
interactive: true,
|
||||||
|
trigger: "manual",
|
||||||
|
placement: "bottom-start",
|
||||||
|
hideOnClick: false,
|
||||||
|
sticky: "reference",
|
||||||
|
animation: false,
|
||||||
|
duration: 0,
|
||||||
|
offset: [0, 8],
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onUpdate: (props: SuggestionProps): void => {
|
||||||
|
const emojiListProps: EmojiListProps = {
|
||||||
|
items: props.items,
|
||||||
|
command: props.command,
|
||||||
|
editor: props.editor,
|
||||||
|
};
|
||||||
|
|
||||||
|
component.updateProps(emojiListProps);
|
||||||
|
|
||||||
|
if (popup && props.clientRect) {
|
||||||
|
popup[0]?.setProps({
|
||||||
|
getReferenceClientRect: props.clientRect as () => DOMRect,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onKeyDown: (props: SuggestionKeyDownProps): boolean => {
|
||||||
|
if (props.event.key === "Escape") {
|
||||||
|
if (popup) {
|
||||||
|
popup[0]?.hide();
|
||||||
|
}
|
||||||
|
if (component) {
|
||||||
|
component.destroy();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return component.ref?.onKeyDown(props) || false;
|
||||||
|
},
|
||||||
|
|
||||||
|
onExit: (props: SuggestionProps): void => {
|
||||||
|
const utilityStorage = getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY);
|
||||||
|
const index = utilityStorage.activeDropbarExtensions.indexOf(CORE_EXTENSIONS.EMOJI);
|
||||||
|
if (index > -1) {
|
||||||
|
utilityStorage.activeDropbarExtensions.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (popup) {
|
||||||
|
popup[0]?.destroy();
|
||||||
|
}
|
||||||
|
if (component) {
|
||||||
|
component.destroy();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default emojiSuggestion;
|
||||||
|
|
@ -11,11 +11,13 @@ export const EnterKeyExtension = (onEnterKeyPress?: () => void) =>
|
||||||
addKeyboardShortcuts(this) {
|
addKeyboardShortcuts(this) {
|
||||||
return {
|
return {
|
||||||
Enter: () => {
|
Enter: () => {
|
||||||
const isMentionOpen = getExtensionStorage(this.editor, CORE_EXTENSIONS.MENTION)?.mentionsOpen;
|
const { activeDropbarExtensions } = getExtensionStorage(this.editor, CORE_EXTENSIONS.UTILITY);
|
||||||
if (!isMentionOpen) {
|
|
||||||
|
if (activeDropbarExtensions.length === 0) {
|
||||||
onEnterKeyPress?.();
|
onEnterKeyPress?.();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
"Shift-Enter": ({ editor }) =>
|
"Shift-Enter": ({ editor }) =>
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import { CoreEditorAdditionalExtensions } from "@/plane-editor/extensions";
|
||||||
import type { IEditorProps } from "@/types";
|
import type { IEditorProps } from "@/types";
|
||||||
// local imports
|
// local imports
|
||||||
import { CustomImageExtension } from "./custom-image/extension";
|
import { CustomImageExtension } from "./custom-image/extension";
|
||||||
|
import { EmojiExtension } from "./emoji/extension";
|
||||||
|
|
||||||
type TArguments = Pick<
|
type TArguments = Pick<
|
||||||
IEditorProps,
|
IEditorProps,
|
||||||
|
|
@ -97,6 +98,7 @@ export const CoreEditorExtensions = (args: TArguments): Extensions => {
|
||||||
},
|
},
|
||||||
...(enableHistory ? {} : { history: false }),
|
...(enableHistory ? {} : { history: false }),
|
||||||
}),
|
}),
|
||||||
|
EmojiExtension,
|
||||||
CustomQuoteExtension,
|
CustomQuoteExtension,
|
||||||
CustomHorizontalRule.configure({
|
CustomHorizontalRule.configure({
|
||||||
HTMLAttributes: {
|
HTMLAttributes: {
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,7 @@ export type TMentionExtensionOptions = MentionOptions & {
|
||||||
getMentionedEntityDetails: TMentionHandler["getMentionedEntityDetails"];
|
getMentionedEntityDetails: TMentionHandler["getMentionedEntityDetails"];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type MentionExtensionStorage = {
|
export const CustomMentionExtensionConfig = Mention.extend<TMentionExtensionOptions>({
|
||||||
mentionsOpen: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const CustomMentionExtensionConfig = Mention.extend<TMentionExtensionOptions, MentionExtensionStorage>({
|
|
||||||
addAttributes() {
|
addAttributes() {
|
||||||
return {
|
return {
|
||||||
[EMentionComponentAttributeNames.ID]: {
|
[EMentionComponentAttributeNames.ID]: {
|
||||||
|
|
@ -54,7 +50,6 @@ export const CustomMentionExtensionConfig = Mention.extend<TMentionExtensionOpti
|
||||||
addStorage() {
|
addStorage() {
|
||||||
const options = this.options;
|
const options = this.options;
|
||||||
return {
|
return {
|
||||||
mentionsOpen: false,
|
|
||||||
markdown: {
|
markdown: {
|
||||||
serialize(state: MarkdownSerializerState, node: NodeType) {
|
serialize(state: MarkdownSerializerState, node: NodeType) {
|
||||||
state.write(getMentionDisplayText(options, node));
|
state.write(getMentionDisplayText(options, node));
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ import { CommandListInstance } from "@/helpers/tippy";
|
||||||
import { TMentionHandler } from "@/types";
|
import { TMentionHandler } from "@/types";
|
||||||
// local components
|
// local components
|
||||||
import { MentionsListDropdown, MentionsListDropdownProps } from "./mentions-list-dropdown";
|
import { MentionsListDropdown, MentionsListDropdownProps } from "./mentions-list-dropdown";
|
||||||
|
import { getExtensionStorage } from "@/helpers/get-extension-storage";
|
||||||
|
import { CORE_EXTENSIONS } from "@/constants/extension";
|
||||||
|
|
||||||
export const renderMentionsDropdown =
|
export const renderMentionsDropdown =
|
||||||
(props: Pick<TMentionHandler, "searchCallback">): SuggestionOptions["render"] =>
|
(props: Pick<TMentionHandler, "searchCallback">): SuggestionOptions["render"] =>
|
||||||
|
|
@ -28,7 +30,9 @@ export const renderMentionsDropdown =
|
||||||
},
|
},
|
||||||
editor: props.editor,
|
editor: props.editor,
|
||||||
});
|
});
|
||||||
props.editor.storage.mentionsOpen = true;
|
getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY).activeDropbarExtensions.push(
|
||||||
|
CORE_EXTENSIONS.MENTION
|
||||||
|
);
|
||||||
// @ts-expect-error - Tippy types are incorrect
|
// @ts-expect-error - Tippy types are incorrect
|
||||||
popup = tippy("body", {
|
popup = tippy("body", {
|
||||||
getReferenceClientRect: props.clientRect,
|
getReferenceClientRect: props.clientRect,
|
||||||
|
|
@ -64,7 +68,11 @@ export const renderMentionsDropdown =
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
onExit: (props: { editor: Editor; event: KeyboardEvent }) => {
|
onExit: (props: { editor: Editor; event: KeyboardEvent }) => {
|
||||||
props.editor.storage.mentionsOpen = false;
|
const utilityStorage = getExtensionStorage(props.editor, CORE_EXTENSIONS.UTILITY);
|
||||||
|
const index = utilityStorage.activeDropbarExtensions.indexOf(CORE_EXTENSIONS.MENTION);
|
||||||
|
if (index > -1) {
|
||||||
|
utilityStorage.activeDropbarExtensions.splice(index, 1);
|
||||||
|
}
|
||||||
popup?.[0]?.destroy();
|
popup?.[0]?.destroy();
|
||||||
component?.destroy();
|
component?.destroy();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import {
|
||||||
ListTodo,
|
ListTodo,
|
||||||
MessageSquareText,
|
MessageSquareText,
|
||||||
MinusSquare,
|
MinusSquare,
|
||||||
|
Smile,
|
||||||
Table,
|
Table,
|
||||||
TextQuote,
|
TextQuote,
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
|
|
@ -189,6 +190,17 @@ export const getSlashCommandFilteredSections =
|
||||||
icon: <MinusSquare className="size-3.5" />,
|
icon: <MinusSquare className="size-3.5" />,
|
||||||
command: ({ editor, range }) => editor.chain().focus().deleteRange(range).setHorizontalRule().run(),
|
command: ({ editor, range }) => editor.chain().focus().deleteRange(range).setHorizontalRule().run(),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
commandKey: "emoji",
|
||||||
|
key: "emoji",
|
||||||
|
title: "Emoji",
|
||||||
|
description: "Insert an emoji",
|
||||||
|
searchTerms: ["emoji", "icons", "reaction", "emoticon", "emotags"],
|
||||||
|
icon: <Smile className="size-3.5" />,
|
||||||
|
command: ({ editor, range }) => {
|
||||||
|
editor.chain().focus().insertContentAt(range, "<p>:</p>").run();
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
import { Extension } from "@tiptap/core";
|
import { Extension } from "@tiptap/core";
|
||||||
import codemark from "prosemirror-codemark";
|
import codemark from "prosemirror-codemark";
|
||||||
// helpers
|
// helpers
|
||||||
|
import { CORE_EXTENSIONS } from "@/constants/extension";
|
||||||
import { restorePublicImages } from "@/helpers/image-helpers";
|
import { restorePublicImages } from "@/helpers/image-helpers";
|
||||||
// plugins
|
// plugins
|
||||||
|
import { TAdditionalActiveDropbarExtensions } from "@/plane-editor/types/utils";
|
||||||
import { DropHandlerPlugin } from "@/plugins/drop";
|
import { DropHandlerPlugin } from "@/plugins/drop";
|
||||||
import { FilePlugins } from "@/plugins/file/root";
|
import { FilePlugins } from "@/plugins/file/root";
|
||||||
import { MarkdownClipboardPlugin } from "@/plugins/markdown-clipboard";
|
import { MarkdownClipboardPlugin } from "@/plugins/markdown-clipboard";
|
||||||
// types
|
// types
|
||||||
|
|
||||||
import type { IEditorProps, TEditorAsset, TFileHandler, TReadOnlyFileHandler } from "@/types";
|
import type { IEditorProps, TEditorAsset, TFileHandler, TReadOnlyFileHandler } from "@/types";
|
||||||
|
type TActiveDropbarExtensions = CORE_EXTENSIONS.MENTION | CORE_EXTENSIONS.EMOJI | TAdditionalActiveDropbarExtensions;
|
||||||
|
|
||||||
declare module "@tiptap/core" {
|
declare module "@tiptap/core" {
|
||||||
interface Commands {
|
interface Commands {
|
||||||
|
|
@ -30,6 +34,7 @@ export interface UtilityExtensionStorage {
|
||||||
assetsList: TEditorAsset[];
|
assetsList: TEditorAsset[];
|
||||||
assetsUploadStatus: TFileHandler["assetsUploadStatus"];
|
assetsUploadStatus: TFileHandler["assetsUploadStatus"];
|
||||||
uploadInProgress: boolean;
|
uploadInProgress: boolean;
|
||||||
|
activeDropbarExtensions: TActiveDropbarExtensions[];
|
||||||
}
|
}
|
||||||
|
|
||||||
type Props = Pick<IEditorProps, "disabledExtensions"> & {
|
type Props = Pick<IEditorProps, "disabledExtensions"> & {
|
||||||
|
|
@ -70,6 +75,7 @@ export const UtilityExtension = (props: Props) => {
|
||||||
assetsList: [],
|
assetsList: [],
|
||||||
assetsUploadStatus: isEditable && "assetsUploadStatus" in fileHandler ? fileHandler.assetsUploadStatus : {},
|
assetsUploadStatus: isEditable && "assetsUploadStatus" in fileHandler ? fileHandler.assetsUploadStatus : {},
|
||||||
uploadInProgress: false,
|
uploadInProgress: false,
|
||||||
|
activeDropbarExtensions: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@ export type TEditorCommands =
|
||||||
| "background-color"
|
| "background-color"
|
||||||
| "text-align"
|
| "text-align"
|
||||||
| "callout"
|
| "callout"
|
||||||
| "attachment";
|
| "attachment"
|
||||||
|
| "emoji";
|
||||||
|
|
||||||
export type TCommandExtraProps = {
|
export type TCommandExtraProps = {
|
||||||
image: {
|
image: {
|
||||||
|
|
|
||||||
|
|
@ -490,3 +490,13 @@ p.editor-paragraph-block + p.editor-paragraph-block {
|
||||||
background-color: var(--editor-colors-purple-background);
|
background-color: var(--editor-colors-purple-background);
|
||||||
}
|
}
|
||||||
/* end background colors */
|
/* end background colors */
|
||||||
|
|
||||||
|
/* emoji styles */
|
||||||
|
span[data-name][data-type="emoji"] img {
|
||||||
|
display: inline !important;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
max-width: 1.25em;
|
||||||
|
max-height: 1.25em;
|
||||||
|
}
|
||||||
|
|
|
||||||
606
yarn.lock
606
yarn.lock
|
|
@ -148,6 +148,7 @@
|
||||||
"@babel/helpers@7.26.10", "@babel/helpers@^7.27.4":
|
"@babel/helpers@7.26.10", "@babel/helpers@^7.27.4":
|
||||||
version "7.26.10"
|
version "7.26.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384"
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384"
|
||||||
integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==
|
integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/template" "^7.26.9"
|
"@babel/template" "^7.26.9"
|
||||||
|
|
@ -161,6 +162,586 @@
|
||||||
"@babel/types" "^7.27.3"
|
"@babel/types" "^7.27.3"
|
||||||
|
|
||||||
"@babel/runtime@7.26.10", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
|
"@babel/runtime@7.26.10", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
|
||||||
|
version "7.26.10"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749"
|
||||||
|
integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.26.10"
|
||||||
|
|
||||||
|
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe"
|
||||||
|
integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30"
|
||||||
|
integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137"
|
||||||
|
integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1"
|
||||||
|
integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-optional-chaining" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e"
|
||||||
|
integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
|
||||||
|
version "7.21.0-placeholder-for-preset-env.2"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
|
||||||
|
integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-import-assertions@^7.26.0":
|
||||||
|
version "7.26.0"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f"
|
||||||
|
integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-import-attributes@^7.26.0":
|
||||||
|
version "7.26.0"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7"
|
||||||
|
integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-jsx@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290"
|
||||||
|
integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-typescript@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
|
||||||
|
integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
|
||||||
|
version "7.18.6"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
|
||||||
|
integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
|
||||||
|
"@babel/helper-plugin-utils" "^7.18.6"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-arrow-functions@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845"
|
||||||
|
integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-async-generator-functions@^7.26.8":
|
||||||
|
version "7.26.8"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8"
|
||||||
|
integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
"@babel/helper-remap-async-to-generator" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.26.8"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-async-to-generator@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71"
|
||||||
|
integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-imports" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-remap-async-to-generator" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-block-scoped-functions@^7.26.5":
|
||||||
|
version "7.26.5"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e"
|
||||||
|
integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-block-scoping@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1"
|
||||||
|
integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-class-properties@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f"
|
||||||
|
integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-class-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-class-static-block@^7.26.0":
|
||||||
|
version "7.26.0"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0"
|
||||||
|
integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-class-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-classes@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52"
|
||||||
|
integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-annotate-as-pure" "^7.25.9"
|
||||||
|
"@babel/helper-compilation-targets" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-replace-supers" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.25.9"
|
||||||
|
globals "^11.1.0"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-computed-properties@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b"
|
||||||
|
integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/template" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-destructuring@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1"
|
||||||
|
integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-dotall-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a"
|
||||||
|
integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-duplicate-keys@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d"
|
||||||
|
integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31"
|
||||||
|
integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-dynamic-import@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8"
|
||||||
|
integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-exponentiation-operator@^7.26.3":
|
||||||
|
version "7.26.3"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc"
|
||||||
|
integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-export-namespace-from@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2"
|
||||||
|
integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-for-of@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755"
|
||||||
|
integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-function-name@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97"
|
||||||
|
integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-compilation-targets" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-json-strings@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660"
|
||||||
|
integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-literals@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de"
|
||||||
|
integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-logical-assignment-operators@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7"
|
||||||
|
integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-member-expression-literals@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de"
|
||||||
|
integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-modules-amd@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5"
|
||||||
|
integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-transforms" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-modules-commonjs@^7.25.9", "@babel/plugin-transform-modules-commonjs@^7.26.3":
|
||||||
|
version "7.26.3"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb"
|
||||||
|
integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-transforms" "^7.26.0"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-modules-systemjs@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8"
|
||||||
|
integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-transforms" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-validator-identifier" "^7.25.9"
|
||||||
|
"@babel/traverse" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-modules-umd@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9"
|
||||||
|
integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-transforms" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a"
|
||||||
|
integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-new-target@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd"
|
||||||
|
integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6":
|
||||||
|
version "7.26.6"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe"
|
||||||
|
integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-numeric-separator@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1"
|
||||||
|
integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-object-rest-spread@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18"
|
||||||
|
integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-compilation-targets" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-parameters" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-object-super@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03"
|
||||||
|
integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-replace-supers" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-optional-catch-binding@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3"
|
||||||
|
integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-optional-chaining@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd"
|
||||||
|
integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-parameters@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257"
|
||||||
|
integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-private-methods@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57"
|
||||||
|
integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-class-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-private-property-in-object@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33"
|
||||||
|
integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-annotate-as-pure" "^7.25.9"
|
||||||
|
"@babel/helper-create-class-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-property-literals@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f"
|
||||||
|
integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-regenerator@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b"
|
||||||
|
integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
regenerator-transform "^0.15.2"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-regexp-modifiers@^7.26.0":
|
||||||
|
version "7.26.0"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850"
|
||||||
|
integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-reserved-words@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce"
|
||||||
|
integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-shorthand-properties@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2"
|
||||||
|
integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-spread@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9"
|
||||||
|
integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-sticky-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32"
|
||||||
|
integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-template-literals@^7.26.8":
|
||||||
|
version "7.26.8"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5"
|
||||||
|
integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-typeof-symbol@^7.26.7":
|
||||||
|
version "7.26.7"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz#d0e33acd9223744c1e857dbd6fa17bd0a3786937"
|
||||||
|
integrity sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-typescript@^7.25.9":
|
||||||
|
version "7.26.8"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz#2e9caa870aa102f50d7125240d9dbf91334b0950"
|
||||||
|
integrity sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-annotate-as-pure" "^7.25.9"
|
||||||
|
"@babel/helper-create-class-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
|
||||||
|
"@babel/plugin-syntax-typescript" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-unicode-escapes@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82"
|
||||||
|
integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-unicode-property-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3"
|
||||||
|
integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-unicode-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1"
|
||||||
|
integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-unicode-sets-regex@^7.25.9":
|
||||||
|
version "7.25.9"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe"
|
||||||
|
integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-create-regexp-features-plugin" "^7.25.9"
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/preset-env@^7.25.4":
|
||||||
|
version "7.26.8"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.8.tgz#7af0090829b606d2046db99679004731e1dc364d"
|
||||||
|
integrity sha512-um7Sy+2THd697S4zJEfv/U5MHGJzkN2xhtsR3T/SWRbVSic62nbISh51VVfU9JiO/L/Z97QczHTaFVkOU8IzNg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/compat-data" "^7.26.8"
|
||||||
|
"@babel/helper-compilation-targets" "^7.26.5"
|
||||||
|
"@babel/helper-plugin-utils" "^7.26.5"
|
||||||
|
"@babel/helper-validator-option" "^7.25.9"
|
||||||
|
"@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9"
|
||||||
|
"@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9"
|
||||||
|
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9"
|
||||||
|
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9"
|
||||||
|
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9"
|
||||||
|
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
|
||||||
|
"@babel/plugin-syntax-import-assertions" "^7.26.0"
|
||||||
|
"@babel/plugin-syntax-import-attributes" "^7.26.0"
|
||||||
|
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
|
||||||
|
"@babel/plugin-transform-arrow-functions" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-async-generator-functions" "^7.26.8"
|
||||||
|
"@babel/plugin-transform-async-to-generator" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-block-scoped-functions" "^7.26.5"
|
||||||
|
"@babel/plugin-transform-block-scoping" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-class-properties" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-class-static-block" "^7.26.0"
|
||||||
|
"@babel/plugin-transform-classes" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-computed-properties" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-destructuring" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-dotall-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-duplicate-keys" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-dynamic-import" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-exponentiation-operator" "^7.26.3"
|
||||||
|
"@babel/plugin-transform-export-namespace-from" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-for-of" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-function-name" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-json-strings" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-literals" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-logical-assignment-operators" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-member-expression-literals" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-modules-amd" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-modules-commonjs" "^7.26.3"
|
||||||
|
"@babel/plugin-transform-modules-systemjs" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-modules-umd" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-new-target" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6"
|
||||||
|
"@babel/plugin-transform-numeric-separator" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-object-rest-spread" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-object-super" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-optional-catch-binding" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-optional-chaining" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-parameters" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-private-methods" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-private-property-in-object" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-property-literals" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-regenerator" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-regexp-modifiers" "^7.26.0"
|
||||||
|
"@babel/plugin-transform-reserved-words" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-shorthand-properties" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-spread" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-sticky-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-template-literals" "^7.26.8"
|
||||||
|
"@babel/plugin-transform-typeof-symbol" "^7.26.7"
|
||||||
|
"@babel/plugin-transform-unicode-escapes" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-unicode-property-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-unicode-regex" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-unicode-sets-regex" "^7.25.9"
|
||||||
|
"@babel/preset-modules" "0.1.6-no-external-plugins"
|
||||||
|
babel-plugin-polyfill-corejs2 "^0.4.10"
|
||||||
|
babel-plugin-polyfill-corejs3 "^0.11.0"
|
||||||
|
babel-plugin-polyfill-regenerator "^0.6.1"
|
||||||
|
core-js-compat "^3.40.0"
|
||||||
|
semver "^6.3.1"
|
||||||
|
|
||||||
|
"@babel/preset-modules@0.1.6-no-external-plugins":
|
||||||
|
version "0.1.6-no-external-plugins"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
|
||||||
|
integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
|
"@babel/types" "^7.4.4"
|
||||||
|
esutils "^2.0.2"
|
||||||
|
|
||||||
|
"@babel/preset-typescript@^7.24.7":
|
||||||
|
version "7.26.0"
|
||||||
|
resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d"
|
||||||
|
integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.25.9"
|
||||||
|
"@babel/helper-validator-option" "^7.25.9"
|
||||||
|
"@babel/plugin-syntax-jsx" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-modules-commonjs" "^7.25.9"
|
||||||
|
"@babel/plugin-transform-typescript" "^7.25.9"
|
||||||
|
|
||||||
|
"@babel/runtime@7.26.10", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
|
||||||
version "7.26.10"
|
version "7.26.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2"
|
||||||
integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==
|
integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==
|
||||||
|
|
@ -2031,9 +2612,18 @@
|
||||||
integrity sha512-7MnILbhRZRyROlMUgyntzRZ/EZlqNB8fO761RNjJxR2WMb49R4yc04fz7/+f/QH/hwxoS13bKfsNUDAsDxA5Aw==
|
integrity sha512-7MnILbhRZRyROlMUgyntzRZ/EZlqNB8fO761RNjJxR2WMb49R4yc04fz7/+f/QH/hwxoS13bKfsNUDAsDxA5Aw==
|
||||||
|
|
||||||
"@tiptap/extension-dropcursor@^2.11.0":
|
"@tiptap/extension-dropcursor@^2.11.0":
|
||||||
|
version "2.11.5"
|
||||||
|
resolved "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.11.5.tgz#a1d6fad3379551449534bdb8135da2577a8ec8fb"
|
||||||
|
integrity sha512-uIN7L3FU0904ec7FFFbndO7RQE/yiON4VzAMhNn587LFMyWO8US139HXIL4O8dpZeYwYL3d1FnDTflZl6CwLlg==
|
||||||
|
|
||||||
|
"@tiptap/extension-emoji@^2.22.3":
|
||||||
version "2.22.3"
|
version "2.22.3"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.22.3.tgz#729ddd6d6b15432c2e15ba196162b7dce16c5fd4"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-emoji/-/extension-emoji-2.22.3.tgz#f149933a9f62eb65cb9b86c6a64852ea471c3e14"
|
||||||
integrity sha512-yQxSfTWjdUQS+bh6KiNLR9KIMsn1SElzycQe4XE+0eoaetapGtKqxfwkTbbQdNgQOU5wQG1KOda221mnPvkpAA==
|
integrity sha512-OuMQjlY5OjysJgLA75eBUe+RWoh+apwjWydUfimFpMcNa55HQTnFsPZXxIcbcTxqHbimhjgUlyd8S+F8/011VA==
|
||||||
|
dependencies:
|
||||||
|
emoji-regex "^10.4.0"
|
||||||
|
emojibase-data "^15"
|
||||||
|
is-emoji-supported "^0.0.5"
|
||||||
|
|
||||||
"@tiptap/extension-floating-menu@^2.11.0":
|
"@tiptap/extension-floating-menu@^2.11.0":
|
||||||
version "2.22.3"
|
version "2.22.3"
|
||||||
|
|
@ -4846,7 +5436,7 @@ emoji-picker-react@^4.5.16:
|
||||||
dependencies:
|
dependencies:
|
||||||
flairup "1.0.0"
|
flairup "1.0.0"
|
||||||
|
|
||||||
emoji-regex@^10.3.0:
|
emoji-regex@^10.3.0, emoji-regex@^10.4.0:
|
||||||
version "10.4.0"
|
version "10.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
|
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
|
||||||
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
|
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
|
||||||
|
|
@ -4861,6 +5451,11 @@ emoji-regex@^9.2.2:
|
||||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
|
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
|
||||||
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
|
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
|
||||||
|
|
||||||
|
emojibase-data@^15:
|
||||||
|
version "15.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-15.3.2.tgz#2742246bfe14f16a7829b42ca156dec09934cf85"
|
||||||
|
integrity sha512-TpDyTDDTdqWIJixV5sTA6OQ0P0JfIIeK2tFRR3q56G9LK65ylAZ7z3KyBXokpvTTJ+mLUXQXbLNyVkjvnTLE+A==
|
||||||
|
|
||||||
enabled@2.0.x:
|
enabled@2.0.x:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
|
resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
|
||||||
|
|
@ -6407,6 +7002,11 @@ is-docker@^2.0.0, is-docker@^2.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
||||||
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
|
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
|
||||||
|
|
||||||
|
is-emoji-supported@^0.0.5:
|
||||||
|
version "0.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-emoji-supported/-/is-emoji-supported-0.0.5.tgz#f22301b22c63d6322935e829f39dfa59d03a7fe2"
|
||||||
|
integrity sha512-WOlXUhDDHxYqcSmFZis+xWhhqXiK2SU0iYiqmth5Ip0FHLZQAt9rKL5ahnilE8/86WH8tZ3bmNNNC+bTzamqlw==
|
||||||
|
|
||||||
is-extglob@^2.1.1:
|
is-extglob@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue