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/embed.bundle.js
CHANGED
|
@@ -8878,23 +8878,38 @@ var DocxEditor = class _DocxEditor {
|
|
|
8878
8878
|
};
|
|
8879
8879
|
|
|
8880
8880
|
// src/ribbon-chrome.ts
|
|
8881
|
-
var RIBBON_STYLE_VERSION = "
|
|
8881
|
+
var RIBBON_STYLE_VERSION = "8";
|
|
8882
8882
|
var RIBBON_STYLE_ATTR = "data-docxodus-ribbon-styles";
|
|
8883
8883
|
var RIBBON_CSS = `
|
|
8884
8884
|
.dxr {
|
|
8885
|
-
|
|
8885
|
+
/* OS-Legal design tokens (github.com/Open-Source-Legal/OS-Legal-Style):
|
|
8886
|
+
deep-teal accent, slate foreground scale, warm neutral surfaces, and
|
|
8887
|
+
"light touch" shadows at 0.03-0.06 opacity \u2014 structure over decoration. */
|
|
8888
|
+
--dxr-ink: #1e293b;
|
|
8886
8889
|
--dxr-sheet: #ffffff;
|
|
8887
|
-
--dxr-chrome: #
|
|
8888
|
-
--dxr-chrome-sunk: #
|
|
8889
|
-
--dxr-rule: #
|
|
8890
|
-
--dxr-
|
|
8891
|
-
--dxr-
|
|
8892
|
-
--dxr-
|
|
8893
|
-
--dxr-
|
|
8894
|
-
--dxr-
|
|
8895
|
-
--dxr-
|
|
8896
|
-
--dxr-
|
|
8890
|
+
--dxr-chrome: #ffffff;
|
|
8891
|
+
--dxr-chrome-sunk: #f8fafc;
|
|
8892
|
+
--dxr-rule: #e2e8f0;
|
|
8893
|
+
--dxr-rule-strong: #cbd5e1;
|
|
8894
|
+
--dxr-accent: #0f766e;
|
|
8895
|
+
--dxr-accent-hover: #0d9488;
|
|
8896
|
+
--dxr-accent-active: #115e59;
|
|
8897
|
+
--dxr-wash: #f0fdfa;
|
|
8898
|
+
--dxr-wash-on: #ccfbf1;
|
|
8899
|
+
--dxr-muted: #475569;
|
|
8900
|
+
--dxr-faint: #94a3b8;
|
|
8901
|
+
--dxr-data: #0f766e;
|
|
8902
|
+
--dxr-danger: #dc2626;
|
|
8903
|
+
--dxr-danger-wash: #fef2f2;
|
|
8904
|
+
--dxr-desk: #f1f5f9;
|
|
8905
|
+
--dxr-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
8906
|
+
--dxr-serif: Georgia, "Times New Roman", serif;
|
|
8897
8907
|
--dxr-mono: ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;
|
|
8908
|
+
--dxr-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
|
|
8909
|
+
--dxr-shadow-md: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 6px rgba(15, 23, 42, .03);
|
|
8910
|
+
--dxr-shadow-lg: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 15px rgba(15, 23, 42, .04);
|
|
8911
|
+
--dxr-shadow-xl: 0 8px 16px rgba(15, 23, 42, .06), 0 20px 25px rgba(15, 23, 42, .05);
|
|
8912
|
+
--dxr-ease: cubic-bezier(.4, 0, .2, 1);
|
|
8898
8913
|
--dxr-tap: 30px;
|
|
8899
8914
|
|
|
8900
8915
|
position: relative;
|
|
@@ -8910,6 +8925,18 @@ var RIBBON_CSS = `
|
|
|
8910
8925
|
}
|
|
8911
8926
|
.dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }
|
|
8912
8927
|
|
|
8928
|
+
/* \u2500\u2500 Card frame \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
8929
|
+
A drop-in embed carries its OWN boundary instead of hoping the host clips it:
|
|
8930
|
+
rounded corners, a hairline, and the house elevation. overflow: clip keeps
|
|
8931
|
+
the sticky chrome, scrollbars, and the loading overlay inside the curve.
|
|
8932
|
+
Full-bleed hosts mount with data-frame="flush" and stay edge-to-edge. */
|
|
8933
|
+
.dxr[data-frame="card"] {
|
|
8934
|
+
border: 1px solid var(--dxr-rule);
|
|
8935
|
+
border-radius: 14px;
|
|
8936
|
+
box-shadow: var(--dxr-shadow-xl);
|
|
8937
|
+
overflow: clip;
|
|
8938
|
+
}
|
|
8939
|
+
|
|
8913
8940
|
/* Touch devices get bigger hit targets everywhere the token is used. */
|
|
8914
8941
|
@media (pointer: coarse) { .dxr { --dxr-tap: 40px; } }
|
|
8915
8942
|
|
|
@@ -8938,12 +8965,13 @@ var RIBBON_CSS = `
|
|
|
8938
8965
|
font-weight: 600;
|
|
8939
8966
|
letter-spacing: -.01em;
|
|
8940
8967
|
}
|
|
8968
|
+
/* A filled circle, echoing the OS-Legal "Node" motif rather than a diamond. */
|
|
8941
8969
|
.dxr-brand .dxr-mark {
|
|
8942
8970
|
flex: 0 0 auto;
|
|
8943
8971
|
width: 9px;
|
|
8944
8972
|
height: 9px;
|
|
8973
|
+
border-radius: 50%;
|
|
8945
8974
|
background: var(--dxr-accent);
|
|
8946
|
-
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
|
|
8947
8975
|
}
|
|
8948
8976
|
.dxr-brand .dxr-docname {
|
|
8949
8977
|
overflow: hidden;
|
|
@@ -8975,25 +9003,25 @@ var RIBBON_CSS = `
|
|
|
8975
9003
|
scrollbar-width: none;
|
|
8976
9004
|
}
|
|
8977
9005
|
.dxr-tabs::-webkit-scrollbar { display: none; }
|
|
9006
|
+
/* Line-variant tabs (the house Tabs default): no boxes, no fills \u2014 the selected
|
|
9007
|
+
tab is a 2px accent underline sitting on the panel's own hairline. */
|
|
8978
9008
|
.dxr-tab {
|
|
8979
9009
|
flex: 0 0 auto;
|
|
8980
|
-
padding:
|
|
8981
|
-
border:
|
|
8982
|
-
border-bottom: none;
|
|
8983
|
-
border-radius: 5px 5px 0 0;
|
|
9010
|
+
padding: 7px 14px 8px;
|
|
9011
|
+
border: none;
|
|
8984
9012
|
background: none;
|
|
8985
9013
|
color: var(--dxr-muted);
|
|
8986
9014
|
font: inherit;
|
|
8987
9015
|
font-size: 12.5px;
|
|
9016
|
+
font-weight: 500;
|
|
8988
9017
|
cursor: pointer;
|
|
9018
|
+
transition: color .15s var(--dxr-ease), box-shadow .15s var(--dxr-ease);
|
|
8989
9019
|
}
|
|
8990
|
-
.dxr-tab:hover { color: var(--dxr-ink);
|
|
9020
|
+
.dxr-tab:hover { color: var(--dxr-ink); }
|
|
8991
9021
|
.dxr-tab[aria-selected="true"] {
|
|
8992
9022
|
color: var(--dxr-ink);
|
|
8993
9023
|
font-weight: 600;
|
|
8994
|
-
|
|
8995
|
-
border-color: var(--dxr-rule);
|
|
8996
|
-
box-shadow: inset 0 2px 0 var(--dxr-accent);
|
|
9024
|
+
box-shadow: inset 0 -2px 0 var(--dxr-accent);
|
|
8997
9025
|
}
|
|
8998
9026
|
/* Contextual tab \u2014 present only while the caret is inside a table. */
|
|
8999
9027
|
.dxr-tab[data-contextual] { color: var(--dxr-accent); }
|
|
@@ -9023,7 +9051,7 @@ var RIBBON_CSS = `
|
|
|
9023
9051
|
.dxr-group:last-child { border-right: none; }
|
|
9024
9052
|
.dxr-group:first-child { padding-left: 0; }
|
|
9025
9053
|
.dxr-glabel {
|
|
9026
|
-
color: var(--dxr-
|
|
9054
|
+
color: var(--dxr-faint);
|
|
9027
9055
|
font-size: 9.5px;
|
|
9028
9056
|
font-weight: 600;
|
|
9029
9057
|
letter-spacing: .11em;
|
|
@@ -9032,48 +9060,69 @@ var RIBBON_CSS = `
|
|
|
9032
9060
|
.dxr-row { display: flex; gap: 3px; align-items: center; }
|
|
9033
9061
|
|
|
9034
9062
|
/* \u2500\u2500 Controls \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
9063
|
+
/* One button family, house-style: every control is a ghost \u2014 no borders, no
|
|
9064
|
+
fills, no per-button boxes. Hover paints a quiet slate wash; the active
|
|
9065
|
+
(toggled) state paints a teal one. Save alone is the flat primary, so the
|
|
9066
|
+
surface has exactly one accent-colored action. */
|
|
9035
9067
|
.dxr button, .dxr label.dxr-btn {
|
|
9036
9068
|
min-height: var(--dxr-tap);
|
|
9037
9069
|
padding: 5px 9px;
|
|
9038
|
-
border:
|
|
9039
|
-
border-radius:
|
|
9070
|
+
border: none;
|
|
9071
|
+
border-radius: 6px;
|
|
9040
9072
|
background: none;
|
|
9041
9073
|
color: var(--dxr-ink);
|
|
9042
9074
|
font: inherit;
|
|
9043
9075
|
font-size: 13px;
|
|
9076
|
+
font-weight: 500;
|
|
9044
9077
|
line-height: 1.15;
|
|
9045
9078
|
cursor: pointer;
|
|
9079
|
+
transition: background-color .15s var(--dxr-ease), color .15s var(--dxr-ease),
|
|
9080
|
+
box-shadow .15s var(--dxr-ease), transform .15s var(--dxr-ease);
|
|
9046
9081
|
}
|
|
9047
9082
|
.dxr label.dxr-btn { display: inline-flex; align-items: center; }
|
|
9048
|
-
.dxr button:hover, .dxr label.dxr-btn:hover { background: #
|
|
9049
|
-
.dxr button:active { background: #
|
|
9083
|
+
.dxr button:hover, .dxr label.dxr-btn:hover { background: #f1f5f9; }
|
|
9084
|
+
.dxr button:active { background: #e2e8f0; }
|
|
9050
9085
|
.dxr button:disabled { opacity: .38; cursor: default; background: none; }
|
|
9051
|
-
.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash);
|
|
9052
|
-
.dxr-quick button, .dxr-quick label.dxr-btn {
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
background:
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
.dxr button
|
|
9086
|
+
.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash-on); }
|
|
9087
|
+
.dxr-quick button, .dxr-quick label.dxr-btn { padding: 4px 10px; font-size: 12.5px; }
|
|
9088
|
+
/* Save \u2014 the house primary: flat accent, sm shadow, the 1px lift on hover. */
|
|
9089
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled) {
|
|
9090
|
+
background: var(--dxr-accent);
|
|
9091
|
+
color: #fff;
|
|
9092
|
+
font-weight: 600;
|
|
9093
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
9094
|
+
}
|
|
9095
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled):hover {
|
|
9096
|
+
background: var(--dxr-accent-hover);
|
|
9097
|
+
box-shadow: var(--dxr-shadow-md);
|
|
9098
|
+
transform: translateY(-1px);
|
|
9099
|
+
}
|
|
9100
|
+
.dxr-quick button[data-dxr="save"]:not(:disabled):active {
|
|
9101
|
+
background: var(--dxr-accent-active);
|
|
9102
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
9103
|
+
transform: translateY(0);
|
|
9104
|
+
}
|
|
9105
|
+
/* Icon controls sit quieter than text ones until touched (house IconButton). */
|
|
9106
|
+
.dxr button.dxr-icon { min-width: var(--dxr-tap); text-align: center; color: var(--dxr-muted); }
|
|
9107
|
+
.dxr button.dxr-icon:hover:not(:disabled) { color: var(--dxr-ink); }
|
|
9108
|
+
.dxr button.dxr-icon.dxr-on { color: var(--dxr-accent); }
|
|
9061
9109
|
/* Icons are inline SVG drawn from the same shapes the control acts on (text lines,
|
|
9062
9110
|
rules), so alignment and indent read at a glance instead of relying on arrow
|
|
9063
9111
|
glyphs that collide with undo/redo. currentColor keeps them in step with state. */
|
|
9064
9112
|
.dxr button svg { display: block; margin: 0 auto; fill: currentColor; }
|
|
9065
9113
|
.dxr button.dxr-wide { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
|
|
9066
|
-
.dxr button.dxr-danger:hover { color: var(--dxr-danger); background:
|
|
9114
|
+
.dxr button.dxr-danger:hover { color: var(--dxr-danger); background: var(--dxr-danger-wash); }
|
|
9067
9115
|
.dxr select, .dxr input[type="number"], .dxr input[type="text"] {
|
|
9068
9116
|
min-height: var(--dxr-tap);
|
|
9069
9117
|
padding: 4px 6px;
|
|
9070
9118
|
border: 1px solid var(--dxr-rule);
|
|
9071
|
-
border-radius:
|
|
9072
|
-
background:
|
|
9119
|
+
border-radius: 6px;
|
|
9120
|
+
background: var(--dxr-sheet);
|
|
9073
9121
|
color: var(--dxr-ink);
|
|
9074
9122
|
font: inherit;
|
|
9075
9123
|
font-size: 12.5px;
|
|
9076
9124
|
}
|
|
9125
|
+
.dxr select:hover, .dxr input:hover { border-color: var(--dxr-rule-strong); }
|
|
9077
9126
|
.dxr select:focus-visible, .dxr input:focus-visible, .dxr button:focus-visible,
|
|
9078
9127
|
.dxr .dxr-tab:focus-visible, .dxr label.dxr-btn:focus-within {
|
|
9079
9128
|
outline: 2px solid var(--dxr-accent);
|
|
@@ -9104,7 +9153,7 @@ var RIBBON_CSS = `
|
|
|
9104
9153
|
height: 25px;
|
|
9105
9154
|
padding: 0 10px;
|
|
9106
9155
|
overflow-x: auto;
|
|
9107
|
-
background: #
|
|
9156
|
+
background: #fafafa;
|
|
9108
9157
|
border-top: 1px solid var(--dxr-rule);
|
|
9109
9158
|
color: var(--dxr-muted);
|
|
9110
9159
|
font-family: var(--dxr-mono);
|
|
@@ -9123,7 +9172,7 @@ var RIBBON_CSS = `
|
|
|
9123
9172
|
.dxr-rail .dxr-cell:first-child { padding-left: 0; }
|
|
9124
9173
|
.dxr-rail .dxr-cell:last-child { border-right: none; }
|
|
9125
9174
|
.dxr-rail .dxr-k {
|
|
9126
|
-
color:
|
|
9175
|
+
color: var(--dxr-faint);
|
|
9127
9176
|
font-family: var(--dxr-ui);
|
|
9128
9177
|
font-size: 9.5px;
|
|
9129
9178
|
letter-spacing: .1em;
|
|
@@ -9131,7 +9180,7 @@ var RIBBON_CSS = `
|
|
|
9131
9180
|
}
|
|
9132
9181
|
.dxr-rail .dxr-v { color: var(--dxr-data); }
|
|
9133
9182
|
.dxr-rail .dxr-v.dxr-flash { animation: dxr-railflash .45s ease-out; }
|
|
9134
|
-
@keyframes dxr-railflash { from { background: #
|
|
9183
|
+
@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }
|
|
9135
9184
|
|
|
9136
9185
|
/* \u2500\u2500 Hint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
9137
9186
|
.dxr-hint {
|
|
@@ -9146,8 +9195,8 @@ var RIBBON_CSS = `
|
|
|
9146
9195
|
.dxr-hint kbd {
|
|
9147
9196
|
padding: 0 4px;
|
|
9148
9197
|
border: 1px solid var(--dxr-rule);
|
|
9149
|
-
border-radius:
|
|
9150
|
-
background: #
|
|
9198
|
+
border-radius: 4px;
|
|
9199
|
+
background: #f1f5f9;
|
|
9151
9200
|
font-family: var(--dxr-mono);
|
|
9152
9201
|
font-size: 11px;
|
|
9153
9202
|
}
|
|
@@ -9162,13 +9211,34 @@ var RIBBON_CSS = `
|
|
|
9162
9211
|
SHOULD win.
|
|
9163
9212
|
(No backticks in this file's comments: the stylesheet is a template literal.) */
|
|
9164
9213
|
.dxr-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }
|
|
9214
|
+
/* Soft scroll boundaries: content dissolves at the chrome and at the bottom edge
|
|
9215
|
+
instead of hard-clipping. Sticky gradient veils cost one paint layer each and
|
|
9216
|
+
never intercept input. */
|
|
9217
|
+
.dxr-scroll::before, .dxr-scroll::after {
|
|
9218
|
+
content: "";
|
|
9219
|
+
position: sticky;
|
|
9220
|
+
z-index: 3;
|
|
9221
|
+
display: block;
|
|
9222
|
+
height: 26px;
|
|
9223
|
+
pointer-events: none;
|
|
9224
|
+
}
|
|
9225
|
+
.dxr-scroll::before {
|
|
9226
|
+
top: 0;
|
|
9227
|
+
margin-bottom: -26px;
|
|
9228
|
+
background: linear-gradient(to bottom, var(--dxr-desk), transparent);
|
|
9229
|
+
}
|
|
9230
|
+
.dxr-scroll::after {
|
|
9231
|
+
bottom: 0;
|
|
9232
|
+
margin-top: -26px;
|
|
9233
|
+
background: linear-gradient(to top, var(--dxr-desk), transparent);
|
|
9234
|
+
}
|
|
9165
9235
|
.dxr[data-chrome] .dxr-surface { margin: 26px auto; padding: 0 16px 96px; }
|
|
9166
9236
|
.dxr-surface [contenteditable="true"]:focus {
|
|
9167
9237
|
outline: 2px solid var(--dxr-accent);
|
|
9168
9238
|
outline-offset: 2px;
|
|
9169
9239
|
border-radius: 2px;
|
|
9170
9240
|
}
|
|
9171
|
-
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background:
|
|
9241
|
+
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background: var(--dxr-wash); } }
|
|
9172
9242
|
|
|
9173
9243
|
/* Header/footer bands: stories live in their own OOXML parts outside the body,
|
|
9174
9244
|
so they dock as their own regions. Styled from the same tokens as the ribbon
|
|
@@ -9180,9 +9250,10 @@ var RIBBON_CSS = `
|
|
|
9180
9250
|
margin: 0 auto 14px;
|
|
9181
9251
|
padding: 9px 72px 13px;
|
|
9182
9252
|
border: 1px solid var(--dxr-rule);
|
|
9183
|
-
border-left: 2px solid #
|
|
9184
|
-
border-radius:
|
|
9253
|
+
border-left: 2px solid #5eead4;
|
|
9254
|
+
border-radius: 6px;
|
|
9185
9255
|
background: var(--dxr-sheet);
|
|
9256
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
9186
9257
|
}
|
|
9187
9258
|
.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; }
|
|
9188
9259
|
.dxr-surface .docx-hf-band[data-hf-band="footer"] { margin: 14px auto 0; }
|
|
@@ -9201,8 +9272,8 @@ var RIBBON_CSS = `
|
|
|
9201
9272
|
.dxr-surface .docx-hf-chrome select, .dxr-surface .docx-hf-chrome input {
|
|
9202
9273
|
padding: 3px 5px;
|
|
9203
9274
|
border: 1px solid var(--dxr-rule);
|
|
9204
|
-
border-radius:
|
|
9205
|
-
background:
|
|
9275
|
+
border-radius: 6px;
|
|
9276
|
+
background: var(--dxr-sheet);
|
|
9206
9277
|
color: var(--dxr-ink);
|
|
9207
9278
|
font: inherit;
|
|
9208
9279
|
font-family: var(--dxr-ui);
|
|
@@ -9216,22 +9287,22 @@ var RIBBON_CSS = `
|
|
|
9216
9287
|
.dxr-surface .docx-hf-warning {
|
|
9217
9288
|
margin: 0 0 8px -60px;
|
|
9218
9289
|
padding: 7px 9px;
|
|
9219
|
-
border: 1px solid #
|
|
9220
|
-
border-left: 2px solid #
|
|
9221
|
-
border-radius:
|
|
9222
|
-
background: #
|
|
9223
|
-
color: #
|
|
9290
|
+
border: 1px solid #fde68a;
|
|
9291
|
+
border-left: 2px solid #d97706;
|
|
9292
|
+
border-radius: 6px;
|
|
9293
|
+
background: #fffbeb;
|
|
9294
|
+
color: #92400e;
|
|
9224
9295
|
font-size: 12px;
|
|
9225
9296
|
line-height: 1.45;
|
|
9226
9297
|
}
|
|
9227
9298
|
.dxr-surface .docx-hf-warning button {
|
|
9228
9299
|
margin-left: 6px;
|
|
9229
9300
|
padding: 2px 8px;
|
|
9230
|
-
border-color: #
|
|
9301
|
+
border-color: #fde68a;
|
|
9231
9302
|
background: #fff;
|
|
9232
9303
|
font-size: 12px;
|
|
9233
9304
|
}
|
|
9234
|
-
.dxr-surface .docx-hf-placeholder { color:
|
|
9305
|
+
.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; }
|
|
9235
9306
|
.dxr-surface .docx-hf-inherited {
|
|
9236
9307
|
color: var(--dxr-muted);
|
|
9237
9308
|
font-style: italic;
|
|
@@ -9251,7 +9322,7 @@ var RIBBON_CSS = `
|
|
|
9251
9322
|
padding: 56px 0;
|
|
9252
9323
|
border-radius: 3px;
|
|
9253
9324
|
background: var(--dxr-sheet);
|
|
9254
|
-
box-shadow: 0 1px 3px rgba(
|
|
9325
|
+
box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);
|
|
9255
9326
|
}
|
|
9256
9327
|
|
|
9257
9328
|
/* \u2500\u2500 Table size picker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -9261,9 +9332,9 @@ var RIBBON_CSS = `
|
|
|
9261
9332
|
z-index: 30;
|
|
9262
9333
|
padding: 9px;
|
|
9263
9334
|
border: 1px solid var(--dxr-rule);
|
|
9264
|
-
border-radius:
|
|
9335
|
+
border-radius: 12px;
|
|
9265
9336
|
background: #fff;
|
|
9266
|
-
box-shadow:
|
|
9337
|
+
box-shadow: var(--dxr-shadow-xl);
|
|
9267
9338
|
}
|
|
9268
9339
|
.dxr-pop[data-open] { display: block; }
|
|
9269
9340
|
.dxr-gridcells { display: grid; grid-template-columns: repeat(10, 16px); gap: 2px; }
|
|
@@ -9271,11 +9342,11 @@ var RIBBON_CSS = `
|
|
|
9271
9342
|
width: 16px;
|
|
9272
9343
|
height: 16px;
|
|
9273
9344
|
border: 1px solid var(--dxr-rule);
|
|
9274
|
-
border-radius:
|
|
9275
|
-
background:
|
|
9345
|
+
border-radius: 3px;
|
|
9346
|
+
background: var(--dxr-chrome-sunk);
|
|
9276
9347
|
cursor: pointer;
|
|
9277
9348
|
}
|
|
9278
|
-
.dxr-gridcells div[data-on] { background:
|
|
9349
|
+
.dxr-gridcells div[data-on] { background: #ccfbf1; border-color: var(--dxr-accent); }
|
|
9279
9350
|
.dxr-popfoot {
|
|
9280
9351
|
display: flex;
|
|
9281
9352
|
justify-content: space-between;
|
|
@@ -9358,11 +9429,11 @@ var RIBBON_CSS = `
|
|
|
9358
9429
|
display: grid;
|
|
9359
9430
|
place-items: center;
|
|
9360
9431
|
padding: 24px;
|
|
9361
|
-
color: #
|
|
9432
|
+
color: #f8fafc;
|
|
9362
9433
|
background:
|
|
9363
|
-
radial-gradient(circle at 20% 20%, rgba(
|
|
9364
|
-
radial-gradient(circle at 82% 80%, rgba(
|
|
9365
|
-
linear-gradient(
|
|
9434
|
+
radial-gradient(circle at 20% 20%, rgba(13, 148, 136, .2), transparent 22rem),
|
|
9435
|
+
radial-gradient(circle at 82% 80%, rgba(45, 212, 191, .1), transparent 24rem),
|
|
9436
|
+
linear-gradient(150deg, #0b1220 0%, #0f172a 55%, #0f2723 100%);
|
|
9366
9437
|
transition: opacity .55s ease, visibility .55s ease;
|
|
9367
9438
|
}
|
|
9368
9439
|
.dxr-loader[hidden] { display: none; }
|
|
@@ -9381,14 +9452,14 @@ var RIBBON_CSS = `
|
|
|
9381
9452
|
.dxr-orbit {
|
|
9382
9453
|
position: absolute;
|
|
9383
9454
|
inset: 7%;
|
|
9384
|
-
border: 1px solid rgba(
|
|
9455
|
+
border: 1px solid rgba(45, 212, 191, .24);
|
|
9385
9456
|
border-radius: 50%;
|
|
9386
9457
|
animation: dxr-spin 9s linear infinite;
|
|
9387
9458
|
}
|
|
9388
9459
|
.dxr-orbit.dxr-two {
|
|
9389
9460
|
inset: 20%;
|
|
9390
9461
|
border-style: dashed;
|
|
9391
|
-
border-color: rgba(
|
|
9462
|
+
border-color: rgba(94, 234, 212, .3);
|
|
9392
9463
|
animation-duration: 6s;
|
|
9393
9464
|
animation-direction: reverse;
|
|
9394
9465
|
}
|
|
@@ -9398,19 +9469,19 @@ var RIBBON_CSS = `
|
|
|
9398
9469
|
height: 10px;
|
|
9399
9470
|
border-radius: 50%;
|
|
9400
9471
|
content: "";
|
|
9401
|
-
background: #
|
|
9402
|
-
box-shadow: 0 0 18px
|
|
9472
|
+
background: #2dd4bf;
|
|
9473
|
+
box-shadow: 0 0 18px rgba(45, 212, 191, .8);
|
|
9403
9474
|
}
|
|
9404
9475
|
.dxr-orbit::before { top: -5px; left: 50%; }
|
|
9405
|
-
.dxr-orbit::after { right: 7%; bottom: 12%; background: #
|
|
9476
|
+
.dxr-orbit::after { right: 7%; bottom: 12%; background: #5eead4; box-shadow: 0 0 18px rgba(94, 234, 212, .7); }
|
|
9406
9477
|
.dxr-card {
|
|
9407
9478
|
position: absolute;
|
|
9408
9479
|
inset: 24% 28%;
|
|
9409
9480
|
padding: 20px 15px;
|
|
9410
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
9481
|
+
border: 1px solid rgba(255, 255, 255, .3);
|
|
9411
9482
|
border-radius: 14px;
|
|
9412
|
-
background: linear-gradient(150deg, rgba(255, 255, 255, .
|
|
9413
|
-
box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(
|
|
9483
|
+
background: linear-gradient(150deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));
|
|
9484
|
+
box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(13, 148, 136, .15);
|
|
9414
9485
|
backdrop-filter: blur(10px);
|
|
9415
9486
|
animation: dxr-float 3.6s ease-in-out infinite;
|
|
9416
9487
|
}
|
|
@@ -9420,8 +9491,8 @@ var RIBBON_CSS = `
|
|
|
9420
9491
|
right: -9px;
|
|
9421
9492
|
padding: 4px 7px;
|
|
9422
9493
|
border-radius: 6px;
|
|
9423
|
-
background: #
|
|
9424
|
-
color: #
|
|
9494
|
+
background: #2dd4bf;
|
|
9495
|
+
color: #042f2e;
|
|
9425
9496
|
content: "DOCX";
|
|
9426
9497
|
font-size: 8px;
|
|
9427
9498
|
font-weight: 900;
|
|
@@ -9438,46 +9509,49 @@ var RIBBON_CSS = `
|
|
|
9438
9509
|
}
|
|
9439
9510
|
.dxr-card i:nth-child(2) { width: 76%; animation-delay: -.45s; }
|
|
9440
9511
|
.dxr-card i:nth-child(3) { width: 88%; animation-delay: -.85s; }
|
|
9441
|
-
.dxr-card i:nth-child(4) { width: 58%; background: rgba(
|
|
9512
|
+
.dxr-card i:nth-child(4) { width: 58%; background: rgba(248, 113, 113, .75); animation-delay: -1.2s; }
|
|
9442
9513
|
.dxr-chip {
|
|
9443
9514
|
position: absolute;
|
|
9444
9515
|
display: grid;
|
|
9445
9516
|
width: 34px;
|
|
9446
9517
|
height: 34px;
|
|
9447
9518
|
place-items: center;
|
|
9448
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
9519
|
+
border: 1px solid rgba(255, 255, 255, .16);
|
|
9449
9520
|
border-radius: 11px;
|
|
9450
|
-
background: rgba(
|
|
9521
|
+
background: rgba(15, 30, 46, .88);
|
|
9451
9522
|
box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
|
|
9452
9523
|
font-size: 11px;
|
|
9453
9524
|
font-weight: 850;
|
|
9454
9525
|
}
|
|
9455
|
-
.dxr-chip.dxr-b { left: 2%; top: 30%; color: #
|
|
9456
|
-
.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #
|
|
9457
|
-
.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #
|
|
9458
|
-
.dxr-eyebrow { color: #
|
|
9526
|
+
.dxr-chip.dxr-b { left: 2%; top: 30%; color: #5eead4; animation: dxr-chip 3s ease-in-out infinite; }
|
|
9527
|
+
.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #fca5a5; animation: dxr-chip 3s -1.4s ease-in-out infinite; }
|
|
9528
|
+
.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #6ee7b7; animation: dxr-chip 3s -.7s ease-in-out infinite; }
|
|
9529
|
+
.dxr-eyebrow { color: #5eead4; font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
|
|
9530
|
+
/* Georgia headline \u2014 the house pairing of a serif headline over Inter UI copy. */
|
|
9459
9531
|
.dxr-loader h2 {
|
|
9460
9532
|
margin: 10px auto 10px;
|
|
9461
9533
|
max-width: 520px;
|
|
9462
|
-
font-
|
|
9463
|
-
|
|
9464
|
-
|
|
9534
|
+
font-family: var(--dxr-serif);
|
|
9535
|
+
font-size: clamp(23px, 5vw, 38px);
|
|
9536
|
+
font-weight: 500;
|
|
9537
|
+
line-height: 1.08;
|
|
9538
|
+
letter-spacing: -.02em;
|
|
9465
9539
|
}
|
|
9466
|
-
.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #
|
|
9540
|
+
.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #94a3b8; font-size: 13.5px; line-height: 1.6; }
|
|
9467
9541
|
.dxr-ad {
|
|
9468
9542
|
display: flex;
|
|
9469
9543
|
gap: 12px;
|
|
9470
9544
|
margin: 20px auto 0;
|
|
9471
9545
|
max-width: 420px;
|
|
9472
9546
|
padding: 13px;
|
|
9473
|
-
border: 1px solid rgba(
|
|
9474
|
-
border-radius:
|
|
9547
|
+
border: 1px solid rgba(148, 163, 184, .16);
|
|
9548
|
+
border-radius: 12px;
|
|
9475
9549
|
background: rgba(255, 255, 255, .04);
|
|
9476
9550
|
text-align: left;
|
|
9477
9551
|
}
|
|
9478
|
-
.dxr-ad .dxr-num { color: #
|
|
9552
|
+
.dxr-ad .dxr-num { color: #2dd4bf; font: 800 10px/1.4 var(--dxr-mono); }
|
|
9479
9553
|
.dxr-ad strong { display: block; font-size: 12.5px; }
|
|
9480
|
-
.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #
|
|
9554
|
+
.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #8ba0b9; font-size: 11.5px; line-height: 1.45; }
|
|
9481
9555
|
.dxr-ad[data-swap] { animation: dxr-swap .4s ease; }
|
|
9482
9556
|
.dxr-track {
|
|
9483
9557
|
height: 3px;
|
|
@@ -9491,8 +9565,8 @@ var RIBBON_CSS = `
|
|
|
9491
9565
|
width: 12%;
|
|
9492
9566
|
height: 100%;
|
|
9493
9567
|
border-radius: inherit;
|
|
9494
|
-
background: linear-gradient(90deg, #
|
|
9495
|
-
box-shadow: 0 0 16px rgba(
|
|
9568
|
+
background: linear-gradient(90deg, #14b8a6, #2dd4bf, #5eead4);
|
|
9569
|
+
box-shadow: 0 0 16px rgba(45, 212, 191, .5);
|
|
9496
9570
|
transition: width .65s cubic-bezier(.22, .8, .28, 1);
|
|
9497
9571
|
}
|
|
9498
9572
|
.dxr-meta {
|
|
@@ -9501,7 +9575,7 @@ var RIBBON_CSS = `
|
|
|
9501
9575
|
gap: 14px;
|
|
9502
9576
|
margin: 9px auto 0;
|
|
9503
9577
|
max-width: 420px;
|
|
9504
|
-
color: #
|
|
9578
|
+
color: #64748b;
|
|
9505
9579
|
font: 700 9px/1 var(--dxr-mono);
|
|
9506
9580
|
letter-spacing: .09em;
|
|
9507
9581
|
text-transform: uppercase;
|
|
@@ -9510,9 +9584,9 @@ var RIBBON_CSS = `
|
|
|
9510
9584
|
display: none;
|
|
9511
9585
|
margin-top: 18px;
|
|
9512
9586
|
padding: 9px 14px;
|
|
9513
|
-
border: 1px solid rgba(
|
|
9587
|
+
border: 1px solid rgba(248, 113, 113, .4);
|
|
9514
9588
|
border-radius: 9px;
|
|
9515
|
-
background: rgba(
|
|
9589
|
+
background: rgba(248, 113, 113, .12);
|
|
9516
9590
|
color: #fff;
|
|
9517
9591
|
cursor: pointer;
|
|
9518
9592
|
}
|
|
@@ -9627,8 +9701,8 @@ var RIBBON_HTML = `
|
|
|
9627
9701
|
)}</button>
|
|
9628
9702
|
</div>
|
|
9629
9703
|
<div class="dxr-row">
|
|
9630
|
-
<button type="button" data-list="bullet" title="Bullet list"
|
|
9631
|
-
<button type="button" data-list="decimal" title="Numbered list">
|
|
9704
|
+
<button type="button" data-list="bullet" title="Bullet list">Bullets</button>
|
|
9705
|
+
<button type="button" data-list="decimal" title="Numbered list">Numbered</button>
|
|
9632
9706
|
<button type="button" data-pagebreak title="Start this block on a new page">Page break</button>
|
|
9633
9707
|
</div>
|
|
9634
9708
|
</div>
|
|
@@ -9951,6 +10025,7 @@ var RibbonSurface = class {
|
|
|
9951
10025
|
const root = doc.createElement("div");
|
|
9952
10026
|
root.className = "dxr";
|
|
9953
10027
|
root.dataset.state = "idle";
|
|
10028
|
+
root.dataset.frame = this.options.frame ?? "flush";
|
|
9954
10029
|
root.innerHTML = RIBBON_HTML;
|
|
9955
10030
|
for (const el of Array.from(root.querySelectorAll("[data-dxr]"))) {
|
|
9956
10031
|
el.id = this.idPrefix + el.dataset.dxr;
|
|
@@ -12018,6 +12093,9 @@ async function createRibbonEditor(container, source, options = {}) {
|
|
|
12018
12093
|
mount2.root.style.minHeight = "0";
|
|
12019
12094
|
const ribbon = mountRibbon(mount2.root, {
|
|
12020
12095
|
documentName: ribbonOptions.documentName ?? nameFromSource(source),
|
|
12096
|
+
// A drop-in embed sits in the middle of someone's page, so it carries its own
|
|
12097
|
+
// boundary (rounded card + shadow). Full-bleed hosts pass frame: "flush".
|
|
12098
|
+
frame: "card",
|
|
12021
12099
|
...ribbonOptions,
|
|
12022
12100
|
// Exports arrive after the runtime boots; the loader covers that gap.
|
|
12023
12101
|
exports: void 0
|
package/dist/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;AAwPtE,6CAA6C;AAC7C,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBjF;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,2BAA2B;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,EAC9B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,EAC9B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;AAwPtE,6CAA6C;AAC7C,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBjF;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,2BAA2B;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,EAC9B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,EAC9B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,YAAY,CAAC,CA6CvB"}
|