doculi 5.12.53 → 5.12.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{tui-DGrjyiw9.js → tui-hRXPFNVQ.js} +65 -43
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -1195,7 +1195,7 @@ function registerSetMetadataCommand(program) {
|
|
|
1195
1195
|
}
|
|
1196
1196
|
//#endregion
|
|
1197
1197
|
//#region package.json
|
|
1198
|
-
var version = "5.12.
|
|
1198
|
+
var version = "5.12.55";
|
|
1199
1199
|
//#endregion
|
|
1200
1200
|
//#region src/program.ts
|
|
1201
1201
|
function createProgram() {
|
|
@@ -1223,7 +1223,7 @@ function createProgram() {
|
|
|
1223
1223
|
//#region src/cli-main.ts
|
|
1224
1224
|
async function launchTui(startPath, signal) {
|
|
1225
1225
|
try {
|
|
1226
|
-
const { runTui } = await import("./tui-
|
|
1226
|
+
const { runTui } = await import("./tui-hRXPFNVQ.js");
|
|
1227
1227
|
await runTui({
|
|
1228
1228
|
startPath,
|
|
1229
1229
|
signal
|
package/dist/index.cjs
CHANGED
package/dist/index.js
CHANGED
|
@@ -2520,6 +2520,8 @@ function parseNumberField(raw, fallback) {
|
|
|
2520
2520
|
}
|
|
2521
2521
|
//#endregion
|
|
2522
2522
|
//#region src/tui/screens/shared/paragraph-family.tsx
|
|
2523
|
+
const DEFAULT_IMAGE_WIDTH_PT$2 = 120;
|
|
2524
|
+
const DEFAULT_IMAGE_HEIGHT_PT$2 = 40;
|
|
2523
2525
|
function supportsRunStyleExtras(run) {
|
|
2524
2526
|
return "underline" in run;
|
|
2525
2527
|
}
|
|
@@ -2610,8 +2612,8 @@ function readFormulaFrame(values) {
|
|
|
2610
2612
|
return {
|
|
2611
2613
|
xPt: parseNumberField(requireFieldValue(values, "xPt"), 0),
|
|
2612
2614
|
yPt: parseNumberField(requireFieldValue(values, "yPt"), 0),
|
|
2613
|
-
widthPt: parseNumberField(requireFieldValue(values, "widthPt"),
|
|
2614
|
-
heightPt: parseNumberField(requireFieldValue(values, "heightPt"),
|
|
2615
|
+
widthPt: parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_IMAGE_WIDTH_PT$2),
|
|
2616
|
+
heightPt: parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_IMAGE_HEIGHT_PT$2)
|
|
2615
2617
|
};
|
|
2616
2618
|
}
|
|
2617
2619
|
function ParagraphFamilyBodyList(props) {
|
|
@@ -2975,8 +2977,10 @@ function ParagraphFamilyBodyList(props) {
|
|
|
2975
2977
|
//#endregion
|
|
2976
2978
|
//#region src/tui/screens/shared/color.ts
|
|
2977
2979
|
const HEX_BYTE_MAX = 255;
|
|
2980
|
+
const HEX_RADIX = 16;
|
|
2981
|
+
const HEX_BYTE_DIGITS = 2;
|
|
2978
2982
|
function toHexByte(component) {
|
|
2979
|
-
return Math.round(component * HEX_BYTE_MAX).toString(
|
|
2983
|
+
return Math.round(component * HEX_BYTE_MAX).toString(HEX_RADIX).padStart(HEX_BYTE_DIGITS, "0");
|
|
2980
2984
|
}
|
|
2981
2985
|
function layoutColorToHex(color) {
|
|
2982
2986
|
return `#${toHexByte(color.r)}${toHexByte(color.g)}${toHexByte(color.b)}`;
|
|
@@ -2987,6 +2991,8 @@ function isValidHexColorInput(input) {
|
|
|
2987
2991
|
}
|
|
2988
2992
|
//#endregion
|
|
2989
2993
|
//#region src/tui/screens/editors/docx/paragraph-detail.tsx
|
|
2994
|
+
const DEFAULT_IMAGE_WIDTH_PT$1 = 100;
|
|
2995
|
+
const DEFAULT_IMAGE_HEIGHT_PT$1 = 60;
|
|
2990
2996
|
const DEFAULT_RUN_SIZE_PT = 12;
|
|
2991
2997
|
const IMAGE_FIELDS = [
|
|
2992
2998
|
{
|
|
@@ -3028,8 +3034,8 @@ async function applyInsertImage(blockIndex, values, dispatch) {
|
|
|
3028
3034
|
}
|
|
3029
3035
|
try {
|
|
3030
3036
|
const bytes = new Uint8Array(await readInput(path));
|
|
3031
|
-
const widthPt = parseNumberField(requireFieldValue(values, "widthPt"),
|
|
3032
|
-
const heightPt = parseNumberField(requireFieldValue(values, "heightPt"),
|
|
3037
|
+
const widthPt = parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_IMAGE_WIDTH_PT$1);
|
|
3038
|
+
const heightPt = parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_IMAGE_HEIGHT_PT$1);
|
|
3033
3039
|
const altTextRaw = requireFieldValue(values, "altText").trim();
|
|
3034
3040
|
dispatch({
|
|
3035
3041
|
type: "INSERT_PARAGRAPH_IMAGE",
|
|
@@ -4440,7 +4446,7 @@ function formatFrame(box) {
|
|
|
4440
4446
|
function formatPoint$1(point) {
|
|
4441
4447
|
return `${formatPt$1(point.xPt)},${formatPt$1(point.yPt)}`;
|
|
4442
4448
|
}
|
|
4443
|
-
function formatColor
|
|
4449
|
+
function formatColor(color) {
|
|
4444
4450
|
return `rgb(${color.r.toFixed(2)}, ${color.g.toFixed(2)}, ${color.b.toFixed(2)})`;
|
|
4445
4451
|
}
|
|
4446
4452
|
function describeVectorGeometry(vector) {
|
|
@@ -4449,8 +4455,8 @@ function describeVectorGeometry(vector) {
|
|
|
4449
4455
|
}
|
|
4450
4456
|
function describeFillStroke(vector) {
|
|
4451
4457
|
const parts = [];
|
|
4452
|
-
if (vector.kind !== "line" && vector.fill !== void 0) parts.push(`fill ${formatColor
|
|
4453
|
-
if (vector.stroke !== void 0) parts.push(`stroke ${formatColor
|
|
4458
|
+
if (vector.kind !== "line" && vector.fill !== void 0) parts.push(`fill ${formatColor(vector.fill)}`);
|
|
4459
|
+
if (vector.stroke !== void 0) parts.push(`stroke ${formatColor(vector.stroke.color)} ${formatPt$1(vector.stroke.widthPt)}pt`);
|
|
4454
4460
|
return parts.length === 0 ? "no fill or stroke" : parts.join(", ");
|
|
4455
4461
|
}
|
|
4456
4462
|
//#endregion
|
|
@@ -4517,6 +4523,9 @@ function OdgPageListScreen() {
|
|
|
4517
4523
|
}
|
|
4518
4524
|
//#endregion
|
|
4519
4525
|
//#region src/tui/screens/editors/odg/page-detail.tsx
|
|
4526
|
+
const DEFAULT_SHAPE_WIDTH_PT$2 = 100;
|
|
4527
|
+
const DEFAULT_SHAPE_HEIGHT_PT$2 = 60;
|
|
4528
|
+
const DEFAULT_LINE_END_X_PT$2 = 100;
|
|
4520
4529
|
const ADD_KIND_OPTIONS$1 = [
|
|
4521
4530
|
{
|
|
4522
4531
|
kind: "rect",
|
|
@@ -4631,8 +4640,8 @@ function readFrame$1(values) {
|
|
|
4631
4640
|
return {
|
|
4632
4641
|
xPt: parseNumberField(requireFieldValue(values, "xPt"), 0),
|
|
4633
4642
|
yPt: parseNumberField(requireFieldValue(values, "yPt"), 0),
|
|
4634
|
-
widthPt: parseNumberField(requireFieldValue(values, "widthPt"),
|
|
4635
|
-
heightPt: parseNumberField(requireFieldValue(values, "heightPt"),
|
|
4643
|
+
widthPt: parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_SHAPE_WIDTH_PT$2),
|
|
4644
|
+
heightPt: parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_SHAPE_HEIGHT_PT$2)
|
|
4636
4645
|
};
|
|
4637
4646
|
}
|
|
4638
4647
|
function warnVectorIsViewOnly(dispatch, label) {
|
|
@@ -4687,7 +4696,7 @@ async function applyAddKind$1(kind, pageIndex, doc, values, dispatch) {
|
|
|
4687
4696
|
yPt: parseNumberField(requireFieldValue(values, "fromYPt"), 0)
|
|
4688
4697
|
},
|
|
4689
4698
|
to: {
|
|
4690
|
-
xPt: parseNumberField(requireFieldValue(values, "toXPt"),
|
|
4699
|
+
xPt: parseNumberField(requireFieldValue(values, "toXPt"), DEFAULT_LINE_END_X_PT$2),
|
|
4691
4700
|
yPt: parseNumberField(requireFieldValue(values, "toYPt"), 0)
|
|
4692
4701
|
},
|
|
4693
4702
|
stroke: parseStrokeField(requireFieldValue(values, "stroke")) ?? {
|
|
@@ -4884,7 +4893,7 @@ function OdgPageDetailScreen() {
|
|
|
4884
4893
|
function buildVectorRows(vector, liveVector, dispatch) {
|
|
4885
4894
|
const rows = [];
|
|
4886
4895
|
if (vector.kind !== "line" && liveVector.kind !== "line") rows.push({
|
|
4887
|
-
label: `Fill: ${vector.fill === void 0 ? "none" : formatColor
|
|
4896
|
+
label: `Fill: ${vector.fill === void 0 ? "none" : formatColor(vector.fill)}`,
|
|
4888
4897
|
currentValue: vector.fill === void 0 ? "" : `${vector.fill.r} ${vector.fill.g} ${vector.fill.b}`,
|
|
4889
4898
|
commit: (raw) => {
|
|
4890
4899
|
dispatch({
|
|
@@ -4895,7 +4904,7 @@ function buildVectorRows(vector, liveVector, dispatch) {
|
|
|
4895
4904
|
}
|
|
4896
4905
|
});
|
|
4897
4906
|
rows.push({
|
|
4898
|
-
label: `Stroke: ${vector.stroke === void 0 ? "none" : `${formatColor
|
|
4907
|
+
label: `Stroke: ${vector.stroke === void 0 ? "none" : `${formatColor(vector.stroke.color)} ${formatPt$1(vector.stroke.widthPt)}pt`}`,
|
|
4899
4908
|
currentValue: vector.stroke === void 0 ? "" : `${vector.stroke.color.r} ${vector.stroke.color.g} ${vector.stroke.color.b} ${vector.stroke.widthPt}`,
|
|
4900
4909
|
commit: (raw) => {
|
|
4901
4910
|
const stroke = parseStrokeField(raw);
|
|
@@ -5701,6 +5710,9 @@ function summarizeSlideTables(doc, slideIndex) {
|
|
|
5701
5710
|
}
|
|
5702
5711
|
//#endregion
|
|
5703
5712
|
//#region src/tui/screens/editors/pptx/slide-detail.tsx
|
|
5713
|
+
const DEFAULT_SHAPE_WIDTH_PT$1 = 160;
|
|
5714
|
+
const DEFAULT_SHAPE_HEIGHT_PT$1 = 100;
|
|
5715
|
+
const DEFAULT_LINE_END_X_PT$1 = 100;
|
|
5704
5716
|
const IMAGE_EXTENSION_TO_FORMAT$1 = {
|
|
5705
5717
|
png: "png",
|
|
5706
5718
|
jpg: "jpeg",
|
|
@@ -5779,8 +5791,8 @@ function readVectorFrame(values) {
|
|
|
5779
5791
|
return {
|
|
5780
5792
|
xPt: parseNumberField(requireFieldValue(values, "xPt"), 0),
|
|
5781
5793
|
yPt: parseNumberField(requireFieldValue(values, "yPt"), 0),
|
|
5782
|
-
widthPt: parseNumberField(requireFieldValue(values, "widthPt"),
|
|
5783
|
-
heightPt: parseNumberField(requireFieldValue(values, "heightPt"),
|
|
5794
|
+
widthPt: parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_SHAPE_WIDTH_PT$1),
|
|
5795
|
+
heightPt: parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_SHAPE_HEIGHT_PT$1)
|
|
5784
5796
|
};
|
|
5785
5797
|
}
|
|
5786
5798
|
function buildVectorAction(kind, slideIndex, values) {
|
|
@@ -5812,7 +5824,7 @@ function buildVectorAction(kind, slideIndex, values) {
|
|
|
5812
5824
|
yPt: parseNumberField(requireFieldValue(values, "fromYPt"), 0)
|
|
5813
5825
|
},
|
|
5814
5826
|
to: {
|
|
5815
|
-
xPt: parseNumberField(requireFieldValue(values, "toXPt"),
|
|
5827
|
+
xPt: parseNumberField(requireFieldValue(values, "toXPt"), DEFAULT_LINE_END_X_PT$1),
|
|
5816
5828
|
yPt: parseNumberField(requireFieldValue(values, "toYPt"), 0)
|
|
5817
5829
|
},
|
|
5818
5830
|
stroke: parseStrokeField(requireFieldValue(values, "stroke")) ?? {
|
|
@@ -6939,6 +6951,8 @@ function OdsCellEditor(props) {
|
|
|
6939
6951
|
}
|
|
6940
6952
|
//#endregion
|
|
6941
6953
|
//#region src/tui/screens/editors/ods/spreadsheet-grid.tsx
|
|
6954
|
+
const DEFAULT_IMAGE_WIDTH_PT = 100;
|
|
6955
|
+
const DEFAULT_IMAGE_HEIGHT_PT = 60;
|
|
6942
6956
|
const ROW_HEADER_WIDTH = 5;
|
|
6943
6957
|
const CELL_WIDTH = 11;
|
|
6944
6958
|
const PAGE_JUMP_ROWS = 10;
|
|
@@ -7009,8 +7023,8 @@ async function applyAddSheetImage(sheetIndex, anchorRow, anchorColumn, values, d
|
|
|
7009
7023
|
}
|
|
7010
7024
|
try {
|
|
7011
7025
|
const bytes = new Uint8Array(await readInput(path));
|
|
7012
|
-
const widthPt = parseNumberField(requireFieldValue(values, "widthPt"),
|
|
7013
|
-
const heightPt = parseNumberField(requireFieldValue(values, "heightPt"),
|
|
7026
|
+
const widthPt = parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_IMAGE_WIDTH_PT);
|
|
7027
|
+
const heightPt = parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_IMAGE_HEIGHT_PT);
|
|
7014
7028
|
const offsetXPt = parseNumberField(requireFieldValue(values, "offsetXPt"), 0);
|
|
7015
7029
|
const offsetYPt = parseNumberField(requireFieldValue(values, "offsetYPt"), 0);
|
|
7016
7030
|
const altTextRaw = requireFieldValue(values, "altText").trim();
|
|
@@ -7339,6 +7353,10 @@ function OdsSpreadsheetGridScreen() {
|
|
|
7339
7353
|
}
|
|
7340
7354
|
//#endregion
|
|
7341
7355
|
//#region src/tui/screens/editors/ppt/index.tsx
|
|
7356
|
+
const DEFAULT_SHAPE_X_PT = 40;
|
|
7357
|
+
const DEFAULT_SHAPE_Y_PT = 30;
|
|
7358
|
+
const DEFAULT_SHAPE_WIDTH_PT = 640;
|
|
7359
|
+
const DEFAULT_SHAPE_HEIGHT_PT = 80;
|
|
7342
7360
|
function pptDocument(state) {
|
|
7343
7361
|
const doc = state.openDocument;
|
|
7344
7362
|
if (doc?.format !== "ppt") throw new Error("A ppt screen rendered without an open ppt document; check the screen router in app.tsx.");
|
|
@@ -7487,10 +7505,10 @@ function PptSlideDetailScreen(props) {
|
|
|
7487
7505
|
type: "ADD_TEXTBOX",
|
|
7488
7506
|
containerIndex: props.slideIndex,
|
|
7489
7507
|
frame: {
|
|
7490
|
-
xPt: parseNumberField(requireFieldValue(values, "xPt"),
|
|
7491
|
-
yPt: parseNumberField(requireFieldValue(values, "yPt"),
|
|
7492
|
-
widthPt: parseNumberField(requireFieldValue(values, "widthPt"),
|
|
7493
|
-
heightPt: parseNumberField(requireFieldValue(values, "heightPt"),
|
|
7508
|
+
xPt: parseNumberField(requireFieldValue(values, "xPt"), DEFAULT_SHAPE_X_PT),
|
|
7509
|
+
yPt: parseNumberField(requireFieldValue(values, "yPt"), DEFAULT_SHAPE_Y_PT),
|
|
7510
|
+
widthPt: parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_SHAPE_WIDTH_PT),
|
|
7511
|
+
heightPt: parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_SHAPE_HEIGHT_PT)
|
|
7494
7512
|
},
|
|
7495
7513
|
text: requireFieldValue(values, "text")
|
|
7496
7514
|
});
|
|
@@ -7612,12 +7630,16 @@ function XlsSheetListScreen() {
|
|
|
7612
7630
|
]
|
|
7613
7631
|
});
|
|
7614
7632
|
}
|
|
7633
|
+
const ALPHABET_LENGTH = 26;
|
|
7634
|
+
const UPPERCASE_A_CHAR_CODE = 65;
|
|
7635
|
+
const MAX_LISTED_CELLS = 200;
|
|
7636
|
+
const GRID_CELL_WIDTH = 12;
|
|
7615
7637
|
function columnLetters(column) {
|
|
7616
7638
|
let value = column;
|
|
7617
7639
|
let letters = "";
|
|
7618
7640
|
do {
|
|
7619
|
-
letters = String.fromCharCode(value %
|
|
7620
|
-
value = Math.floor(value /
|
|
7641
|
+
letters = String.fromCharCode(value % ALPHABET_LENGTH + UPPERCASE_A_CHAR_CODE) + letters;
|
|
7642
|
+
value = Math.floor(value / ALPHABET_LENGTH) - 1;
|
|
7621
7643
|
} while (value >= 0);
|
|
7622
7644
|
return letters;
|
|
7623
7645
|
}
|
|
@@ -7706,7 +7728,7 @@ function XlsSpreadsheetGridScreen(props) {
|
|
|
7706
7728
|
entries.length === 0 ? /* @__PURE__ */ jsx(Text, {
|
|
7707
7729
|
dimColor: true,
|
|
7708
7730
|
children: "No cells carry a value yet."
|
|
7709
|
-
}) : entries.slice(0,
|
|
7731
|
+
}) : entries.slice(0, MAX_LISTED_CELLS).map((cell) => /* @__PURE__ */ jsxs(Text, { children: [
|
|
7710
7732
|
columnLetters(cell.column),
|
|
7711
7733
|
cell.row + 1,
|
|
7712
7734
|
":",
|
|
@@ -7737,8 +7759,8 @@ function XlsSpreadsheetGridScreen(props) {
|
|
|
7737
7759
|
Array.from({ length: GRID_ROWS }, (_, r) => windowStartRow + r).map((row) => /* @__PURE__ */ jsx(Text, { children: Array.from({ length: GRID_COLUMNS }, (_, c) => windowStartColumn + c).map((column) => {
|
|
7738
7760
|
const cell = cells.get(`${row}:${column}`);
|
|
7739
7761
|
const isCursor = row === cursor.row && column === cursor.column;
|
|
7740
|
-
const padded = (cell?.displayText ?? "").slice(0,
|
|
7741
|
-
return isCursor ? `[${padded.slice(0,
|
|
7762
|
+
const padded = (cell?.displayText ?? "").slice(0, GRID_CELL_WIDTH).padEnd(GRID_CELL_WIDTH, " ");
|
|
7763
|
+
return isCursor ? `[${padded.slice(0, GRID_CELL_WIDTH)}]` : ` ${padded} `;
|
|
7742
7764
|
}).join("") }, row)),
|
|
7743
7765
|
editSession === void 0 ? /* @__PURE__ */ jsxs(Text, { children: [/* @__PURE__ */ jsxs(Text, {
|
|
7744
7766
|
color: "cyan",
|
|
@@ -7962,12 +7984,8 @@ function formatSize(widthPt, heightPt) {
|
|
|
7962
7984
|
function formatPt(value) {
|
|
7963
7985
|
return value.toFixed(1);
|
|
7964
7986
|
}
|
|
7965
|
-
function formatColor(color) {
|
|
7966
|
-
const byte = (component) => Math.round(component * 255).toString(16).padStart(2, "0");
|
|
7967
|
-
return `#${byte(color.r)}${byte(color.g)}${byte(color.b)}`;
|
|
7968
|
-
}
|
|
7969
7987
|
function formatStroke(stroke) {
|
|
7970
|
-
return `${
|
|
7988
|
+
return `${layoutColorToHex(stroke.color)} @ ${stroke.widthPt.toFixed(1)}pt`;
|
|
7971
7989
|
}
|
|
7972
7990
|
function parseRequiredColorField(raw, fallback) {
|
|
7973
7991
|
return parseColorField(raw) ?? fallback;
|
|
@@ -8101,7 +8119,7 @@ function fieldsFor(item) {
|
|
|
8101
8119
|
fields.push(["Font weight", item.font.weight]);
|
|
8102
8120
|
fields.push(["Font style", item.font.style]);
|
|
8103
8121
|
fields.push(["Size", `${item.sizePt}pt`]);
|
|
8104
|
-
fields.push(["Colour",
|
|
8122
|
+
fields.push(["Colour", layoutColorToHex(item.color)]);
|
|
8105
8123
|
if (item.widthPt !== void 0) fields.push(["Width", `${item.widthPt}pt`]);
|
|
8106
8124
|
if (item.rotationDeg !== void 0) fields.push(["Rotation", `${item.rotationDeg}°`]);
|
|
8107
8125
|
if (item.underline !== void 0) fields.push(["Underline", item.underline ? "yes" : "no"]);
|
|
@@ -8116,19 +8134,19 @@ function fieldsFor(item) {
|
|
|
8116
8134
|
case "ellipse":
|
|
8117
8135
|
fields.push(["Position", formatPoint(item.xPt, item.yPt)]);
|
|
8118
8136
|
fields.push(["Size", formatSize(item.widthPt, item.heightPt)]);
|
|
8119
|
-
if (item.fill !== void 0) fields.push(["Fill",
|
|
8137
|
+
if (item.fill !== void 0) fields.push(["Fill", layoutColorToHex(item.fill)]);
|
|
8120
8138
|
if (item.stroke !== void 0) fields.push(["Stroke", formatStroke(item.stroke)]);
|
|
8121
8139
|
break;
|
|
8122
8140
|
case "line":
|
|
8123
8141
|
fields.push(["From", formatPoint(item.x1Pt, item.y1Pt)]);
|
|
8124
8142
|
fields.push(["To", formatPoint(item.x2Pt, item.y2Pt)]);
|
|
8125
|
-
fields.push(["Colour",
|
|
8143
|
+
fields.push(["Colour", layoutColorToHex(item.color)]);
|
|
8126
8144
|
fields.push(["Width", `${item.widthPt}pt`]);
|
|
8127
8145
|
break;
|
|
8128
8146
|
case "path":
|
|
8129
8147
|
fields.push(["Subpaths", `${item.subpaths.length}`]);
|
|
8130
8148
|
fields.push(["Segments", `${item.subpaths.reduce((total, subpath) => total + subpath.segments.length, 0)}`]);
|
|
8131
|
-
if (item.fill !== void 0) fields.push(["Fill",
|
|
8149
|
+
if (item.fill !== void 0) fields.push(["Fill", layoutColorToHex(item.fill)]);
|
|
8132
8150
|
if (item.fillRule !== void 0) fields.push(["Fill rule", item.fillRule]);
|
|
8133
8151
|
if (item.stroke !== void 0) fields.push(["Stroke", formatStroke(item.stroke)]);
|
|
8134
8152
|
break;
|
|
@@ -8230,7 +8248,7 @@ function buildFrameRows(frame, onFrameChange) {
|
|
|
8230
8248
|
}
|
|
8231
8249
|
function buildFillStrokeRows(fill, stroke, onFillChange, onStrokeChange) {
|
|
8232
8250
|
return [{
|
|
8233
|
-
label: `Fill: ${fill === void 0 ? "none" :
|
|
8251
|
+
label: `Fill: ${fill === void 0 ? "none" : layoutColorToHex(fill)}`,
|
|
8234
8252
|
currentValue: fill === void 0 ? "" : `${fill.r} ${fill.g} ${fill.b}`,
|
|
8235
8253
|
commit: (raw) => {
|
|
8236
8254
|
onFillChange(parseColorField(raw));
|
|
@@ -8340,7 +8358,7 @@ function buildTextRows(item, pageIndex, itemIndex, dispatch) {
|
|
|
8340
8358
|
}
|
|
8341
8359
|
},
|
|
8342
8360
|
{
|
|
8343
|
-
label: `Colour: ${
|
|
8361
|
+
label: `Colour: ${layoutColorToHex(item.color)}`,
|
|
8344
8362
|
currentValue: `${item.color.r} ${item.color.g} ${item.color.b}`,
|
|
8345
8363
|
commit: (raw) => {
|
|
8346
8364
|
dispatch({
|
|
@@ -8490,7 +8508,7 @@ function buildLineRows(item, pageIndex, itemIndex, dispatch) {
|
|
|
8490
8508
|
}
|
|
8491
8509
|
},
|
|
8492
8510
|
{
|
|
8493
|
-
label: `Colour: ${
|
|
8511
|
+
label: `Colour: ${layoutColorToHex(item.color)}`,
|
|
8494
8512
|
currentValue: `${item.color.r} ${item.color.g} ${item.color.b}`,
|
|
8495
8513
|
commit: (raw) => {
|
|
8496
8514
|
dispatch({
|
|
@@ -8806,6 +8824,10 @@ function PdfItemDetailScreen() {
|
|
|
8806
8824
|
}
|
|
8807
8825
|
//#endregion
|
|
8808
8826
|
//#region src/tui/screens/editors/pdf/page-items.tsx
|
|
8827
|
+
const DEFAULT_ITEM_WIDTH_PT = 100;
|
|
8828
|
+
const DEFAULT_ITEM_HEIGHT_PT = 60;
|
|
8829
|
+
const DEFAULT_TEXT_SIZE_PT = 12;
|
|
8830
|
+
const DEFAULT_LINE_END_X_PT = 100;
|
|
8809
8831
|
const TEXT_PREVIEW_MAX_CHARS = 48;
|
|
8810
8832
|
function truncate(text, maxChars) {
|
|
8811
8833
|
return text.length > maxChars ? `${text.slice(0, maxChars)}…` : text;
|
|
@@ -9004,8 +9026,8 @@ function readFrame(values) {
|
|
|
9004
9026
|
return {
|
|
9005
9027
|
xPt: parseNumberField(requireFieldValue(values, "xPt"), 0),
|
|
9006
9028
|
yPt: parseNumberField(requireFieldValue(values, "yPt"), 0),
|
|
9007
|
-
widthPt: parseNumberField(requireFieldValue(values, "widthPt"),
|
|
9008
|
-
heightPt: parseNumberField(requireFieldValue(values, "heightPt"),
|
|
9029
|
+
widthPt: parseNumberField(requireFieldValue(values, "widthPt"), DEFAULT_ITEM_WIDTH_PT),
|
|
9030
|
+
heightPt: parseNumberField(requireFieldValue(values, "heightPt"), DEFAULT_ITEM_HEIGHT_PT)
|
|
9009
9031
|
};
|
|
9010
9032
|
}
|
|
9011
9033
|
async function applyAddKind(kind, pageIndex, values, dispatch) {
|
|
@@ -9023,7 +9045,7 @@ async function applyAddKind(kind, pageIndex, values, dispatch) {
|
|
|
9023
9045
|
weight: parseFontWeight(requireFieldValue(values, "fontWeight")),
|
|
9024
9046
|
style: parseFontStyle(requireFieldValue(values, "fontStyle"))
|
|
9025
9047
|
},
|
|
9026
|
-
sizePt: Math.max(parseNumberField(requireFieldValue(values, "sizePt"),
|
|
9048
|
+
sizePt: Math.max(parseNumberField(requireFieldValue(values, "sizePt"), DEFAULT_TEXT_SIZE_PT), Number.EPSILON),
|
|
9027
9049
|
color: parseColorField(requireFieldValue(values, "color")) ?? {
|
|
9028
9050
|
r: 0,
|
|
9029
9051
|
g: 0,
|
|
@@ -9061,7 +9083,7 @@ async function applyAddKind(kind, pageIndex, values, dispatch) {
|
|
|
9061
9083
|
init: {
|
|
9062
9084
|
x1Pt: parseNumberField(requireFieldValue(values, "fromXPt"), 0),
|
|
9063
9085
|
y1Pt: parseNumberField(requireFieldValue(values, "fromYPt"), 0),
|
|
9064
|
-
x2Pt: parseNumberField(requireFieldValue(values, "toXPt"),
|
|
9086
|
+
x2Pt: parseNumberField(requireFieldValue(values, "toXPt"), DEFAULT_LINE_END_X_PT),
|
|
9065
9087
|
y2Pt: parseNumberField(requireFieldValue(values, "toYPt"), 0),
|
|
9066
9088
|
color: parseColorField(requireFieldValue(values, "color")) ?? {
|
|
9067
9089
|
r: 0,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "doculi",
|
|
3
|
-
"version": "5.12.
|
|
3
|
+
"version": "5.12.55",
|
|
4
4
|
"description": "CLI and interactive Ink TUI for documents.js: every docx/pptx/odt/odp/ods/odg/odf/pdf/odm/odb/xlsx/csv/svg/markdown/rtf conversion, bridge, and editor as a scriptable command or a terminal app.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"commander": "15.0.0",
|
|
71
71
|
"document-outline.js": "3.10.23",
|
|
72
72
|
"document-schema.js": "7.15.3",
|
|
73
|
-
"documents.js": "14.4.
|
|
73
|
+
"documents.js": "14.4.45",
|
|
74
74
|
"ink": "7.1.1",
|
|
75
75
|
"ink-text-input": "6.0.0",
|
|
76
76
|
"react": "19.2.8"
|