docxodus 9.5.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 +185 -97
- package/dist/editor.d.ts +10 -0
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +13 -0
- package/dist/editor.js.map +1 -1
- package/dist/embed.bundle.js +189 -98
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.iife.js +188 -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 +2 -2
package/dist/embed.bundle.js
CHANGED
|
@@ -6694,6 +6694,19 @@ var DocxEditor = class _DocxEditor {
|
|
|
6694
6694
|
get sessionHandle() {
|
|
6695
6695
|
return this.handle;
|
|
6696
6696
|
}
|
|
6697
|
+
/**
|
|
6698
|
+
* Repaint from the live session after it was mutated OUTSIDE the editor's own
|
|
6699
|
+
* commands — a host driving {@link sessionHandle} directly (an agent pipeline,
|
|
6700
|
+
* `raw.replaceXml`, a batch import). Continuous mode patches incrementally from
|
|
6701
|
+
* the render plan (a Unid-preserving single-block mutation repaints just that
|
|
6702
|
+
* block); paginated mode — or anything the reconciler cannot prove — remounts.
|
|
6703
|
+
* The editor cannot observe external mutations, so the host owns calling this
|
|
6704
|
+
* once per mutation batch.
|
|
6705
|
+
*/
|
|
6706
|
+
refresh() {
|
|
6707
|
+
this.assertOpen();
|
|
6708
|
+
this.reconcile();
|
|
6709
|
+
}
|
|
6697
6710
|
/** Move one top-level body block relative to another and repaint from the live session. */
|
|
6698
6711
|
moveBlock(sourceAnchorId, targetAnchorId, position) {
|
|
6699
6712
|
this.assertOpen();
|
|
@@ -8865,23 +8878,38 @@ var DocxEditor = class _DocxEditor {
|
|
|
8865
8878
|
};
|
|
8866
8879
|
|
|
8867
8880
|
// src/ribbon-chrome.ts
|
|
8868
|
-
var RIBBON_STYLE_VERSION = "
|
|
8881
|
+
var RIBBON_STYLE_VERSION = "8";
|
|
8869
8882
|
var RIBBON_STYLE_ATTR = "data-docxodus-ribbon-styles";
|
|
8870
8883
|
var RIBBON_CSS = `
|
|
8871
8884
|
.dxr {
|
|
8872
|
-
|
|
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;
|
|
8873
8889
|
--dxr-sheet: #ffffff;
|
|
8874
|
-
--dxr-chrome: #
|
|
8875
|
-
--dxr-chrome-sunk: #
|
|
8876
|
-
--dxr-rule: #
|
|
8877
|
-
--dxr-
|
|
8878
|
-
--dxr-
|
|
8879
|
-
--dxr-
|
|
8880
|
-
--dxr-
|
|
8881
|
-
--dxr-
|
|
8882
|
-
--dxr-
|
|
8883
|
-
--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;
|
|
8884
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);
|
|
8885
8913
|
--dxr-tap: 30px;
|
|
8886
8914
|
|
|
8887
8915
|
position: relative;
|
|
@@ -8897,6 +8925,18 @@ var RIBBON_CSS = `
|
|
|
8897
8925
|
}
|
|
8898
8926
|
.dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }
|
|
8899
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
|
+
|
|
8900
8940
|
/* Touch devices get bigger hit targets everywhere the token is used. */
|
|
8901
8941
|
@media (pointer: coarse) { .dxr { --dxr-tap: 40px; } }
|
|
8902
8942
|
|
|
@@ -8925,12 +8965,13 @@ var RIBBON_CSS = `
|
|
|
8925
8965
|
font-weight: 600;
|
|
8926
8966
|
letter-spacing: -.01em;
|
|
8927
8967
|
}
|
|
8968
|
+
/* A filled circle, echoing the OS-Legal "Node" motif rather than a diamond. */
|
|
8928
8969
|
.dxr-brand .dxr-mark {
|
|
8929
8970
|
flex: 0 0 auto;
|
|
8930
8971
|
width: 9px;
|
|
8931
8972
|
height: 9px;
|
|
8973
|
+
border-radius: 50%;
|
|
8932
8974
|
background: var(--dxr-accent);
|
|
8933
|
-
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
|
|
8934
8975
|
}
|
|
8935
8976
|
.dxr-brand .dxr-docname {
|
|
8936
8977
|
overflow: hidden;
|
|
@@ -8962,25 +9003,25 @@ var RIBBON_CSS = `
|
|
|
8962
9003
|
scrollbar-width: none;
|
|
8963
9004
|
}
|
|
8964
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. */
|
|
8965
9008
|
.dxr-tab {
|
|
8966
9009
|
flex: 0 0 auto;
|
|
8967
|
-
padding:
|
|
8968
|
-
border:
|
|
8969
|
-
border-bottom: none;
|
|
8970
|
-
border-radius: 5px 5px 0 0;
|
|
9010
|
+
padding: 7px 14px 8px;
|
|
9011
|
+
border: none;
|
|
8971
9012
|
background: none;
|
|
8972
9013
|
color: var(--dxr-muted);
|
|
8973
9014
|
font: inherit;
|
|
8974
9015
|
font-size: 12.5px;
|
|
9016
|
+
font-weight: 500;
|
|
8975
9017
|
cursor: pointer;
|
|
9018
|
+
transition: color .15s var(--dxr-ease), box-shadow .15s var(--dxr-ease);
|
|
8976
9019
|
}
|
|
8977
|
-
.dxr-tab:hover { color: var(--dxr-ink);
|
|
9020
|
+
.dxr-tab:hover { color: var(--dxr-ink); }
|
|
8978
9021
|
.dxr-tab[aria-selected="true"] {
|
|
8979
9022
|
color: var(--dxr-ink);
|
|
8980
9023
|
font-weight: 600;
|
|
8981
|
-
|
|
8982
|
-
border-color: var(--dxr-rule);
|
|
8983
|
-
box-shadow: inset 0 2px 0 var(--dxr-accent);
|
|
9024
|
+
box-shadow: inset 0 -2px 0 var(--dxr-accent);
|
|
8984
9025
|
}
|
|
8985
9026
|
/* Contextual tab \u2014 present only while the caret is inside a table. */
|
|
8986
9027
|
.dxr-tab[data-contextual] { color: var(--dxr-accent); }
|
|
@@ -9010,7 +9051,7 @@ var RIBBON_CSS = `
|
|
|
9010
9051
|
.dxr-group:last-child { border-right: none; }
|
|
9011
9052
|
.dxr-group:first-child { padding-left: 0; }
|
|
9012
9053
|
.dxr-glabel {
|
|
9013
|
-
color: var(--dxr-
|
|
9054
|
+
color: var(--dxr-faint);
|
|
9014
9055
|
font-size: 9.5px;
|
|
9015
9056
|
font-weight: 600;
|
|
9016
9057
|
letter-spacing: .11em;
|
|
@@ -9019,48 +9060,69 @@ var RIBBON_CSS = `
|
|
|
9019
9060
|
.dxr-row { display: flex; gap: 3px; align-items: center; }
|
|
9020
9061
|
|
|
9021
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. */
|
|
9022
9067
|
.dxr button, .dxr label.dxr-btn {
|
|
9023
9068
|
min-height: var(--dxr-tap);
|
|
9024
9069
|
padding: 5px 9px;
|
|
9025
|
-
border:
|
|
9026
|
-
border-radius:
|
|
9070
|
+
border: none;
|
|
9071
|
+
border-radius: 6px;
|
|
9027
9072
|
background: none;
|
|
9028
9073
|
color: var(--dxr-ink);
|
|
9029
9074
|
font: inherit;
|
|
9030
9075
|
font-size: 13px;
|
|
9076
|
+
font-weight: 500;
|
|
9031
9077
|
line-height: 1.15;
|
|
9032
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);
|
|
9033
9081
|
}
|
|
9034
9082
|
.dxr label.dxr-btn { display: inline-flex; align-items: center; }
|
|
9035
|
-
.dxr button:hover, .dxr label.dxr-btn:hover { background: #
|
|
9036
|
-
.dxr button:active { background: #
|
|
9083
|
+
.dxr button:hover, .dxr label.dxr-btn:hover { background: #f1f5f9; }
|
|
9084
|
+
.dxr button:active { background: #e2e8f0; }
|
|
9037
9085
|
.dxr button:disabled { opacity: .38; cursor: default; background: none; }
|
|
9038
|
-
.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash);
|
|
9039
|
-
.dxr-quick button, .dxr-quick label.dxr-btn {
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
background:
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
.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); }
|
|
9048
9109
|
/* Icons are inline SVG drawn from the same shapes the control acts on (text lines,
|
|
9049
9110
|
rules), so alignment and indent read at a glance instead of relying on arrow
|
|
9050
9111
|
glyphs that collide with undo/redo. currentColor keeps them in step with state. */
|
|
9051
9112
|
.dxr button svg { display: block; margin: 0 auto; fill: currentColor; }
|
|
9052
9113
|
.dxr button.dxr-wide { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
|
|
9053
|
-
.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); }
|
|
9054
9115
|
.dxr select, .dxr input[type="number"], .dxr input[type="text"] {
|
|
9055
9116
|
min-height: var(--dxr-tap);
|
|
9056
9117
|
padding: 4px 6px;
|
|
9057
9118
|
border: 1px solid var(--dxr-rule);
|
|
9058
|
-
border-radius:
|
|
9059
|
-
background:
|
|
9119
|
+
border-radius: 6px;
|
|
9120
|
+
background: var(--dxr-sheet);
|
|
9060
9121
|
color: var(--dxr-ink);
|
|
9061
9122
|
font: inherit;
|
|
9062
9123
|
font-size: 12.5px;
|
|
9063
9124
|
}
|
|
9125
|
+
.dxr select:hover, .dxr input:hover { border-color: var(--dxr-rule-strong); }
|
|
9064
9126
|
.dxr select:focus-visible, .dxr input:focus-visible, .dxr button:focus-visible,
|
|
9065
9127
|
.dxr .dxr-tab:focus-visible, .dxr label.dxr-btn:focus-within {
|
|
9066
9128
|
outline: 2px solid var(--dxr-accent);
|
|
@@ -9091,7 +9153,7 @@ var RIBBON_CSS = `
|
|
|
9091
9153
|
height: 25px;
|
|
9092
9154
|
padding: 0 10px;
|
|
9093
9155
|
overflow-x: auto;
|
|
9094
|
-
background: #
|
|
9156
|
+
background: #fafafa;
|
|
9095
9157
|
border-top: 1px solid var(--dxr-rule);
|
|
9096
9158
|
color: var(--dxr-muted);
|
|
9097
9159
|
font-family: var(--dxr-mono);
|
|
@@ -9110,7 +9172,7 @@ var RIBBON_CSS = `
|
|
|
9110
9172
|
.dxr-rail .dxr-cell:first-child { padding-left: 0; }
|
|
9111
9173
|
.dxr-rail .dxr-cell:last-child { border-right: none; }
|
|
9112
9174
|
.dxr-rail .dxr-k {
|
|
9113
|
-
color:
|
|
9175
|
+
color: var(--dxr-faint);
|
|
9114
9176
|
font-family: var(--dxr-ui);
|
|
9115
9177
|
font-size: 9.5px;
|
|
9116
9178
|
letter-spacing: .1em;
|
|
@@ -9118,7 +9180,7 @@ var RIBBON_CSS = `
|
|
|
9118
9180
|
}
|
|
9119
9181
|
.dxr-rail .dxr-v { color: var(--dxr-data); }
|
|
9120
9182
|
.dxr-rail .dxr-v.dxr-flash { animation: dxr-railflash .45s ease-out; }
|
|
9121
|
-
@keyframes dxr-railflash { from { background: #
|
|
9183
|
+
@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }
|
|
9122
9184
|
|
|
9123
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 */
|
|
9124
9186
|
.dxr-hint {
|
|
@@ -9133,8 +9195,8 @@ var RIBBON_CSS = `
|
|
|
9133
9195
|
.dxr-hint kbd {
|
|
9134
9196
|
padding: 0 4px;
|
|
9135
9197
|
border: 1px solid var(--dxr-rule);
|
|
9136
|
-
border-radius:
|
|
9137
|
-
background: #
|
|
9198
|
+
border-radius: 4px;
|
|
9199
|
+
background: #f1f5f9;
|
|
9138
9200
|
font-family: var(--dxr-mono);
|
|
9139
9201
|
font-size: 11px;
|
|
9140
9202
|
}
|
|
@@ -9149,13 +9211,34 @@ var RIBBON_CSS = `
|
|
|
9149
9211
|
SHOULD win.
|
|
9150
9212
|
(No backticks in this file's comments: the stylesheet is a template literal.) */
|
|
9151
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
|
+
}
|
|
9152
9235
|
.dxr[data-chrome] .dxr-surface { margin: 26px auto; padding: 0 16px 96px; }
|
|
9153
9236
|
.dxr-surface [contenteditable="true"]:focus {
|
|
9154
9237
|
outline: 2px solid var(--dxr-accent);
|
|
9155
9238
|
outline-offset: 2px;
|
|
9156
9239
|
border-radius: 2px;
|
|
9157
9240
|
}
|
|
9158
|
-
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background:
|
|
9241
|
+
@media (hover: hover) { .dxr-surface [contenteditable="true"]:hover { background: var(--dxr-wash); } }
|
|
9159
9242
|
|
|
9160
9243
|
/* Header/footer bands: stories live in their own OOXML parts outside the body,
|
|
9161
9244
|
so they dock as their own regions. Styled from the same tokens as the ribbon
|
|
@@ -9167,9 +9250,10 @@ var RIBBON_CSS = `
|
|
|
9167
9250
|
margin: 0 auto 14px;
|
|
9168
9251
|
padding: 9px 72px 13px;
|
|
9169
9252
|
border: 1px solid var(--dxr-rule);
|
|
9170
|
-
border-left: 2px solid #
|
|
9171
|
-
border-radius:
|
|
9253
|
+
border-left: 2px solid #5eead4;
|
|
9254
|
+
border-radius: 6px;
|
|
9172
9255
|
background: var(--dxr-sheet);
|
|
9256
|
+
box-shadow: var(--dxr-shadow-sm);
|
|
9173
9257
|
}
|
|
9174
9258
|
.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; }
|
|
9175
9259
|
.dxr-surface .docx-hf-band[data-hf-band="footer"] { margin: 14px auto 0; }
|
|
@@ -9188,8 +9272,8 @@ var RIBBON_CSS = `
|
|
|
9188
9272
|
.dxr-surface .docx-hf-chrome select, .dxr-surface .docx-hf-chrome input {
|
|
9189
9273
|
padding: 3px 5px;
|
|
9190
9274
|
border: 1px solid var(--dxr-rule);
|
|
9191
|
-
border-radius:
|
|
9192
|
-
background:
|
|
9275
|
+
border-radius: 6px;
|
|
9276
|
+
background: var(--dxr-sheet);
|
|
9193
9277
|
color: var(--dxr-ink);
|
|
9194
9278
|
font: inherit;
|
|
9195
9279
|
font-family: var(--dxr-ui);
|
|
@@ -9203,22 +9287,22 @@ var RIBBON_CSS = `
|
|
|
9203
9287
|
.dxr-surface .docx-hf-warning {
|
|
9204
9288
|
margin: 0 0 8px -60px;
|
|
9205
9289
|
padding: 7px 9px;
|
|
9206
|
-
border: 1px solid #
|
|
9207
|
-
border-left: 2px solid #
|
|
9208
|
-
border-radius:
|
|
9209
|
-
background: #
|
|
9210
|
-
color: #
|
|
9290
|
+
border: 1px solid #fde68a;
|
|
9291
|
+
border-left: 2px solid #d97706;
|
|
9292
|
+
border-radius: 6px;
|
|
9293
|
+
background: #fffbeb;
|
|
9294
|
+
color: #92400e;
|
|
9211
9295
|
font-size: 12px;
|
|
9212
9296
|
line-height: 1.45;
|
|
9213
9297
|
}
|
|
9214
9298
|
.dxr-surface .docx-hf-warning button {
|
|
9215
9299
|
margin-left: 6px;
|
|
9216
9300
|
padding: 2px 8px;
|
|
9217
|
-
border-color: #
|
|
9301
|
+
border-color: #fde68a;
|
|
9218
9302
|
background: #fff;
|
|
9219
9303
|
font-size: 12px;
|
|
9220
9304
|
}
|
|
9221
|
-
.dxr-surface .docx-hf-placeholder { color:
|
|
9305
|
+
.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; }
|
|
9222
9306
|
.dxr-surface .docx-hf-inherited {
|
|
9223
9307
|
color: var(--dxr-muted);
|
|
9224
9308
|
font-style: italic;
|
|
@@ -9238,7 +9322,7 @@ var RIBBON_CSS = `
|
|
|
9238
9322
|
padding: 56px 0;
|
|
9239
9323
|
border-radius: 3px;
|
|
9240
9324
|
background: var(--dxr-sheet);
|
|
9241
|
-
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);
|
|
9242
9326
|
}
|
|
9243
9327
|
|
|
9244
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 */
|
|
@@ -9248,9 +9332,9 @@ var RIBBON_CSS = `
|
|
|
9248
9332
|
z-index: 30;
|
|
9249
9333
|
padding: 9px;
|
|
9250
9334
|
border: 1px solid var(--dxr-rule);
|
|
9251
|
-
border-radius:
|
|
9335
|
+
border-radius: 12px;
|
|
9252
9336
|
background: #fff;
|
|
9253
|
-
box-shadow:
|
|
9337
|
+
box-shadow: var(--dxr-shadow-xl);
|
|
9254
9338
|
}
|
|
9255
9339
|
.dxr-pop[data-open] { display: block; }
|
|
9256
9340
|
.dxr-gridcells { display: grid; grid-template-columns: repeat(10, 16px); gap: 2px; }
|
|
@@ -9258,11 +9342,11 @@ var RIBBON_CSS = `
|
|
|
9258
9342
|
width: 16px;
|
|
9259
9343
|
height: 16px;
|
|
9260
9344
|
border: 1px solid var(--dxr-rule);
|
|
9261
|
-
border-radius:
|
|
9262
|
-
background:
|
|
9345
|
+
border-radius: 3px;
|
|
9346
|
+
background: var(--dxr-chrome-sunk);
|
|
9263
9347
|
cursor: pointer;
|
|
9264
9348
|
}
|
|
9265
|
-
.dxr-gridcells div[data-on] { background:
|
|
9349
|
+
.dxr-gridcells div[data-on] { background: #ccfbf1; border-color: var(--dxr-accent); }
|
|
9266
9350
|
.dxr-popfoot {
|
|
9267
9351
|
display: flex;
|
|
9268
9352
|
justify-content: space-between;
|
|
@@ -9345,11 +9429,11 @@ var RIBBON_CSS = `
|
|
|
9345
9429
|
display: grid;
|
|
9346
9430
|
place-items: center;
|
|
9347
9431
|
padding: 24px;
|
|
9348
|
-
color: #
|
|
9432
|
+
color: #f8fafc;
|
|
9349
9433
|
background:
|
|
9350
|
-
radial-gradient(circle at 20% 20%, rgba(
|
|
9351
|
-
radial-gradient(circle at 82% 80%, rgba(
|
|
9352
|
-
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%);
|
|
9353
9437
|
transition: opacity .55s ease, visibility .55s ease;
|
|
9354
9438
|
}
|
|
9355
9439
|
.dxr-loader[hidden] { display: none; }
|
|
@@ -9368,14 +9452,14 @@ var RIBBON_CSS = `
|
|
|
9368
9452
|
.dxr-orbit {
|
|
9369
9453
|
position: absolute;
|
|
9370
9454
|
inset: 7%;
|
|
9371
|
-
border: 1px solid rgba(
|
|
9455
|
+
border: 1px solid rgba(45, 212, 191, .24);
|
|
9372
9456
|
border-radius: 50%;
|
|
9373
9457
|
animation: dxr-spin 9s linear infinite;
|
|
9374
9458
|
}
|
|
9375
9459
|
.dxr-orbit.dxr-two {
|
|
9376
9460
|
inset: 20%;
|
|
9377
9461
|
border-style: dashed;
|
|
9378
|
-
border-color: rgba(
|
|
9462
|
+
border-color: rgba(94, 234, 212, .3);
|
|
9379
9463
|
animation-duration: 6s;
|
|
9380
9464
|
animation-direction: reverse;
|
|
9381
9465
|
}
|
|
@@ -9385,19 +9469,19 @@ var RIBBON_CSS = `
|
|
|
9385
9469
|
height: 10px;
|
|
9386
9470
|
border-radius: 50%;
|
|
9387
9471
|
content: "";
|
|
9388
|
-
background: #
|
|
9389
|
-
box-shadow: 0 0 18px
|
|
9472
|
+
background: #2dd4bf;
|
|
9473
|
+
box-shadow: 0 0 18px rgba(45, 212, 191, .8);
|
|
9390
9474
|
}
|
|
9391
9475
|
.dxr-orbit::before { top: -5px; left: 50%; }
|
|
9392
|
-
.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); }
|
|
9393
9477
|
.dxr-card {
|
|
9394
9478
|
position: absolute;
|
|
9395
9479
|
inset: 24% 28%;
|
|
9396
9480
|
padding: 20px 15px;
|
|
9397
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
9481
|
+
border: 1px solid rgba(255, 255, 255, .3);
|
|
9398
9482
|
border-radius: 14px;
|
|
9399
|
-
background: linear-gradient(150deg, rgba(255, 255, 255, .
|
|
9400
|
-
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);
|
|
9401
9485
|
backdrop-filter: blur(10px);
|
|
9402
9486
|
animation: dxr-float 3.6s ease-in-out infinite;
|
|
9403
9487
|
}
|
|
@@ -9407,8 +9491,8 @@ var RIBBON_CSS = `
|
|
|
9407
9491
|
right: -9px;
|
|
9408
9492
|
padding: 4px 7px;
|
|
9409
9493
|
border-radius: 6px;
|
|
9410
|
-
background: #
|
|
9411
|
-
color: #
|
|
9494
|
+
background: #2dd4bf;
|
|
9495
|
+
color: #042f2e;
|
|
9412
9496
|
content: "DOCX";
|
|
9413
9497
|
font-size: 8px;
|
|
9414
9498
|
font-weight: 900;
|
|
@@ -9425,46 +9509,49 @@ var RIBBON_CSS = `
|
|
|
9425
9509
|
}
|
|
9426
9510
|
.dxr-card i:nth-child(2) { width: 76%; animation-delay: -.45s; }
|
|
9427
9511
|
.dxr-card i:nth-child(3) { width: 88%; animation-delay: -.85s; }
|
|
9428
|
-
.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; }
|
|
9429
9513
|
.dxr-chip {
|
|
9430
9514
|
position: absolute;
|
|
9431
9515
|
display: grid;
|
|
9432
9516
|
width: 34px;
|
|
9433
9517
|
height: 34px;
|
|
9434
9518
|
place-items: center;
|
|
9435
|
-
border: 1px solid rgba(255, 255, 255, .
|
|
9519
|
+
border: 1px solid rgba(255, 255, 255, .16);
|
|
9436
9520
|
border-radius: 11px;
|
|
9437
|
-
background: rgba(
|
|
9521
|
+
background: rgba(15, 30, 46, .88);
|
|
9438
9522
|
box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
|
|
9439
9523
|
font-size: 11px;
|
|
9440
9524
|
font-weight: 850;
|
|
9441
9525
|
}
|
|
9442
|
-
.dxr-chip.dxr-b { left: 2%; top: 30%; color: #
|
|
9443
|
-
.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #
|
|
9444
|
-
.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #
|
|
9445
|
-
.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. */
|
|
9446
9531
|
.dxr-loader h2 {
|
|
9447
9532
|
margin: 10px auto 10px;
|
|
9448
9533
|
max-width: 520px;
|
|
9449
|
-
font-
|
|
9450
|
-
|
|
9451
|
-
|
|
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;
|
|
9452
9539
|
}
|
|
9453
|
-
.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; }
|
|
9454
9541
|
.dxr-ad {
|
|
9455
9542
|
display: flex;
|
|
9456
9543
|
gap: 12px;
|
|
9457
9544
|
margin: 20px auto 0;
|
|
9458
9545
|
max-width: 420px;
|
|
9459
9546
|
padding: 13px;
|
|
9460
|
-
border: 1px solid rgba(
|
|
9461
|
-
border-radius:
|
|
9547
|
+
border: 1px solid rgba(148, 163, 184, .16);
|
|
9548
|
+
border-radius: 12px;
|
|
9462
9549
|
background: rgba(255, 255, 255, .04);
|
|
9463
9550
|
text-align: left;
|
|
9464
9551
|
}
|
|
9465
|
-
.dxr-ad .dxr-num { color: #
|
|
9552
|
+
.dxr-ad .dxr-num { color: #2dd4bf; font: 800 10px/1.4 var(--dxr-mono); }
|
|
9466
9553
|
.dxr-ad strong { display: block; font-size: 12.5px; }
|
|
9467
|
-
.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; }
|
|
9468
9555
|
.dxr-ad[data-swap] { animation: dxr-swap .4s ease; }
|
|
9469
9556
|
.dxr-track {
|
|
9470
9557
|
height: 3px;
|
|
@@ -9478,8 +9565,8 @@ var RIBBON_CSS = `
|
|
|
9478
9565
|
width: 12%;
|
|
9479
9566
|
height: 100%;
|
|
9480
9567
|
border-radius: inherit;
|
|
9481
|
-
background: linear-gradient(90deg, #
|
|
9482
|
-
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);
|
|
9483
9570
|
transition: width .65s cubic-bezier(.22, .8, .28, 1);
|
|
9484
9571
|
}
|
|
9485
9572
|
.dxr-meta {
|
|
@@ -9488,7 +9575,7 @@ var RIBBON_CSS = `
|
|
|
9488
9575
|
gap: 14px;
|
|
9489
9576
|
margin: 9px auto 0;
|
|
9490
9577
|
max-width: 420px;
|
|
9491
|
-
color: #
|
|
9578
|
+
color: #64748b;
|
|
9492
9579
|
font: 700 9px/1 var(--dxr-mono);
|
|
9493
9580
|
letter-spacing: .09em;
|
|
9494
9581
|
text-transform: uppercase;
|
|
@@ -9497,9 +9584,9 @@ var RIBBON_CSS = `
|
|
|
9497
9584
|
display: none;
|
|
9498
9585
|
margin-top: 18px;
|
|
9499
9586
|
padding: 9px 14px;
|
|
9500
|
-
border: 1px solid rgba(
|
|
9587
|
+
border: 1px solid rgba(248, 113, 113, .4);
|
|
9501
9588
|
border-radius: 9px;
|
|
9502
|
-
background: rgba(
|
|
9589
|
+
background: rgba(248, 113, 113, .12);
|
|
9503
9590
|
color: #fff;
|
|
9504
9591
|
cursor: pointer;
|
|
9505
9592
|
}
|
|
@@ -9614,8 +9701,8 @@ var RIBBON_HTML = `
|
|
|
9614
9701
|
)}</button>
|
|
9615
9702
|
</div>
|
|
9616
9703
|
<div class="dxr-row">
|
|
9617
|
-
<button type="button" data-list="bullet" title="Bullet list"
|
|
9618
|
-
<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>
|
|
9619
9706
|
<button type="button" data-pagebreak title="Start this block on a new page">Page break</button>
|
|
9620
9707
|
</div>
|
|
9621
9708
|
</div>
|
|
@@ -9938,6 +10025,7 @@ var RibbonSurface = class {
|
|
|
9938
10025
|
const root = doc.createElement("div");
|
|
9939
10026
|
root.className = "dxr";
|
|
9940
10027
|
root.dataset.state = "idle";
|
|
10028
|
+
root.dataset.frame = this.options.frame ?? "flush";
|
|
9941
10029
|
root.innerHTML = RIBBON_HTML;
|
|
9942
10030
|
for (const el of Array.from(root.querySelectorAll("[data-dxr]"))) {
|
|
9943
10031
|
el.id = this.idPrefix + el.dataset.dxr;
|
|
@@ -12005,6 +12093,9 @@ async function createRibbonEditor(container, source, options = {}) {
|
|
|
12005
12093
|
mount2.root.style.minHeight = "0";
|
|
12006
12094
|
const ribbon = mountRibbon(mount2.root, {
|
|
12007
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",
|
|
12008
12099
|
...ribbonOptions,
|
|
12009
12100
|
// Exports arrive after the runtime boots; the loader covers that gap.
|
|
12010
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"}
|