@epam/ai-dial-ui-kit 0.14.0-dev.50 → 0.14.0-dev.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -3
- package/dist/CHANGELOG.md +1 -0
- package/dist/components-manifest.json +3 -7
- package/package.json +17 -5
package/README.md
CHANGED
|
@@ -292,11 +292,20 @@ Storybook provides:
|
|
|
292
292
|
<details>
|
|
293
293
|
<summary>Next.js Integration</summary>
|
|
294
294
|
|
|
295
|
-
1. Install the package
|
|
295
|
+
1. Install the package. React is the only peer you have to supply — everything
|
|
296
|
+
the kit renders with, it installs itself.
|
|
297
|
+
|
|
296
298
|
``` bash
|
|
297
299
|
npm install @epam/ai-dial-ui-kit
|
|
298
|
-
npm install react react-dom
|
|
299
|
-
|
|
300
|
+
npm install react react-dom
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Add the editor packages only if you use the `@epam/ai-dial-ui-kit/editors`
|
|
304
|
+
subpath. They are optional peers, so `npm install` stays quiet without them, and
|
|
305
|
+
the kit only reaches for them when a `Lazy*` editor actually mounts:
|
|
306
|
+
|
|
307
|
+
``` bash
|
|
308
|
+
npm install monaco-editor @monaco-editor/react @uiw/react-md-editor
|
|
300
309
|
```
|
|
301
310
|
|
|
302
311
|
2. Import style in the root layout of the project:
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -29,6 +29,7 @@ Versions match the git tags on the `development` branch.
|
|
|
29
29
|
|
|
30
30
|
### Changed
|
|
31
31
|
|
|
32
|
+
- **The kit installs what it renders with — `react` and `react-dom` are the only required peers** — `@floating-ui/react`, `classnames` and `@tabler/icons-react` were required peers, so every host had to add three packages it never imports to its own `package.json` just to satisfy the peer graph; all three are eagerly reachable from every entry point, so they are now `dependencies` of the kit. The editor packages go the other way: `@monaco-editor/react`, `monaco-editor` and `@uiw/react-md-editor` are reachable only behind the `Lazy*` wrappers the `./editors` subpath exports, so they become **optional** peers — `npm install` stays quiet without them, and you add them only if you mount an editor. `@uiw/react-markdown-preview` is dropped from the peer list entirely: nothing in the kit imports it, and `@uiw/react-md-editor` already depends on it. Nothing changes for a host that keeps its current `package.json`; the point is that it can now delete four to six entries from it. See [issue #8719](https://github.com/epam/ai-dial-chat/issues/8719) for the embedding-host report this came from.
|
|
32
33
|
- **The accent gradient is themed through `--bg-gradient-*` / `--stroke-gradient-*`** — the gradient stops were addressed by their position in one specific gradient (`--bg-control-accent-gradient-hover-from`), so the same colour had a different variable name in every gradient that used it. Each stop is now a numbered token (`--bg-gradient-1`, `--bg-gradient-2-hover`, `--stroke-gradient-1`, …). The `--bg-control-accent-gradient-*` names stay in the fallback chain; the `--stroke-control-accent-gradient-*` names behind the selected tab's underline do **not**, so a theme that sets those must rename them (see the migration guide).
|
|
33
34
|
- **Renamed control variables keep their old names as fallbacks** — every token renamed in this release resolves through its 0.13.0 variable before reaching the light default (e.g. `var(--text-control-disable-primary, var(--text-control-disable-alpha, #848E9C))`). Only the Tailwind class names are breaking; a host themed by the DIAL themes service needs no theme change to keep its colours.
|
|
34
35
|
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.14.0-dev.
|
|
3
|
-
"generatedAt": "2026-09-
|
|
2
|
+
"version": "0.14.0-dev.51",
|
|
3
|
+
"generatedAt": "2026-09-14T09:04:04.409Z",
|
|
4
4
|
"kit": {
|
|
5
5
|
"name": "@epam/ai-dial-ui-kit",
|
|
6
6
|
"description": "A modern UI kit for building AI DIAL interfaces with React",
|
|
7
7
|
"installation": "npm install @epam/ai-dial-ui-kit",
|
|
8
8
|
"cssImport": "import '@epam/ai-dial-ui-kit/styles.css'",
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@floating-ui/react": "^0.27.19",
|
|
11
10
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
12
11
|
"@monaco-editor/react": "^4.7.0",
|
|
13
|
-
"@tabler/icons-react": "^3.41.1",
|
|
14
|
-
"@uiw/react-markdown-preview": "^5.2.0",
|
|
15
12
|
"@uiw/react-md-editor": "^4.1.0",
|
|
16
|
-
"classnames": "^2.5.1",
|
|
17
13
|
"monaco-editor": "^0.55.1",
|
|
18
14
|
"react": "^19.2.5",
|
|
19
15
|
"react-dom": "^19.2.5"
|
|
20
16
|
},
|
|
21
|
-
"setupNotes": "## Next.js Integration\n1. Install the package
|
|
17
|
+
"setupNotes": "## Next.js Integration\n1. Install the package. React is the only peer you have to supply — everything\n the kit renders with, it installs itself.\n\n``` bash\nnpm install @epam/ai-dial-ui-kit\nnpm install react react-dom\n```\n\nAdd the editor packages only if you use the `@epam/ai-dial-ui-kit/editors`\nsubpath. They are optional peers, so `npm install` stays quiet without them, and\nthe kit only reaches for them when a `Lazy*` editor actually mounts:\n\n``` bash\nnpm install monaco-editor @monaco-editor/react @uiw/react-md-editor\n```\n\n2. Import style in the root layout of the project:\n\n```tsx\n// app/layout.tsx\nimport \"@epam/ai-dial-ui-kit/styles.css\";\n```\n\n3. Usage example\n\n```tsx\n// app/page.tsx\n\"use client\";\nimport { DialPrimaryButton } from \"@epam/ai-dial-ui-kit\";\n\nexport default function Home() {\n return (\n <div className=\"w-full h-full flex flex-col gap-3 items-center justify-center\">\n <h1>Test library</h1>\n <DialPrimaryButton onClick={() => alert('Hello AI DIAL!')} />\n </div>\n );\n}\n```\nSee \"🎨 Theming & Customization\" section in README."
|
|
22
18
|
},
|
|
23
19
|
"styles": "# Typography CSS Utility Classes\n\n## Design-system-compliant classes (`dial-*-text`)\n\nUse these by default. They follow the design system type scale.\n\n| Class | Design name | Weight | Size / Line-height |\n| --------------------------------- | --------------------------- | -------- | ----------------------------------- |\n| `.dial-display1-text` | Display 1 | semibold | 32px / 48px |\n| `.dial-display2-text` | Display 2 | semibold | 28px / 40px |\n| `.dial-display3-text` | Display 3 | semibold | 22px / 32px |\n| `.dial-h1-text` | Heading 1 | semibold | 20px / 28px |\n| `.dial-h2-text` | Heading 2 | semibold | 18px / 26px |\n| `.dial-h3-text` | Heading 3 | semibold | 16px / 24px |\n| `.dial-body-text` | Body Text | normal | 16px / 24px |\n| `.dial-body-semi-text` | Body Text (Semi Bold) | semibold | 16px / 24px |\n| `.dial-body-paragraph-text` | Body Paragraph | normal | 16px / 26px |\n| `.dial-body-paragraph-semi-text` | Body Paragraph (Semi Bold) | semibold | 16px / 26px |\n| `.dial-small-text` | Small Text | normal | 14px / 20px |\n| `.dial-small-semi-text` | Small Text (Semi Bold) | semibold | 14px / 20px |\n| `.dial-small-paragraph-text` | Small Paragraph | normal | 14px / 24px |\n| `.dial-small-paragraph-semi-text` | Small Paragraph (Semi Bold) | semibold | 14px / 24px |\n| `.dial-tiny-text` | Tiny Text | normal | 12px / 16px |\n| `.dial-tiny-lead-text` | Tiny Text Lead | normal | 12px / 16px (+0.03em, uppercase) |\n| `.dial-tiny-semi-text` | Tiny Text (Semi Bold) | semibold | 12px / 16px |\n| `.dial-tiny-lead-semi-text` | Tiny Text Lead (Semi Bold) | semibold | 12px / 16px (+0.03em, uppercase) |\n| `.dial-caption-text` | Caption | normal | 10px / 12px |\n| `.dial-caption-lead-semi-text` | Caption Lead (Semi Bold) | semibold | 10px / 12px (+0.06em, uppercase) |\n| `.dial-code-text` | Code | normal | 14px / 20px (Fira Code / monospace) |\n| `.dial-italic-text` | Italic | normal | 18px / 22px (serif, italic) |\n| `.dial-small-italic-text` | Small Italic | normal | 14px / 20px (serif, italic) |\n| `.dial-tiny-italic-text` | Tiny Italic | normal | 12px / 16px (serif, italic) |\n| `.dial-caption-italic-text` | Caption Italic | normal | 10px / 12px (serif, italic) |\n\nThe three `*-lead-*` classes apply `text-transform: uppercase` themselves — pass them the sentence-case string, not a pre-uppercased one, so the accessible name stays readable.\n\n`.dial-code-text` resolves its family through `var(--theme-font-mono, var(--font-fira-code, 'Fira Code'))` before falling back to the system monospace stack. The kit ships no font file; the host provides the face.\n\nThe `*-italic-text` classes use a serif italic face and are intended for mathematical and formula symbols. Their line-heights follow the corresponding typography size; the default 18px variant uses a fixed 22px line-height to keep standalone symbols vertically aligned without changing their container's height.\n\n## Legacy classes (avoid in new code)\n\nClasses like `dial-h1`, `dial-h2`, `dial-body`, `dial-small*`, `dial-tiny*`, `dial-caption` are legacy. They can be used in legacy projects if user explicidly specify they need legacy typography.\n\n## Raw SCSS source\n",
|
|
24
20
|
"theming": "# Theming & CSS Variable Tokens\n\nAI DIAL UI Kit uses CSS custom properties (variables) for theming.\nDark and light themes are switched by setting different values for these variables on `:root` or a theme wrapper element.\n\n## Usage in Tailwind\n\nThe Tailwind config maps CSS variables to utility classes.\nUse these classes in your components:\n\n```tsx\n// Backgrounds\n<div className=\"bg-layer-0\" /> // darkest background\n<div className=\"bg-layer-1\" /> // main content area\n<div className=\"bg-layer-2\" /> // elevated panels\n\n// Text\n<span className=\"text-primary\" /> // main text color\n<span className=\"text-secondary\" /> // muted text\n<span className=\"text-error\" /> // error state\n\n// Borders\n<div className=\"border border-primary\" /> // standard border\n<div className=\"border border-error\" /> // error border\n```\n\n## Override CSS Variables\n\n```css\n:root {\n --bg-layer-0: #000000;\n --bg-layer-1: #0c101d;\n --bg-layer-2: #161b2d;\n --bg-layer-3: #1d2439;\n --text-primary: #eef1f7;\n --text-secondary: #9fa6bd;\n --text-error: #f76464;\n --stroke-primary: #696e7c;\n --controls-bg-accent-primary: #3664e2;\n /* ... see tailwind.config.js for full list */\n}\n```\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-sunken` | `var(--bg-layer-sunken)` | `#EEF1F7` |\n| `layer-base` | `var(--bg-layer-base)` | `#F5F7FA` |\n| `layer-raised` | `var(--bg-layer-raised)` | `#FCFCFC` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1D4ED8` |\n| `gradient-1-hover` | `var(--bg-gradient-1-hover)` | `#6785FB` |\n| `gradient-1-active` | `var(--bg-gradient-1-active)` | `#1D4ED8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885DF2` |\n| `gradient-2-hover` | `var(--bg-gradient-2-hover)` | `#885DF2` |\n| `gradient-2-active` | `var(--bg-gradient-2-active)` | `#7C3AED` |\n| `control-accent-alpha` | `var(--bg-control-accent-alpha)` | `#2764D90F` |\n| `control-accent-alpha-hover` | `var(--bg-control-accent-alpha-hover)` | `#2764D924` |\n| `control-accent-alpha-active` | `var(--bg-control-accent-alpha-active)` | `#2764D933` |\n| `control-accent` | `var(--bg-control-accent)` | `#1D4ED8` |\n| `control-accent-hover` | `var(--bg-control-accent-hover)` | `#5976E9` |\n| `control-neutral` | `var(--bg-control-neutral)` | `#FCFCFC` |\n| `control-neutral-hover-strong` | `var(--bg-control-neutral-hover-strong)` | `#848E9C` |\n| `control-neutral-active` | `var(--bg-control-neutral-active)` | `#D1DBEA` |\n| `control-neutral-default` | `var(--bg-control-neutral-default)` | `#ACB3C3` |\n| `control-inverted` | `var(--bg-control-inverted)` | `#57647A` |\n| `control-error` | `var(--bg-control-error)` | `#AE2F2F` |\n| `control-error-hover` | `var(--bg-control-error-hover)` | `#BF3939` |\n| `control-error-active` | `var(--bg-control-error-active)` | `#CC4545` |\n| `control-error-alpha-hover` | `var(--bg-control-error-alpha-hover)` | `#F764641A` |\n| `control-error-alpha-active` | `var(--bg-control-error-alpha-active)` | `#F7646433` |\n| `control-disable-primary` | `var(--bg-control-disable-primary)` | `#DCE0E8` |\n| `control-disable-secondary` | `var(--bg-control-disable-secondary)` | `#ACB3C3` |\n| `green-1` | `var(--bg-visual-green-1)` | `#CDE8E5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#D1F0DC` |\n| `violet-1` | `var(--bg-visual-violet-1)` | `#DDE3F9` |\n| `violet-2` | `var(--bg-visual-violet-2)` | `#F1E9FF` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `xs-1` | `var(--shadow-xs-1)` | `#2764D933` |\n| `xs-2` | `var(--shadow-xs-2)` | `#161B2D08` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-alpha` | `var(--stroke-accent-alpha)` | `#2764D933` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976E9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885DF2` |\n| `accent-focus` | `var(--stroke-accent-focus)` | `#6785FB` |\n| `error-alpha` | `var(--stroke-error-alpha)` | `#AE2F2F73` |\n| `control-disable-primary` | `var(--stroke-control-disable-primary)` | `#848E9C` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `warning-icon` | `var(--text-warning-icon)` | `#EEC840` |\n| `green-1` | `var(--text-visual-green-1)` | `#059669` |\n| `green-2` | `var(--text-visual-green-2)` | `#0D6E72` |\n| `green-3` | `var(--text-visual-green-3)` | `#065F46` |\n| `brown-1` | `var(--text-visual-brown-1)` | `#D36817` |\n| `brown-2` | `var(--text-visual-brown-2)` | `#B45309` |\n| `violet-1` | `var(--text-visual-violet-1)` | `#7C3AED` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730B7` |\n| `control-permanent` | `var(--text-control-permanent)` | `#FCFCFC` |\n| `control-inverted` | `var(--text-control-inverted)` | `#FCFCFC` |\n| `control-disable-primary` | `var(--text-control-disable-primary)` | `#848E9C` |\n| `control-disable-secondary` | `var(--text-control-disable-secondary)` | `#DCE0E8` |\n| `control-accent-hover` | `var(--text-control-accent-hover)` | `#5976E9` |\n| `control-accent-active` | `var(--text-control-accent-active)` | `#6785FB` |\n\n### backgroundsColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-0` | `var(--bg-layer-0)` | `#FCFCFC` |\n| `layer-1` | `var(--bg-layer-1)` | `#E0E6F0` |\n| `layer-2` | `var(--bg-layer-2)` | `#EEF1F7` |\n| `layer-3` | `var(--bg-layer-3)` | `#FCFCFC` |\n| `layer-4` | `var(--bg-layer-4)` | `#D1DBEA` |\n| `accent-primary-alpha` | `var(--bg-accent-primary-alpha)` | `#7DA4FF26` |\n| `accent-secondary-alpha` | `var(--bg-accent-secondary-alpha)` | `#37BABC2E` |\n| `accent-tertiary-alpha` | `var(--bg-accent-tertiary-alpha)` | `#A972FF2E` |\n| `accent-primary` | `var(--bg-accent-primary)` | `#5C8DEA` |\n| `accent-secondary` | `var(--bg-accent-secondary)` | `#37BABC` |\n| `red-400` | `var(--bg-red-400)` | `#F76464` |\n| `controls-accent-primary` | `var(--controls-bg-accent-primary)` | `#124ACE` |\n| `controls-accent-primary-hover` | `var(--controls-bg-accent-primary-hover)` | `#2656D9` |\n| `controls-accent-primary-active` | `var(--controls-bg-accent-primary-active)` | `#3664E2` |\n| `controls-accent-primary-alpha-active` | `var(--controls-bg-accent-primary-alpha-active)` | `#7DA4FF5C` |\n| `controls-accent-secondary-alpha-active` | `var(--controls-bg-accent-secondary-alpha-active)` | `#37BABC5C` |\n| `controls-accent-tertiary-alpha-active` | `var(--controls-bg-accent-tertiary-alpha-active)` | `#A972FF5C` |\n| `controls-error` | `var(--controls-bg-error)` | `#AE2F2F` |\n| `controls-error-hover` | `var(--controls-bg-error-hover)` | `#BF3939` |\n| `controls-error-active` | `var(--controls-bg-error-active)` | `#CC4545` |\n| `controls-error-alpha-active` | `var(--controls-bg-error-alpha-active)` | `#F764645C` |\n| `controls-disable-accent` | `var(--controls-bg-disable-accent)` | `#7C8293` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#D1DBEA` |\n| `controls-neutral-hover` | `var(--controls-bg-neutral-hover)` | `#D1DBEA` |\n| `controls-neutral-active` | `var(--controls-bg-neutral-active)` | `#9FA6BD` |\n| `controls-accent-success-alpha-hover` | `var(--controls-bg-accent-success-alpha-hover)` | `#37BABC2E` |\n| `controls-accent-success-alpha-active` | `var(--controls-bg-accent-success-alpha-active)` | `#37BABC5C` |\n| `controls-enable-primary` | `var(--controls-enable-primary)` | `#FCFCFC` |\n\n### borderColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--stroke-accent-primary)` | `#124ACE` |\n| `accent-secondary` | `var(--stroke-accent-secondary)` | `#007274` |\n| `controls-accent` | `var(--controls-bg-accent)` | `#5C8DEA` |\n| `red-900` | `var(--red-900)` | `#402027` |\n\n### textColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--text-accent-primary)` | `#7DA4FF` |\n| `accent-secondary` | `var(--text-accent-secondary)` | `#37BABC` |\n| `accent-tertiary` | `var(--text-accent-tertiary)` | `#A972FF` |\n| `controls-permanent` | `var(--controls-text-permanent)` | `#FCFCFC` |\n| `controls-accent-disable` | `var(--controls-text-accent-disable)` | `#D1DBEA` |\n| `controls-primary-disable` | `var(--controls-text-primary-disable)` | `#696E7C` |\n| `controls-secondary-disable` | `var(--controls-text-secondary-disable)` | `#9FA6BD` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161B2D` |\n| `controls-accent-primary-hover` | `var(--controls-text-accent-primary-hover)` | `#3664E2` |\n| `controls-accent-primary-active` | `var(--controls-text-accent-primary-active)` | `#7DA4FF` |",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-ui-kit",
|
|
3
|
-
"version": "0.14.0-dev.
|
|
3
|
+
"version": "0.14.0-dev.51",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"description": "A modern UI kit for building AI DIAL interfaces with React",
|
|
@@ -90,8 +90,11 @@
|
|
|
90
90
|
"minimatch": "^10.2.5"
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
+
"@floating-ui/react": "^0.27.19",
|
|
94
|
+
"@tabler/icons-react": "^3.41.1",
|
|
93
95
|
"ag-grid-community": "^35.2.1",
|
|
94
96
|
"ag-grid-react": "^35.2.1",
|
|
97
|
+
"classnames": "^2.5.1",
|
|
95
98
|
"mime-types": "^3.0.2",
|
|
96
99
|
"re-resizable": "^6.11.2",
|
|
97
100
|
"react-dnd": "^16.0.1",
|
|
@@ -99,13 +102,9 @@
|
|
|
99
102
|
"tailwind-merge": "^3.5.0"
|
|
100
103
|
},
|
|
101
104
|
"peerDependencies": {
|
|
102
|
-
"@floating-ui/react": "^0.27.19",
|
|
103
105
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
104
106
|
"@monaco-editor/react": "^4.7.0",
|
|
105
|
-
"@tabler/icons-react": "^3.41.1",
|
|
106
|
-
"@uiw/react-markdown-preview": "^5.2.0",
|
|
107
107
|
"@uiw/react-md-editor": "^4.1.0",
|
|
108
|
-
"classnames": "^2.5.1",
|
|
109
108
|
"monaco-editor": "^0.55.1",
|
|
110
109
|
"react": "^19.2.5",
|
|
111
110
|
"react-dom": "^19.2.5"
|
|
@@ -113,12 +112,22 @@
|
|
|
113
112
|
"peerDependenciesMeta": {
|
|
114
113
|
"@modelcontextprotocol/sdk": {
|
|
115
114
|
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"@monaco-editor/react": {
|
|
117
|
+
"optional": true
|
|
118
|
+
},
|
|
119
|
+
"@uiw/react-md-editor": {
|
|
120
|
+
"optional": true
|
|
121
|
+
},
|
|
122
|
+
"monaco-editor": {
|
|
123
|
+
"optional": true
|
|
116
124
|
}
|
|
117
125
|
},
|
|
118
126
|
"devDependencies": {
|
|
119
127
|
"@chromatic-com/storybook": "^5.2.1",
|
|
120
128
|
"@eslint/js": "^9.39.2",
|
|
121
129
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
130
|
+
"@monaco-editor/react": "^4.7.0",
|
|
122
131
|
"@storybook/addon-a11y": "^10.4.4",
|
|
123
132
|
"@storybook/addon-docs": "^10.4.4",
|
|
124
133
|
"@storybook/addon-vitest": "^10.4.4",
|
|
@@ -130,6 +139,8 @@
|
|
|
130
139
|
"@types/node": "^25.6.0",
|
|
131
140
|
"@types/react": "^19.2.14",
|
|
132
141
|
"@types/react-dom": "^19.2.3",
|
|
142
|
+
"@uiw/react-markdown-preview": "^5.2.0",
|
|
143
|
+
"@uiw/react-md-editor": "^4.1.0",
|
|
133
144
|
"@vitejs/plugin-react": "^4.6.0",
|
|
134
145
|
"@vitest/browser": "^4.1.10",
|
|
135
146
|
"@vitest/coverage-v8": "^4.1.10",
|
|
@@ -149,6 +160,7 @@
|
|
|
149
160
|
"husky": "^9.1.7",
|
|
150
161
|
"jsdom": "^26.1.0",
|
|
151
162
|
"lint-staged": "^16.1.2",
|
|
163
|
+
"monaco-editor": "^0.55.1",
|
|
152
164
|
"postcss": "^8.5.6",
|
|
153
165
|
"postcss-import": "^16.1.1",
|
|
154
166
|
"prettier": "^3.8.3",
|