├── src
├── constants.ts
├── assets.ts
├── build.ts
├── index.ts
├── loaders.ts
└── utils.ts
├── .github
└── FUNDING.yml
├── .vscode
└── extensions.json
├── pnpm-workspace.yaml
├── global.d.ts
├── .prettierrc
├── demo
├── css
│ └── index.css
├── extensions
│ ├── index.js
│ ├── underline.js
│ ├── heading.js
│ ├── italic.js
│ ├── strikethrough.js
│ ├── bold.js
│ └── textAlign.js
├── index.html
├── index.js
├── vite.config.js
├── toolbar
│ ├── History.vue
│ ├── FormatText.vue
│ ├── Align.vue
│ └── Heading.vue
├── package.json
├── components
│ ├── InputText.vue
│ └── Button.vue
└── App.vue
├── .gitignore
├── vite.config.ts
├── tsconfig.json
├── LICENCE.md
├── package.json
├── README.md
└── pnpm-lock.yaml
/src/constants.ts:
--------------------------------------------------------------------------------
1 | export const STYLE_TYPE = "text/tailwindcss";
2 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: craigrileyuk
2 | buy_me_a_coffee: craigrileyuk
3 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar"]
3 | }
4 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - demo
3 |
4 | onlyBuiltDependencies:
5 | - esbuild
6 |
--------------------------------------------------------------------------------
/global.d.ts:
--------------------------------------------------------------------------------
1 | declare module "tailwindcss/*.css?raw" {
2 | const content: string;
3 | export default content;
4 | }
5 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["prettier-plugin-tailwindcss"],
3 | "useTabs": true,
4 | "printWidth": 120,
5 | "tabWidth": 4,
6 | "semi": true
7 | }
8 |
--------------------------------------------------------------------------------
/demo/css/index.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss";
2 |
3 | @theme {
4 | --font-sans: "Roboto", "sans-serif";
5 | }
6 |
7 | #app {
8 | min-height: 100dvh;
9 | display: flex;
10 | flex-flow: column;
11 | }
12 |
--------------------------------------------------------------------------------
/demo/extensions/index.js:
--------------------------------------------------------------------------------
1 | export * from "./textAlign";
2 | export * from "./heading";
3 | export * from "./bold";
4 | export * from "./italic";
5 | export * from "./strikethrough";
6 | export * from "./underline";
7 |
--------------------------------------------------------------------------------
/src/assets.ts:
--------------------------------------------------------------------------------
1 | import index from "tailwindcss/index.css?raw";
2 | import preflight from "tailwindcss/preflight.css?raw";
3 | import theme from "tailwindcss/theme.css?raw";
4 | import utilities from "tailwindcss/utilities.css?raw";
5 |
6 | export default { index, preflight, theme, utilities };
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | tsconfig.tsbuildinfo
27 | types/*
28 |
--------------------------------------------------------------------------------
/demo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Vue useTailwind: Demonstration
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/demo/index.js:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 | import { createVuetify } from "vuetify";
3 | import colours from "vuetify/util/colors";
4 | import App from "./App.vue";
5 | import { aliases, mdi } from "vuetify/iconsets/mdi-svg";
6 | import "./css/index.css";
7 | import "vuetify/styles";
8 |
9 | const app = createApp(App);
10 | const vuetify = createVuetify({
11 | icons: {
12 | defaultSet: "mdi",
13 | aliases,
14 | sets: {
15 | mdi,
16 | },
17 | },
18 | theme: {
19 | themes: {
20 | light: {
21 | colors: {
22 | primary: colours.teal.darken1,
23 | },
24 | },
25 | },
26 | },
27 | });
28 |
29 | app.use(vuetify).mount("#app");
30 |
--------------------------------------------------------------------------------
/demo/vite.config.js:
--------------------------------------------------------------------------------
1 | import vue from "@vitejs/plugin-vue";
2 | import { defineConfig } from "vite";
3 | import { resolve } from "node:path";
4 | import vuetify, { transformAssetUrls } from "vite-plugin-vuetify";
5 |
6 | export default defineConfig(({ mode }) => {
7 | const alias =
8 | mode === "development"
9 | ? {
10 | "vue-use-tailwind": resolve("../src"),
11 | }
12 | : {};
13 |
14 | return {
15 | resolve: {
16 | alias,
17 | },
18 | base: "/vue-use-tailwind/",
19 | assetsDir: "",
20 | plugins: [
21 | vue({
22 | template: {
23 | transformAssetUrls,
24 | },
25 | }),
26 | vuetify(),
27 | ],
28 | };
29 | });
30 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import vue from "@vitejs/plugin-vue";
3 | import { resolve } from "node:path";
4 |
5 | // https://vite.dev/config/
6 | export default defineConfig({
7 | build: {
8 | lib: {
9 | entry: resolve("./src/index.ts"),
10 | formats: ["es", "cjs"],
11 | },
12 | target: "esnext",
13 | rollupOptions: {
14 | external: [
15 | "vue",
16 | "tailwindcss",
17 | "tailwindcss/index.css?raw",
18 | "tailwindcss/preflight.css?raw",
19 | "tailwindcss/theme.css?raw",
20 | "tailwindcss/utilities.css?raw",
21 | ],
22 | },
23 | },
24 | plugins: [],
25 | optimizeDeps: {
26 | exclude: ["@tailwindcss/typography"], // Ensure it's loaded at runtime
27 | },
28 | });
29 |
--------------------------------------------------------------------------------
/demo/extensions/underline.js:
--------------------------------------------------------------------------------
1 | import Underline from "@tiptap/extension-underline";
2 | import { mergeAttributes } from "@tiptap/core";
3 |
4 | // 2. Overwrite the keyboard shortcuts
5 | const TailwindUnderline = Underline.extend({
6 | parseHTML() {
7 | return [
8 | {
9 | tag: "u",
10 | },
11 | {
12 | tag: "span[class*=underline]",
13 | },
14 | {
15 | style: "text-decoration",
16 | consuming: false,
17 | getAttrs: (style) => (style.includes("underline") ? {} : false),
18 | },
19 | ];
20 | },
21 | renderHTML({ HTMLAttributes }) {
22 | return [
23 | "span",
24 | mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
25 | class: "underline",
26 | }),
27 | 0,
28 | ];
29 | },
30 | });
31 |
32 | export { TailwindUnderline };
33 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": ["src/**/*","global.d.ts"],
3 | "exclude": ["node_modules"],
4 | "compilerOptions": {
5 | "rootDir": ".",
6 | "noEmitOnError": true,
7 |
8 | "lib": ["DOM", "DOM.Iterable", "ES2022"],
9 | "target": "ES2020",
10 | "types": ["node"],
11 | "declaration": true,
12 | "emitDeclarationOnly": true,
13 |
14 | "module": "ESNext",
15 | "moduleResolution": "bundler",
16 | "resolveJsonModule": true,
17 | "allowSyntheticDefaultImports": true,
18 | "outDir": "types",
19 |
20 | "noImplicitThis": true,
21 | "noUnusedLocals": true,
22 | "noUnusedParameters": true,
23 | "preserveConstEnums": true,
24 | "removeComments": true,
25 | "typeRoots": ["./node_modules/@types"],
26 | "esModuleInterop": true,
27 | "strict": true,
28 | "skipLibCheck": true
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/demo/extensions/heading.js:
--------------------------------------------------------------------------------
1 | import Heading from "@tiptap/extension-heading";
2 | import { mergeAttributes } from "@tiptap/core";
3 |
4 | // 2. Overwrite the keyboard shortcuts
5 | const TailwindHeading = Heading.extend({
6 | renderHTML({ node, HTMLAttributes }) {
7 | const hasLevel = this.options.levels.includes(node.attrs.level);
8 | const level = hasLevel ? node.attrs.level : this.options.levels[0];
9 |
10 | const className =
11 | {
12 | 1: "text-5xl",
13 | 2: "text-4xl",
14 | 3: "text-3xl",
15 | 4: "text-2xl",
16 | 5: "text-xl",
17 | 6: "text-base font-bold",
18 | }[level] ?? null;
19 |
20 | return [
21 | `h${level}`,
22 | mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
23 | class: className,
24 | }),
25 | 0,
26 | ];
27 | },
28 | });
29 |
30 | export { TailwindHeading };
31 |
--------------------------------------------------------------------------------
/demo/extensions/italic.js:
--------------------------------------------------------------------------------
1 | import Italic from "@tiptap/extension-italic";
2 | import { mergeAttributes } from "@tiptap/core";
3 |
4 | // 2. Overwrite the keyboard shortcuts
5 | const TailwindItalic = Italic.extend({
6 | parseHTML() {
7 | return [
8 | {
9 | tag: "em",
10 | },
11 | {
12 | tag: "span[class*=italic]",
13 | },
14 | {
15 | tag: "i",
16 | getAttrs: (node) => node.style.fontStyle !== "normal" && null,
17 | },
18 | {
19 | style: "font-style=normal",
20 | clearMark: (mark) => mark.type.name === this.name,
21 | },
22 | {
23 | style: "font-style=italic",
24 | },
25 | ];
26 | },
27 | renderHTML({ HTMLAttributes }) {
28 | return [
29 | "span",
30 | mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
31 | class: "italic",
32 | }),
33 | 0,
34 | ];
35 | },
36 | });
37 |
38 | export { TailwindItalic };
39 |
--------------------------------------------------------------------------------
/demo/extensions/strikethrough.js:
--------------------------------------------------------------------------------
1 | import Strikethrough from "@tiptap/extension-strike";
2 | import { mergeAttributes } from "@tiptap/core";
3 |
4 | // 2. Overwrite the keyboard shortcuts
5 | const TailwindStrikethrough = Strikethrough.extend({
6 | parseHTML() {
7 | return [
8 | {
9 | tag: "s",
10 | },
11 | {
12 | tag: "del",
13 | },
14 | {
15 | tag: "strike",
16 | },
17 | {
18 | tag: "span[class*=line-through]",
19 | },
20 | {
21 | style: "text-decoration",
22 | consuming: false,
23 | getAttrs: (style) => (style.includes("line-through") ? {} : false),
24 | },
25 | ];
26 | },
27 | renderHTML({ HTMLAttributes }) {
28 | return [
29 | "span",
30 | mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
31 | class: "line-through",
32 | }),
33 | 0,
34 | ];
35 | },
36 | });
37 |
38 | export { TailwindStrikethrough };
39 |
--------------------------------------------------------------------------------
/demo/toolbar/History.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
33 |
--------------------------------------------------------------------------------
/demo/extensions/bold.js:
--------------------------------------------------------------------------------
1 | import Bold from "@tiptap/extension-bold";
2 | import { mergeAttributes } from "@tiptap/core";
3 |
4 | // 2. Overwrite the keyboard shortcuts
5 | const TailwindBold = Bold.extend({
6 | parseHTML() {
7 | return [
8 | {
9 | tag: "strong",
10 | },
11 | {
12 | tag: "span[class*=font-bold]",
13 | },
14 | {
15 | tag: "b",
16 | getAttrs: (node) => node.style.fontWeight !== "normal" && null,
17 | },
18 | {
19 | style: "font-weight=400",
20 | clearMark: (mark) => mark.type.name === this.name,
21 | },
22 | {
23 | style: "font-weight",
24 | getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null,
25 | },
26 | ];
27 | },
28 | renderHTML({ HTMLAttributes }) {
29 | return [
30 | "span",
31 | mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
32 | class: "font-bold",
33 | }),
34 | 0,
35 | ];
36 | },
37 | });
38 |
39 | export { TailwindBold };
40 |
--------------------------------------------------------------------------------
/LICENCE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright © 2025 Evo Mark Ltd
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "type": "module",
7 | "scripts": {
8 | "dev": "vite",
9 | "build": "vite build",
10 | "preview": "vite preview"
11 | },
12 | "keywords": [],
13 | "author": "",
14 | "license": "MIT",
15 | "dependencies": {
16 | "@mdi/js": "^7.4.47",
17 | "@tailwindcss/typography": "^0.5.16",
18 | "@tiptap/core": "^2.11.7",
19 | "@tiptap/extension-bold": "^2.11.7",
20 | "@tiptap/extension-heading": "^2.11.7",
21 | "@tiptap/extension-italic": "^2.11.7",
22 | "@tiptap/extension-strike": "^2.11.7",
23 | "@tiptap/extension-text-align": "^2.11.7",
24 | "@tiptap/extension-underline": "^2.11.7",
25 | "@tiptap/pm": "^2.11.7",
26 | "@tiptap/starter-kit": "^2.11.7",
27 | "@tiptap/vue-3": "^2.11.7",
28 | "@vueuse/core": "^13.0.0",
29 | "prosemirror-state": "^1.4.3",
30 | "striptags": "^3.2.0",
31 | "vue": "^3.5.13",
32 | "vue-use-tailwind": "link:.."
33 | },
34 | "devDependencies": {
35 | "@vitejs/plugin-vue": "^5.2.3",
36 | "vite-plugin-vuetify": "^2.1.1",
37 | "vuetify": "^3.8.0"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/demo/components/InputText.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 | {{ label }}
15 |
16 |
17 |
18 |
40 |
--------------------------------------------------------------------------------
/demo/toolbar/FormatText.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
18 |
26 |
34 |
35 |
36 |
46 |
--------------------------------------------------------------------------------
/src/build.ts:
--------------------------------------------------------------------------------
1 | import type { InstanceProperties } from "./utils";
2 |
3 | type Kind = "full" | "incremental";
4 |
5 | export async function build(
6 | kind: Kind,
7 | { compiler, sheet, root, classes }: Pick,
8 | ) {
9 | if (!compiler) return;
10 | const instance = await compiler;
11 |
12 | // 1. Refresh the known list of classes
13 | let newClasses = new Set();
14 |
15 | for (let element of root.value.querySelectorAll("[class]")) {
16 | for (let c of element.classList) {
17 | if (classes.value.has(c)) continue;
18 |
19 | classes.value.add(c);
20 | newClasses.add(c);
21 | }
22 | }
23 |
24 | if (newClasses.size === 0 && kind === "incremental") return;
25 |
26 | // 2. Compile the CSS
27 | sheet.value.textContent = instance.build(Array.from(newClasses) as string[]);
28 | }
29 |
30 | export function rebuild(
31 | kind: Kind,
32 | {
33 | compiler,
34 | buildQueue,
35 | sheet,
36 | root,
37 | classes,
38 | }: Pick,
39 | ) {
40 | async function run() {
41 | if (!compiler && kind !== "full") {
42 | return;
43 | }
44 |
45 | if (kind === "full") {
46 | await compiler;
47 | }
48 |
49 | await build(kind, { compiler, sheet, root, classes });
50 | }
51 |
52 | buildQueue.value = buildQueue.value.then(run);
53 | }
54 |
--------------------------------------------------------------------------------
/demo/extensions/textAlign.js:
--------------------------------------------------------------------------------
1 | import TextAlign from "@tiptap/extension-text-align";
2 |
3 | // 2. Overwrite the keyboard shortcuts
4 | const TailwindTextAlign = TextAlign.extend({
5 | addOptions() {
6 | return {
7 | types: [],
8 | alignments: ["left", "center", "right", "justify", "start", "end"],
9 | defaultAlignment: null,
10 | };
11 | },
12 | addGlobalAttributes() {
13 | return [
14 | {
15 | types: this.options.types,
16 | attributes: {
17 | textAlign: {
18 | default: this.options.defaultAlignment,
19 | parseHTML: (element) => {
20 | if (element.classList.contains("text-left")) return "left";
21 | else if (element.classList.contains("text-center")) return "center";
22 | else if (element.classList.contains("text-right")) return "right";
23 | else if (element.classList.contains("text-justify")) return "justify";
24 | else if (element.classList.contains("text-start")) return "start";
25 | else if (element.classList.contains("text-end")) return "end";
26 | else return this.options.defaultAlignment;
27 | },
28 | renderHTML: (attributes) => {
29 | if (!attributes.textAlign) {
30 | return {};
31 | }
32 |
33 | return { class: `text-${attributes.textAlign}` };
34 | },
35 | },
36 | },
37 | },
38 | ];
39 | },
40 | });
41 |
42 | export { TailwindTextAlign };
43 |
--------------------------------------------------------------------------------
/demo/toolbar/Align.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
15 |
16 |
17 |
73 |
--------------------------------------------------------------------------------
/demo/toolbar/Heading.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
17 |
18 |
19 |
66 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { ref, watch, toValue, MaybeRefOrGetter, type Ref } from "vue";
2 | import { type UserConfig, createElementObserver, createCompiler } from "./utils";
3 | import { rebuild } from "./build";
4 | type Compiler = ReturnType;
5 |
6 | type GShadowRoot = typeof global.ShadowRoot.prototype;
7 | interface ShadowRootExpose {
8 | shadow_root?: GShadowRoot;
9 | }
10 |
11 | export const useTailwind = (
12 | el: MaybeRefOrGetter,
13 | { theme, plugins } = {} as UserConfig,
14 | ) => {
15 | let compiler: Compiler;
16 | const observer = ref();
17 | const isInit = ref(false);
18 | const classes: Ref> = ref(new Set());
19 | const lastCss = ref("");
20 | const sheet = ref(document.createElement("style"));
21 | const buildQueue = ref();
22 | const root = ref();
23 |
24 | const bootstrap = () => {
25 | if (!root.value) return (isInit.value = false);
26 | const styleObserver = new MutationObserver(() =>
27 | rebuild("full", { buildQueue, compiler, sheet, root, classes }),
28 | );
29 |
30 | compiler = createCompiler(root, { lastCss, classes, styleObserver, theme, plugins }) as Compiler;
31 | buildQueue.value = compiler;
32 | rebuild("full", { buildQueue, compiler, sheet, root, classes });
33 | root.value.appendChild(sheet.value);
34 | observer.value = createElementObserver(root, { styleObserver, sheet, compiler, buildQueue, classes });
35 | };
36 |
37 | watch(
38 | () => toValue(el),
39 | (maybeShadow) => {
40 | if (maybeShadow && !isInit.value) {
41 | if ("shadow_root" in maybeShadow) {
42 | root.value = maybeShadow.shadow_root;
43 | } else {
44 | root.value = maybeShadow;
45 | }
46 | bootstrap();
47 | isInit.value = true;
48 | }
49 | },
50 | {
51 | immediate: true,
52 | },
53 | );
54 |
55 | return {
56 | isInit,
57 | observer,
58 | root,
59 | classes,
60 | sheet,
61 | };
62 | };
63 |
--------------------------------------------------------------------------------
/src/loaders.ts:
--------------------------------------------------------------------------------
1 | import { parseUserTheme, parseUserPlugins, type UserConfig } from "./utils";
2 | import type { PluginCreator } from "tailwindcss/plugin";
3 |
4 | import css from "./assets";
5 |
6 | export async function loadModule(
7 | id: string,
8 | base: string,
9 | type: string,
10 | plugins: UserConfig["plugins"],
11 | ): Promise<{
12 | module: PluginCreator;
13 | base: string;
14 | }> {
15 | if (type !== "plugin") {
16 | throw new Error(`useTailwind does not support config files.`);
17 | }
18 |
19 | const index = id.split("_").at(-1);
20 | if (index === undefined || !plugins) {
21 | throw new Error(`useTailwind encountered an error loading ${id}.`);
22 | }
23 | const resolvedPlugin = plugins[parseInt(index, 10)];
24 | if (resolvedPlugin) {
25 | return {
26 | base,
27 | module: resolvedPlugin ?? resolvedPlugin,
28 | };
29 | } else throw new Error(`useTailwind encountered an error loading ${id}.`);
30 | }
31 |
32 | export async function loadStylesheet(id: string, base: string, { theme, plugins }: UserConfig) {
33 | function load() {
34 | if (id === "tailwindcss") {
35 | const userTheme = parseUserTheme(theme);
36 | const pluginImports = parseUserPlugins(plugins);
37 |
38 | return {
39 | base,
40 | content: css.index + "\n" + userTheme + "\n" + pluginImports,
41 | };
42 | } else if (id === "tailwindcss/preflight" || id === "tailwindcss/preflight.css" || id === "./preflight.css") {
43 | return {
44 | base,
45 | content: css.preflight,
46 | };
47 | } else if (id === "tailwindcss/theme" || id === "tailwindcss/theme.css" || id === "./theme.css") {
48 | return {
49 | base,
50 | content: css.theme,
51 | };
52 | } else if (id === "tailwindcss/utilities" || id === "tailwindcss/utilities.css" || id === "./utilities.css") {
53 | return {
54 | base,
55 | content: css.utilities,
56 | };
57 | }
58 |
59 | throw new Error(`The browser build does not support @import for "${id}"`);
60 | }
61 |
62 | let sheet = load();
63 |
64 | return sheet;
65 | }
66 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-use-tailwind",
3 | "version": "1.0.0",
4 | "author": "Craig Riley ",
5 | "license": "MIT",
6 | "repository": {
7 | "type": "git",
8 | "url": "git+https://github.com/evo-mark/vue-use-tailwind.git"
9 | },
10 | "bugs": {
11 | "url": "https://github.com/evo-mark/vue-use-tailwind/issues"
12 | },
13 | "keywords": [
14 | "wysiwyg",
15 | "tailwind",
16 | "jit",
17 | "shadow",
18 | "isolated",
19 | "css",
20 | "design",
21 | "tailwindcss",
22 | "tiptap",
23 | "html",
24 | "generator"
25 | ],
26 | "type": "module",
27 | "scripts": {
28 | "dev": "vite",
29 | "build": "vue-tsc -b && vite build",
30 | "demo": "pnpm --filter=demo run dev",
31 | "demo:build": "pnpm --filter=demo run build",
32 | "demo:preview": "pnpm --filter=demo run preview",
33 | "demo:deploy": "npm run demo:build && gh-pages -d demo/dist",
34 | "prepublishOnly": "npm run build"
35 | },
36 | "types": "./types/index.d.ts",
37 | "main": "./dist/vite-use-tailwind.cjs",
38 | "module": "./dist/vite-use-tailwind.js",
39 | "exports": {
40 | ".": {
41 | "types": "./types/index.d.ts",
42 | "import": "./dist/vue-use-tailwind.js",
43 | "require": "./dist/vue-use-tailwind.cjs"
44 | }
45 | },
46 | "files": [
47 | "dist",
48 | "types",
49 | "tsconfig.tsbuildinfo"
50 | ],
51 | "dependencies": {},
52 | "devDependencies": {
53 | "@types/node": "^22.14.0",
54 | "@vitejs/plugin-vue": "^5.2.3",
55 | "@vue/tsconfig": "^0.7.0",
56 | "gh-pages": "^6.3.0",
57 | "prettier": "^3.5.3",
58 | "prettier-plugin-tailwindcss": "^0.6.11",
59 | "tailwindcss": "^4.1.3",
60 | "typescript": "^5.8.3",
61 | "vite": "^6.2.5",
62 | "vue": "^3.5.13",
63 | "vue-tsc": "^2.2.8"
64 | },
65 | "peerDependencies": {
66 | "tailwindcss": "^4.0.0",
67 | "vue": "^3.3.0",
68 | "vue-shadow-dom": "^4.0.0"
69 | },
70 | "peerDependenciesMeta": {
71 | "vue-shadow-dom": {
72 | "optional": true
73 | }
74 | },
75 | "packageManager": "pnpm@10.7.1+sha512.2d92c86b7928dc8284f53494fb4201f983da65f0fb4f0d40baafa5cf628fa31dae3e5968f12466f17df7e97310e30f343a648baea1b9b350685dafafffdf5808"
76 | }
77 |
--------------------------------------------------------------------------------
/demo/components/Button.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
12 |
13 |
21 |
25 |
29 |
30 |
...Loading
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
47 |
--------------------------------------------------------------------------------
/demo/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Vue useTailwind
5 |
6 |
7 |
8 |
9 |
10 |
16 |
17 |
23 |
24 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
{{ className }}
38 |
39 |
40 |
41 | Note that the JIT compiler doesn't currently remove unused classes generated in this
42 | session.
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | {{ modelValue }}
52 |
53 |
54 |
55 |
56 |
57 |
58 | © {{ new Date().getFullYear() }} Evo Mark Ltd
59 |
60 |
61 |
62 |
63 |
136 |
137 |
146 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | # Vue useTailwind
18 |
19 | Bring Tailwind's JIT compiler to the browser with features designed around building your own WYSIWYG or CMS.
20 |
21 | - Tailwind v4+
22 | - Supports user-provided themes
23 | - Supports user-provided plugins
24 | - Use in the main DOM or in isolated Shadow DOM components
25 | - Run multiple different instances on the same page
26 | - Get a reactive list of your used classes
27 |
28 | See demo at https://evo-mark.github.io/vue-use-tailwind/
29 |
30 | > Not affiliated with the @vueuse project
31 |
32 | ## Install
33 |
34 | ```sh
35 | pnpm add vue-use-tailwind
36 | ```
37 |
38 | ## Usage
39 |
40 | Below is a basic example of **useTailwind** inside a shadow DOM.
41 |
42 | No styles or CSS applied outside the shadow DOM will affect the editor content and a clean Tailwind stylesheet will be reactively applied to content inside the tiptap editor.
43 |
44 | ```html
45 |
46 |
47 |
48 |
49 |
50 |
51 |
64 | ```
65 |
66 | ### Theme config
67 |
68 | You can also pass theme configuration CSS to **useTailwind**.
69 |
70 | ```js
71 | const { classes } = useTailwind(shadowRef, {
72 | theme: [{ content: "--color-mint-500: oklch(0.72 0.11 178);" }],
73 | });
74 | ```
75 |
76 | The theme parameter can contain a string, an array of strings, or an array of ThemeConfigItems:
77 |
78 | ```ts
79 | interface ThemeConfigItem {
80 | isInline?: boolean; // optional
81 | isStatic?: boolean; // optional
82 | content: string;
83 | }
84 | ```
85 |
86 | ### Plugins
87 |
88 | If you want your stylesheet to load additional plugins, you must pass them to the **useTailwind** composable:
89 |
90 | ```js
91 | import { useTailwind } from "vue-use-tailwind";
92 | import TailwindTypography from "@tailwindcss/typography";
93 |
94 | const { classes } = useTailwind(shadowRef, {
95 | theme: "--color-mint-500: oklch(0.72 0.11 178);",
96 | plugins: [TailwindTypography],
97 | });
98 | ```
99 |
100 | > Note: Neither theme nor plugins are reactive.
101 |
102 | ## Support Open-Source Software
103 |
104 | We're providing this package free-of-charge to the community. However, all development and maintenance costs time, energy and money. So please help fund this project if you can.
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | ---
114 |
115 | For full installation instructions and documentation, visit [evoMark](https://evomark.co.uk/open-source-software/vue-use-tailwind/) (coming soon).
116 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import { loadModule, loadStylesheet } from "./loaders";
2 | import { compile } from "tailwindcss";
3 | import type { PluginCreator } from "tailwindcss/plugin";
4 |
5 | type Compiler = ReturnType;
6 | interface ThemeConfigItem {
7 | isInline?: boolean;
8 | isStatic?: boolean;
9 | content: string;
10 | }
11 |
12 | export type UserConfig = {
13 | theme?: string | string[] | ThemeConfigItem | ThemeConfigItem[];
14 | plugins?: PluginCreator[];
15 | };
16 |
17 | export interface InstanceProperties {
18 | styleObserver: MutationObserver;
19 | sheet: Ref;
20 | classes: Ref>;
21 | buildQueue: Ref>;
22 | compiler: Compiler;
23 | root: Ref;
24 | theme: UserConfig["theme"];
25 | plugins: UserConfig["plugins"];
26 | lastCss: Ref;
27 | }
28 |
29 | import type { Ref } from "vue";
30 | import { STYLE_TYPE } from "./constants";
31 | import { rebuild } from "./build";
32 |
33 | export function observeSheet(sheet: HTMLStyleElement, styleObserver: MutationObserver) {
34 | styleObserver.observe(sheet, {
35 | attributes: true,
36 | attributeFilter: ["type"],
37 | characterData: true,
38 | subtree: true,
39 | childList: true,
40 | });
41 | }
42 |
43 | export function parseThemeTag(item: string | ThemeConfigItem): string {
44 | if (item instanceof Object && item.isInline) {
45 | return "@theme inline";
46 | } else if (item instanceof Object && item.isStatic) {
47 | return "@theme static";
48 | } else {
49 | return "@theme";
50 | }
51 | }
52 |
53 | export function parseUserTheme(theme: UserConfig["theme"]): string {
54 | if (!theme) return "";
55 | const themeArray = Array.isArray(theme) ? theme : [theme];
56 |
57 | return themeArray
58 | .reduce((acc: string[], curr: string | ThemeConfigItem): string[] => {
59 | const tag = parseThemeTag(curr);
60 | const content = typeof curr === "string" ? curr : curr.content;
61 | acc.push(`${tag} {
62 | ${content}
63 | }`);
64 | return acc;
65 | }, [])
66 | .join("\n\n");
67 | }
68 |
69 | export function parseUserPlugins(plugins: UserConfig["plugins"]): string {
70 | if (!plugins || Array.isArray(plugins) === false) {
71 | return "";
72 | }
73 | return plugins
74 | .reduce((acc: string[], curr: PluginCreator, index: number) => {
75 | if (!curr) return acc;
76 | acc.push(`@plugin "#plugin_${index}"`);
77 | return acc;
78 | }, [])
79 | .join("\n");
80 | }
81 |
82 | export function createElementObserver(
83 | root: Ref,
84 | {
85 | styleObserver,
86 | sheet,
87 | compiler,
88 | classes,
89 | buildQueue,
90 | }: Pick,
91 | ) {
92 | return new MutationObserver((records) => {
93 | let full = 0;
94 | let incremental = 0;
95 |
96 | for (let record of records) {
97 | // New stylesheets == tracking + full rebuild
98 | for (let node of record.addedNodes) {
99 | if (node.nodeType !== Node.ELEMENT_NODE) continue;
100 |
101 | const element = node as Element;
102 |
103 | if (element.tagName !== "STYLE") continue;
104 | if (element.getAttribute("type") !== STYLE_TYPE) continue;
105 |
106 | const styleElement = element as HTMLStyleElement;
107 |
108 | observeSheet(styleElement, styleObserver);
109 | full++;
110 | }
111 |
112 | // New nodes require an incremental rebuild
113 | for (let node of record.addedNodes) {
114 | if (node.nodeType !== 1) continue;
115 |
116 | // Skip the output stylesheet itself to prevent loops
117 | if (node === sheet.value) continue;
118 |
119 | incremental++;
120 | }
121 |
122 | // Changes to class attributes require an incremental rebuild
123 | if (record.type === "attributes") {
124 | incremental++;
125 | }
126 | }
127 |
128 | if (full > 0) {
129 | return rebuild("full", { compiler, buildQueue, sheet, root, classes });
130 | } else if (incremental > 0) {
131 | return rebuild("incremental", { compiler, buildQueue, sheet, root, classes });
132 | }
133 | }).observe(root.value, {
134 | attributes: true,
135 | attributeFilter: ["class"],
136 | childList: true,
137 | subtree: true,
138 | });
139 | }
140 |
141 | export async function createCompiler(
142 | root: Ref,
143 | {
144 | lastCss,
145 | classes,
146 | styleObserver,
147 | theme,
148 | plugins,
149 | }: Pick,
150 | ) {
151 | // The stylesheets may have changed causing a full rebuild so we'll need to
152 | // gather the latest list of stylesheets.
153 | let stylesheets: Iterable = root.value.querySelectorAll(`style[type="${STYLE_TYPE}"]`);
154 |
155 | let css = "";
156 | for (let sheet of stylesheets) {
157 | observeSheet(sheet, styleObserver);
158 | css += sheet.textContent + "\n";
159 | }
160 |
161 | // The user might have no stylesheets, or a some stylesheets without `@import`
162 | // because they want to customize their theme so we'll inject the main import
163 | // for them. However, if they start using `@import` we'll let them control
164 | // the build completely.
165 | if (!css.includes("@import")) {
166 | css = `@import "tailwindcss";${css}`;
167 | }
168 |
169 | // The input CSS did not change so the compiler does not need to be recreated
170 | if (lastCss.value === css) return;
171 |
172 | lastCss.value = css;
173 |
174 | const compiler = await compile(css, {
175 | base: "/",
176 | loadStylesheet: async (id, base) => loadStylesheet(id, base, { theme, plugins }),
177 | loadModule: async (id: string, base: string, type: string) => loadModule(id, base, type, plugins),
178 | });
179 |
180 | classes.value.clear();
181 | return compiler;
182 | }
183 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | vue-shadow-dom:
12 | specifier: ^4.0.0
13 | version: 4.2.0
14 | devDependencies:
15 | '@types/node':
16 | specifier: ^22.14.0
17 | version: 22.14.0
18 | '@vitejs/plugin-vue':
19 | specifier: ^5.2.3
20 | version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))
21 | '@vue/tsconfig':
22 | specifier: ^0.7.0
23 | version: 0.7.0(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
24 | gh-pages:
25 | specifier: ^6.3.0
26 | version: 6.3.0
27 | prettier:
28 | specifier: ^3.5.3
29 | version: 3.5.3
30 | prettier-plugin-tailwindcss:
31 | specifier: ^0.6.11
32 | version: 0.6.11(prettier@3.5.3)
33 | tailwindcss:
34 | specifier: ^4.1.3
35 | version: 4.1.3
36 | typescript:
37 | specifier: ^5.8.3
38 | version: 5.8.3
39 | vite:
40 | specifier: ^6.2.5
41 | version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)
42 | vue:
43 | specifier: ^3.5.13
44 | version: 3.5.13(typescript@5.8.3)
45 | vue-tsc:
46 | specifier: ^2.2.8
47 | version: 2.2.8(typescript@5.8.3)
48 |
49 | demo:
50 | dependencies:
51 | '@mdi/js':
52 | specifier: ^7.4.47
53 | version: 7.4.47
54 | '@tailwindcss/typography':
55 | specifier: ^0.5.16
56 | version: 0.5.16(tailwindcss@4.1.3)
57 | '@tiptap/core':
58 | specifier: ^2.11.7
59 | version: 2.11.7(@tiptap/pm@2.11.7)
60 | '@tiptap/extension-bold':
61 | specifier: ^2.11.7
62 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
63 | '@tiptap/extension-heading':
64 | specifier: ^2.11.7
65 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
66 | '@tiptap/extension-italic':
67 | specifier: ^2.11.7
68 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
69 | '@tiptap/extension-strike':
70 | specifier: ^2.11.7
71 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
72 | '@tiptap/extension-text-align':
73 | specifier: ^2.11.7
74 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
75 | '@tiptap/extension-underline':
76 | specifier: ^2.11.7
77 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
78 | '@tiptap/pm':
79 | specifier: ^2.11.7
80 | version: 2.11.7
81 | '@tiptap/starter-kit':
82 | specifier: ^2.11.7
83 | version: 2.11.7
84 | '@tiptap/vue-3':
85 | specifier: ^2.11.7
86 | version: 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(vue@3.5.13(typescript@5.8.3))
87 | '@vueuse/core':
88 | specifier: ^13.0.0
89 | version: 13.0.0(vue@3.5.13(typescript@5.8.3))
90 | prosemirror-state:
91 | specifier: ^1.4.3
92 | version: 1.4.3
93 | striptags:
94 | specifier: ^3.2.0
95 | version: 3.2.0
96 | vue:
97 | specifier: ^3.5.13
98 | version: 3.5.13(typescript@5.8.3)
99 | vue-use-tailwind:
100 | specifier: link:..
101 | version: link:..
102 | devDependencies:
103 | '@vitejs/plugin-vue':
104 | specifier: ^5.2.3
105 | version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))
106 | vite-plugin-vuetify:
107 | specifier: ^2.1.1
108 | version: 2.1.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))(vuetify@3.8.0)
109 | vuetify:
110 | specifier: ^3.8.0
111 | version: 3.8.0(typescript@5.8.3)(vite-plugin-vuetify@2.1.1)(vue@3.5.13(typescript@5.8.3))
112 |
113 | packages:
114 |
115 | '@babel/helper-string-parser@7.25.9':
116 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
117 | engines: {node: '>=6.9.0'}
118 |
119 | '@babel/helper-validator-identifier@7.25.9':
120 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
121 | engines: {node: '>=6.9.0'}
122 |
123 | '@babel/parser@7.27.0':
124 | resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
125 | engines: {node: '>=6.0.0'}
126 | hasBin: true
127 |
128 | '@babel/types@7.27.0':
129 | resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
130 | engines: {node: '>=6.9.0'}
131 |
132 | '@esbuild/aix-ppc64@0.25.2':
133 | resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==}
134 | engines: {node: '>=18'}
135 | cpu: [ppc64]
136 | os: [aix]
137 |
138 | '@esbuild/android-arm64@0.25.2':
139 | resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==}
140 | engines: {node: '>=18'}
141 | cpu: [arm64]
142 | os: [android]
143 |
144 | '@esbuild/android-arm@0.25.2':
145 | resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==}
146 | engines: {node: '>=18'}
147 | cpu: [arm]
148 | os: [android]
149 |
150 | '@esbuild/android-x64@0.25.2':
151 | resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==}
152 | engines: {node: '>=18'}
153 | cpu: [x64]
154 | os: [android]
155 |
156 | '@esbuild/darwin-arm64@0.25.2':
157 | resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==}
158 | engines: {node: '>=18'}
159 | cpu: [arm64]
160 | os: [darwin]
161 |
162 | '@esbuild/darwin-x64@0.25.2':
163 | resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==}
164 | engines: {node: '>=18'}
165 | cpu: [x64]
166 | os: [darwin]
167 |
168 | '@esbuild/freebsd-arm64@0.25.2':
169 | resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==}
170 | engines: {node: '>=18'}
171 | cpu: [arm64]
172 | os: [freebsd]
173 |
174 | '@esbuild/freebsd-x64@0.25.2':
175 | resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==}
176 | engines: {node: '>=18'}
177 | cpu: [x64]
178 | os: [freebsd]
179 |
180 | '@esbuild/linux-arm64@0.25.2':
181 | resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==}
182 | engines: {node: '>=18'}
183 | cpu: [arm64]
184 | os: [linux]
185 |
186 | '@esbuild/linux-arm@0.25.2':
187 | resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==}
188 | engines: {node: '>=18'}
189 | cpu: [arm]
190 | os: [linux]
191 |
192 | '@esbuild/linux-ia32@0.25.2':
193 | resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==}
194 | engines: {node: '>=18'}
195 | cpu: [ia32]
196 | os: [linux]
197 |
198 | '@esbuild/linux-loong64@0.25.2':
199 | resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==}
200 | engines: {node: '>=18'}
201 | cpu: [loong64]
202 | os: [linux]
203 |
204 | '@esbuild/linux-mips64el@0.25.2':
205 | resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==}
206 | engines: {node: '>=18'}
207 | cpu: [mips64el]
208 | os: [linux]
209 |
210 | '@esbuild/linux-ppc64@0.25.2':
211 | resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==}
212 | engines: {node: '>=18'}
213 | cpu: [ppc64]
214 | os: [linux]
215 |
216 | '@esbuild/linux-riscv64@0.25.2':
217 | resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==}
218 | engines: {node: '>=18'}
219 | cpu: [riscv64]
220 | os: [linux]
221 |
222 | '@esbuild/linux-s390x@0.25.2':
223 | resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==}
224 | engines: {node: '>=18'}
225 | cpu: [s390x]
226 | os: [linux]
227 |
228 | '@esbuild/linux-x64@0.25.2':
229 | resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==}
230 | engines: {node: '>=18'}
231 | cpu: [x64]
232 | os: [linux]
233 |
234 | '@esbuild/netbsd-arm64@0.25.2':
235 | resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==}
236 | engines: {node: '>=18'}
237 | cpu: [arm64]
238 | os: [netbsd]
239 |
240 | '@esbuild/netbsd-x64@0.25.2':
241 | resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==}
242 | engines: {node: '>=18'}
243 | cpu: [x64]
244 | os: [netbsd]
245 |
246 | '@esbuild/openbsd-arm64@0.25.2':
247 | resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==}
248 | engines: {node: '>=18'}
249 | cpu: [arm64]
250 | os: [openbsd]
251 |
252 | '@esbuild/openbsd-x64@0.25.2':
253 | resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==}
254 | engines: {node: '>=18'}
255 | cpu: [x64]
256 | os: [openbsd]
257 |
258 | '@esbuild/sunos-x64@0.25.2':
259 | resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==}
260 | engines: {node: '>=18'}
261 | cpu: [x64]
262 | os: [sunos]
263 |
264 | '@esbuild/win32-arm64@0.25.2':
265 | resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==}
266 | engines: {node: '>=18'}
267 | cpu: [arm64]
268 | os: [win32]
269 |
270 | '@esbuild/win32-ia32@0.25.2':
271 | resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==}
272 | engines: {node: '>=18'}
273 | cpu: [ia32]
274 | os: [win32]
275 |
276 | '@esbuild/win32-x64@0.25.2':
277 | resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==}
278 | engines: {node: '>=18'}
279 | cpu: [x64]
280 | os: [win32]
281 |
282 | '@jridgewell/sourcemap-codec@1.5.0':
283 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
284 |
285 | '@mdi/js@7.4.47':
286 | resolution: {integrity: sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==}
287 |
288 | '@nodelib/fs.scandir@2.1.5':
289 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
290 | engines: {node: '>= 8'}
291 |
292 | '@nodelib/fs.stat@2.0.5':
293 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
294 | engines: {node: '>= 8'}
295 |
296 | '@nodelib/fs.walk@1.2.8':
297 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
298 | engines: {node: '>= 8'}
299 |
300 | '@popperjs/core@2.11.8':
301 | resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
302 |
303 | '@remirror/core-constants@3.0.0':
304 | resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
305 |
306 | '@rollup/rollup-android-arm-eabi@4.39.0':
307 | resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==}
308 | cpu: [arm]
309 | os: [android]
310 |
311 | '@rollup/rollup-android-arm64@4.39.0':
312 | resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==}
313 | cpu: [arm64]
314 | os: [android]
315 |
316 | '@rollup/rollup-darwin-arm64@4.39.0':
317 | resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==}
318 | cpu: [arm64]
319 | os: [darwin]
320 |
321 | '@rollup/rollup-darwin-x64@4.39.0':
322 | resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==}
323 | cpu: [x64]
324 | os: [darwin]
325 |
326 | '@rollup/rollup-freebsd-arm64@4.39.0':
327 | resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==}
328 | cpu: [arm64]
329 | os: [freebsd]
330 |
331 | '@rollup/rollup-freebsd-x64@4.39.0':
332 | resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==}
333 | cpu: [x64]
334 | os: [freebsd]
335 |
336 | '@rollup/rollup-linux-arm-gnueabihf@4.39.0':
337 | resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==}
338 | cpu: [arm]
339 | os: [linux]
340 |
341 | '@rollup/rollup-linux-arm-musleabihf@4.39.0':
342 | resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==}
343 | cpu: [arm]
344 | os: [linux]
345 |
346 | '@rollup/rollup-linux-arm64-gnu@4.39.0':
347 | resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==}
348 | cpu: [arm64]
349 | os: [linux]
350 |
351 | '@rollup/rollup-linux-arm64-musl@4.39.0':
352 | resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==}
353 | cpu: [arm64]
354 | os: [linux]
355 |
356 | '@rollup/rollup-linux-loongarch64-gnu@4.39.0':
357 | resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==}
358 | cpu: [loong64]
359 | os: [linux]
360 |
361 | '@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
362 | resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==}
363 | cpu: [ppc64]
364 | os: [linux]
365 |
366 | '@rollup/rollup-linux-riscv64-gnu@4.39.0':
367 | resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==}
368 | cpu: [riscv64]
369 | os: [linux]
370 |
371 | '@rollup/rollup-linux-riscv64-musl@4.39.0':
372 | resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==}
373 | cpu: [riscv64]
374 | os: [linux]
375 |
376 | '@rollup/rollup-linux-s390x-gnu@4.39.0':
377 | resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==}
378 | cpu: [s390x]
379 | os: [linux]
380 |
381 | '@rollup/rollup-linux-x64-gnu@4.39.0':
382 | resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==}
383 | cpu: [x64]
384 | os: [linux]
385 |
386 | '@rollup/rollup-linux-x64-musl@4.39.0':
387 | resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==}
388 | cpu: [x64]
389 | os: [linux]
390 |
391 | '@rollup/rollup-win32-arm64-msvc@4.39.0':
392 | resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==}
393 | cpu: [arm64]
394 | os: [win32]
395 |
396 | '@rollup/rollup-win32-ia32-msvc@4.39.0':
397 | resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==}
398 | cpu: [ia32]
399 | os: [win32]
400 |
401 | '@rollup/rollup-win32-x64-msvc@4.39.0':
402 | resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==}
403 | cpu: [x64]
404 | os: [win32]
405 |
406 | '@tailwindcss/typography@0.5.16':
407 | resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
408 | peerDependencies:
409 | tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
410 |
411 | '@tiptap/core@2.11.7':
412 | resolution: {integrity: sha512-zN+NFFxLsxNEL8Qioc+DL6b8+Tt2bmRbXH22Gk6F6nD30x83eaUSFlSv3wqvgyCq3I1i1NO394So+Agmayx6rQ==}
413 | peerDependencies:
414 | '@tiptap/pm': ^2.7.0
415 |
416 | '@tiptap/extension-blockquote@2.11.7':
417 | resolution: {integrity: sha512-liD8kWowl3CcYCG9JQlVx1eSNc/aHlt6JpVsuWvzq6J8APWX693i3+zFqyK2eCDn0k+vW62muhSBe3u09hA3Zw==}
418 | peerDependencies:
419 | '@tiptap/core': ^2.7.0
420 |
421 | '@tiptap/extension-bold@2.11.7':
422 | resolution: {integrity: sha512-VTR3JlldBixXbjpLTFme/Bxf1xeUgZZY3LTlt5JDlCW3CxO7k05CIa+kEZ8LXpog5annytZDUVtWqxrNjmsuHQ==}
423 | peerDependencies:
424 | '@tiptap/core': ^2.7.0
425 |
426 | '@tiptap/extension-bubble-menu@2.11.7':
427 | resolution: {integrity: sha512-0vYqSUSSap3kk3/VT4tFE1/6StX70I3/NKQ4J68ZSFgkgyB3ZVlYv7/dY3AkEukjsEp3yN7m8Gw8ei2eEwyzwg==}
428 | peerDependencies:
429 | '@tiptap/core': ^2.7.0
430 | '@tiptap/pm': ^2.7.0
431 |
432 | '@tiptap/extension-bullet-list@2.11.7':
433 | resolution: {integrity: sha512-WbPogE2/Q3e3/QYgbT1Sj4KQUfGAJNc5pvb7GrUbvRQsAh7HhtuO8hqdDwH8dEdD/cNUehgt17TO7u8qV6qeBw==}
434 | peerDependencies:
435 | '@tiptap/core': ^2.7.0
436 |
437 | '@tiptap/extension-code-block@2.11.7':
438 | resolution: {integrity: sha512-To/y/2H04VWqiANy53aXjV7S6fA86c2759RsH1hTIe57jA1KyE7I5tlAofljOLZK/covkGmPeBddSPHGJbz++Q==}
439 | peerDependencies:
440 | '@tiptap/core': ^2.7.0
441 | '@tiptap/pm': ^2.7.0
442 |
443 | '@tiptap/extension-code@2.11.7':
444 | resolution: {integrity: sha512-VpPO1Uy/eF4hYOpohS/yMOcE1C07xmMj0/D989D9aS1x95jWwUVrSkwC+PlWMUBx9PbY2NRsg1ZDwVvlNKZ6yQ==}
445 | peerDependencies:
446 | '@tiptap/core': ^2.7.0
447 |
448 | '@tiptap/extension-document@2.11.7':
449 | resolution: {integrity: sha512-95ouJXPjdAm9+VBRgFo4lhDoMcHovyl/awORDI8gyEn0Rdglt+ZRZYoySFzbVzer9h0cre+QdIwr9AIzFFbfdA==}
450 | peerDependencies:
451 | '@tiptap/core': ^2.7.0
452 |
453 | '@tiptap/extension-dropcursor@2.11.7':
454 | resolution: {integrity: sha512-63mL+nxQILizsr5NbmgDeOjFEWi34BLt7evwL6UUZEVM15K8V1G8pD9Y0kCXrZYpHWz0tqFRXdrhDz0Ppu8oVw==}
455 | peerDependencies:
456 | '@tiptap/core': ^2.7.0
457 | '@tiptap/pm': ^2.7.0
458 |
459 | '@tiptap/extension-floating-menu@2.11.7':
460 | resolution: {integrity: sha512-DG54WoUu2vxHRVzKZiR5I5RMOYj45IlxQMkBAx1wjS0ch41W8DUYEeipvMMjCeKtEI+emz03xYUcOAP9LRmg+w==}
461 | peerDependencies:
462 | '@tiptap/core': ^2.7.0
463 | '@tiptap/pm': ^2.7.0
464 |
465 | '@tiptap/extension-gapcursor@2.11.7':
466 | resolution: {integrity: sha512-EceesmPG7FyjXZ8EgeJPUov9G1mAf2AwdypxBNH275g6xd5dmU/KvjoFZjmQ0X1ve7mS+wNupVlGxAEUYoveew==}
467 | peerDependencies:
468 | '@tiptap/core': ^2.7.0
469 | '@tiptap/pm': ^2.7.0
470 |
471 | '@tiptap/extension-hard-break@2.11.7':
472 | resolution: {integrity: sha512-zTkZSA6q+F5sLOdCkiC2+RqJQN0zdsJqvFIOVFL/IDVOnq6PZO5THzwRRLvOSnJJl3edRQCl/hUgS0L5sTInGQ==}
473 | peerDependencies:
474 | '@tiptap/core': ^2.7.0
475 |
476 | '@tiptap/extension-heading@2.11.7':
477 | resolution: {integrity: sha512-8kWh7y4Rd2fwxfWOhFFWncHdkDkMC1Z60yzIZWjIu72+6yQxvo8w3yeb7LI7jER4kffbMmadgcfhCHC/fkObBA==}
478 | peerDependencies:
479 | '@tiptap/core': ^2.7.0
480 |
481 | '@tiptap/extension-history@2.11.7':
482 | resolution: {integrity: sha512-Cu5x3aS13I040QSRoLdd+w09G4OCVfU+azpUqxufZxeNs9BIJC+0jowPLeOxKDh6D5GGT2A8sQtxc6a/ssbs8g==}
483 | peerDependencies:
484 | '@tiptap/core': ^2.7.0
485 | '@tiptap/pm': ^2.7.0
486 |
487 | '@tiptap/extension-horizontal-rule@2.11.7':
488 | resolution: {integrity: sha512-uVmQwD2dzZ5xwmvUlciy0ItxOdOfQjH6VLmu80zyJf8Yu7mvwP8JyxoXUX0vd1xHpwAhgQ9/ozjIWYGIw79DPQ==}
489 | peerDependencies:
490 | '@tiptap/core': ^2.7.0
491 | '@tiptap/pm': ^2.7.0
492 |
493 | '@tiptap/extension-italic@2.11.7':
494 | resolution: {integrity: sha512-r985bkQfG0HMpmCU0X0p/Xe7U1qgRm2mxvcp6iPCuts2FqxaCoyfNZ8YnMsgVK1mRhM7+CQ5SEg2NOmQNtHvPw==}
495 | peerDependencies:
496 | '@tiptap/core': ^2.7.0
497 |
498 | '@tiptap/extension-list-item@2.11.7':
499 | resolution: {integrity: sha512-6ikh7Y+qAbkSuIHXPIINqfzmWs5uIGrylihdZ9adaIyvrN1KSnWIqrZIk/NcZTg5YFIJlXrnGSRSjb/QM3WUhw==}
500 | peerDependencies:
501 | '@tiptap/core': ^2.7.0
502 |
503 | '@tiptap/extension-ordered-list@2.11.7':
504 | resolution: {integrity: sha512-bLGCHDMB0vbJk7uu8bRg8vES3GsvxkX7Cgjgm/6xysHFbK98y0asDtNxkW1VvuRreNGz4tyB6vkcVCfrxl4jKw==}
505 | peerDependencies:
506 | '@tiptap/core': ^2.7.0
507 |
508 | '@tiptap/extension-paragraph@2.11.7':
509 | resolution: {integrity: sha512-Pl3B4q6DJqTvvAdraqZaNP9Hh0UWEHL5nNdxhaRNuhKaUo7lq8wbDSIxIW3lvV0lyCs0NfyunkUvSm1CXb6d4Q==}
510 | peerDependencies:
511 | '@tiptap/core': ^2.7.0
512 |
513 | '@tiptap/extension-strike@2.11.7':
514 | resolution: {integrity: sha512-D6GYiW9F24bvAY7XMOARNZbC8YGPzdzWdXd8VOOJABhf4ynMi/oW4NNiko+kZ67jn3EGaKoz32VMJzNQgYi1HA==}
515 | peerDependencies:
516 | '@tiptap/core': ^2.7.0
517 |
518 | '@tiptap/extension-text-align@2.11.7':
519 | resolution: {integrity: sha512-3M8zd9ROADXazVNpgR6Ejs1evSvBveN36qN4GgV71GqrNlTcjqYgQcXFLQrsd2hnE+aXir8/8bLJ+aaJXDninA==}
520 | peerDependencies:
521 | '@tiptap/core': ^2.7.0
522 |
523 | '@tiptap/extension-text-style@2.11.7':
524 | resolution: {integrity: sha512-LHO6DBg/9SkCQFdWlVfw9nolUmw+Cid94WkTY+7IwrpyG2+ZGQxnKpCJCKyeaFNbDoYAtvu0vuTsSXeCkgShcA==}
525 | peerDependencies:
526 | '@tiptap/core': ^2.7.0
527 |
528 | '@tiptap/extension-text@2.11.7':
529 | resolution: {integrity: sha512-wObCn8qZkIFnXTLvBP+X8KgaEvTap/FJ/i4hBMfHBCKPGDx99KiJU6VIbDXG8d5ZcFZE0tOetK1pP5oI7qgMlQ==}
530 | peerDependencies:
531 | '@tiptap/core': ^2.7.0
532 |
533 | '@tiptap/extension-underline@2.11.7':
534 | resolution: {integrity: sha512-NtoQw6PGijOAtXC6G+0Aq0/Z5wwEjPhNHs8nsjXogfWIgaj/aI4/zfBnA06eI3WT+emMYQTl0fTc4CUPnLVU8g==}
535 | peerDependencies:
536 | '@tiptap/core': ^2.7.0
537 |
538 | '@tiptap/pm@2.11.7':
539 | resolution: {integrity: sha512-7gEEfz2Q6bYKXM07vzLUD0vqXFhC5geWRA6LCozTiLdVFDdHWiBrvb2rtkL5T7mfLq03zc1QhH7rI3F6VntOEA==}
540 |
541 | '@tiptap/starter-kit@2.11.7':
542 | resolution: {integrity: sha512-K+q51KwNU/l0kqRuV5e1824yOLVftj6kGplGQLvJG56P7Rb2dPbM/JeaDbxQhnHT/KDGamG0s0Po0M3pPY163A==}
543 |
544 | '@tiptap/vue-3@2.11.7':
545 | resolution: {integrity: sha512-P4Dyi7Uvi+l2ubsVTibZU3XVLT15eWP0W3mPiQwT0IVI0+FjGyBa83TXgMh5Kb53nxABgIK7FiIMBtQPSkjqfg==}
546 | peerDependencies:
547 | '@tiptap/core': ^2.7.0
548 | '@tiptap/pm': ^2.7.0
549 | vue: ^3.0.0
550 |
551 | '@types/estree@1.0.7':
552 | resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
553 |
554 | '@types/linkify-it@5.0.0':
555 | resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
556 |
557 | '@types/markdown-it@14.1.2':
558 | resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
559 |
560 | '@types/mdurl@2.0.0':
561 | resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
562 |
563 | '@types/node@22.14.0':
564 | resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==}
565 |
566 | '@types/web-bluetooth@0.0.21':
567 | resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
568 |
569 | '@vitejs/plugin-vue@5.2.3':
570 | resolution: {integrity: sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==}
571 | engines: {node: ^18.0.0 || >=20.0.0}
572 | peerDependencies:
573 | vite: ^5.0.0 || ^6.0.0
574 | vue: ^3.2.25
575 |
576 | '@volar/language-core@2.4.12':
577 | resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==}
578 |
579 | '@volar/source-map@2.4.12':
580 | resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==}
581 |
582 | '@volar/typescript@2.4.12':
583 | resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==}
584 |
585 | '@vue/compiler-core@3.5.13':
586 | resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
587 |
588 | '@vue/compiler-dom@3.5.13':
589 | resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
590 |
591 | '@vue/compiler-sfc@3.5.13':
592 | resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
593 |
594 | '@vue/compiler-ssr@3.5.13':
595 | resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
596 |
597 | '@vue/compiler-vue2@2.7.16':
598 | resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
599 |
600 | '@vue/language-core@2.2.8':
601 | resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==}
602 | peerDependencies:
603 | typescript: '*'
604 | peerDependenciesMeta:
605 | typescript:
606 | optional: true
607 |
608 | '@vue/reactivity@3.5.13':
609 | resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
610 |
611 | '@vue/runtime-core@3.5.13':
612 | resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
613 |
614 | '@vue/runtime-dom@3.5.13':
615 | resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
616 |
617 | '@vue/server-renderer@3.5.13':
618 | resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
619 | peerDependencies:
620 | vue: 3.5.13
621 |
622 | '@vue/shared@3.5.13':
623 | resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
624 |
625 | '@vue/tsconfig@0.7.0':
626 | resolution: {integrity: sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==}
627 | peerDependencies:
628 | typescript: 5.x
629 | vue: ^3.4.0
630 | peerDependenciesMeta:
631 | typescript:
632 | optional: true
633 | vue:
634 | optional: true
635 |
636 | '@vuetify/loader-shared@2.1.0':
637 | resolution: {integrity: sha512-dNE6Ceym9ijFsmJKB7YGW0cxs7xbYV8+1LjU6jd4P14xOt/ji4Igtgzt0rJFbxu+ZhAzqz853lhB0z8V9Dy9cQ==}
638 | peerDependencies:
639 | vue: ^3.0.0
640 | vuetify: ^3.0.0
641 |
642 | '@vueuse/core@13.0.0':
643 | resolution: {integrity: sha512-rkgb4a8/0b234lMGCT29WkCjPfsX0oxrIRR7FDndRoW3FsaC9NBzefXg/9TLhAgwM11f49XnutshM4LzJBrQ5g==}
644 | peerDependencies:
645 | vue: ^3.5.0
646 |
647 | '@vueuse/metadata@13.0.0':
648 | resolution: {integrity: sha512-TRNksqmvtvqsuHf7bbgH9OSXEV2b6+M3BSN4LR5oxWKykOFT9gV78+C2/0++Pq9KCp9KQ1OQDPvGlWNQpOb2Mw==}
649 |
650 | '@vueuse/shared@13.0.0':
651 | resolution: {integrity: sha512-9MiHhAPw+sqCF/RLo8V6HsjRqEdNEWVpDLm2WBRW2G/kSQjb8X901sozXpSCaeLG0f7TEfMrT4XNaA5m1ez7Dg==}
652 | peerDependencies:
653 | vue: ^3.5.0
654 |
655 | alien-signals@1.0.13:
656 | resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==}
657 |
658 | argparse@2.0.1:
659 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
660 |
661 | array-union@2.1.0:
662 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
663 | engines: {node: '>=8'}
664 |
665 | async@3.2.6:
666 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
667 |
668 | balanced-match@1.0.2:
669 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
670 |
671 | brace-expansion@2.0.1:
672 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
673 |
674 | braces@3.0.3:
675 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
676 | engines: {node: '>=8'}
677 |
678 | commander@13.1.0:
679 | resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
680 | engines: {node: '>=18'}
681 |
682 | commondir@1.0.1:
683 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
684 |
685 | crelt@1.0.6:
686 | resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
687 |
688 | cssesc@3.0.0:
689 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
690 | engines: {node: '>=4'}
691 | hasBin: true
692 |
693 | csstype@3.1.3:
694 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
695 |
696 | de-indent@1.0.2:
697 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
698 |
699 | debug@4.4.0:
700 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
701 | engines: {node: '>=6.0'}
702 | peerDependencies:
703 | supports-color: '*'
704 | peerDependenciesMeta:
705 | supports-color:
706 | optional: true
707 |
708 | detect-libc@2.0.3:
709 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
710 | engines: {node: '>=8'}
711 |
712 | dir-glob@3.0.1:
713 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
714 | engines: {node: '>=8'}
715 |
716 | email-addresses@5.0.0:
717 | resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==}
718 |
719 | entities@4.5.0:
720 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
721 | engines: {node: '>=0.12'}
722 |
723 | esbuild@0.25.2:
724 | resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==}
725 | engines: {node: '>=18'}
726 | hasBin: true
727 |
728 | escape-string-regexp@1.0.5:
729 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
730 | engines: {node: '>=0.8.0'}
731 |
732 | escape-string-regexp@4.0.0:
733 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
734 | engines: {node: '>=10'}
735 |
736 | estree-walker@2.0.2:
737 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
738 |
739 | fast-glob@3.3.3:
740 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
741 | engines: {node: '>=8.6.0'}
742 |
743 | fastq@1.19.1:
744 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
745 |
746 | filename-reserved-regex@2.0.0:
747 | resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==}
748 | engines: {node: '>=4'}
749 |
750 | filenamify@4.3.0:
751 | resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==}
752 | engines: {node: '>=8'}
753 |
754 | fill-range@7.1.1:
755 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
756 | engines: {node: '>=8'}
757 |
758 | find-cache-dir@3.3.2:
759 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
760 | engines: {node: '>=8'}
761 |
762 | find-up@4.1.0:
763 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
764 | engines: {node: '>=8'}
765 |
766 | fs-extra@11.3.0:
767 | resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
768 | engines: {node: '>=14.14'}
769 |
770 | fsevents@2.3.3:
771 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
772 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
773 | os: [darwin]
774 |
775 | gh-pages@6.3.0:
776 | resolution: {integrity: sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==}
777 | engines: {node: '>=10'}
778 | hasBin: true
779 |
780 | glob-parent@5.1.2:
781 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
782 | engines: {node: '>= 6'}
783 |
784 | globby@11.1.0:
785 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
786 | engines: {node: '>=10'}
787 |
788 | graceful-fs@4.2.11:
789 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
790 |
791 | he@1.2.0:
792 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
793 | hasBin: true
794 |
795 | ignore@5.3.2:
796 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
797 | engines: {node: '>= 4'}
798 |
799 | is-extglob@2.1.1:
800 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
801 | engines: {node: '>=0.10.0'}
802 |
803 | is-glob@4.0.3:
804 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
805 | engines: {node: '>=0.10.0'}
806 |
807 | is-number@7.0.0:
808 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
809 | engines: {node: '>=0.12.0'}
810 |
811 | jiti@2.4.2:
812 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
813 | hasBin: true
814 |
815 | jsonfile@6.1.0:
816 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
817 |
818 | lightningcss-darwin-arm64@1.29.2:
819 | resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
820 | engines: {node: '>= 12.0.0'}
821 | cpu: [arm64]
822 | os: [darwin]
823 |
824 | lightningcss-darwin-x64@1.29.2:
825 | resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
826 | engines: {node: '>= 12.0.0'}
827 | cpu: [x64]
828 | os: [darwin]
829 |
830 | lightningcss-freebsd-x64@1.29.2:
831 | resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
832 | engines: {node: '>= 12.0.0'}
833 | cpu: [x64]
834 | os: [freebsd]
835 |
836 | lightningcss-linux-arm-gnueabihf@1.29.2:
837 | resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
838 | engines: {node: '>= 12.0.0'}
839 | cpu: [arm]
840 | os: [linux]
841 |
842 | lightningcss-linux-arm64-gnu@1.29.2:
843 | resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
844 | engines: {node: '>= 12.0.0'}
845 | cpu: [arm64]
846 | os: [linux]
847 |
848 | lightningcss-linux-arm64-musl@1.29.2:
849 | resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
850 | engines: {node: '>= 12.0.0'}
851 | cpu: [arm64]
852 | os: [linux]
853 |
854 | lightningcss-linux-x64-gnu@1.29.2:
855 | resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
856 | engines: {node: '>= 12.0.0'}
857 | cpu: [x64]
858 | os: [linux]
859 |
860 | lightningcss-linux-x64-musl@1.29.2:
861 | resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
862 | engines: {node: '>= 12.0.0'}
863 | cpu: [x64]
864 | os: [linux]
865 |
866 | lightningcss-win32-arm64-msvc@1.29.2:
867 | resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
868 | engines: {node: '>= 12.0.0'}
869 | cpu: [arm64]
870 | os: [win32]
871 |
872 | lightningcss-win32-x64-msvc@1.29.2:
873 | resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
874 | engines: {node: '>= 12.0.0'}
875 | cpu: [x64]
876 | os: [win32]
877 |
878 | lightningcss@1.29.2:
879 | resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
880 | engines: {node: '>= 12.0.0'}
881 |
882 | linkify-it@5.0.0:
883 | resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
884 |
885 | locate-path@5.0.0:
886 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
887 | engines: {node: '>=8'}
888 |
889 | lodash.castarray@4.4.0:
890 | resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
891 |
892 | lodash.isplainobject@4.0.6:
893 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
894 |
895 | lodash.merge@4.6.2:
896 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
897 |
898 | magic-string@0.30.17:
899 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
900 |
901 | make-dir@3.1.0:
902 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
903 | engines: {node: '>=8'}
904 |
905 | markdown-it@14.1.0:
906 | resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
907 | hasBin: true
908 |
909 | mdurl@2.0.0:
910 | resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
911 |
912 | merge2@1.4.1:
913 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
914 | engines: {node: '>= 8'}
915 |
916 | micromatch@4.0.8:
917 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
918 | engines: {node: '>=8.6'}
919 |
920 | minimatch@9.0.5:
921 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
922 | engines: {node: '>=16 || 14 >=14.17'}
923 |
924 | ms@2.1.3:
925 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
926 |
927 | muggle-string@0.4.1:
928 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
929 |
930 | nanoid@3.3.11:
931 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
932 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
933 | hasBin: true
934 |
935 | orderedmap@2.1.1:
936 | resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
937 |
938 | p-limit@2.3.0:
939 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
940 | engines: {node: '>=6'}
941 |
942 | p-locate@4.1.0:
943 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
944 | engines: {node: '>=8'}
945 |
946 | p-try@2.2.0:
947 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
948 | engines: {node: '>=6'}
949 |
950 | path-browserify@1.0.1:
951 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
952 |
953 | path-exists@4.0.0:
954 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
955 | engines: {node: '>=8'}
956 |
957 | path-type@4.0.0:
958 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
959 | engines: {node: '>=8'}
960 |
961 | picocolors@1.1.1:
962 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
963 |
964 | picomatch@2.3.1:
965 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
966 | engines: {node: '>=8.6'}
967 |
968 | pkg-dir@4.2.0:
969 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
970 | engines: {node: '>=8'}
971 |
972 | postcss-selector-parser@6.0.10:
973 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
974 | engines: {node: '>=4'}
975 |
976 | postcss@8.5.3:
977 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
978 | engines: {node: ^10 || ^12 || >=14}
979 |
980 | prettier-plugin-tailwindcss@0.6.11:
981 | resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
982 | engines: {node: '>=14.21.3'}
983 | peerDependencies:
984 | '@ianvs/prettier-plugin-sort-imports': '*'
985 | '@prettier/plugin-pug': '*'
986 | '@shopify/prettier-plugin-liquid': '*'
987 | '@trivago/prettier-plugin-sort-imports': '*'
988 | '@zackad/prettier-plugin-twig': '*'
989 | prettier: ^3.0
990 | prettier-plugin-astro: '*'
991 | prettier-plugin-css-order: '*'
992 | prettier-plugin-import-sort: '*'
993 | prettier-plugin-jsdoc: '*'
994 | prettier-plugin-marko: '*'
995 | prettier-plugin-multiline-arrays: '*'
996 | prettier-plugin-organize-attributes: '*'
997 | prettier-plugin-organize-imports: '*'
998 | prettier-plugin-sort-imports: '*'
999 | prettier-plugin-style-order: '*'
1000 | prettier-plugin-svelte: '*'
1001 | peerDependenciesMeta:
1002 | '@ianvs/prettier-plugin-sort-imports':
1003 | optional: true
1004 | '@prettier/plugin-pug':
1005 | optional: true
1006 | '@shopify/prettier-plugin-liquid':
1007 | optional: true
1008 | '@trivago/prettier-plugin-sort-imports':
1009 | optional: true
1010 | '@zackad/prettier-plugin-twig':
1011 | optional: true
1012 | prettier-plugin-astro:
1013 | optional: true
1014 | prettier-plugin-css-order:
1015 | optional: true
1016 | prettier-plugin-import-sort:
1017 | optional: true
1018 | prettier-plugin-jsdoc:
1019 | optional: true
1020 | prettier-plugin-marko:
1021 | optional: true
1022 | prettier-plugin-multiline-arrays:
1023 | optional: true
1024 | prettier-plugin-organize-attributes:
1025 | optional: true
1026 | prettier-plugin-organize-imports:
1027 | optional: true
1028 | prettier-plugin-sort-imports:
1029 | optional: true
1030 | prettier-plugin-style-order:
1031 | optional: true
1032 | prettier-plugin-svelte:
1033 | optional: true
1034 |
1035 | prettier@3.5.3:
1036 | resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
1037 | engines: {node: '>=14'}
1038 | hasBin: true
1039 |
1040 | prosemirror-changeset@2.2.1:
1041 | resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==}
1042 |
1043 | prosemirror-collab@1.3.1:
1044 | resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
1045 |
1046 | prosemirror-commands@1.7.0:
1047 | resolution: {integrity: sha512-6toodS4R/Aah5pdsrIwnTYPEjW70SlO5a66oo5Kk+CIrgJz3ukOoS+FYDGqvQlAX5PxoGWDX1oD++tn5X3pyRA==}
1048 |
1049 | prosemirror-dropcursor@1.8.1:
1050 | resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==}
1051 |
1052 | prosemirror-gapcursor@1.3.2:
1053 | resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
1054 |
1055 | prosemirror-history@1.4.1:
1056 | resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
1057 |
1058 | prosemirror-inputrules@1.5.0:
1059 | resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==}
1060 |
1061 | prosemirror-keymap@1.2.2:
1062 | resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==}
1063 |
1064 | prosemirror-markdown@1.13.2:
1065 | resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==}
1066 |
1067 | prosemirror-menu@1.2.4:
1068 | resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==}
1069 |
1070 | prosemirror-model@1.25.0:
1071 | resolution: {integrity: sha512-/8XUmxWf0pkj2BmtqZHYJipTBMHIdVjuvFzMvEoxrtyGNmfvdhBiRwYt/eFwy2wA9DtBW3RLqvZnjurEkHaFCw==}
1072 |
1073 | prosemirror-schema-basic@1.2.4:
1074 | resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
1075 |
1076 | prosemirror-schema-list@1.5.1:
1077 | resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
1078 |
1079 | prosemirror-state@1.4.3:
1080 | resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
1081 |
1082 | prosemirror-tables@1.6.4:
1083 | resolution: {integrity: sha512-TkDY3Gw52gRFRfRn2f4wJv5WOgAOXLJA2CQJYIJ5+kdFbfj3acR4JUW6LX2e1hiEBiUwvEhzH5a3cZ5YSztpIA==}
1084 |
1085 | prosemirror-trailing-node@3.0.0:
1086 | resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
1087 | peerDependencies:
1088 | prosemirror-model: ^1.22.1
1089 | prosemirror-state: ^1.4.2
1090 | prosemirror-view: ^1.33.8
1091 |
1092 | prosemirror-transform@1.10.3:
1093 | resolution: {integrity: sha512-Nhh/+1kZGRINbEHmVu39oynhcap4hWTs/BlU7NnxWj3+l0qi8I1mu67v6mMdEe/ltD8hHvU4FV6PHiCw2VSpMw==}
1094 |
1095 | prosemirror-view@1.39.1:
1096 | resolution: {integrity: sha512-GhLxH1xwnqa5VjhJ29LfcQITNDp+f1jzmMPXQfGW9oNrF0lfjPzKvV5y/bjIQkyKpwCX3Fp+GA4dBpMMk8g+ZQ==}
1097 |
1098 | punycode.js@2.3.1:
1099 | resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
1100 | engines: {node: '>=6'}
1101 |
1102 | queue-microtask@1.2.3:
1103 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1104 |
1105 | reusify@1.1.0:
1106 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
1107 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1108 |
1109 | rollup@4.39.0:
1110 | resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==}
1111 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1112 | hasBin: true
1113 |
1114 | rope-sequence@1.3.4:
1115 | resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
1116 |
1117 | run-parallel@1.2.0:
1118 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1119 |
1120 | semver@6.3.1:
1121 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1122 | hasBin: true
1123 |
1124 | slash@3.0.0:
1125 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1126 | engines: {node: '>=8'}
1127 |
1128 | source-map-js@1.2.1:
1129 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1130 | engines: {node: '>=0.10.0'}
1131 |
1132 | strip-outer@1.0.1:
1133 | resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==}
1134 | engines: {node: '>=0.10.0'}
1135 |
1136 | striptags@3.2.0:
1137 | resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==}
1138 |
1139 | tailwindcss@4.1.3:
1140 | resolution: {integrity: sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==}
1141 |
1142 | tippy.js@6.3.7:
1143 | resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
1144 |
1145 | to-regex-range@5.0.1:
1146 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1147 | engines: {node: '>=8.0'}
1148 |
1149 | trim-repeated@1.0.0:
1150 | resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==}
1151 | engines: {node: '>=0.10.0'}
1152 |
1153 | typescript@5.8.3:
1154 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
1155 | engines: {node: '>=14.17'}
1156 | hasBin: true
1157 |
1158 | uc.micro@2.1.0:
1159 | resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
1160 |
1161 | undici-types@6.21.0:
1162 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1163 |
1164 | universalify@2.0.1:
1165 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
1166 | engines: {node: '>= 10.0.0'}
1167 |
1168 | upath@2.0.1:
1169 | resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
1170 | engines: {node: '>=4'}
1171 |
1172 | util-deprecate@1.0.2:
1173 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1174 |
1175 | vite-plugin-vuetify@2.1.1:
1176 | resolution: {integrity: sha512-Pb7bKhQH8qPMzURmEGq2aIqCJkruFNsyf1NcrrtnjsOIkqJPMcBbiP0oJoO8/uAmyB5W/1JTbbUEsyXdMM0QHQ==}
1177 | engines: {node: ^18.0.0 || >=20.0.0}
1178 | peerDependencies:
1179 | vite: '>=5'
1180 | vue: ^3.0.0
1181 | vuetify: ^3.0.0
1182 |
1183 | vite@6.2.5:
1184 | resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==}
1185 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1186 | hasBin: true
1187 | peerDependencies:
1188 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1189 | jiti: '>=1.21.0'
1190 | less: '*'
1191 | lightningcss: ^1.21.0
1192 | sass: '*'
1193 | sass-embedded: '*'
1194 | stylus: '*'
1195 | sugarss: '*'
1196 | terser: ^5.16.0
1197 | tsx: ^4.8.1
1198 | yaml: ^2.4.2
1199 | peerDependenciesMeta:
1200 | '@types/node':
1201 | optional: true
1202 | jiti:
1203 | optional: true
1204 | less:
1205 | optional: true
1206 | lightningcss:
1207 | optional: true
1208 | sass:
1209 | optional: true
1210 | sass-embedded:
1211 | optional: true
1212 | stylus:
1213 | optional: true
1214 | sugarss:
1215 | optional: true
1216 | terser:
1217 | optional: true
1218 | tsx:
1219 | optional: true
1220 | yaml:
1221 | optional: true
1222 |
1223 | vscode-uri@3.1.0:
1224 | resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
1225 |
1226 | vue-shadow-dom@4.2.0:
1227 | resolution: {integrity: sha512-lguI064rT2HT/dxqSmXtz860KOvCq+W3nU1jMqroTmX3K1H46q22BMR4emh/Ld3ozy35XJKOaNGcr6mkJ/t/yg==}
1228 |
1229 | vue-tsc@2.2.8:
1230 | resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==}
1231 | hasBin: true
1232 | peerDependencies:
1233 | typescript: '>=5.0.0'
1234 |
1235 | vue@3.5.13:
1236 | resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
1237 | peerDependencies:
1238 | typescript: '*'
1239 | peerDependenciesMeta:
1240 | typescript:
1241 | optional: true
1242 |
1243 | vuetify@3.8.0:
1244 | resolution: {integrity: sha512-ROC0Xq2G/25ZyUpQMhaynMyXZBJY1WbOGlqOB810yubp8hfY8RlrOw+mzXJonOq6jylCY32muQ9xiJF1JPTLVA==}
1245 | engines: {node: ^12.20 || >=14.13}
1246 | peerDependencies:
1247 | typescript: '>=4.7'
1248 | vite-plugin-vuetify: '>=2.1.0'
1249 | vue: ^3.5.0
1250 | webpack-plugin-vuetify: '>=3.1.0'
1251 | peerDependenciesMeta:
1252 | typescript:
1253 | optional: true
1254 | vite-plugin-vuetify:
1255 | optional: true
1256 | webpack-plugin-vuetify:
1257 | optional: true
1258 |
1259 | w3c-keyname@2.2.8:
1260 | resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
1261 |
1262 | snapshots:
1263 |
1264 | '@babel/helper-string-parser@7.25.9': {}
1265 |
1266 | '@babel/helper-validator-identifier@7.25.9': {}
1267 |
1268 | '@babel/parser@7.27.0':
1269 | dependencies:
1270 | '@babel/types': 7.27.0
1271 |
1272 | '@babel/types@7.27.0':
1273 | dependencies:
1274 | '@babel/helper-string-parser': 7.25.9
1275 | '@babel/helper-validator-identifier': 7.25.9
1276 |
1277 | '@esbuild/aix-ppc64@0.25.2':
1278 | optional: true
1279 |
1280 | '@esbuild/android-arm64@0.25.2':
1281 | optional: true
1282 |
1283 | '@esbuild/android-arm@0.25.2':
1284 | optional: true
1285 |
1286 | '@esbuild/android-x64@0.25.2':
1287 | optional: true
1288 |
1289 | '@esbuild/darwin-arm64@0.25.2':
1290 | optional: true
1291 |
1292 | '@esbuild/darwin-x64@0.25.2':
1293 | optional: true
1294 |
1295 | '@esbuild/freebsd-arm64@0.25.2':
1296 | optional: true
1297 |
1298 | '@esbuild/freebsd-x64@0.25.2':
1299 | optional: true
1300 |
1301 | '@esbuild/linux-arm64@0.25.2':
1302 | optional: true
1303 |
1304 | '@esbuild/linux-arm@0.25.2':
1305 | optional: true
1306 |
1307 | '@esbuild/linux-ia32@0.25.2':
1308 | optional: true
1309 |
1310 | '@esbuild/linux-loong64@0.25.2':
1311 | optional: true
1312 |
1313 | '@esbuild/linux-mips64el@0.25.2':
1314 | optional: true
1315 |
1316 | '@esbuild/linux-ppc64@0.25.2':
1317 | optional: true
1318 |
1319 | '@esbuild/linux-riscv64@0.25.2':
1320 | optional: true
1321 |
1322 | '@esbuild/linux-s390x@0.25.2':
1323 | optional: true
1324 |
1325 | '@esbuild/linux-x64@0.25.2':
1326 | optional: true
1327 |
1328 | '@esbuild/netbsd-arm64@0.25.2':
1329 | optional: true
1330 |
1331 | '@esbuild/netbsd-x64@0.25.2':
1332 | optional: true
1333 |
1334 | '@esbuild/openbsd-arm64@0.25.2':
1335 | optional: true
1336 |
1337 | '@esbuild/openbsd-x64@0.25.2':
1338 | optional: true
1339 |
1340 | '@esbuild/sunos-x64@0.25.2':
1341 | optional: true
1342 |
1343 | '@esbuild/win32-arm64@0.25.2':
1344 | optional: true
1345 |
1346 | '@esbuild/win32-ia32@0.25.2':
1347 | optional: true
1348 |
1349 | '@esbuild/win32-x64@0.25.2':
1350 | optional: true
1351 |
1352 | '@jridgewell/sourcemap-codec@1.5.0': {}
1353 |
1354 | '@mdi/js@7.4.47': {}
1355 |
1356 | '@nodelib/fs.scandir@2.1.5':
1357 | dependencies:
1358 | '@nodelib/fs.stat': 2.0.5
1359 | run-parallel: 1.2.0
1360 |
1361 | '@nodelib/fs.stat@2.0.5': {}
1362 |
1363 | '@nodelib/fs.walk@1.2.8':
1364 | dependencies:
1365 | '@nodelib/fs.scandir': 2.1.5
1366 | fastq: 1.19.1
1367 |
1368 | '@popperjs/core@2.11.8': {}
1369 |
1370 | '@remirror/core-constants@3.0.0': {}
1371 |
1372 | '@rollup/rollup-android-arm-eabi@4.39.0':
1373 | optional: true
1374 |
1375 | '@rollup/rollup-android-arm64@4.39.0':
1376 | optional: true
1377 |
1378 | '@rollup/rollup-darwin-arm64@4.39.0':
1379 | optional: true
1380 |
1381 | '@rollup/rollup-darwin-x64@4.39.0':
1382 | optional: true
1383 |
1384 | '@rollup/rollup-freebsd-arm64@4.39.0':
1385 | optional: true
1386 |
1387 | '@rollup/rollup-freebsd-x64@4.39.0':
1388 | optional: true
1389 |
1390 | '@rollup/rollup-linux-arm-gnueabihf@4.39.0':
1391 | optional: true
1392 |
1393 | '@rollup/rollup-linux-arm-musleabihf@4.39.0':
1394 | optional: true
1395 |
1396 | '@rollup/rollup-linux-arm64-gnu@4.39.0':
1397 | optional: true
1398 |
1399 | '@rollup/rollup-linux-arm64-musl@4.39.0':
1400 | optional: true
1401 |
1402 | '@rollup/rollup-linux-loongarch64-gnu@4.39.0':
1403 | optional: true
1404 |
1405 | '@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
1406 | optional: true
1407 |
1408 | '@rollup/rollup-linux-riscv64-gnu@4.39.0':
1409 | optional: true
1410 |
1411 | '@rollup/rollup-linux-riscv64-musl@4.39.0':
1412 | optional: true
1413 |
1414 | '@rollup/rollup-linux-s390x-gnu@4.39.0':
1415 | optional: true
1416 |
1417 | '@rollup/rollup-linux-x64-gnu@4.39.0':
1418 | optional: true
1419 |
1420 | '@rollup/rollup-linux-x64-musl@4.39.0':
1421 | optional: true
1422 |
1423 | '@rollup/rollup-win32-arm64-msvc@4.39.0':
1424 | optional: true
1425 |
1426 | '@rollup/rollup-win32-ia32-msvc@4.39.0':
1427 | optional: true
1428 |
1429 | '@rollup/rollup-win32-x64-msvc@4.39.0':
1430 | optional: true
1431 |
1432 | '@tailwindcss/typography@0.5.16(tailwindcss@4.1.3)':
1433 | dependencies:
1434 | lodash.castarray: 4.4.0
1435 | lodash.isplainobject: 4.0.6
1436 | lodash.merge: 4.6.2
1437 | postcss-selector-parser: 6.0.10
1438 | tailwindcss: 4.1.3
1439 |
1440 | '@tiptap/core@2.11.7(@tiptap/pm@2.11.7)':
1441 | dependencies:
1442 | '@tiptap/pm': 2.11.7
1443 |
1444 | '@tiptap/extension-blockquote@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1445 | dependencies:
1446 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1447 |
1448 | '@tiptap/extension-bold@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1449 | dependencies:
1450 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1451 |
1452 | '@tiptap/extension-bubble-menu@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1453 | dependencies:
1454 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1455 | '@tiptap/pm': 2.11.7
1456 | tippy.js: 6.3.7
1457 |
1458 | '@tiptap/extension-bullet-list@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1459 | dependencies:
1460 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1461 |
1462 | '@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1463 | dependencies:
1464 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1465 | '@tiptap/pm': 2.11.7
1466 |
1467 | '@tiptap/extension-code@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1468 | dependencies:
1469 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1470 |
1471 | '@tiptap/extension-document@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1472 | dependencies:
1473 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1474 |
1475 | '@tiptap/extension-dropcursor@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1476 | dependencies:
1477 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1478 | '@tiptap/pm': 2.11.7
1479 |
1480 | '@tiptap/extension-floating-menu@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1481 | dependencies:
1482 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1483 | '@tiptap/pm': 2.11.7
1484 | tippy.js: 6.3.7
1485 |
1486 | '@tiptap/extension-gapcursor@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1487 | dependencies:
1488 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1489 | '@tiptap/pm': 2.11.7
1490 |
1491 | '@tiptap/extension-hard-break@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1492 | dependencies:
1493 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1494 |
1495 | '@tiptap/extension-heading@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1496 | dependencies:
1497 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1498 |
1499 | '@tiptap/extension-history@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1500 | dependencies:
1501 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1502 | '@tiptap/pm': 2.11.7
1503 |
1504 | '@tiptap/extension-horizontal-rule@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)':
1505 | dependencies:
1506 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1507 | '@tiptap/pm': 2.11.7
1508 |
1509 | '@tiptap/extension-italic@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1510 | dependencies:
1511 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1512 |
1513 | '@tiptap/extension-list-item@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1514 | dependencies:
1515 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1516 |
1517 | '@tiptap/extension-ordered-list@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1518 | dependencies:
1519 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1520 |
1521 | '@tiptap/extension-paragraph@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1522 | dependencies:
1523 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1524 |
1525 | '@tiptap/extension-strike@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1526 | dependencies:
1527 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1528 |
1529 | '@tiptap/extension-text-align@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1530 | dependencies:
1531 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1532 |
1533 | '@tiptap/extension-text-style@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1534 | dependencies:
1535 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1536 |
1537 | '@tiptap/extension-text@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1538 | dependencies:
1539 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1540 |
1541 | '@tiptap/extension-underline@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))':
1542 | dependencies:
1543 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1544 |
1545 | '@tiptap/pm@2.11.7':
1546 | dependencies:
1547 | prosemirror-changeset: 2.2.1
1548 | prosemirror-collab: 1.3.1
1549 | prosemirror-commands: 1.7.0
1550 | prosemirror-dropcursor: 1.8.1
1551 | prosemirror-gapcursor: 1.3.2
1552 | prosemirror-history: 1.4.1
1553 | prosemirror-inputrules: 1.5.0
1554 | prosemirror-keymap: 1.2.2
1555 | prosemirror-markdown: 1.13.2
1556 | prosemirror-menu: 1.2.4
1557 | prosemirror-model: 1.25.0
1558 | prosemirror-schema-basic: 1.2.4
1559 | prosemirror-schema-list: 1.5.1
1560 | prosemirror-state: 1.4.3
1561 | prosemirror-tables: 1.6.4
1562 | prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.0)(prosemirror-state@1.4.3)(prosemirror-view@1.39.1)
1563 | prosemirror-transform: 1.10.3
1564 | prosemirror-view: 1.39.1
1565 |
1566 | '@tiptap/starter-kit@2.11.7':
1567 | dependencies:
1568 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1569 | '@tiptap/extension-blockquote': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1570 | '@tiptap/extension-bold': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1571 | '@tiptap/extension-bullet-list': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1572 | '@tiptap/extension-code': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1573 | '@tiptap/extension-code-block': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1574 | '@tiptap/extension-document': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1575 | '@tiptap/extension-dropcursor': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1576 | '@tiptap/extension-gapcursor': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1577 | '@tiptap/extension-hard-break': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1578 | '@tiptap/extension-heading': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1579 | '@tiptap/extension-history': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1580 | '@tiptap/extension-horizontal-rule': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1581 | '@tiptap/extension-italic': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1582 | '@tiptap/extension-list-item': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1583 | '@tiptap/extension-ordered-list': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1584 | '@tiptap/extension-paragraph': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1585 | '@tiptap/extension-strike': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1586 | '@tiptap/extension-text': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1587 | '@tiptap/extension-text-style': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
1588 | '@tiptap/pm': 2.11.7
1589 |
1590 | '@tiptap/vue-3@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(vue@3.5.13(typescript@5.8.3))':
1591 | dependencies:
1592 | '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
1593 | '@tiptap/extension-bubble-menu': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1594 | '@tiptap/extension-floating-menu': 2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
1595 | '@tiptap/pm': 2.11.7
1596 | vue: 3.5.13(typescript@5.8.3)
1597 |
1598 | '@types/estree@1.0.7': {}
1599 |
1600 | '@types/linkify-it@5.0.0': {}
1601 |
1602 | '@types/markdown-it@14.1.2':
1603 | dependencies:
1604 | '@types/linkify-it': 5.0.0
1605 | '@types/mdurl': 2.0.0
1606 |
1607 | '@types/mdurl@2.0.0': {}
1608 |
1609 | '@types/node@22.14.0':
1610 | dependencies:
1611 | undici-types: 6.21.0
1612 |
1613 | '@types/web-bluetooth@0.0.21': {}
1614 |
1615 | '@vitejs/plugin-vue@5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))':
1616 | dependencies:
1617 | vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)
1618 | vue: 3.5.13(typescript@5.8.3)
1619 |
1620 | '@volar/language-core@2.4.12':
1621 | dependencies:
1622 | '@volar/source-map': 2.4.12
1623 |
1624 | '@volar/source-map@2.4.12': {}
1625 |
1626 | '@volar/typescript@2.4.12':
1627 | dependencies:
1628 | '@volar/language-core': 2.4.12
1629 | path-browserify: 1.0.1
1630 | vscode-uri: 3.1.0
1631 |
1632 | '@vue/compiler-core@3.5.13':
1633 | dependencies:
1634 | '@babel/parser': 7.27.0
1635 | '@vue/shared': 3.5.13
1636 | entities: 4.5.0
1637 | estree-walker: 2.0.2
1638 | source-map-js: 1.2.1
1639 |
1640 | '@vue/compiler-dom@3.5.13':
1641 | dependencies:
1642 | '@vue/compiler-core': 3.5.13
1643 | '@vue/shared': 3.5.13
1644 |
1645 | '@vue/compiler-sfc@3.5.13':
1646 | dependencies:
1647 | '@babel/parser': 7.27.0
1648 | '@vue/compiler-core': 3.5.13
1649 | '@vue/compiler-dom': 3.5.13
1650 | '@vue/compiler-ssr': 3.5.13
1651 | '@vue/shared': 3.5.13
1652 | estree-walker: 2.0.2
1653 | magic-string: 0.30.17
1654 | postcss: 8.5.3
1655 | source-map-js: 1.2.1
1656 |
1657 | '@vue/compiler-ssr@3.5.13':
1658 | dependencies:
1659 | '@vue/compiler-dom': 3.5.13
1660 | '@vue/shared': 3.5.13
1661 |
1662 | '@vue/compiler-vue2@2.7.16':
1663 | dependencies:
1664 | de-indent: 1.0.2
1665 | he: 1.2.0
1666 |
1667 | '@vue/language-core@2.2.8(typescript@5.8.3)':
1668 | dependencies:
1669 | '@volar/language-core': 2.4.12
1670 | '@vue/compiler-dom': 3.5.13
1671 | '@vue/compiler-vue2': 2.7.16
1672 | '@vue/shared': 3.5.13
1673 | alien-signals: 1.0.13
1674 | minimatch: 9.0.5
1675 | muggle-string: 0.4.1
1676 | path-browserify: 1.0.1
1677 | optionalDependencies:
1678 | typescript: 5.8.3
1679 |
1680 | '@vue/reactivity@3.5.13':
1681 | dependencies:
1682 | '@vue/shared': 3.5.13
1683 |
1684 | '@vue/runtime-core@3.5.13':
1685 | dependencies:
1686 | '@vue/reactivity': 3.5.13
1687 | '@vue/shared': 3.5.13
1688 |
1689 | '@vue/runtime-dom@3.5.13':
1690 | dependencies:
1691 | '@vue/reactivity': 3.5.13
1692 | '@vue/runtime-core': 3.5.13
1693 | '@vue/shared': 3.5.13
1694 | csstype: 3.1.3
1695 |
1696 | '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.3))':
1697 | dependencies:
1698 | '@vue/compiler-ssr': 3.5.13
1699 | '@vue/shared': 3.5.13
1700 | vue: 3.5.13(typescript@5.8.3)
1701 |
1702 | '@vue/shared@3.5.13': {}
1703 |
1704 | '@vue/tsconfig@0.7.0(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))':
1705 | optionalDependencies:
1706 | typescript: 5.8.3
1707 | vue: 3.5.13(typescript@5.8.3)
1708 |
1709 | '@vuetify/loader-shared@2.1.0(vue@3.5.13(typescript@5.8.3))(vuetify@3.8.0)':
1710 | dependencies:
1711 | upath: 2.0.1
1712 | vue: 3.5.13(typescript@5.8.3)
1713 | vuetify: 3.8.0(typescript@5.8.3)(vite-plugin-vuetify@2.1.1)(vue@3.5.13(typescript@5.8.3))
1714 |
1715 | '@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.3))':
1716 | dependencies:
1717 | '@types/web-bluetooth': 0.0.21
1718 | '@vueuse/metadata': 13.0.0
1719 | '@vueuse/shared': 13.0.0(vue@3.5.13(typescript@5.8.3))
1720 | vue: 3.5.13(typescript@5.8.3)
1721 |
1722 | '@vueuse/metadata@13.0.0': {}
1723 |
1724 | '@vueuse/shared@13.0.0(vue@3.5.13(typescript@5.8.3))':
1725 | dependencies:
1726 | vue: 3.5.13(typescript@5.8.3)
1727 |
1728 | alien-signals@1.0.13: {}
1729 |
1730 | argparse@2.0.1: {}
1731 |
1732 | array-union@2.1.0: {}
1733 |
1734 | async@3.2.6: {}
1735 |
1736 | balanced-match@1.0.2: {}
1737 |
1738 | brace-expansion@2.0.1:
1739 | dependencies:
1740 | balanced-match: 1.0.2
1741 |
1742 | braces@3.0.3:
1743 | dependencies:
1744 | fill-range: 7.1.1
1745 |
1746 | commander@13.1.0: {}
1747 |
1748 | commondir@1.0.1: {}
1749 |
1750 | crelt@1.0.6: {}
1751 |
1752 | cssesc@3.0.0: {}
1753 |
1754 | csstype@3.1.3: {}
1755 |
1756 | de-indent@1.0.2: {}
1757 |
1758 | debug@4.4.0:
1759 | dependencies:
1760 | ms: 2.1.3
1761 |
1762 | detect-libc@2.0.3:
1763 | optional: true
1764 |
1765 | dir-glob@3.0.1:
1766 | dependencies:
1767 | path-type: 4.0.0
1768 |
1769 | email-addresses@5.0.0: {}
1770 |
1771 | entities@4.5.0: {}
1772 |
1773 | esbuild@0.25.2:
1774 | optionalDependencies:
1775 | '@esbuild/aix-ppc64': 0.25.2
1776 | '@esbuild/android-arm': 0.25.2
1777 | '@esbuild/android-arm64': 0.25.2
1778 | '@esbuild/android-x64': 0.25.2
1779 | '@esbuild/darwin-arm64': 0.25.2
1780 | '@esbuild/darwin-x64': 0.25.2
1781 | '@esbuild/freebsd-arm64': 0.25.2
1782 | '@esbuild/freebsd-x64': 0.25.2
1783 | '@esbuild/linux-arm': 0.25.2
1784 | '@esbuild/linux-arm64': 0.25.2
1785 | '@esbuild/linux-ia32': 0.25.2
1786 | '@esbuild/linux-loong64': 0.25.2
1787 | '@esbuild/linux-mips64el': 0.25.2
1788 | '@esbuild/linux-ppc64': 0.25.2
1789 | '@esbuild/linux-riscv64': 0.25.2
1790 | '@esbuild/linux-s390x': 0.25.2
1791 | '@esbuild/linux-x64': 0.25.2
1792 | '@esbuild/netbsd-arm64': 0.25.2
1793 | '@esbuild/netbsd-x64': 0.25.2
1794 | '@esbuild/openbsd-arm64': 0.25.2
1795 | '@esbuild/openbsd-x64': 0.25.2
1796 | '@esbuild/sunos-x64': 0.25.2
1797 | '@esbuild/win32-arm64': 0.25.2
1798 | '@esbuild/win32-ia32': 0.25.2
1799 | '@esbuild/win32-x64': 0.25.2
1800 |
1801 | escape-string-regexp@1.0.5: {}
1802 |
1803 | escape-string-regexp@4.0.0: {}
1804 |
1805 | estree-walker@2.0.2: {}
1806 |
1807 | fast-glob@3.3.3:
1808 | dependencies:
1809 | '@nodelib/fs.stat': 2.0.5
1810 | '@nodelib/fs.walk': 1.2.8
1811 | glob-parent: 5.1.2
1812 | merge2: 1.4.1
1813 | micromatch: 4.0.8
1814 |
1815 | fastq@1.19.1:
1816 | dependencies:
1817 | reusify: 1.1.0
1818 |
1819 | filename-reserved-regex@2.0.0: {}
1820 |
1821 | filenamify@4.3.0:
1822 | dependencies:
1823 | filename-reserved-regex: 2.0.0
1824 | strip-outer: 1.0.1
1825 | trim-repeated: 1.0.0
1826 |
1827 | fill-range@7.1.1:
1828 | dependencies:
1829 | to-regex-range: 5.0.1
1830 |
1831 | find-cache-dir@3.3.2:
1832 | dependencies:
1833 | commondir: 1.0.1
1834 | make-dir: 3.1.0
1835 | pkg-dir: 4.2.0
1836 |
1837 | find-up@4.1.0:
1838 | dependencies:
1839 | locate-path: 5.0.0
1840 | path-exists: 4.0.0
1841 |
1842 | fs-extra@11.3.0:
1843 | dependencies:
1844 | graceful-fs: 4.2.11
1845 | jsonfile: 6.1.0
1846 | universalify: 2.0.1
1847 |
1848 | fsevents@2.3.3:
1849 | optional: true
1850 |
1851 | gh-pages@6.3.0:
1852 | dependencies:
1853 | async: 3.2.6
1854 | commander: 13.1.0
1855 | email-addresses: 5.0.0
1856 | filenamify: 4.3.0
1857 | find-cache-dir: 3.3.2
1858 | fs-extra: 11.3.0
1859 | globby: 11.1.0
1860 |
1861 | glob-parent@5.1.2:
1862 | dependencies:
1863 | is-glob: 4.0.3
1864 |
1865 | globby@11.1.0:
1866 | dependencies:
1867 | array-union: 2.1.0
1868 | dir-glob: 3.0.1
1869 | fast-glob: 3.3.3
1870 | ignore: 5.3.2
1871 | merge2: 1.4.1
1872 | slash: 3.0.0
1873 |
1874 | graceful-fs@4.2.11: {}
1875 |
1876 | he@1.2.0: {}
1877 |
1878 | ignore@5.3.2: {}
1879 |
1880 | is-extglob@2.1.1: {}
1881 |
1882 | is-glob@4.0.3:
1883 | dependencies:
1884 | is-extglob: 2.1.1
1885 |
1886 | is-number@7.0.0: {}
1887 |
1888 | jiti@2.4.2:
1889 | optional: true
1890 |
1891 | jsonfile@6.1.0:
1892 | dependencies:
1893 | universalify: 2.0.1
1894 | optionalDependencies:
1895 | graceful-fs: 4.2.11
1896 |
1897 | lightningcss-darwin-arm64@1.29.2:
1898 | optional: true
1899 |
1900 | lightningcss-darwin-x64@1.29.2:
1901 | optional: true
1902 |
1903 | lightningcss-freebsd-x64@1.29.2:
1904 | optional: true
1905 |
1906 | lightningcss-linux-arm-gnueabihf@1.29.2:
1907 | optional: true
1908 |
1909 | lightningcss-linux-arm64-gnu@1.29.2:
1910 | optional: true
1911 |
1912 | lightningcss-linux-arm64-musl@1.29.2:
1913 | optional: true
1914 |
1915 | lightningcss-linux-x64-gnu@1.29.2:
1916 | optional: true
1917 |
1918 | lightningcss-linux-x64-musl@1.29.2:
1919 | optional: true
1920 |
1921 | lightningcss-win32-arm64-msvc@1.29.2:
1922 | optional: true
1923 |
1924 | lightningcss-win32-x64-msvc@1.29.2:
1925 | optional: true
1926 |
1927 | lightningcss@1.29.2:
1928 | dependencies:
1929 | detect-libc: 2.0.3
1930 | optionalDependencies:
1931 | lightningcss-darwin-arm64: 1.29.2
1932 | lightningcss-darwin-x64: 1.29.2
1933 | lightningcss-freebsd-x64: 1.29.2
1934 | lightningcss-linux-arm-gnueabihf: 1.29.2
1935 | lightningcss-linux-arm64-gnu: 1.29.2
1936 | lightningcss-linux-arm64-musl: 1.29.2
1937 | lightningcss-linux-x64-gnu: 1.29.2
1938 | lightningcss-linux-x64-musl: 1.29.2
1939 | lightningcss-win32-arm64-msvc: 1.29.2
1940 | lightningcss-win32-x64-msvc: 1.29.2
1941 | optional: true
1942 |
1943 | linkify-it@5.0.0:
1944 | dependencies:
1945 | uc.micro: 2.1.0
1946 |
1947 | locate-path@5.0.0:
1948 | dependencies:
1949 | p-locate: 4.1.0
1950 |
1951 | lodash.castarray@4.4.0: {}
1952 |
1953 | lodash.isplainobject@4.0.6: {}
1954 |
1955 | lodash.merge@4.6.2: {}
1956 |
1957 | magic-string@0.30.17:
1958 | dependencies:
1959 | '@jridgewell/sourcemap-codec': 1.5.0
1960 |
1961 | make-dir@3.1.0:
1962 | dependencies:
1963 | semver: 6.3.1
1964 |
1965 | markdown-it@14.1.0:
1966 | dependencies:
1967 | argparse: 2.0.1
1968 | entities: 4.5.0
1969 | linkify-it: 5.0.0
1970 | mdurl: 2.0.0
1971 | punycode.js: 2.3.1
1972 | uc.micro: 2.1.0
1973 |
1974 | mdurl@2.0.0: {}
1975 |
1976 | merge2@1.4.1: {}
1977 |
1978 | micromatch@4.0.8:
1979 | dependencies:
1980 | braces: 3.0.3
1981 | picomatch: 2.3.1
1982 |
1983 | minimatch@9.0.5:
1984 | dependencies:
1985 | brace-expansion: 2.0.1
1986 |
1987 | ms@2.1.3: {}
1988 |
1989 | muggle-string@0.4.1: {}
1990 |
1991 | nanoid@3.3.11: {}
1992 |
1993 | orderedmap@2.1.1: {}
1994 |
1995 | p-limit@2.3.0:
1996 | dependencies:
1997 | p-try: 2.2.0
1998 |
1999 | p-locate@4.1.0:
2000 | dependencies:
2001 | p-limit: 2.3.0
2002 |
2003 | p-try@2.2.0: {}
2004 |
2005 | path-browserify@1.0.1: {}
2006 |
2007 | path-exists@4.0.0: {}
2008 |
2009 | path-type@4.0.0: {}
2010 |
2011 | picocolors@1.1.1: {}
2012 |
2013 | picomatch@2.3.1: {}
2014 |
2015 | pkg-dir@4.2.0:
2016 | dependencies:
2017 | find-up: 4.1.0
2018 |
2019 | postcss-selector-parser@6.0.10:
2020 | dependencies:
2021 | cssesc: 3.0.0
2022 | util-deprecate: 1.0.2
2023 |
2024 | postcss@8.5.3:
2025 | dependencies:
2026 | nanoid: 3.3.11
2027 | picocolors: 1.1.1
2028 | source-map-js: 1.2.1
2029 |
2030 | prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3):
2031 | dependencies:
2032 | prettier: 3.5.3
2033 |
2034 | prettier@3.5.3: {}
2035 |
2036 | prosemirror-changeset@2.2.1:
2037 | dependencies:
2038 | prosemirror-transform: 1.10.3
2039 |
2040 | prosemirror-collab@1.3.1:
2041 | dependencies:
2042 | prosemirror-state: 1.4.3
2043 |
2044 | prosemirror-commands@1.7.0:
2045 | dependencies:
2046 | prosemirror-model: 1.25.0
2047 | prosemirror-state: 1.4.3
2048 | prosemirror-transform: 1.10.3
2049 |
2050 | prosemirror-dropcursor@1.8.1:
2051 | dependencies:
2052 | prosemirror-state: 1.4.3
2053 | prosemirror-transform: 1.10.3
2054 | prosemirror-view: 1.39.1
2055 |
2056 | prosemirror-gapcursor@1.3.2:
2057 | dependencies:
2058 | prosemirror-keymap: 1.2.2
2059 | prosemirror-model: 1.25.0
2060 | prosemirror-state: 1.4.3
2061 | prosemirror-view: 1.39.1
2062 |
2063 | prosemirror-history@1.4.1:
2064 | dependencies:
2065 | prosemirror-state: 1.4.3
2066 | prosemirror-transform: 1.10.3
2067 | prosemirror-view: 1.39.1
2068 | rope-sequence: 1.3.4
2069 |
2070 | prosemirror-inputrules@1.5.0:
2071 | dependencies:
2072 | prosemirror-state: 1.4.3
2073 | prosemirror-transform: 1.10.3
2074 |
2075 | prosemirror-keymap@1.2.2:
2076 | dependencies:
2077 | prosemirror-state: 1.4.3
2078 | w3c-keyname: 2.2.8
2079 |
2080 | prosemirror-markdown@1.13.2:
2081 | dependencies:
2082 | '@types/markdown-it': 14.1.2
2083 | markdown-it: 14.1.0
2084 | prosemirror-model: 1.25.0
2085 |
2086 | prosemirror-menu@1.2.4:
2087 | dependencies:
2088 | crelt: 1.0.6
2089 | prosemirror-commands: 1.7.0
2090 | prosemirror-history: 1.4.1
2091 | prosemirror-state: 1.4.3
2092 |
2093 | prosemirror-model@1.25.0:
2094 | dependencies:
2095 | orderedmap: 2.1.1
2096 |
2097 | prosemirror-schema-basic@1.2.4:
2098 | dependencies:
2099 | prosemirror-model: 1.25.0
2100 |
2101 | prosemirror-schema-list@1.5.1:
2102 | dependencies:
2103 | prosemirror-model: 1.25.0
2104 | prosemirror-state: 1.4.3
2105 | prosemirror-transform: 1.10.3
2106 |
2107 | prosemirror-state@1.4.3:
2108 | dependencies:
2109 | prosemirror-model: 1.25.0
2110 | prosemirror-transform: 1.10.3
2111 | prosemirror-view: 1.39.1
2112 |
2113 | prosemirror-tables@1.6.4:
2114 | dependencies:
2115 | prosemirror-keymap: 1.2.2
2116 | prosemirror-model: 1.25.0
2117 | prosemirror-state: 1.4.3
2118 | prosemirror-transform: 1.10.3
2119 | prosemirror-view: 1.39.1
2120 |
2121 | prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.0)(prosemirror-state@1.4.3)(prosemirror-view@1.39.1):
2122 | dependencies:
2123 | '@remirror/core-constants': 3.0.0
2124 | escape-string-regexp: 4.0.0
2125 | prosemirror-model: 1.25.0
2126 | prosemirror-state: 1.4.3
2127 | prosemirror-view: 1.39.1
2128 |
2129 | prosemirror-transform@1.10.3:
2130 | dependencies:
2131 | prosemirror-model: 1.25.0
2132 |
2133 | prosemirror-view@1.39.1:
2134 | dependencies:
2135 | prosemirror-model: 1.25.0
2136 | prosemirror-state: 1.4.3
2137 | prosemirror-transform: 1.10.3
2138 |
2139 | punycode.js@2.3.1: {}
2140 |
2141 | queue-microtask@1.2.3: {}
2142 |
2143 | reusify@1.1.0: {}
2144 |
2145 | rollup@4.39.0:
2146 | dependencies:
2147 | '@types/estree': 1.0.7
2148 | optionalDependencies:
2149 | '@rollup/rollup-android-arm-eabi': 4.39.0
2150 | '@rollup/rollup-android-arm64': 4.39.0
2151 | '@rollup/rollup-darwin-arm64': 4.39.0
2152 | '@rollup/rollup-darwin-x64': 4.39.0
2153 | '@rollup/rollup-freebsd-arm64': 4.39.0
2154 | '@rollup/rollup-freebsd-x64': 4.39.0
2155 | '@rollup/rollup-linux-arm-gnueabihf': 4.39.0
2156 | '@rollup/rollup-linux-arm-musleabihf': 4.39.0
2157 | '@rollup/rollup-linux-arm64-gnu': 4.39.0
2158 | '@rollup/rollup-linux-arm64-musl': 4.39.0
2159 | '@rollup/rollup-linux-loongarch64-gnu': 4.39.0
2160 | '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0
2161 | '@rollup/rollup-linux-riscv64-gnu': 4.39.0
2162 | '@rollup/rollup-linux-riscv64-musl': 4.39.0
2163 | '@rollup/rollup-linux-s390x-gnu': 4.39.0
2164 | '@rollup/rollup-linux-x64-gnu': 4.39.0
2165 | '@rollup/rollup-linux-x64-musl': 4.39.0
2166 | '@rollup/rollup-win32-arm64-msvc': 4.39.0
2167 | '@rollup/rollup-win32-ia32-msvc': 4.39.0
2168 | '@rollup/rollup-win32-x64-msvc': 4.39.0
2169 | fsevents: 2.3.3
2170 |
2171 | rope-sequence@1.3.4: {}
2172 |
2173 | run-parallel@1.2.0:
2174 | dependencies:
2175 | queue-microtask: 1.2.3
2176 |
2177 | semver@6.3.1: {}
2178 |
2179 | slash@3.0.0: {}
2180 |
2181 | source-map-js@1.2.1: {}
2182 |
2183 | strip-outer@1.0.1:
2184 | dependencies:
2185 | escape-string-regexp: 1.0.5
2186 |
2187 | striptags@3.2.0: {}
2188 |
2189 | tailwindcss@4.1.3: {}
2190 |
2191 | tippy.js@6.3.7:
2192 | dependencies:
2193 | '@popperjs/core': 2.11.8
2194 |
2195 | to-regex-range@5.0.1:
2196 | dependencies:
2197 | is-number: 7.0.0
2198 |
2199 | trim-repeated@1.0.0:
2200 | dependencies:
2201 | escape-string-regexp: 1.0.5
2202 |
2203 | typescript@5.8.3: {}
2204 |
2205 | uc.micro@2.1.0: {}
2206 |
2207 | undici-types@6.21.0: {}
2208 |
2209 | universalify@2.0.1: {}
2210 |
2211 | upath@2.0.1: {}
2212 |
2213 | util-deprecate@1.0.2: {}
2214 |
2215 | vite-plugin-vuetify@2.1.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))(vuetify@3.8.0):
2216 | dependencies:
2217 | '@vuetify/loader-shared': 2.1.0(vue@3.5.13(typescript@5.8.3))(vuetify@3.8.0)
2218 | debug: 4.4.0
2219 | upath: 2.0.1
2220 | vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2)
2221 | vue: 3.5.13(typescript@5.8.3)
2222 | vuetify: 3.8.0(typescript@5.8.3)(vite-plugin-vuetify@2.1.1)(vue@3.5.13(typescript@5.8.3))
2223 | transitivePeerDependencies:
2224 | - supports-color
2225 |
2226 | vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2):
2227 | dependencies:
2228 | esbuild: 0.25.2
2229 | postcss: 8.5.3
2230 | rollup: 4.39.0
2231 | optionalDependencies:
2232 | '@types/node': 22.14.0
2233 | fsevents: 2.3.3
2234 | jiti: 2.4.2
2235 | lightningcss: 1.29.2
2236 |
2237 | vscode-uri@3.1.0: {}
2238 |
2239 | vue-shadow-dom@4.2.0: {}
2240 |
2241 | vue-tsc@2.2.8(typescript@5.8.3):
2242 | dependencies:
2243 | '@volar/typescript': 2.4.12
2244 | '@vue/language-core': 2.2.8(typescript@5.8.3)
2245 | typescript: 5.8.3
2246 |
2247 | vue@3.5.13(typescript@5.8.3):
2248 | dependencies:
2249 | '@vue/compiler-dom': 3.5.13
2250 | '@vue/compiler-sfc': 3.5.13
2251 | '@vue/runtime-dom': 3.5.13
2252 | '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.3))
2253 | '@vue/shared': 3.5.13
2254 | optionalDependencies:
2255 | typescript: 5.8.3
2256 |
2257 | vuetify@3.8.0(typescript@5.8.3)(vite-plugin-vuetify@2.1.1)(vue@3.5.13(typescript@5.8.3)):
2258 | dependencies:
2259 | vue: 3.5.13(typescript@5.8.3)
2260 | optionalDependencies:
2261 | typescript: 5.8.3
2262 | vite-plugin-vuetify: 2.1.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.2))(vue@3.5.13(typescript@5.8.3))(vuetify@3.8.0)
2263 |
2264 | w3c-keyname@2.2.8: {}
2265 |
--------------------------------------------------------------------------------