docxodus 9.6.0 → 9.7.0
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/editor.bundle.js +172 -97
- package/dist/embed.bundle.js +176 -98
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.iife.js +175 -97
- package/dist/embed.js +3 -0
- package/dist/embed.js.map +1 -1
- package/dist/ribbon-chrome.d.ts +2 -2
- package/dist/ribbon-chrome.d.ts.map +1 -1
- package/dist/ribbon-chrome.js +171 -97
- package/dist/ribbon-chrome.js.map +1 -1
- package/dist/ribbon.d.ts +8 -0
- package/dist/ribbon.d.ts.map +1 -1
- package/dist/ribbon.js +1 -0
- package/dist/ribbon.js.map +1 -1
- package/dist/wasm/_framework/Docxodus.wasm +0 -0
- package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
- package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
- package/dist/wasm/_framework/dotnet.boot.js +3 -3
- package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
- package/package.json +1 -1
package/dist/ribbon-chrome.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* `[data-chrome="full"]` adds back the desktop affordances.
|
|
23
23
|
*/
|
|
24
24
|
/** Bumped whenever RIBBON_CSS changes, so a stale injected stylesheet is replaced. */
|
|
25
|
-
export const RIBBON_STYLE_VERSION = "
|
|
25
|
+
export const RIBBON_STYLE_VERSION = "8";
|
|
26
26
|
export const RIBBON_STYLE_ATTR = "data-docxodus-ribbon-styles";
|
|
27
27
|
/**
|
|
28
28
|
* The ribbon stylesheet. Every rule is scoped under `.dxr` so injecting it is
|
|
@@ -32,19 +32,34 @@ export const RIBBON_STYLE_ATTR = "data-docxodus-ribbon-styles";
|
|
|
32
32
|
*/
|
|
33
33
|
export const RIBBON_CSS = `
|
|
34
34
|
.dxr {
|
|
35
|
-
|
|
35
|
+
/* OS-Legal design tokens (github.com/Open-Source-Legal/OS-Legal-Style):
|
|
36
|
+
deep-teal accent, slate foreground scale, warm neutral surfaces, and
|
|
37
|
+
"light touch" shadows at 0.03-0.06 opacity — structure over decoration. */
|
|
38
|
+
--dxr-ink: #1e293b;
|
|
36
39
|
--dxr-sheet: #ffffff;
|
|
37
|
-
--dxr-chrome: #
|
|
38
|
-
--dxr-chrome-sunk: #
|
|
39
|
-
--dxr-rule: #
|
|
40
|
-
--dxr-
|
|
41
|
-
--dxr-
|
|
42
|
-
--dxr-
|
|
43
|
-
--dxr-
|
|
44
|
-
--dxr-
|
|
45
|
-
--dxr-
|
|
46
|
-
--dxr-
|
|
40
|
+
--dxr-chrome: #ffffff;
|
|
41
|
+
--dxr-chrome-sunk: #f8fafc;
|
|
42
|
+
--dxr-rule: #e2e8f0;
|
|
43
|
+
--dxr-rule-strong: #cbd5e1;
|
|
44
|
+
--dxr-accent: #0f766e;
|
|
45
|
+
--dxr-accent-hover: #0d9488;
|
|
46
|
+
--dxr-accent-active: #115e59;
|
|
47
|
+
--dxr-wash: #f0fdfa;
|
|
48
|
+
--dxr-wash-on: #ccfbf1;
|
|
49
|
+
--dxr-muted: #475569;
|
|
50
|
+
--dxr-faint: #94a3b8;
|
|
51
|
+
--dxr-data: #0f766e;
|
|
52
|
+
--dxr-danger: #dc2626;
|
|
53
|
+
--dxr-danger-wash: #fef2f2;
|
|
54
|
+
--dxr-desk: #f1f5f9;
|
|
55
|
+
--dxr-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
56
|
+
--dxr-serif: Georgia, "Times New Roman", serif;
|
|
47
57
|
--dxr-mono: ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;
|
|
58
|
+
--dxr-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
|
|
59
|
+
--dxr-shadow-md: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 6px rgba(15, 23, 42, .03);
|
|
60
|
+
--dxr-shadow-lg: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 15px rgba(15, 23, 42, .04);
|
|
61
|
+
--dxr-shadow-xl: 0 8px 16px rgba(15, 23, 42, .06), 0 20px 25px rgba(15, 23, 42, .05);
|
|
62
|
+
--dxr-ease: cubic-bezier(.4, 0, .2, 1);
|
|
48
63
|
--dxr-tap: 30px;
|
|
49
64
|
|
|
50
65
|
position: relative;
|
|
@@ -60,6 +75,18 @@ export const RIBBON_CSS = `
|
|
|
60
75
|
}
|
|
61
76
|
.dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }
|
|
62
77
|
|
|
78
|
+
/* ── Card frame ────────────────────────────────────────────────────────────────
|
|
79
|
+
A drop-in embed carries its OWN boundary instead of hoping the host clips it:
|
|
80
|
+
rounded corners, a hairline, and the house elevation. overflow: clip keeps
|
|
81
|
+
the sticky chrome, scrollbars, and the loading overlay inside the curve.
|
|
82
|
+
Full-bleed hosts mount with data-frame="flush" and stay edge-to-edge. */
|
|
83
|
+
.dxr[data-frame="card"] {
|
|
84
|
+
border: 1px solid var(--dxr-rule);
|
|
85
|
+
border-radius: 14px;
|
|
86
|
+
box-shadow: var(--dxr-shadow-xl);
|
|
87
|
+
overflow: clip;
|
|
88
|
+
}
|
|
89
|
+
|
|
63
90
|
/* Touch devices get bigger hit targets everywhere the token is used. */
|
|
64
91
|
@media (pointer: coarse) { .dxr { --dxr-tap: 40px; } }
|
|
65
92
|
|
|
@@ -88,12 +115,13 @@ export const RIBBON_CSS = `
|
|
|
88
115
|
font-weight: 600;
|
|
89
116
|
letter-spacing: -.01em;
|
|
90
117
|
}
|
|
118
|
+
/* A filled circle, echoing the OS-Legal "Node" motif rather than a diamond. */
|
|
91
119
|
.dxr-brand .dxr-mark {
|
|
92
120
|
flex: 0 0 auto;
|
|
93
121
|
width: 9px;
|
|
94
122
|
height: 9px;
|
|
123
|
+
border-radius: 50%;
|
|
95
124
|
background: var(--dxr-accent);
|
|
96
|
-
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
|
|
97
125
|
}
|
|
98
126
|
.dxr-brand .dxr-docname {
|
|
99
127
|
overflow: hidden;
|
|
@@ -125,25 +153,25 @@ export const RIBBON_CSS = `
|
|
|
125
153
|
scrollbar-width: none;
|
|
126
154
|
}
|
|
127
155
|
.dxr-tabs::-webkit-scrollbar { display: none; }
|
|
156
|
+
/* Line-variant tabs (the house Tabs default): no boxes, no fills — the selected
|
|
157
|
+
tab is a 2px accent underline sitting on the panel's own hairline. */
|
|
128
158
|
.dxr-tab {
|
|
129
159
|
flex: 0 0 auto;
|
|
130
|
-
padding:
|
|
131
|
-
border:
|
|
132
|
-
border-bottom: none;
|
|
133
|
-
border-radius: 5px 5px 0 0;
|
|
160
|
+
padding: 7px 14px 8px;
|
|
161
|
+
border: none;
|
|
134
162
|
background: none;
|
|
135
163
|
color: var(--dxr-muted);
|
|
136
164
|
font: inherit;
|
|
137
165
|
font-size: 12.5px;
|
|
166
|
+
font-weight: 500;
|
|
138
167
|
cursor: pointer;
|
|
168
|
+
transition: color .15s var(--dxr-ease), box-shadow .15s var(--dxr-ease);
|
|
139
169
|
}
|
|
140
|
-
.dxr-tab:hover { color: var(--dxr-ink);
|
|
170
|
+
.dxr-tab:hover { color: var(--dxr-ink); }
|
|
141
171
|
.dxr-tab[aria-selected="true"] {
|
|
142
172
|
color: var(--dxr-ink);
|
|
143
173
|
font-weight: 600;
|
|
144
|
-
|
|
145
|
-
border-color: var(--dxr-rule);
|
|
146
|
-
box-shadow: inset 0 2px 0 var(--dxr-accent);
|
|
174
|
+
box-shadow: inset 0 -2px 0 var(--dxr-accent);
|
|
147
175
|
}
|
|
148
176
|
/* Contextual tab — present only while the caret is inside a table. */
|
|
149
177
|
.dxr-tab[data-contextual] { color: var(--dxr-accent); }
|
|
@@ -173,7 +201,7 @@ export const RIBBON_CSS = `
|
|
|
173
201
|
.dxr-group:last-child { border-right: none; }
|
|
174
202
|
.dxr-group:first-child { padding-left: 0; }
|
|
175
203
|
.dxr-glabel {
|
|
176
|
-
color: var(--dxr-
|
|
204
|
+
color: var(--dxr-faint);
|
|
177
205
|
font-size: 9.5px;
|
|
178
206
|
font-weight: 600;
|
|
179
207
|
letter-spacing: .11em;
|
|
@@ -182,48 +210,69 @@ export const RIBBON_CSS = `
|
|
|
182
210
|
.dxr-row { display: flex; gap: 3px; align-items: center; }
|
|
183
211
|
|
|
184
212
|
/* ── Controls ─────────────────────────────────────────────────────────────── */
|
|
213
|
+
/* One button family, house-style: every control is a ghost — no borders, no
|
|
214
|
+
fills, no per-button boxes. Hover paints a quiet slate wash; the active
|
|
215
|
+
(toggled) state paints a teal one. Save alone is the flat primary, so the
|
|
216
|
+
surface has exactly one accent-colored action. */
|
|
185
217
|
.dxr button, .dxr label.dxr-btn {
|
|
186
218
|
min-height: var(--dxr-tap);
|
|
187
219
|
padding: 5px 9px;
|
|
188
|
-
border:
|
|
189
|
-
border-radius:
|
|
220
|
+
border: none;
|
|
221
|
+
border-radius: 6px;
|
|
190
222
|
background: none;
|
|
191
223
|
color: var(--dxr-ink);
|
|
192
224
|
font: inherit;
|
|
193
225
|
font-size: 13px;
|
|
226
|
+
font-weight: 500;
|
|
194
227
|
line-height: 1.15;
|
|
195
228
|
cursor: pointer;
|
|
229
|
+
transition: background-color .15s var(--dxr-ease), color .15s var(--dxr-ease),
|
|
230
|
+
box-shadow .15s var(--dxr-ease), transform .15s var(--dxr-ease);
|
|
196
231
|
}
|
|
197
232
|
.dxr label.dxr-btn { display: inline-flex; align-items: center; }
|
|
198
|
-
.dxr button:hover, .dxr label.dxr-btn:hover { background: #
|
|
199
|
-
.dxr button:active { background: #
|
|
233
|
+
.dxr button:hover, .dxr label.dxr-btn:hover { background: #f1f5f9; }
|
|
234
|
+
.dxr button:active { background: #e2e8f0; }
|
|
200
235
|
.dxr button:disabled { opacity: .38; cursor: default; background: none; }
|
|
201
|
-
.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash);
|
|
202
|
-
.dxr-quick button, .dxr-quick label.dxr-btn {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
background:
|
|
206
|
-
|
|
236
|
+
.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash-on); }
|
|
237
|
+
.dxr-quick button, .dxr-quick label.dxr-btn { padding: 4px 10px; font-size: 12.5px; }
|
|
238
|
+
/* Save — the house primary: flat accent, sm shadow, the 1px lift on hover. */
|
|
239
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled) {
|
|
240
|
+
background: var(--dxr-accent);
|
|
241
|
+
color: #fff;
|
|
242
|
+
font-weight: 600;
|
|
243
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
244
|
+
}
|
|
245
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled):hover {
|
|
246
|
+
background: var(--dxr-accent-hover);
|
|
247
|
+
box-shadow: var(--dxr-shadow-md);
|
|
248
|
+
transform: translateY(-1px);
|
|
249
|
+
}
|
|
250
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled):active {
|
|
251
|
+
background: var(--dxr-accent-active);
|
|
252
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
253
|
+
transform: translateY(0);
|
|
207
254
|
}
|
|
208
|
-
|
|
209
|
-
.dxr
|
|
210
|
-
.dxr button.dxr-icon {
|
|
255
|
+
/* Icon controls sit quieter than text ones until touched (house IconButton). */
|
|
256
|
+
.dxr button.dxr-icon { min-width: var(--dxr-tap); text-align: center; color: var(--dxr-muted); }
|
|
257
|
+
.dxr button.dxr-icon:hover:not(:disabled) { color: var(--dxr-ink); }
|
|
258
|
+
.dxr button.dxr-icon.dxr-on { color: var(--dxr-accent); }
|
|
211
259
|
/* Icons are inline SVG drawn from the same shapes the control acts on (text lines,
|
|
212
260
|
rules), so alignment and indent read at a glance instead of relying on arrow
|
|
213
261
|
glyphs that collide with undo/redo. currentColor keeps them in step with state. */
|
|
214
262
|
.dxr button svg { display: block; margin: 0 auto; fill: currentColor; }
|
|
215
263
|
.dxr button.dxr-wide { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
|
|
216
|
-
.dxr button.dxr-danger:hover { color: var(--dxr-danger); background:
|
|
264
|
+
.dxr button.dxr-danger:hover { color: var(--dxr-danger); background: var(--dxr-danger-wash); }
|
|
217
265
|
.dxr select, .dxr input[type="number"], .dxr input[type="text"] {
|
|
218
266
|
min-height: var(--dxr-tap);
|
|
219
267
|
padding: 4px 6px;
|
|
220
268
|
border: 1px solid var(--dxr-rule);
|
|
221
|
-
border-radius:
|
|
222
|
-
background:
|
|
269
|
+
border-radius: 6px;
|
|
270
|
+
background: var(--dxr-sheet);
|
|
223
271
|
color: var(--dxr-ink);
|
|
224
272
|
font: inherit;
|
|
225
273
|
font-size: 12.5px;
|
|
226
274
|
}
|
|
275
|
+
.dxr select:hover, .dxr input:hover { border-color: var(--dxr-rule-strong); }
|
|
227
276
|
.dxr select:focus-visible, .dxr input:focus-visible, .dxr button:focus-visible,
|
|
228
277
|
.dxr .dxr-tab:focus-visible, .dxr label.dxr-btn:focus-within {
|
|
229
278
|
outline: 2px solid var(--dxr-accent);
|
|
@@ -254,7 +303,7 @@ export const RIBBON_CSS = `
|
|
|
254
303
|
height: 25px;
|
|
255
304
|
padding: 0 10px;
|
|
256
305
|
overflow-x: auto;
|
|
257
|
-
background: #
|
|
306
|
+
background: #fafafa;
|
|
258
307
|
border-top: 1px solid var(--dxr-rule);
|
|
259
308
|
color: var(--dxr-muted);
|
|
260
309
|
font-family: var(--dxr-mono);
|
|
@@ -273,7 +322,7 @@ export const RIBBON_CSS = `
|
|
|
273
322
|
.dxr-rail .dxr-cell:first-child { padding-left: 0; }
|
|
274
323
|
.dxr-rail .dxr-cell:last-child { border-right: none; }
|
|
275
324
|
.dxr-rail .dxr-k {
|
|
276
|
-
color:
|
|
325
|
+
color: var(--dxr-faint);
|
|
277
326
|
font-family: var(--dxr-ui);
|
|
278
327
|
font-size: 9.5px;
|
|
279
328
|
letter-spacing: .1em;
|
|
@@ -281,7 +330,7 @@ export const RIBBON_CSS = `
|
|
|
281
330
|
}
|
|
282
331
|
.dxr-rail .dxr-v { color: var(--dxr-data); }
|
|
283
332
|
.dxr-rail .dxr-v.dxr-flash { animation: dxr-railflash .45s ease-out; }
|
|
284
|
-
@keyframes dxr-railflash { from { background: #
|
|
333
|
+
@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }
|
|
285
334
|
|
|
286
335
|
/* ── Hint ─────────────────────────────────────────────────────────────────── */
|
|
287
336
|
.dxr-hint {
|
|
@@ -296,8 +345,8 @@ export const RIBBON_CSS = `
|
|
|
296
345
|
.dxr-hint kbd {
|
|
297
346
|
padding: 0 4px;
|
|
298
347
|
border: 1px solid var(--dxr-rule);
|
|
299
|
-
border-radius:
|
|
300
|
-
background: #
|
|
348
|
+
border-radius: 4px;
|
|
349
|
+
background: #f1f5f9;
|
|
301
350
|
font-family: var(--dxr-mono);
|
|
302
351
|
font-size: 11px;
|
|
303
352
|
}
|
|
@@ -312,13 +361,34 @@ export const RIBBON_CSS = `
|
|
|
312
361
|
SHOULD win.
|
|
313
362
|
(No backticks in this file's comments: the stylesheet is a template literal.) */
|
|
314
363
|
.dxr-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }
|
|
364
|
+
/* Soft scroll boundaries: content dissolves at the chrome and at the bottom edge
|
|
365
|
+
instead of hard-clipping. Sticky gradient veils cost one paint layer each and
|
|
366
|
+
never intercept input. */
|
|
367
|
+
.dxr-scroll::before, .dxr-scroll::after {
|
|
368
|
+
content: "";
|
|
369
|
+
position: sticky;
|
|
370
|
+
z-index: 3;
|
|
371
|
+
display: block;
|
|
372
|
+
height: 26px;
|
|
373
|
+
pointer-events: none;
|
|
374
|
+
}
|
|
375
|
+
.dxr-scroll::before {
|
|
376
|
+
top: 0;
|
|
377
|
+
margin-bottom: -26px;
|
|
378
|
+
background: linear-gradient(to bottom, var(--dxr-desk), transparent);
|
|
379
|
+
}
|
|
380
|
+
.dxr-scroll::after {
|
|
381
|
+
bottom: 0;
|
|
382
|
+
margin-top: -26px;
|
|
383
|
+
background: linear-gradient(to top, var(--dxr-desk), transparent);
|
|
384
|
+
}
|
|
315
385
|
.dxr[data-chrome] .dxr-surface { margin: 26px auto; padding: 0 16px 96px; }
|
|
316
386
|
.dxr-surface [contenteditable="true"]:focus {
|
|
317
387
|
outline: 2px solid var(--dxr-accent);
|
|
318
388
|
outline-offset: 2px;
|
|
319
389
|
border-radius: 2px;
|
|
320
390
|
}
|
|
321
|
-
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background:
|
|
391
|
+
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background: var(--dxr-wash); } }
|
|
322
392
|
|
|
323
393
|
/* Header/footer bands: stories live in their own OOXML parts outside the body,
|
|
324
394
|
so they dock as their own regions. Styled from the same tokens as the ribbon
|
|
@@ -330,9 +400,10 @@ export const RIBBON_CSS = `
|
|
|
330
400
|
margin: 0 auto 14px;
|
|
331
401
|
padding: 9px 72px 13px;
|
|
332
402
|
border: 1px solid var(--dxr-rule);
|
|
333
|
-
border-left: 2px solid #
|
|
334
|
-
border-radius:
|
|
403
|
+
border-left: 2px solid #5eead4;
|
|
404
|
+
border-radius: 6px;
|
|
335
405
|
background: var(--dxr-sheet);
|
|
406
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
336
407
|
}
|
|
337
408
|
.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; }
|
|
338
409
|
.dxr-surface .docx-hf-band[data-hf-band="footer"] { margin: 14px auto 0; }
|
|
@@ -351,8 +422,8 @@ export const RIBBON_CSS = `
|
|
|
351
422
|
.dxr-surface .docx-hf-chrome select, .dxr-surface .docx-hf-chrome input {
|
|
352
423
|
padding: 3px 5px;
|
|
353
424
|
border: 1px solid var(--dxr-rule);
|
|
354
|
-
border-radius:
|
|
355
|
-
background:
|
|
425
|
+
border-radius: 6px;
|
|
426
|
+
background: var(--dxr-sheet);
|
|
356
427
|
color: var(--dxr-ink);
|
|
357
428
|
font: inherit;
|
|
358
429
|
font-family: var(--dxr-ui);
|
|
@@ -366,22 +437,22 @@ export const RIBBON_CSS = `
|
|
|
366
437
|
.dxr-surface .docx-hf-warning {
|
|
367
438
|
margin: 0 0 8px -60px;
|
|
368
439
|
padding: 7px 9px;
|
|
369
|
-
border: 1px solid #
|
|
370
|
-
border-left: 2px solid #
|
|
371
|
-
border-radius:
|
|
372
|
-
background: #
|
|
373
|
-
color: #
|
|
440
|
+
border: 1px solid #fde68a;
|
|
441
|
+
border-left: 2px solid #d97706;
|
|
442
|
+
border-radius: 6px;
|
|
443
|
+
background: #fffbeb;
|
|
444
|
+
color: #92400e;
|
|
374
445
|
font-size: 12px;
|
|
375
446
|
line-height: 1.45;
|
|
376
447
|
}
|
|
377
448
|
.dxr-surface .docx-hf-warning button {
|
|
378
449
|
margin-left: 6px;
|
|
379
450
|
padding: 2px 8px;
|
|
380
|
-
border-color: #
|
|
451
|
+
border-color: #fde68a;
|
|
381
452
|
background: #fff;
|
|
382
453
|
font-size: 12px;
|
|
383
454
|
}
|
|
384
|
-
.dxr-surface .docx-hf-placeholder { color:
|
|
455
|
+
.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; }
|
|
385
456
|
.dxr-surface .docx-hf-inherited {
|
|
386
457
|
color: var(--dxr-muted);
|
|
387
458
|
font-style: italic;
|
|
@@ -401,7 +472,7 @@ export const RIBBON_CSS = `
|
|
|
401
472
|
padding: 56px 0;
|
|
402
473
|
border-radius: 3px;
|
|
403
474
|
background: var(--dxr-sheet);
|
|
404
|
-
box-shadow: 0 1px 3px rgba(
|
|
475
|
+
box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);
|
|
405
476
|
}
|
|
406
477
|
|
|
407
478
|
/* ── Table size picker ────────────────────────────────────────────────────── */
|
|
@@ -411,9 +482,9 @@ export const RIBBON_CSS = `
|
|
|
411
482
|
z-index: 30;
|
|
412
483
|
padding: 9px;
|
|
413
484
|
border: 1px solid var(--dxr-rule);
|
|
414
|
-
border-radius:
|
|
485
|
+
border-radius: 12px;
|
|
415
486
|
background: #fff;
|
|
416
|
-
box-shadow:
|
|
487
|
+
box-shadow: var(--dxr-shadow-xl);
|
|
417
488
|
}
|
|
418
489
|
.dxr-pop[data-open] { display: block; }
|
|
419
490
|
.dxr-gridcells { display: grid; grid-template-columns: repeat(10, 16px); gap: 2px; }
|
|
@@ -421,11 +492,11 @@ export const RIBBON_CSS = `
|
|
|
421
492
|
width: 16px;
|
|
422
493
|
height: 16px;
|
|
423
494
|
border: 1px solid var(--dxr-rule);
|
|
424
|
-
border-radius:
|
|
425
|
-
background:
|
|
495
|
+
border-radius: 3px;
|
|
496
|
+
background: var(--dxr-chrome-sunk);
|
|
426
497
|
cursor: pointer;
|
|
427
498
|
}
|
|
428
|
-
.dxr-gridcells div[data-on] { background:
|
|
499
|
+
.dxr-gridcells div[data-on] { background: #ccfbf1; border-color: var(--dxr-accent); }
|
|
429
500
|
.dxr-popfoot {
|
|
430
501
|
display: flex;
|
|
431
502
|
justify-content: space-between;
|
|
@@ -508,11 +579,11 @@ export const RIBBON_CSS = `
|
|
|
508
579
|
display: grid;
|
|
509
580
|
place-items: center;
|
|
510
581
|
padding: 24px;
|
|
511
|
-
color: #
|
|
582
|
+
color: #f8fafc;
|
|
512
583
|
background:
|
|
513
|
-
radial-gradient(circle at 20% 20%, rgba(
|
|
514
|
-
radial-gradient(circle at 82% 80%, rgba(
|
|
515
|
-
linear-gradient(
|
|
584
|
+
radial-gradient(circle at 20% 20%, rgba(13, 148, 136, .2), transparent 22rem),
|
|
585
|
+
radial-gradient(circle at 82% 80%, rgba(45, 212, 191, .1), transparent 24rem),
|
|
586
|
+
linear-gradient(150deg, #0b1220 0%, #0f172a 55%, #0f2723 100%);
|
|
516
587
|
transition: opacity .55s ease, visibility .55s ease;
|
|
517
588
|
}
|
|
518
589
|
.dxr-loader[hidden] { display: none; }
|
|
@@ -531,14 +602,14 @@ export const RIBBON_CSS = `
|
|
|
531
602
|
.dxr-orbit {
|
|
532
603
|
position: absolute;
|
|
533
604
|
inset: 7%;
|
|
534
|
-
border: 1px solid rgba(
|
|
605
|
+
border: 1px solid rgba(45, 212, 191, .24);
|
|
535
606
|
border-radius: 50%;
|
|
536
607
|
animation: dxr-spin 9s linear infinite;
|
|
537
608
|
}
|
|
538
609
|
.dxr-orbit.dxr-two {
|
|
539
610
|
inset: 20%;
|
|
540
611
|
border-style: dashed;
|
|
541
|
-
border-color: rgba(
|
|
612
|
+
border-color: rgba(94, 234, 212, .3);
|
|
542
613
|
animation-duration: 6s;
|
|
543
614
|
animation-direction: reverse;
|
|
544
615
|
}
|
|
@@ -548,19 +619,19 @@ export const RIBBON_CSS = `
|
|
|
548
619
|
height: 10px;
|
|
549
620
|
border-radius: 50%;
|
|
550
621
|
content: "";
|
|
551
|
-
background: #
|
|
552
|
-
box-shadow: 0 0 18px
|
|
622
|
+
background: #2dd4bf;
|
|
623
|
+
box-shadow: 0 0 18px rgba(45, 212, 191, .8);
|
|
553
624
|
}
|
|
554
625
|
.dxr-orbit::before { top: -5px; left: 50%; }
|
|
555
|
-
.dxr-orbit::after { right: 7%; bottom: 12%; background: #
|
|
626
|
+
.dxr-orbit::after { right: 7%; bottom: 12%; background: #5eead4; box-shadow: 0 0 18px rgba(94, 234, 212, .7); }
|
|
556
627
|
.dxr-card {
|
|
557
628
|
position: absolute;
|
|
558
629
|
inset: 24% 28%;
|
|
559
630
|
padding: 20px 15px;
|
|
560
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
631
|
+
border: 1px solid rgba(255, 255, 255, .3);
|
|
561
632
|
border-radius: 14px;
|
|
562
|
-
background: linear-gradient(150deg, rgba(255, 255, 255, .
|
|
563
|
-
box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(
|
|
633
|
+
background: linear-gradient(150deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));
|
|
634
|
+
box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(13, 148, 136, .15);
|
|
564
635
|
backdrop-filter: blur(10px);
|
|
565
636
|
animation: dxr-float 3.6s ease-in-out infinite;
|
|
566
637
|
}
|
|
@@ -570,8 +641,8 @@ export const RIBBON_CSS = `
|
|
|
570
641
|
right: -9px;
|
|
571
642
|
padding: 4px 7px;
|
|
572
643
|
border-radius: 6px;
|
|
573
|
-
background: #
|
|
574
|
-
color: #
|
|
644
|
+
background: #2dd4bf;
|
|
645
|
+
color: #042f2e;
|
|
575
646
|
content: "DOCX";
|
|
576
647
|
font-size: 8px;
|
|
577
648
|
font-weight: 900;
|
|
@@ -588,46 +659,49 @@ export const RIBBON_CSS = `
|
|
|
588
659
|
}
|
|
589
660
|
.dxr-card i:nth-child(2) { width: 76%; animation-delay: -.45s; }
|
|
590
661
|
.dxr-card i:nth-child(3) { width: 88%; animation-delay: -.85s; }
|
|
591
|
-
.dxr-card i:nth-child(4) { width: 58%; background: rgba(
|
|
662
|
+
.dxr-card i:nth-child(4) { width: 58%; background: rgba(248, 113, 113, .75); animation-delay: -1.2s; }
|
|
592
663
|
.dxr-chip {
|
|
593
664
|
position: absolute;
|
|
594
665
|
display: grid;
|
|
595
666
|
width: 34px;
|
|
596
667
|
height: 34px;
|
|
597
668
|
place-items: center;
|
|
598
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
669
|
+
border: 1px solid rgba(255, 255, 255, .16);
|
|
599
670
|
border-radius: 11px;
|
|
600
|
-
background: rgba(
|
|
671
|
+
background: rgba(15, 30, 46, .88);
|
|
601
672
|
box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
|
|
602
673
|
font-size: 11px;
|
|
603
674
|
font-weight: 850;
|
|
604
675
|
}
|
|
605
|
-
.dxr-chip.dxr-b { left: 2%; top: 30%; color: #
|
|
606
|
-
.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #
|
|
607
|
-
.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #
|
|
608
|
-
.dxr-eyebrow { color: #
|
|
676
|
+
.dxr-chip.dxr-b { left: 2%; top: 30%; color: #5eead4; animation: dxr-chip 3s ease-in-out infinite; }
|
|
677
|
+
.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #fca5a5; animation: dxr-chip 3s -1.4s ease-in-out infinite; }
|
|
678
|
+
.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #6ee7b7; animation: dxr-chip 3s -.7s ease-in-out infinite; }
|
|
679
|
+
.dxr-eyebrow { color: #5eead4; font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
|
|
680
|
+
/* Georgia headline — the house pairing of a serif headline over Inter UI copy. */
|
|
609
681
|
.dxr-loader h2 {
|
|
610
682
|
margin: 10px auto 10px;
|
|
611
683
|
max-width: 520px;
|
|
612
|
-
font-
|
|
613
|
-
|
|
614
|
-
|
|
684
|
+
font-family: var(--dxr-serif);
|
|
685
|
+
font-size: clamp(23px, 5vw, 38px);
|
|
686
|
+
font-weight: 500;
|
|
687
|
+
line-height: 1.08;
|
|
688
|
+
letter-spacing: -.02em;
|
|
615
689
|
}
|
|
616
|
-
.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #
|
|
690
|
+
.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #94a3b8; font-size: 13.5px; line-height: 1.6; }
|
|
617
691
|
.dxr-ad {
|
|
618
692
|
display: flex;
|
|
619
693
|
gap: 12px;
|
|
620
694
|
margin: 20px auto 0;
|
|
621
695
|
max-width: 420px;
|
|
622
696
|
padding: 13px;
|
|
623
|
-
border: 1px solid rgba(
|
|
624
|
-
border-radius:
|
|
697
|
+
border: 1px solid rgba(148, 163, 184, .16);
|
|
698
|
+
border-radius: 12px;
|
|
625
699
|
background: rgba(255, 255, 255, .04);
|
|
626
700
|
text-align: left;
|
|
627
701
|
}
|
|
628
|
-
.dxr-ad .dxr-num { color: #
|
|
702
|
+
.dxr-ad .dxr-num { color: #2dd4bf; font: 800 10px/1.4 var(--dxr-mono); }
|
|
629
703
|
.dxr-ad strong { display: block; font-size: 12.5px; }
|
|
630
|
-
.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #
|
|
704
|
+
.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #8ba0b9; font-size: 11.5px; line-height: 1.45; }
|
|
631
705
|
.dxr-ad[data-swap] { animation: dxr-swap .4s ease; }
|
|
632
706
|
.dxr-track {
|
|
633
707
|
height: 3px;
|
|
@@ -641,8 +715,8 @@ export const RIBBON_CSS = `
|
|
|
641
715
|
width: 12%;
|
|
642
716
|
height: 100%;
|
|
643
717
|
border-radius: inherit;
|
|
644
|
-
background: linear-gradient(90deg, #
|
|
645
|
-
box-shadow: 0 0 16px rgba(
|
|
718
|
+
background: linear-gradient(90deg, #14b8a6, #2dd4bf, #5eead4);
|
|
719
|
+
box-shadow: 0 0 16px rgba(45, 212, 191, .5);
|
|
646
720
|
transition: width .65s cubic-bezier(.22, .8, .28, 1);
|
|
647
721
|
}
|
|
648
722
|
.dxr-meta {
|
|
@@ -651,7 +725,7 @@ export const RIBBON_CSS = `
|
|
|
651
725
|
gap: 14px;
|
|
652
726
|
margin: 9px auto 0;
|
|
653
727
|
max-width: 420px;
|
|
654
|
-
color: #
|
|
728
|
+
color: #64748b;
|
|
655
729
|
font: 700 9px/1 var(--dxr-mono);
|
|
656
730
|
letter-spacing: .09em;
|
|
657
731
|
text-transform: uppercase;
|
|
@@ -660,9 +734,9 @@ export const RIBBON_CSS = `
|
|
|
660
734
|
display: none;
|
|
661
735
|
margin-top: 18px;
|
|
662
736
|
padding: 9px 14px;
|
|
663
|
-
border: 1px solid rgba(
|
|
737
|
+
border: 1px solid rgba(248, 113, 113, .4);
|
|
664
738
|
border-radius: 9px;
|
|
665
|
-
background: rgba(
|
|
739
|
+
background: rgba(248, 113, 113, .12);
|
|
666
740
|
color: #fff;
|
|
667
741
|
cursor: pointer;
|
|
668
742
|
}
|
|
@@ -773,8 +847,8 @@ export const RIBBON_HTML = `
|
|
|
773
847
|
<button type="button" class="dxr-icon" data-indent="720" title="Increase indent">${ICON_ALIGN('<rect x="0" y="0" width="15" height="1.6"/><rect x="6" y="3.8" width="9" height="1.6"/><rect x="6" y="7.6" width="9" height="1.6"/><rect x="0" y="11.4" width="15" height="1.6"/><path d="M0.6 4.2v4.6l4-2.3z"/>')}</button>
|
|
774
848
|
</div>
|
|
775
849
|
<div class="dxr-row">
|
|
776
|
-
<button type="button" data-list="bullet" title="Bullet list"
|
|
777
|
-
<button type="button" data-list="decimal" title="Numbered list">
|
|
850
|
+
<button type="button" data-list="bullet" title="Bullet list">Bullets</button>
|
|
851
|
+
<button type="button" data-list="decimal" title="Numbered list">Numbered</button>
|
|
778
852
|
<button type="button" data-pagebreak title="Start this block on a new page">Page break</button>
|
|
779
853
|
</div>
|
|
780
854
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmuBzB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,sEAAsE,IAAI,QAAQ,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFA4D6D,UAAU,CACtF,mLAAmL,CACpL;4FACiF,UAAU,CAC1F,mLAAmL,CACpL;0FAC+E,UAAU,CACxF,mLAAmL,CACpL;wFAC6E,UAAU,CACtF,qLAAqL,CACtL;8FACmF,UAAU,CAC5F,oNAAoN,CACrN;6FACkF,UAAU,CAC3F,kNAAkN,CACnN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0LV,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAC3B,uFAAuF;IACvF,sGAAsG;IACtG,qGAAqG;IACrG,yDAAyD,CAAC"}
|
package/dist/ribbon.d.ts
CHANGED
|
@@ -65,6 +65,14 @@ export interface RibbonOptions extends DocxEditorOptions {
|
|
|
65
65
|
exports?: DocxEditorExports;
|
|
66
66
|
/** Layout density. Default "auto". */
|
|
67
67
|
chrome?: RibbonChromeMode;
|
|
68
|
+
/**
|
|
69
|
+
* Boundary treatment. "flush" (default) is edge-to-edge for full-bleed hosts
|
|
70
|
+
* and hosts that frame the surface themselves; "card" makes the surface carry
|
|
71
|
+
* its own boundary — rounded corners, hairline border, house shadow — for a
|
|
72
|
+
* drop-in embed in the middle of a page. `createRibbonEditor` defaults to
|
|
73
|
+
* "card", since that is the drop-in path.
|
|
74
|
+
*/
|
|
75
|
+
frame?: "card" | "flush";
|
|
68
76
|
/** Root width, in px, below which "auto" picks compact. Default 720. */
|
|
69
77
|
compactBreakpoint?: number;
|
|
70
78
|
/** Show the anchor rail (full chrome only). Default true. */
|
package/dist/ribbon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ribbon.d.ts","sourceRoot":"","sources":["../src/ribbon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ribbon.d.ts","sourceRoot":"","sources":["../src/ribbon.ts"],"names":[],"mappings":"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"}
|
package/dist/ribbon.js
CHANGED
|
@@ -150,6 +150,7 @@ class RibbonSurface {
|
|
|
150
150
|
const root = doc.createElement("div");
|
|
151
151
|
root.className = "dxr";
|
|
152
152
|
root.dataset.state = "idle";
|
|
153
|
+
root.dataset.frame = this.options.frame ?? "flush";
|
|
153
154
|
root.innerHTML = RIBBON_HTML;
|
|
154
155
|
for (const el of Array.from(root.querySelectorAll("[data-dxr]"))) {
|
|
155
156
|
el.id = this.idPrefix + el.dataset.dxr;
|