superdoc 2.0.0-next.40 → 2.0.0-next.41
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/chunks/{create-super-doc-ui-BDAxgGrE.es.js → create-super-doc-ui-CiXQlr9Z.es.js} +158 -5
- package/dist/chunks/{create-super-doc-ui-kkZK7Tc-.cjs → create-super-doc-ui-DZUTje3N.cjs} +158 -5
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/public/ui-react.cjs +1 -1
- package/dist/public/ui-react.es.js +1 -1
- package/dist/public/ui.cjs +1 -1
- package/dist/public/ui.es.js +1 -1
- package/dist/superdoc.cjs +2 -2
- package/dist/superdoc.es.js +2 -2
- package/dist-cdn/superdoc.min.js +35 -35
- package/package.json +2 -2
package/dist/chunks/{create-super-doc-ui-BDAxgGrE.es.js → create-super-doc-ui-CiXQlr9Z.es.js}
RENAMED
|
@@ -1872,6 +1872,12 @@ var MIRRORED_EDIT_COMMAND_IDS = {
|
|
|
1872
1872
|
undo: "history.undo",
|
|
1873
1873
|
redo: "history.redo"
|
|
1874
1874
|
};
|
|
1875
|
+
var EFFECTIVE_MARK_KEYS = [
|
|
1876
|
+
"bold",
|
|
1877
|
+
"italic",
|
|
1878
|
+
"underline",
|
|
1879
|
+
"strikethrough"
|
|
1880
|
+
];
|
|
1875
1881
|
function isProjectedInlineSelectionValueKey(value) {
|
|
1876
1882
|
return PROJECTED_INLINE_SELECTION_VALUE_KEYS.includes(value);
|
|
1877
1883
|
}
|
|
@@ -3923,6 +3929,112 @@ function createSuperDocUI(options) {
|
|
|
3923
3929
|
if (sizes.size === 1) projection.fontSize = [...sizes][0];
|
|
3924
3930
|
return projection;
|
|
3925
3931
|
};
|
|
3932
|
+
const resolveEffectiveMarkValuesFromLayout = (selection$1) => {
|
|
3933
|
+
const host = getHost();
|
|
3934
|
+
const blockIds = new Set(selectionBlockIds(selection$1));
|
|
3935
|
+
if (blockIds.size === 0) return {};
|
|
3936
|
+
const readByIds = host?.readMountedProjectionBlocksByIds;
|
|
3937
|
+
const readAll = host?.readMountedProjectionBlocks;
|
|
3938
|
+
if (typeof readByIds !== "function" && typeof readAll !== "function") return {};
|
|
3939
|
+
const blocks = safeCall(() => {
|
|
3940
|
+
if (typeof readByIds !== "function") return readAll.call(host);
|
|
3941
|
+
const story = selectionStoryLocator(selection$1);
|
|
3942
|
+
return story ? readByIds.call(host, [...blockIds], story) : readByIds.call(host, [...blockIds]);
|
|
3943
|
+
}, null);
|
|
3944
|
+
if (!Array.isArray(blocks)) return {};
|
|
3945
|
+
const flatBlocks = collectProjectionTextBlocks(blocks);
|
|
3946
|
+
const runMarkValues = (run) => ({
|
|
3947
|
+
bold: run.bold === true,
|
|
3948
|
+
italic: run.italic === true,
|
|
3949
|
+
underline: run.underline != null,
|
|
3950
|
+
strikethrough: run.strike === true
|
|
3951
|
+
});
|
|
3952
|
+
const collapseMarkSets = (sets) => {
|
|
3953
|
+
const out = {};
|
|
3954
|
+
for (const key of EFFECTIVE_MARK_KEYS) {
|
|
3955
|
+
const set = sets[key];
|
|
3956
|
+
if (set.size === 1) out[key] = [...set][0];
|
|
3957
|
+
}
|
|
3958
|
+
return out;
|
|
3959
|
+
};
|
|
3960
|
+
const caret = collapsedTextAddressFromSelection(selection$1);
|
|
3961
|
+
const caretOffset = caret && typeof caret.range?.start === "number" ? caret.range.start : null;
|
|
3962
|
+
if (caret && caretOffset !== null && blockIds.has(caret.blockId)) {
|
|
3963
|
+
const block = flatBlocks.find((b) => projectionBlockMatchesId(b, caret.blockId));
|
|
3964
|
+
const runs = block && Array.isArray(block.runs) ? block.runs : null;
|
|
3965
|
+
if (runs && runs.length > 0 && runs.every((r) => r?.kind === "text" || r?.kind === "tab")) {
|
|
3966
|
+
let acc = 0;
|
|
3967
|
+
let chosen = null;
|
|
3968
|
+
for (const run of runs) {
|
|
3969
|
+
const len = typeof run.text === "string" ? run.text.length : 0;
|
|
3970
|
+
if (caretOffset >= acc && caretOffset < acc + len) {
|
|
3971
|
+
chosen = run;
|
|
3972
|
+
break;
|
|
3973
|
+
}
|
|
3974
|
+
acc += len;
|
|
3975
|
+
}
|
|
3976
|
+
if (!chosen) {
|
|
3977
|
+
for (let i = runs.length - 1; i >= 0 && !chosen; i -= 1) if (runs[i]?.kind === "text") chosen = runs[i];
|
|
3978
|
+
chosen ??= runs[runs.length - 1] ?? null;
|
|
3979
|
+
}
|
|
3980
|
+
if (!chosen) return {};
|
|
3981
|
+
return runMarkValues(chosen);
|
|
3982
|
+
}
|
|
3983
|
+
}
|
|
3984
|
+
const segments = selectionTextSegments(selection$1);
|
|
3985
|
+
if (segments.length > 0) {
|
|
3986
|
+
const rangeSets = {
|
|
3987
|
+
bold: /* @__PURE__ */ new Set(),
|
|
3988
|
+
italic: /* @__PURE__ */ new Set(),
|
|
3989
|
+
underline: /* @__PURE__ */ new Set(),
|
|
3990
|
+
strikethrough: /* @__PURE__ */ new Set()
|
|
3991
|
+
};
|
|
3992
|
+
let rangeSawRun = false;
|
|
3993
|
+
let offsetSafe = true;
|
|
3994
|
+
for (const seg of segments) {
|
|
3995
|
+
const block = flatBlocks.find((b) => projectionBlockMatchesId(b, seg.blockId));
|
|
3996
|
+
if (!block) return {};
|
|
3997
|
+
const runs = Array.isArray(block.runs) ? block.runs : [];
|
|
3998
|
+
if (runs.length === 0) continue;
|
|
3999
|
+
if (!runs.every((r) => r?.kind === "text" || r?.kind === "tab")) {
|
|
4000
|
+
offsetSafe = false;
|
|
4001
|
+
break;
|
|
4002
|
+
}
|
|
4003
|
+
let acc = 0;
|
|
4004
|
+
for (const run of runs) {
|
|
4005
|
+
const len = typeof run.text === "string" ? run.text.length : 0;
|
|
4006
|
+
const runStart = acc;
|
|
4007
|
+
const runEnd = acc + len;
|
|
4008
|
+
if (runStart < seg.end && runEnd > seg.start) {
|
|
4009
|
+
rangeSawRun = true;
|
|
4010
|
+
const values = runMarkValues(run);
|
|
4011
|
+
for (const key of EFFECTIVE_MARK_KEYS) rangeSets[key].add(values[key]);
|
|
4012
|
+
}
|
|
4013
|
+
acc = runEnd;
|
|
4014
|
+
}
|
|
4015
|
+
}
|
|
4016
|
+
if (offsetSafe && rangeSawRun) return collapseMarkSets(rangeSets);
|
|
4017
|
+
}
|
|
4018
|
+
const wholeSets = {
|
|
4019
|
+
bold: /* @__PURE__ */ new Set(),
|
|
4020
|
+
italic: /* @__PURE__ */ new Set(),
|
|
4021
|
+
underline: /* @__PURE__ */ new Set(),
|
|
4022
|
+
strikethrough: /* @__PURE__ */ new Set()
|
|
4023
|
+
};
|
|
4024
|
+
let sawWholeRun = false;
|
|
4025
|
+
for (const block of flatBlocks) {
|
|
4026
|
+
if (![...blockIds].some((id) => projectionBlockMatchesId(block, id))) continue;
|
|
4027
|
+
const runs = Array.isArray(block.runs) ? block.runs : [];
|
|
4028
|
+
for (const run of runs) {
|
|
4029
|
+
if (run?.kind !== "text") continue;
|
|
4030
|
+
sawWholeRun = true;
|
|
4031
|
+
const values = runMarkValues(run);
|
|
4032
|
+
for (const key of EFFECTIVE_MARK_KEYS) wholeSets[key].add(values[key]);
|
|
4033
|
+
}
|
|
4034
|
+
}
|
|
4035
|
+
if (!sawWholeRun) return {};
|
|
4036
|
+
return collapseMarkSets(wholeSets);
|
|
4037
|
+
};
|
|
3926
4038
|
const completeProjectedInlineValues = (selection$1, direct) => {
|
|
3927
4039
|
if (direct.fontFamily !== void 0 && direct.fontSize !== void 0 && direct.color !== void 0 && direct.highlight !== void 0) return {
|
|
3928
4040
|
values: direct,
|
|
@@ -3952,21 +4064,33 @@ function createSuperDocUI(options) {
|
|
|
3952
4064
|
effectiveUniformityStatus: "ready"
|
|
3953
4065
|
};
|
|
3954
4066
|
};
|
|
3955
|
-
const
|
|
4067
|
+
const EFFECTIVE_INLINE_UNIFORMITY_KEYS = [
|
|
4068
|
+
"fontFamily",
|
|
4069
|
+
"fontSize",
|
|
4070
|
+
"bold",
|
|
4071
|
+
"italic",
|
|
4072
|
+
"underline",
|
|
4073
|
+
"strikethrough"
|
|
4074
|
+
];
|
|
4075
|
+
const readEffectiveInlineUniformityCached = (selection$1) => {
|
|
3956
4076
|
const target = selection$1.selectionTarget;
|
|
3957
4077
|
if (!target) return {
|
|
3958
|
-
|
|
4078
|
+
value: null,
|
|
3959
4079
|
status: "ready"
|
|
3960
4080
|
};
|
|
3961
4081
|
const op = resolveDocOperation(getDoc(), "format.readEffectiveInlineUniformity");
|
|
3962
4082
|
if (!op) return {
|
|
3963
|
-
|
|
4083
|
+
value: null,
|
|
3964
4084
|
status: "ready"
|
|
3965
4085
|
};
|
|
3966
|
-
|
|
4086
|
+
return readAsync(`effInline:${selectionEffectiveUniformitySignature(selection$1) ?? selectionSignature(selection$1)}`, contentToken(), () => op({
|
|
3967
4087
|
target,
|
|
3968
|
-
offsetSpace: "selection"
|
|
4088
|
+
offsetSpace: "selection",
|
|
4089
|
+
keys: EFFECTIVE_INLINE_UNIFORMITY_KEYS
|
|
3969
4090
|
}), (raw) => raw && typeof raw === "object" ? raw : null);
|
|
4091
|
+
};
|
|
4092
|
+
const resolveEffectiveInlineUniformityValues = (selection$1) => {
|
|
4093
|
+
const { value, status } = readEffectiveInlineUniformityCached(selection$1);
|
|
3970
4094
|
if (!value || value.success !== true) return {
|
|
3971
4095
|
values: null,
|
|
3972
4096
|
status
|
|
@@ -3985,6 +4109,33 @@ function createSuperDocUI(options) {
|
|
|
3985
4109
|
status
|
|
3986
4110
|
};
|
|
3987
4111
|
};
|
|
4112
|
+
const resolveEffectiveMarkUniformityValues = (selection$1) => {
|
|
4113
|
+
const { value, status } = readEffectiveInlineUniformityCached(selection$1);
|
|
4114
|
+
if (!value || value.success !== true) return {
|
|
4115
|
+
values: null,
|
|
4116
|
+
status
|
|
4117
|
+
};
|
|
4118
|
+
const states = value.values;
|
|
4119
|
+
const values = {};
|
|
4120
|
+
for (const key of EFFECTIVE_MARK_KEYS) {
|
|
4121
|
+
const entry = states?.[key];
|
|
4122
|
+
if (entry?.state === "uniform" && (entry.value === "true" || entry.value === "false")) values[key] = entry.value === "true";
|
|
4123
|
+
}
|
|
4124
|
+
return {
|
|
4125
|
+
values,
|
|
4126
|
+
status
|
|
4127
|
+
};
|
|
4128
|
+
};
|
|
4129
|
+
const effectiveMarkActiveState = (descriptor, selection$1) => {
|
|
4130
|
+
const mark = descriptor.activeMark;
|
|
4131
|
+
if (!mark || !EFFECTIVE_MARK_KEYS.includes(mark)) return null;
|
|
4132
|
+
const key = mark;
|
|
4133
|
+
const fromLayout = resolveEffectiveMarkValuesFromLayout(selection$1)[key];
|
|
4134
|
+
if (fromLayout !== void 0) return fromLayout;
|
|
4135
|
+
const { values } = resolveEffectiveMarkUniformityValues(selection$1);
|
|
4136
|
+
const fromWorker = values?.[key];
|
|
4137
|
+
return fromWorker !== void 0 ? fromWorker : null;
|
|
4138
|
+
};
|
|
3988
4139
|
const readEffectiveInlineUniformityNow = async (selection$1) => {
|
|
3989
4140
|
const target = selection$1.selectionTarget;
|
|
3990
4141
|
if (!target) return null;
|
|
@@ -4353,6 +4504,8 @@ function createSuperDocUI(options) {
|
|
|
4353
4504
|
const optimistic = optimisticInlineToggles.get(descriptor.id);
|
|
4354
4505
|
const selectionSignature$1 = selectionInlineValueSignature(selection$1);
|
|
4355
4506
|
if (selectionSignature$1 && optimistic?.selectionSignature === selectionSignature$1) return optimistic.active;
|
|
4507
|
+
const effective = effectiveMarkActiveState(descriptor, selection$1);
|
|
4508
|
+
if (effective !== null) return effective;
|
|
4356
4509
|
return commandIsActive(descriptor, selection$1);
|
|
4357
4510
|
};
|
|
4358
4511
|
const routedCommandValue = (descriptor, doc, selection$1, projectedInlineValues) => {
|
|
@@ -2091,6 +2091,12 @@ var MIRRORED_EDIT_COMMAND_IDS = {
|
|
|
2091
2091
|
undo: "history.undo",
|
|
2092
2092
|
redo: "history.redo"
|
|
2093
2093
|
};
|
|
2094
|
+
var EFFECTIVE_MARK_KEYS = [
|
|
2095
|
+
"bold",
|
|
2096
|
+
"italic",
|
|
2097
|
+
"underline",
|
|
2098
|
+
"strikethrough"
|
|
2099
|
+
];
|
|
2094
2100
|
function isProjectedInlineSelectionValueKey(value) {
|
|
2095
2101
|
return PROJECTED_INLINE_SELECTION_VALUE_KEYS.includes(value);
|
|
2096
2102
|
}
|
|
@@ -4142,6 +4148,112 @@ function createSuperDocUI(options) {
|
|
|
4142
4148
|
if (sizes.size === 1) projection.fontSize = [...sizes][0];
|
|
4143
4149
|
return projection;
|
|
4144
4150
|
};
|
|
4151
|
+
const resolveEffectiveMarkValuesFromLayout = (selection$1) => {
|
|
4152
|
+
const host = getHost();
|
|
4153
|
+
const blockIds = new Set(selectionBlockIds(selection$1));
|
|
4154
|
+
if (blockIds.size === 0) return {};
|
|
4155
|
+
const readByIds = host?.readMountedProjectionBlocksByIds;
|
|
4156
|
+
const readAll = host?.readMountedProjectionBlocks;
|
|
4157
|
+
if (typeof readByIds !== "function" && typeof readAll !== "function") return {};
|
|
4158
|
+
const blocks = safeCall(() => {
|
|
4159
|
+
if (typeof readByIds !== "function") return readAll.call(host);
|
|
4160
|
+
const story = selectionStoryLocator(selection$1);
|
|
4161
|
+
return story ? readByIds.call(host, [...blockIds], story) : readByIds.call(host, [...blockIds]);
|
|
4162
|
+
}, null);
|
|
4163
|
+
if (!Array.isArray(blocks)) return {};
|
|
4164
|
+
const flatBlocks = collectProjectionTextBlocks(blocks);
|
|
4165
|
+
const runMarkValues = (run) => ({
|
|
4166
|
+
bold: run.bold === true,
|
|
4167
|
+
italic: run.italic === true,
|
|
4168
|
+
underline: run.underline != null,
|
|
4169
|
+
strikethrough: run.strike === true
|
|
4170
|
+
});
|
|
4171
|
+
const collapseMarkSets = (sets) => {
|
|
4172
|
+
const out = {};
|
|
4173
|
+
for (const key of EFFECTIVE_MARK_KEYS) {
|
|
4174
|
+
const set = sets[key];
|
|
4175
|
+
if (set.size === 1) out[key] = [...set][0];
|
|
4176
|
+
}
|
|
4177
|
+
return out;
|
|
4178
|
+
};
|
|
4179
|
+
const caret = collapsedTextAddressFromSelection(selection$1);
|
|
4180
|
+
const caretOffset = caret && typeof caret.range?.start === "number" ? caret.range.start : null;
|
|
4181
|
+
if (caret && caretOffset !== null && blockIds.has(caret.blockId)) {
|
|
4182
|
+
const block = flatBlocks.find((b) => projectionBlockMatchesId(b, caret.blockId));
|
|
4183
|
+
const runs = block && Array.isArray(block.runs) ? block.runs : null;
|
|
4184
|
+
if (runs && runs.length > 0 && runs.every((r) => r?.kind === "text" || r?.kind === "tab")) {
|
|
4185
|
+
let acc = 0;
|
|
4186
|
+
let chosen = null;
|
|
4187
|
+
for (const run of runs) {
|
|
4188
|
+
const len = typeof run.text === "string" ? run.text.length : 0;
|
|
4189
|
+
if (caretOffset >= acc && caretOffset < acc + len) {
|
|
4190
|
+
chosen = run;
|
|
4191
|
+
break;
|
|
4192
|
+
}
|
|
4193
|
+
acc += len;
|
|
4194
|
+
}
|
|
4195
|
+
if (!chosen) {
|
|
4196
|
+
for (let i = runs.length - 1; i >= 0 && !chosen; i -= 1) if (runs[i]?.kind === "text") chosen = runs[i];
|
|
4197
|
+
chosen ??= runs[runs.length - 1] ?? null;
|
|
4198
|
+
}
|
|
4199
|
+
if (!chosen) return {};
|
|
4200
|
+
return runMarkValues(chosen);
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
const segments = selectionTextSegments(selection$1);
|
|
4204
|
+
if (segments.length > 0) {
|
|
4205
|
+
const rangeSets = {
|
|
4206
|
+
bold: /* @__PURE__ */ new Set(),
|
|
4207
|
+
italic: /* @__PURE__ */ new Set(),
|
|
4208
|
+
underline: /* @__PURE__ */ new Set(),
|
|
4209
|
+
strikethrough: /* @__PURE__ */ new Set()
|
|
4210
|
+
};
|
|
4211
|
+
let rangeSawRun = false;
|
|
4212
|
+
let offsetSafe = true;
|
|
4213
|
+
for (const seg of segments) {
|
|
4214
|
+
const block = flatBlocks.find((b) => projectionBlockMatchesId(b, seg.blockId));
|
|
4215
|
+
if (!block) return {};
|
|
4216
|
+
const runs = Array.isArray(block.runs) ? block.runs : [];
|
|
4217
|
+
if (runs.length === 0) continue;
|
|
4218
|
+
if (!runs.every((r) => r?.kind === "text" || r?.kind === "tab")) {
|
|
4219
|
+
offsetSafe = false;
|
|
4220
|
+
break;
|
|
4221
|
+
}
|
|
4222
|
+
let acc = 0;
|
|
4223
|
+
for (const run of runs) {
|
|
4224
|
+
const len = typeof run.text === "string" ? run.text.length : 0;
|
|
4225
|
+
const runStart = acc;
|
|
4226
|
+
const runEnd = acc + len;
|
|
4227
|
+
if (runStart < seg.end && runEnd > seg.start) {
|
|
4228
|
+
rangeSawRun = true;
|
|
4229
|
+
const values = runMarkValues(run);
|
|
4230
|
+
for (const key of EFFECTIVE_MARK_KEYS) rangeSets[key].add(values[key]);
|
|
4231
|
+
}
|
|
4232
|
+
acc = runEnd;
|
|
4233
|
+
}
|
|
4234
|
+
}
|
|
4235
|
+
if (offsetSafe && rangeSawRun) return collapseMarkSets(rangeSets);
|
|
4236
|
+
}
|
|
4237
|
+
const wholeSets = {
|
|
4238
|
+
bold: /* @__PURE__ */ new Set(),
|
|
4239
|
+
italic: /* @__PURE__ */ new Set(),
|
|
4240
|
+
underline: /* @__PURE__ */ new Set(),
|
|
4241
|
+
strikethrough: /* @__PURE__ */ new Set()
|
|
4242
|
+
};
|
|
4243
|
+
let sawWholeRun = false;
|
|
4244
|
+
for (const block of flatBlocks) {
|
|
4245
|
+
if (![...blockIds].some((id) => projectionBlockMatchesId(block, id))) continue;
|
|
4246
|
+
const runs = Array.isArray(block.runs) ? block.runs : [];
|
|
4247
|
+
for (const run of runs) {
|
|
4248
|
+
if (run?.kind !== "text") continue;
|
|
4249
|
+
sawWholeRun = true;
|
|
4250
|
+
const values = runMarkValues(run);
|
|
4251
|
+
for (const key of EFFECTIVE_MARK_KEYS) wholeSets[key].add(values[key]);
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4254
|
+
if (!sawWholeRun) return {};
|
|
4255
|
+
return collapseMarkSets(wholeSets);
|
|
4256
|
+
};
|
|
4145
4257
|
const completeProjectedInlineValues = (selection$1, direct) => {
|
|
4146
4258
|
if (direct.fontFamily !== void 0 && direct.fontSize !== void 0 && direct.color !== void 0 && direct.highlight !== void 0) return {
|
|
4147
4259
|
values: direct,
|
|
@@ -4171,21 +4283,33 @@ function createSuperDocUI(options) {
|
|
|
4171
4283
|
effectiveUniformityStatus: "ready"
|
|
4172
4284
|
};
|
|
4173
4285
|
};
|
|
4174
|
-
const
|
|
4286
|
+
const EFFECTIVE_INLINE_UNIFORMITY_KEYS = [
|
|
4287
|
+
"fontFamily",
|
|
4288
|
+
"fontSize",
|
|
4289
|
+
"bold",
|
|
4290
|
+
"italic",
|
|
4291
|
+
"underline",
|
|
4292
|
+
"strikethrough"
|
|
4293
|
+
];
|
|
4294
|
+
const readEffectiveInlineUniformityCached = (selection$1) => {
|
|
4175
4295
|
const target = selection$1.selectionTarget;
|
|
4176
4296
|
if (!target) return {
|
|
4177
|
-
|
|
4297
|
+
value: null,
|
|
4178
4298
|
status: "ready"
|
|
4179
4299
|
};
|
|
4180
4300
|
const op = resolveDocOperation(getDoc(), "format.readEffectiveInlineUniformity");
|
|
4181
4301
|
if (!op) return {
|
|
4182
|
-
|
|
4302
|
+
value: null,
|
|
4183
4303
|
status: "ready"
|
|
4184
4304
|
};
|
|
4185
|
-
|
|
4305
|
+
return readAsync(`effInline:${selectionEffectiveUniformitySignature(selection$1) ?? selectionSignature(selection$1)}`, contentToken(), () => op({
|
|
4186
4306
|
target,
|
|
4187
|
-
offsetSpace: "selection"
|
|
4307
|
+
offsetSpace: "selection",
|
|
4308
|
+
keys: EFFECTIVE_INLINE_UNIFORMITY_KEYS
|
|
4188
4309
|
}), (raw) => raw && typeof raw === "object" ? raw : null);
|
|
4310
|
+
};
|
|
4311
|
+
const resolveEffectiveInlineUniformityValues = (selection$1) => {
|
|
4312
|
+
const { value, status } = readEffectiveInlineUniformityCached(selection$1);
|
|
4189
4313
|
if (!value || value.success !== true) return {
|
|
4190
4314
|
values: null,
|
|
4191
4315
|
status
|
|
@@ -4204,6 +4328,33 @@ function createSuperDocUI(options) {
|
|
|
4204
4328
|
status
|
|
4205
4329
|
};
|
|
4206
4330
|
};
|
|
4331
|
+
const resolveEffectiveMarkUniformityValues = (selection$1) => {
|
|
4332
|
+
const { value, status } = readEffectiveInlineUniformityCached(selection$1);
|
|
4333
|
+
if (!value || value.success !== true) return {
|
|
4334
|
+
values: null,
|
|
4335
|
+
status
|
|
4336
|
+
};
|
|
4337
|
+
const states = value.values;
|
|
4338
|
+
const values = {};
|
|
4339
|
+
for (const key of EFFECTIVE_MARK_KEYS) {
|
|
4340
|
+
const entry = states?.[key];
|
|
4341
|
+
if (entry?.state === "uniform" && (entry.value === "true" || entry.value === "false")) values[key] = entry.value === "true";
|
|
4342
|
+
}
|
|
4343
|
+
return {
|
|
4344
|
+
values,
|
|
4345
|
+
status
|
|
4346
|
+
};
|
|
4347
|
+
};
|
|
4348
|
+
const effectiveMarkActiveState = (descriptor, selection$1) => {
|
|
4349
|
+
const mark = descriptor.activeMark;
|
|
4350
|
+
if (!mark || !EFFECTIVE_MARK_KEYS.includes(mark)) return null;
|
|
4351
|
+
const key = mark;
|
|
4352
|
+
const fromLayout = resolveEffectiveMarkValuesFromLayout(selection$1)[key];
|
|
4353
|
+
if (fromLayout !== void 0) return fromLayout;
|
|
4354
|
+
const { values } = resolveEffectiveMarkUniformityValues(selection$1);
|
|
4355
|
+
const fromWorker = values?.[key];
|
|
4356
|
+
return fromWorker !== void 0 ? fromWorker : null;
|
|
4357
|
+
};
|
|
4207
4358
|
const readEffectiveInlineUniformityNow = async (selection$1) => {
|
|
4208
4359
|
const target = selection$1.selectionTarget;
|
|
4209
4360
|
if (!target) return null;
|
|
@@ -4572,6 +4723,8 @@ function createSuperDocUI(options) {
|
|
|
4572
4723
|
const optimistic = optimisticInlineToggles.get(descriptor.id);
|
|
4573
4724
|
const selectionSignature$1 = selectionInlineValueSignature(selection$1);
|
|
4574
4725
|
if (selectionSignature$1 && optimistic?.selectionSignature === selectionSignature$1) return optimistic.active;
|
|
4726
|
+
const effective = effectiveMarkActiveState(descriptor, selection$1);
|
|
4727
|
+
if (effective !== null) return effective;
|
|
4575
4728
|
return commandIsActive(descriptor, selection$1);
|
|
4576
4729
|
};
|
|
4577
4730
|
const routedCommandValue = (descriptor, doc, selection$1, projectedInlineValues) => {
|
|
@@ -7,7 +7,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
7
7
|
var PRIVATE_ENGINE_INFO = (0, __superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
|
|
8
8
|
var ENGINE_INFO = Object.freeze({
|
|
9
9
|
...PRIVATE_ENGINE_INFO,
|
|
10
|
-
superdocVersion: "2.0.0-next.
|
|
10
|
+
superdocVersion: "2.0.0-next.41",
|
|
11
11
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
12
12
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
13
13
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
|
@@ -6,7 +6,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
6
6
|
var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
|
|
7
7
|
var ENGINE_INFO = Object.freeze({
|
|
8
8
|
...PRIVATE_ENGINE_INFO,
|
|
9
|
-
superdocVersion: "2.0.0-next.
|
|
9
|
+
superdocVersion: "2.0.0-next.41",
|
|
10
10
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
11
11
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
12
12
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
package/dist/public/ui-react.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("../chunks/rolldown-runtime-_dR15c8t.cjs");
|
|
3
|
-
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-
|
|
3
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DZUTje3N.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
var SuperDocUIContext = (0, react.createContext)(null);
|
|
6
6
|
function SuperDocUIProvider(props) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-CiXQlr9Z.es.js";
|
|
2
2
|
import { createContext, createElement, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
3
3
|
var SuperDocUIContext = createContext(null);
|
|
4
4
|
function SuperDocUIProvider(props) {
|
package/dist/public/ui.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DZUTje3N.cjs");
|
|
3
3
|
exports.BUILT_IN_COMMAND_IDS = require_create_super_doc_ui.BUILT_IN_COMMAND_IDS;
|
|
4
4
|
exports.createSuperDocUI = require_create_super_doc_ui.createSuperDocUI;
|
|
5
5
|
exports.shallowEqual = require_create_super_doc_ui.shallowEqual;
|
package/dist/public/ui.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as BUILT_IN_COMMAND_IDS, r as shallowEqual, t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { n as BUILT_IN_COMMAND_IDS, r as shallowEqual, t as createSuperDocUI } from "../chunks/create-super-doc-ui-CiXQlr9Z.es.js";
|
|
2
2
|
export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
|
package/dist/superdoc.cjs
CHANGED
|
@@ -6,7 +6,7 @@ const require_uuid = require("./chunks/uuid-CFp0WGVU.cjs");
|
|
|
6
6
|
const require_jszip = require("./chunks/jszip-BdUBlUeG.cjs");
|
|
7
7
|
const require__plugin_vue_export_helper = require("./chunks/_plugin-vue_export-helper-BTwbGDKw.cjs");
|
|
8
8
|
const require_constants = require("./chunks/constants-sbCZ2O_A.cjs");
|
|
9
|
-
const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-
|
|
9
|
+
const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-DZUTje3N.cjs");
|
|
10
10
|
let vue = require("vue");
|
|
11
11
|
vue = require_rolldown_runtime.__toESM(vue);
|
|
12
12
|
require("y-websocket");
|
|
@@ -34763,7 +34763,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
|
|
|
34763
34763
|
this.config.colors = shuffleArray(this.config.colors);
|
|
34764
34764
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
34765
34765
|
this.colorIndex = 0;
|
|
34766
|
-
this.version = "2.0.0-next.
|
|
34766
|
+
this.version = "2.0.0-next.41";
|
|
34767
34767
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
34768
34768
|
this.superdocId = config.superdocId || require_uuid.v4_default();
|
|
34769
34769
|
this.colors = this.config.colors ?? [];
|
package/dist/superdoc.es.js
CHANGED
|
@@ -5,7 +5,7 @@ import { t as v4_default } from "./chunks/uuid-B2Sqk-3p.es.js";
|
|
|
5
5
|
import { a as init_dist, i as global, n as init_dist$1, r as process$1, t as require_jszip_min } from "./chunks/jszip-DzmwAHr3.es.js";
|
|
6
6
|
import { t as __plugin_vue_export_helper_default } from "./chunks/_plugin-vue_export-helper-CInC0bKI.es.js";
|
|
7
7
|
import { n as PDF_TO_CSS_UNITS } from "./chunks/constants-CY3R3_kF.es.js";
|
|
8
|
-
import { a as createV2ReviewMutationReconciler, i as isV2EditableTextMutationEvent, o as getV2TrackedChangeMutationImpact, s as composeAuthorColorResolver, t as createSuperDocUI } from "./chunks/create-super-doc-ui-
|
|
8
|
+
import { a as createV2ReviewMutationReconciler, i as isV2EditableTextMutationEvent, o as getV2TrackedChangeMutationImpact, s as composeAuthorColorResolver, t as createSuperDocUI } from "./chunks/create-super-doc-ui-CiXQlr9Z.es.js";
|
|
9
9
|
import * as Vue from "vue";
|
|
10
10
|
import { Fragment, Teleport, Transition, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, getCurrentInstance, h, inject, markRaw, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeUnmount, onDeactivated, onMounted, openBlock, reactive, ref, renderList, renderSlot, resolveDirective, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, toRef, unref, useAttrs, vModelText, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
|
|
11
11
|
import "y-websocket";
|
|
@@ -34700,7 +34700,7 @@ var SuperDoc = class extends import_eventemitter3.default {
|
|
|
34700
34700
|
this.config.colors = shuffleArray(this.config.colors);
|
|
34701
34701
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
34702
34702
|
this.colorIndex = 0;
|
|
34703
|
-
this.version = "2.0.0-next.
|
|
34703
|
+
this.version = "2.0.0-next.41";
|
|
34704
34704
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
34705
34705
|
this.superdocId = config.superdocId || v4_default();
|
|
34706
34706
|
this.colors = this.config.colors ?? [];
|