@json-to-office/jto 0.3.0 → 0.3.3
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/dist/cli.js +1 -1
- package/dist/client/assets/HomePage-9ryiIVJl.js +99 -0
- package/dist/client/assets/HomePage-9ryiIVJl.js.map +1 -0
- package/dist/client/assets/JsonEditorPage-BO0AtnI3.js +3 -0
- package/dist/client/assets/{JsonEditorPage-DKor0I6f.js.map → JsonEditorPage-BO0AtnI3.js.map} +1 -1
- package/dist/client/assets/MonacoPluginProvider-BE7Xjhup.js +3 -0
- package/dist/client/assets/{MonacoPluginProvider-BGYshg9R.js.map → MonacoPluginProvider-BE7Xjhup.js.map} +1 -1
- package/dist/client/assets/NotFoundPage-SV9cseZ6.js +2 -0
- package/dist/client/assets/{NotFoundPage-ILCklaD-.js.map → NotFoundPage-SV9cseZ6.js.map} +1 -1
- package/dist/client/assets/button-DghEEchK.js +2 -0
- package/dist/client/assets/{button-BzUKH2aN.js.map → button-DghEEchK.js.map} +1 -1
- package/dist/client/assets/{docx-preview-DkKCgwb-.js → docx-preview-DQa8jhzH.js} +3 -3
- package/dist/client/assets/{docx-preview-DkKCgwb-.js.map → docx-preview-DQa8jhzH.js.map} +1 -1
- package/dist/client/assets/{editor-BS2qlF-X.js → editor-BxyYhgT1.js} +2 -2
- package/dist/client/assets/{editor-BS2qlF-X.js.map → editor-BxyYhgT1.js.map} +1 -1
- package/dist/client/assets/{editor-monaco-json-DKrX3IiN.js → editor-monaco-json-PlUCgtCX.js} +3 -3
- package/dist/client/assets/{editor-monaco-json-DKrX3IiN.js.map → editor-monaco-json-PlUCgtCX.js.map} +1 -1
- package/dist/client/assets/index-DSzthtfQ.js +3 -0
- package/dist/client/assets/{index-D_aKAAFg.js.map → index-DSzthtfQ.js.map} +1 -1
- package/dist/client/assets/{monaco-editor-B-NlkJ5A.js → monaco-editor-BcgxPCqT.js} +3 -3
- package/dist/client/assets/{monaco-editor-B-NlkJ5A.js.map → monaco-editor-BcgxPCqT.js.map} +1 -1
- package/dist/client/assets/preview-BBQhSmsm.js +3 -0
- package/dist/client/assets/{preview-AJZwEEO9.js.map → preview-BBQhSmsm.js.map} +1 -1
- package/dist/client/assets/query-vendor-Df8-oete.js +7 -0
- package/dist/client/assets/query-vendor-Df8-oete.js.map +1 -0
- package/dist/client/assets/radix-ui-BZ5iKMtq.js +51 -0
- package/dist/client/assets/radix-ui-BZ5iKMtq.js.map +1 -0
- package/dist/client/assets/react-vendor-CTFDOf2G.js +61 -0
- package/dist/client/assets/react-vendor-CTFDOf2G.js.map +1 -0
- package/dist/client/assets/{state-vendor-Az8redj0.js → state-vendor-BDrPu9qj.js} +2 -2
- package/dist/client/assets/{state-vendor-Az8redj0.js.map → state-vendor-BDrPu9qj.js.map} +1 -1
- package/dist/client/assets/{ui-vendor-ChWVh3T-.js → ui-vendor-Dyg3GRT-.js} +2 -2
- package/dist/client/assets/{ui-vendor-ChWVh3T-.js.map → ui-vendor-Dyg3GRT-.js.map} +1 -1
- package/dist/client/index.html +6 -6
- package/dist/prompts/instructions-docx.md +46 -0
- package/dist/prompts/instructions-edit-document-docx.md +54 -0
- package/dist/prompts/instructions-edit-document-pptx-slides.md +40 -0
- package/dist/prompts/instructions-edit-document-pptx-templates.md +48 -0
- package/dist/prompts/instructions-edit-document-pptx.md +49 -0
- package/dist/prompts/instructions-edit-document.md +28 -0
- package/dist/prompts/instructions-edit-pptx.md +31 -0
- package/dist/prompts/instructions-edit.md +24 -0
- package/dist/prompts/instructions-generate-docx.md +10 -0
- package/dist/prompts/instructions-generate-pptx.md +24 -0
- package/dist/prompts/instructions-generate.md +21 -0
- package/dist/prompts/pptx-core.md +180 -0
- package/dist/prompts/pptx-design.md +209 -0
- package/dist/prompts/system-theme.md +28 -0
- package/dist/prompts/system.md +30 -0
- package/package.json +17 -17
- package/dist/client/assets/HomePage-muPAe_M2.js +0 -99
- package/dist/client/assets/HomePage-muPAe_M2.js.map +0 -1
- package/dist/client/assets/JsonEditorPage-DKor0I6f.js +0 -3
- package/dist/client/assets/MonacoPluginProvider-BGYshg9R.js +0 -3
- package/dist/client/assets/NotFoundPage-ILCklaD-.js +0 -2
- package/dist/client/assets/button-BzUKH2aN.js +0 -2
- package/dist/client/assets/index-D_aKAAFg.js +0 -3
- package/dist/client/assets/preview-AJZwEEO9.js +0 -3
- package/dist/client/assets/query-vendor-CT0SoqJh.js +0 -15
- package/dist/client/assets/query-vendor-CT0SoqJh.js.map +0 -1
- package/dist/client/assets/radix-ui-DkKm4m5M.js +0 -2
- package/dist/client/assets/radix-ui-DkKm4m5M.js.map +0 -1
- package/dist/client/assets/react-vendor-B_QXlk-T.js +0 -102
- package/dist/client/assets/react-vendor-B_QXlk-T.js.map +0 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# PPTX Design Patterns & Best Practices
|
|
2
|
+
|
|
3
|
+
## Recommended Template Set
|
|
4
|
+
|
|
5
|
+
Always define at least these 2-3 templates:
|
|
6
|
+
|
|
7
|
+
1. **TITLE_TEMPLATE** — full-bleed title slide. Placeholders: `title`, `subtitle`
|
|
8
|
+
2. **CONTENT_TEMPLATE** — standard content slide with heading + body. Placeholders: `heading`, `body`
|
|
9
|
+
3. **TWO_COLUMN_TEMPLATE** — heading + left/right columns. Placeholders: `heading`, `left`, `right`
|
|
10
|
+
|
|
11
|
+
## Custom Slides (no template) — AVOID
|
|
12
|
+
|
|
13
|
+
For one-off layouts, skip `template`/`placeholders` and use `children` directly. **If you have more than one custom slide, you almost certainly need another template instead.**
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"name": "slide",
|
|
18
|
+
"props": { "background": { "color": "primary" } },
|
|
19
|
+
"children": [
|
|
20
|
+
{ "name": "text", "props": { "text": "Special Layout", "grid": { "column": 1, "row": 2, "columnSpan": 10 }, "fontSize": 36, "color": "FFFFFF", "align": "center" } }
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Only use this for truly unique, unrepeatable slides. Prefer templates for any layout used more than once.
|
|
26
|
+
|
|
27
|
+
## Complete Minimal Example
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"name": "pptx",
|
|
32
|
+
"props": {
|
|
33
|
+
"title": "Quarterly Update",
|
|
34
|
+
"theme": "corporate",
|
|
35
|
+
"templates": [
|
|
36
|
+
{
|
|
37
|
+
"name": "TITLE_TEMPLATE",
|
|
38
|
+
"background": { "color": "primary" },
|
|
39
|
+
"objects": [
|
|
40
|
+
{ "name": "shape", "props": { "type": "rect", "x": 0, "y": 6.8, "w": 10, "h": 0.7, "fill": { "color": "secondary" } } }
|
|
41
|
+
],
|
|
42
|
+
"placeholders": [
|
|
43
|
+
{ "name": "title", "type": "title", "style": "title", "grid": { "column": 1, "row": 1, "columnSpan": 10, "rowSpan": 2 }, "fontSize": 44, "color": "FFFFFF", "valign": "middle" },
|
|
44
|
+
{ "name": "subtitle", "type": "body", "style": "subtitle", "grid": { "column": 2, "row": 3, "columnSpan": 8 }, "color": "accent" }
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "CONTENT_TEMPLATE",
|
|
49
|
+
"grid": { "margin": { "top": 1.1 } },
|
|
50
|
+
"objects": [
|
|
51
|
+
{ "name": "shape", "props": { "type": "rect", "x": 0, "y": 0, "w": 10, "h": 0.9, "fill": { "color": "primary" } } },
|
|
52
|
+
{ "name": "text", "props": { "text": "COMPANY", "x": 0.6, "y": 0.15, "w": 4, "h": 0.6, "fontSize": 14, "bold": true, "color": "FFFFFF" } }
|
|
53
|
+
],
|
|
54
|
+
"slideNumber": { "x": 9, "y": 6.85, "w": 0.5, "h": 0.5, "color": "text2", "fontSize": 8 },
|
|
55
|
+
"placeholders": [
|
|
56
|
+
{ "name": "heading", "type": "title", "style": "heading1", "grid": { "column": 0, "row": 0, "columnSpan": 12 } },
|
|
57
|
+
{ "name": "body", "type": "body", "style": "body", "grid": { "column": 0, "row": 1, "columnSpan": 12, "rowSpan": 4 } }
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"children": [
|
|
63
|
+
{
|
|
64
|
+
"name": "slide",
|
|
65
|
+
"props": {
|
|
66
|
+
"template": "TITLE_TEMPLATE",
|
|
67
|
+
"placeholders": {
|
|
68
|
+
"title": { "name": "text", "props": { "text": "Q1 2026 Update" } },
|
|
69
|
+
"subtitle": { "name": "text", "props": { "text": "Engineering Division" } }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "slide",
|
|
75
|
+
"props": {
|
|
76
|
+
"template": "CONTENT_TEMPLATE",
|
|
77
|
+
"placeholders": {
|
|
78
|
+
"heading": { "name": "text", "props": { "text": "Highlights" } },
|
|
79
|
+
"body": { "name": "table", "props": { "rows": [["Feature", "Status"], ["Search v2", "Shipped"], ["Auth rewrite", "In Progress"]], "grid": { "column": 0, "row": 3, "columnSpan": 12, "rowSpan": 2 }, "fontSize": 12, "border": { "type": "solid", "pt": 0.5, "color": "E2E8F0" } } }
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Common Layout Pitfalls
|
|
88
|
+
|
|
89
|
+
### Text overflow
|
|
90
|
+
PPTX does not auto-shrink text. If text is too long for its container it will clip or overflow.
|
|
91
|
+
- Keep heading text short (≤ 6 words) or reduce `fontSize` for longer headings
|
|
92
|
+
- Always give headings full width (`columnSpan: 12`) unless the layout genuinely needs a narrower column
|
|
93
|
+
- For long text, prefer a smaller `fontSize` over truncation
|
|
94
|
+
|
|
95
|
+
### Slide number placement
|
|
96
|
+
Never position `slideNumber` where it overlaps content. Safe defaults:
|
|
97
|
+
- Bottom-right corner: `{ "x": 9.2, "y": 7.0, "w": 0.5, "h": 0.3, "fontSize": 8 }`
|
|
98
|
+
- Ensure the heading placeholder's grid row does **not** share space with the slide number
|
|
99
|
+
|
|
100
|
+
### Element overlap
|
|
101
|
+
Multiple text or shape components in the same region will render on top of each other. Prevent this:
|
|
102
|
+
- Give each element its own grid row, or use explicit `y` offsets so they stack vertically
|
|
103
|
+
- When placing a label below a title (e.g. name + role), put the title in row N and the label in row N+1, or use different `y` values with enough gap (≥ 0.35")
|
|
104
|
+
- Never place two text components at the same `x`/`y` unless one is intentionally a background layer
|
|
105
|
+
|
|
106
|
+
### Circles vs stretched ellipses
|
|
107
|
+
An `ellipse` shape renders as a circle **only** when `w === h`. If `w ≠ h` it stretches.
|
|
108
|
+
- For avatar circles, badges, or step indicators: always set equal `w` and `h` (e.g. `"w": 0.6, "h": 0.6`)
|
|
109
|
+
- When using grid positioning for ellipses, ensure the grid cell is square. If not, use explicit `w`/`h` to force a 1:1 ratio — explicit dimensions override grid sizing.
|
|
110
|
+
|
|
111
|
+
### Text inside small shapes
|
|
112
|
+
When placing text inside a shape (initials, numbers, icons):
|
|
113
|
+
- Keep text on a single line — never use `\n` in initials or short labels (use `"PB"` not `"P\nB"`)
|
|
114
|
+
- Set `"align": "center"` and `"valign": "middle"` for proper centering
|
|
115
|
+
- Ensure fontSize is small enough to fit the shape (rule of thumb: fontSize ≤ shape width in inches × 40)
|
|
116
|
+
|
|
117
|
+
## Table Best Practices
|
|
118
|
+
|
|
119
|
+
### Row heights & margins
|
|
120
|
+
Always specify `rowH` for consistent, compact rows (recommended 0.4–0.55"). Always specify `margin` for cell padding (recommended `[3, 6, 3, 6]`). Without these, rows expand unpredictably.
|
|
121
|
+
|
|
122
|
+
### Rounded corners
|
|
123
|
+
Use `borderRadius` (e.g. `0.15`) for polished rounded-corner tables. This renders a `roundRect` shape behind the table. When using `borderRadius`, set outer borders to `"none"` and keep internal borders only. **`borderRadius` requires explicit numeric `x`/`y` (inches, not `%` or grid-only)** — if the table is grid-positioned without explicit `x`/`y`, rounded corners are silently skipped.
|
|
124
|
+
|
|
125
|
+
### Unicode symbols
|
|
126
|
+
PowerPoint may render ✓✔✗✘ as color emoji. The renderer auto-appends a text variation selector to force text rendering. For best results, use `fontFace: "Arial"` on cells with Unicode symbols (✓, —, •) since Arial has reliable glyph coverage.
|
|
127
|
+
|
|
128
|
+
### Example: polished comparison table
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"name": "table",
|
|
132
|
+
"props": {
|
|
133
|
+
"rows": [
|
|
134
|
+
[
|
|
135
|
+
{ "text": "Feature", "bold": true, "fill": "primary", "color": "FFFFFF" },
|
|
136
|
+
{ "text": "Basic", "bold": true, "fill": "primary", "color": "FFFFFF", "align": "center" },
|
|
137
|
+
{ "text": "Pro", "bold": true, "fill": "primary", "color": "FFFFFF", "align": "center" }
|
|
138
|
+
],
|
|
139
|
+
[
|
|
140
|
+
{ "text": "Storage" },
|
|
141
|
+
{ "text": "5 GB", "align": "center" },
|
|
142
|
+
{ "text": "100 GB", "align": "center" }
|
|
143
|
+
],
|
|
144
|
+
[
|
|
145
|
+
{ "text": "Support" },
|
|
146
|
+
{ "text": "—", "align": "center", "fontFace": "Arial" },
|
|
147
|
+
{ "text": "✓", "align": "center", "fontFace": "Arial", "color": "22C55E" }
|
|
148
|
+
]
|
|
149
|
+
],
|
|
150
|
+
"rowH": 0.45,
|
|
151
|
+
"margin": [3, 6, 3, 6],
|
|
152
|
+
"borderRadius": 0.15,
|
|
153
|
+
"border": { "type": "solid", "pt": 0.5, "color": "E2E8F0" },
|
|
154
|
+
"fontSize": 12,
|
|
155
|
+
"grid": { "column": 1, "row": 2, "columnSpan": 10, "rowSpan": 3 }
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## PPTX Rendering Limitations & Workarounds
|
|
161
|
+
|
|
162
|
+
### Character spacing (`charSpacing`)
|
|
163
|
+
Use `charSpacing` (number, in points) on text and shape components to control letter-spacing/tracking.
|
|
164
|
+
- Wordmarks/logos: `"charSpacing": 3` to `6`
|
|
165
|
+
- Uppercase labels/section identifiers: `"charSpacing": 1` to `3`
|
|
166
|
+
- Normal body text: omit (0 default)
|
|
167
|
+
|
|
168
|
+
### Font weight
|
|
169
|
+
pptxgenjs only supports `bold: true/false`, not CSS font-weight values (300/400/500/600/700). To achieve light/thin text, use font family variants in `fontFace`:
|
|
170
|
+
- `"Inter Light"`, `"Inter Thin"`, `"Helvetica Neue Light"`, `"Montserrat Light"`
|
|
171
|
+
- Use light font variants for elegant/refined designs rather than relying on bold alone.
|
|
172
|
+
|
|
173
|
+
### Text opacity
|
|
174
|
+
PPTX text doesn't support opacity. To achieve semi-transparent text effects, pre-compute muted hex colors:
|
|
175
|
+
- White at ~50% on dark bg → `"808080"`
|
|
176
|
+
- White at ~35% on dark bg → `"595959"`
|
|
177
|
+
- For secondary/tertiary text on dark backgrounds, use muted hex colors rather than expecting opacity support.
|
|
178
|
+
|
|
179
|
+
### Decorative elements
|
|
180
|
+
SVGs are not supported. For decorative elements:
|
|
181
|
+
- Use `ellipse` shapes for dot patterns
|
|
182
|
+
- Use `rect` shapes for dividers/bars
|
|
183
|
+
- Use pre-rendered PNG images (base64) for complex decorations
|
|
184
|
+
|
|
185
|
+
### Multi-element cards / Rich text in shapes
|
|
186
|
+
For metric cards with per-segment formatting (large number, small label, colored indicator), use **rich text segments** in a single shape instead of overlaying multiple elements:
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"name": "shape",
|
|
190
|
+
"props": {
|
|
191
|
+
"type": "roundRect",
|
|
192
|
+
"fill": { "color": "background2" },
|
|
193
|
+
"align": "center",
|
|
194
|
+
"valign": "middle",
|
|
195
|
+
"text": [
|
|
196
|
+
{ "text": "124K", "fontSize": 36, "bold": true, "color": "primary" },
|
|
197
|
+
{ "text": "Active Users", "fontSize": 12, "color": "text2", "breakLine": true },
|
|
198
|
+
{ "text": "▲ 34% YoY", "fontSize": 11, "color": "22C55E", "breakLine": true }
|
|
199
|
+
],
|
|
200
|
+
"grid": { "column": 0, "row": 2, "columnSpan": 4, "rowSpan": 2 }
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
Each segment can have its own `fontSize`, `fontFace`, `color`, `bold`, `italic`, `breakLine`, `spaceBefore`, and `spaceAfter`. Use `breakLine: true` to start a new line after the segment. Shape-level font props (`fontSize`, `fontColor`, `bold`) apply as defaults when segments omit them.
|
|
205
|
+
|
|
206
|
+
For truly complex layouts needing independent positioning, fall back to overlaying separate components:
|
|
207
|
+
- Use a `roundRect` shape as the card background (no text)
|
|
208
|
+
- Overlay positioned `text` components on top with explicit x/y/w/h
|
|
209
|
+
- All components share the same grid area but use absolute offsets within
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
You are a JSON theme editor for the **json-to-office** project.
|
|
2
|
+
|
|
3
|
+
## Format
|
|
4
|
+
You are working with **{{format}}** themes.
|
|
5
|
+
|
|
6
|
+
## Your Task
|
|
7
|
+
- Generate or edit JSON theme configurations that conform to the schema below.
|
|
8
|
+
- A theme is a flat configuration object with colors, fonts, and default styling — NOT an array of components.
|
|
9
|
+
- All color values must be valid hex colors (e.g. `#FF0000`, `#1a2b3c`).
|
|
10
|
+
- Always produce **valid JSON**. No trailing commas, no comments.
|
|
11
|
+
|
|
12
|
+
## Design Guidelines
|
|
13
|
+
- Ensure sufficient contrast between text and background colors (WCAG AA minimum).
|
|
14
|
+
- Build a cohesive palette — limit to 2-3 primary colors with complementary accents.
|
|
15
|
+
- Choose font pairings that complement each other (e.g., serif headings + sans-serif body).
|
|
16
|
+
- Keep default sizes and spacing proportional and consistent.
|
|
17
|
+
|
|
18
|
+
## Theme Schema
|
|
19
|
+
```json
|
|
20
|
+
{{schema}}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Output Rules
|
|
24
|
+
1. Respond conversationally when the user asks questions or needs clarification.
|
|
25
|
+
2. When generating or editing JSON, wrap it in a ```json code block.
|
|
26
|
+
3. Keep the JSON well-formatted with 2-space indentation.
|
|
27
|
+
4. Use only properties that exist in the schema above.
|
|
28
|
+
5. Respect required properties and valid formats from the schema.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
You are a JSON document generator and editor for the **json-to-office** project.
|
|
2
|
+
|
|
3
|
+
## Format
|
|
4
|
+
You are working with **{{format}}** documents.
|
|
5
|
+
|
|
6
|
+
## Your Task
|
|
7
|
+
- Generate or edit JSON documents that conform to the component schema below.
|
|
8
|
+
- Documents follow the component schema below. Each component is `{ "name": "...", "props": { ... }, "children": [ ... ] }`.
|
|
9
|
+
- Container components may have a `children` array of nested components.
|
|
10
|
+
- Always produce **valid JSON**. No trailing commas, no comments.
|
|
11
|
+
|
|
12
|
+
## Design Guidelines
|
|
13
|
+
- Use visual hierarchy: headings before body text, larger/bolder elements for emphasis.
|
|
14
|
+
- Vary component types for visual interest — don't repeat the same component many times in a row.
|
|
15
|
+
- Use consistent spacing and alignment across the document.
|
|
16
|
+
- Balance content density — avoid walls of text or overly sparse layouts.
|
|
17
|
+
- Group related content together with containers when appropriate.
|
|
18
|
+
|
|
19
|
+
## Component Schema
|
|
20
|
+
```json
|
|
21
|
+
{{schema}}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Output Rules
|
|
25
|
+
1. Respond conversationally when the user asks questions or needs clarification.
|
|
26
|
+
2. When generating or editing JSON, wrap it in a ```json code block.
|
|
27
|
+
3. Keep the JSON well-formatted with 2-space indentation.
|
|
28
|
+
4. Use only component names that exist in the schema above.
|
|
29
|
+
5. Respect required properties and valid enum values from the schema.
|
|
30
|
+
6. **Never split JSON across multiple code blocks.** Always output the entire JSON in a single ```json block, even if it's large. Do not add narrative text mid-JSON or break it into parts.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-to-office/jto",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "JSON to Office CLI - Unified document and presentation generation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -24,21 +24,21 @@
|
|
|
24
24
|
"@ai-sdk/react": "^3.0.118",
|
|
25
25
|
"@hono/node-server": "1.13.7",
|
|
26
26
|
"@monaco-editor/react": "4.7.0",
|
|
27
|
-
"@radix-ui/react-collapsible": "1.1.
|
|
28
|
-
"@radix-ui/react-context-menu": "2.2.
|
|
29
|
-
"@radix-ui/react-dialog": "1.1.
|
|
30
|
-
"@radix-ui/react-dropdown-menu": "2.1.
|
|
31
|
-
"@radix-ui/react-hover-card": "1.1.
|
|
32
|
-
"@radix-ui/react-label": "2.1.
|
|
33
|
-
"@radix-ui/react-menubar": "1.1.
|
|
34
|
-
"@radix-ui/react-progress": "1.1.
|
|
35
|
-
"@radix-ui/react-scroll-area": "1.2.
|
|
36
|
-
"@radix-ui/react-select": "2.
|
|
37
|
-
"@radix-ui/react-separator": "1.1.
|
|
38
|
-
"@radix-ui/react-slot": "1.
|
|
39
|
-
"@radix-ui/react-switch": "1.2.
|
|
40
|
-
"@radix-ui/react-tabs": "1.1.
|
|
41
|
-
"@radix-ui/react-tooltip": "1.
|
|
27
|
+
"@radix-ui/react-collapsible": "1.1.12",
|
|
28
|
+
"@radix-ui/react-context-menu": "2.2.16",
|
|
29
|
+
"@radix-ui/react-dialog": "1.1.15",
|
|
30
|
+
"@radix-ui/react-dropdown-menu": "2.1.16",
|
|
31
|
+
"@radix-ui/react-hover-card": "1.1.15",
|
|
32
|
+
"@radix-ui/react-label": "2.1.8",
|
|
33
|
+
"@radix-ui/react-menubar": "1.1.16",
|
|
34
|
+
"@radix-ui/react-progress": "1.1.8",
|
|
35
|
+
"@radix-ui/react-scroll-area": "1.2.10",
|
|
36
|
+
"@radix-ui/react-select": "2.2.6",
|
|
37
|
+
"@radix-ui/react-separator": "1.1.8",
|
|
38
|
+
"@radix-ui/react-slot": "1.2.4",
|
|
39
|
+
"@radix-ui/react-switch": "1.2.6",
|
|
40
|
+
"@radix-ui/react-tabs": "1.1.13",
|
|
41
|
+
"@radix-ui/react-tooltip": "1.2.8",
|
|
42
42
|
"@sinclair/typebox": "0.34.38",
|
|
43
43
|
"@tailwindcss/postcss": "4.1.11",
|
|
44
44
|
"@tanstack/react-query": "5.62.11",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"vite": "6.0.5",
|
|
87
87
|
"zod": "^4.0.0",
|
|
88
88
|
"zustand": "5.0.2",
|
|
89
|
-
"@json-to-office/core-docx": "^0.3.
|
|
89
|
+
"@json-to-office/core-docx": "^0.3.1",
|
|
90
90
|
"@json-to-office/core-pptx": "^0.3.0",
|
|
91
91
|
"@json-to-office/shared": "^0.2.0",
|
|
92
92
|
"@json-to-office/shared-docx": "^0.3.0",
|