diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 62d5411..04cdaf5 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -6,7 +6,8 @@ "dart-code.flutter", "lsaudon.l10nization", // quick translation gen "oke331.flutter-l10n-helper", // show arb string - "gabbygreat.flutter-l10n-checker", // detect hard-coded strings + "gabbygreat.flutter-l10n-checker", + "pomdtr.excalidraw-editor", // detect hard-coded strings // "joaopinacio.translate-me" ] } \ No newline at end of file diff --git a/docs/wireframe.assets/first_screen.excalidraw b/docs/wireframe.assets/first_screen.excalidraw index 7db0436..46e8c87 100644 --- a/docs/wireframe.assets/first_screen.excalidraw +++ b/docs/wireframe.assets/first_screen.excalidraw @@ -607,436 +607,6 @@ "originalText": "search", "autoResize": true, "lineHeight": 1.35 - }, - { - "id": "xdjwEB-znvBqkgNWqei0e", - "type": "rectangle", - "x": 829.345613801518, - "y": 73.27856093258742, - "width": 109.23454710748254, - "height": 36.33306860750372, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "a_nIXU9JKF6NQxqDn6778" - ], - "frameId": null, - "index": "aK", - "roundness": null, - "seed": 1079291190, - "version": 165, - "versionNonce": 1774775286, - "isDeleted": false, - "boundElements": [], - "updated": 1756646729695, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 769, - "versionNonce": 754187574, - "isDeleted": false, - "id": "7kiaSLfvSEdtaNYQBYwzh", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 841.4747836141609, - "y": 84.61996518660985, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 22.637490885793227, - "height": 13.582494531475936, - "seed": 1458935414, - "groupIds": [ - "s9zt_E4Q8I28ITXmLtTku", - "a_nIXU9JKF6NQxqDn6778" - ], - "boundElements": [], - "updated": 1756646729695, - "link": null, - "locked": false, - "index": "aL", - "frameId": null, - "roundness": null - }, - { - "type": "line", - "version": 786, - "versionNonce": 321578614, - "isDeleted": false, - "id": "CbsiEXCcAqMJ4HF8vzcR3", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 855.0572781456366, - "y": 84.61996518660985, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 13.582494531475936, - "height": 4.5274981771586456, - "seed": 1411864502, - "groupIds": [ - "s9zt_E4Q8I28ITXmLtTku", - "a_nIXU9JKF6NQxqDn6778" - ], - "boundElements": [], - "updated": 1756646729695, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -4.5274981771586456, - -4.5274981771586456 - ], - [ - -13.582494531475934, - -4.527498177158644 - ], - [ - -13.582494531475936, - -8.881784197001252e-16 - ], - [ - 0, - 0 - ] - ], - "index": "aM", - "frameId": null, - "roundness": null, - "polygon": false - }, - { - "id": "qiIJiYioLPMG7pTYwhrg5", - "type": "text", - "x": 877.3865259161674, - "y": 77.10300187674156, - "width": 49.27995300292969, - "height": 27, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "a_nIXU9JKF6NQxqDn6778" - ], - "frameId": null, - "index": "aN", - "roundness": null, - "seed": 1611591926, - "version": 76, - "versionNonce": 2100471734, - "isDeleted": false, - "boundElements": [], - "updated": 1756646729695, - "link": null, - "locked": false, - "text": "Open", - "fontSize": 20, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Open", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "type": "rectangle", - "version": 447, - "versionNonce": 1428930594, - "isDeleted": false, - "id": "CvUvdJBdFi_9gk7DmBP3h", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1276.5699538308854, - "y": -105.41567571464518, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 41.296072889060916, - "height": 9.620822332911771, - "seed": 324223266, - "groupIds": [ - "FhaLGab-lElwTXWsop0jD", - "ALJlvV1mOFRZHOCbgoRYA" - ], - "index": "aO", - "frameId": null, - "roundness": null, - "boundElements": [], - "updated": 1756647328403, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 467, - "versionNonce": 734227426, - "isDeleted": false, - "id": "JST3yuxNBZUHRvRS5svAi", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1276.5699538308854, - "y": -120.86895124654592, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 41.0018486675741, - "height": 9.620822332911771, - "seed": 458411234, - "groupIds": [ - "FhaLGab-lElwTXWsop0jD", - "ALJlvV1mOFRZHOCbgoRYA" - ], - "index": "aP", - "frameId": null, - "roundness": null, - "boundElements": [], - "updated": 1756647328404, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 546, - "versionNonce": 1911529378, - "isDeleted": false, - "id": "BdE7Lsbj5rN-2Fbc_g8TY", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1276.3519181972783, - "y": -136.32222677844666, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 40.89858173493463, - "height": 8.789494679651982, - "seed": 1525342370, - "groupIds": [ - "FhaLGab-lElwTXWsop0jD", - "ALJlvV1mOFRZHOCbgoRYA" - ], - "index": "aQ", - "frameId": null, - "roundness": null, - "boundElements": [], - "updated": 1756647328404, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 306, - "versionNonce": 1407146850, - "isDeleted": false, - "id": "aMLLNSOvXTWAD4qesWqN6", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1285.8386804713773, - "y": -86.87954484494927, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 24.33822760138865, - "height": 12.945865745419493, - "seed": 1573551202, - "groupIds": [ - "ALJlvV1mOFRZHOCbgoRYA" - ], - "fontSize": 10.356692596335595, - "fontFamily": 1, - "text": "Menu", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "index": "aR", - "frameId": null, - "roundness": { - "type": 2 - }, - "boundElements": [ - { - "id": "Zq3EuupF1HmOWACV2oefy", - "type": "arrow" - } - ], - "updated": 1756647328404, - "link": null, - "locked": false, - "containerId": null, - "originalText": "Menu", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "lOTebkqDHtT4BBQALESig", - "type": "rectangle", - "x": 790.384031749907, - "y": 36.693096342540855, - "width": 335.5208042689734, - "height": 109.54448154994424, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aS", - "roundness": { - "type": 3 - }, - "seed": 1783740578, - "version": 55, - "versionNonce": 1405945982, - "isDeleted": false, - "boundElements": [ - { - "id": "Zq3EuupF1HmOWACV2oefy", - "type": "arrow" - } - ], - "updated": 1756647293005, - "link": null, - "locked": false - }, - { - "id": "Zq3EuupF1HmOWACV2oefy", - "type": "arrow", - "x": 1128.0299808310733, - "y": 66.13666497128354, - "width": 153.447595240714, - "height": 132.2939715962288, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aT", - "roundness": { - "type": 2 - }, - "seed": 581324706, - "version": 170, - "versionNonce": 410803618, - "isDeleted": false, - "boundElements": [ - { - "type": "text", - "id": "f9MY_jyhZB6ng-Fp--Exn" - } - ], - "updated": 1756647332367, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 153.447595240714, - -132.2939715962288 - ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "lOTebkqDHtT4BBQALESig", - "focus": 0.6098248915581349, - "gap": 2.241472516741169 - }, - "endBinding": { - "elementId": "aMLLNSOvXTWAD4qesWqN6", - "focus": 0, - "gap": 12.733143243255915 - }, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "f9MY_jyhZB6ng-Fp--Exn", - "type": "text", - "x": 1107.8638629851216, - "y": -25.010320826830863, - "width": 193.7798309326172, - "height": 50, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aU", - "roundness": null, - "seed": 1827590818, - "version": 61, - "versionNonce": 1563426338, - "isDeleted": false, - "boundElements": null, - "updated": 1756647330897, - "link": null, - "locked": false, - "text": "group to 1 symbol if\nscreen is thin", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": "Zq3EuupF1HmOWACV2oefy", - "originalText": "group to 1 symbol if screen is thin", - "autoResize": true, - "lineHeight": 1.25 } ], "appState": { diff --git a/docs/wireframe.assets/with_configure_screen.excalidraw b/docs/wireframe.assets/with_configure_screen.excalidraw index ca412ea..f9c67f0 100644 --- a/docs/wireframe.assets/with_configure_screen.excalidraw +++ b/docs/wireframe.assets/with_configure_screen.excalidraw @@ -810,165 +810,6 @@ "originalText": "Configure", "autoResize": true, "lineHeight": 1.35 - }, - { - "id": "iIDobnzWCl-gygCOsA73n", - "type": "rectangle", - "x": 576.109131998714, - "y": -56.43111661983278, - "width": 109.23454710748254, - "height": 36.33306860750372, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "2xO--DSh2411Pyp1YG0B4" - ], - "frameId": null, - "index": "ac", - "roundness": null, - "seed": 1897278824, - "version": 221, - "versionNonce": 536065304, - "isDeleted": false, - "boundElements": [], - "updated": 1756647186276, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 825, - "versionNonce": 921522712, - "isDeleted": false, - "id": "rumws8Xb5KM1-COUn-SjA", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 588.2383018113569, - "y": -45.08971236581036, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 22.637490885793227, - "height": 13.582494531475936, - "seed": 331104360, - "groupIds": [ - "1FZGUtYp_0lg0mZX7lxmQ", - "2xO--DSh2411Pyp1YG0B4" - ], - "boundElements": [], - "updated": 1756647186276, - "link": null, - "locked": false, - "index": "ad", - "frameId": null, - "roundness": null - }, - { - "type": "line", - "version": 842, - "versionNonce": 1454067480, - "isDeleted": false, - "id": "l8Hqi6JegDC-MxE036F3N", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 601.8207963428326, - "y": -45.08971236581036, - "strokeColor": "#000000", - "backgroundColor": "#868e96", - "width": 13.582494531475936, - "height": 4.5274981771586456, - "seed": 1042805608, - "groupIds": [ - "1FZGUtYp_0lg0mZX7lxmQ", - "2xO--DSh2411Pyp1YG0B4" - ], - "boundElements": [], - "updated": 1756647186276, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -4.5274981771586456, - -4.5274981771586456 - ], - [ - -13.582494531475934, - -4.527498177158644 - ], - [ - -13.582494531475936, - -8.881784197001252e-16 - ], - [ - 0, - 0 - ] - ], - "index": "ae", - "frameId": null, - "roundness": null, - "polygon": false - }, - { - "id": "C8V0VrPmqft0_wEEXIh2G", - "type": "text", - "x": 624.1500441133635, - "y": -52.606675675678645, - "width": 49.27995300292969, - "height": 27, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "2xO--DSh2411Pyp1YG0B4" - ], - "frameId": null, - "index": "af", - "roundness": null, - "seed": 648365672, - "version": 132, - "versionNonce": 664906776, - "isDeleted": false, - "boundElements": [], - "updated": 1756647186276, - "link": null, - "locked": false, - "text": "Open", - "fontSize": 20, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Open", - "autoResize": true, - "lineHeight": 1.35 } ], "appState": { diff --git a/docs/wireframe.assets/with_pdf_opened.excalidraw b/docs/wireframe.assets/with_pdf_opened.excalidraw index 3c2347e..2d300b2 100644 --- a/docs/wireframe.assets/with_pdf_opened.excalidraw +++ b/docs/wireframe.assets/with_pdf_opened.excalidraw @@ -35,9 +35,9 @@ "id": "thumbs", "type": "rectangle", "x": 102.48263041178382, - "y": 134.76353963216147, - "width": 158.04682413736987, - "height": 589.4899749755859, + "y": 176.8952360607328, + "width": 160.1859755743119, + "height": 547.3582785470146, "angle": 0, "strokeColor": "#1f2937", "backgroundColor": "transparent", @@ -51,11 +51,16 @@ "index": "a3", "roundness": null, "seed": 1003, - "version": 112, - "versionNonce": 1259126921, + "version": 157, + "versionNonce": 1712101276, "isDeleted": false, - "boundElements": [], - "updated": 1756625049829, + "boundElements": [ + { + "id": "JeHos26tW2fq01Rk4WLuz", + "type": "arrow" + } + ], + "updated": 1756782722215, "link": null, "locked": false }, @@ -132,9 +137,9 @@ { "id": "thumb-2", "type": "rectangle", - "x": 139.97398376464844, + "x": 129.6354217529297, "y": 335.77476501464844, - "width": 97.08328247070314, + "width": 107.42184448242189, "height": 134.98046874999997, "angle": 0, "strokeColor": "#6b7280", @@ -149,8 +154,8 @@ "index": "a5", "roundness": null, "seed": 1005, - "version": 90, - "versionNonce": 387456489, + "version": 98, + "versionNonce": 1579773340, "isDeleted": false, "boundElements": [ { @@ -158,16 +163,16 @@ "id": "Gs_DUiE5dIevh4J_3VybF" } ], - "updated": 1756624676182, + "updated": 1756782821238, "link": null, "locked": false }, { "id": "Gs_DUiE5dIevh4J_3VybF", "type": "text", - "x": 160.07565307617188, + "x": 154.90636444091797, "y": 389.76499938964844, - "width": 56.87994384765625, + "width": 56.87995910644531, "height": 27, "angle": 0, "strokeColor": "#1e1e1e", @@ -182,11 +187,11 @@ "index": "a5V", "roundness": null, "seed": 1852090887, - "version": 9, - "versionNonce": 321877033, + "version": 14, + "versionNonce": 845240860, "isDeleted": false, "boundElements": [], - "updated": 1756626498564, + "updated": 1756782821238, "link": null, "locked": false, "text": "page2", @@ -545,312 +550,13 @@ "autoResize": true, "lineHeight": 1.35 }, - { - "id": "nfrsieMiuqFplgD4IGhD9", - "type": "rectangle", - "x": 108.59586079915357, - "y": 131.71744791666669, - "width": 691.0762911945586, - "height": 40, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aX", - "roundness": null, - "seed": 396258633, - "version": 178, - "versionNonce": 1022335177, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498564, - "link": null, - "locked": false - }, - { - "id": "zoom-", - "type": "text", - "x": 630.0716857910156, - "y": 141.29579994895244, - "width": 8.18438720703125, - "height": 18.430332599986684, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "r8UQCQ2BudsD9_j2c_B2W" - ], - "frameId": null, - "index": "aZ", - "roundness": null, - "seed": 1016, - "version": 83, - "versionNonce": 921933737, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498564, - "link": null, - "locked": false, - "text": "−", - "fontSize": 13.652098222212357, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "−", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "zoom-value", - "type": "text", - "x": 645.240683815696, - "y": 141.29579994895244, - "width": 37.279876708984375, - "height": 18.430332599986684, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "r8UQCQ2BudsD9_j2c_B2W" - ], - "frameId": null, - "index": "aa", - "roundness": null, - "seed": 1017, - "version": 83, - "versionNonce": 359781223, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498564, - "link": null, - "locked": false, - "text": "100%", - "fontSize": 13.652098222212357, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "100%", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "zoom+", - "type": "text", - "x": 681.646279074929, - "y": 141.29579994895244, - "width": 8.18438720703125, - "height": 18.430332599986684, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "r8UQCQ2BudsD9_j2c_B2W" - ], - "frameId": null, - "index": "ab", - "roundness": null, - "seed": 1018, - "version": 83, - "versionNonce": 299154057, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498564, - "link": null, - "locked": false, - "text": "+", - "fontSize": 13.652098222212357, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "+", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "-9UWBd4AturQx2OL5HZ4u", - "type": "text", - "x": 345.0416303362167, - "y": 138.75596346552493, - "width": 165.37982177734375, - "height": 27, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#ffffff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ac", - "roundness": null, - "seed": 1254868007, - "version": 60, - "versionNonce": 129406249, - "isDeleted": false, - "boundElements": [], - "updated": 1756646374710, - "link": null, - "locked": false, - "text": "file:agreement.pdf", - "fontSize": 20, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "file:agreement.pdf", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "nav-prev", - "type": "text", - "x": 131.8096923828125, - "y": 141.26295471191406, - "width": 13.8427734375, - "height": 24.3, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "4h3rvJ5DuPOaXNi2cTIGn" - ], - "frameId": null, - "index": "ad", - "roundness": null, - "seed": 1013, - "version": 147, - "versionNonce": 2119074153, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498565, - "link": null, - "locked": false, - "text": "◀", - "fontSize": 18, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "◀", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "nav-page", - "type": "text", - "x": 161.8096923828125, - "y": 139.26295471191406, - "width": 92.57337951660156, - "height": 24.3, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "4h3rvJ5DuPOaXNi2cTIGn" - ], - "frameId": null, - "index": "ae", - "roundness": null, - "seed": 1014, - "version": 150, - "versionNonce": 887317927, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498565, - "link": null, - "locked": false, - "text": "Page 2 / 10", - "fontSize": 18, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Page 2 / 10", - "autoResize": true, - "lineHeight": 1.35 - }, - { - "id": "nav-next", - "type": "text", - "x": 271.35278875177556, - "y": 140.0437497225675, - "width": 13.8427734375, - "height": 24.3, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "4h3rvJ5DuPOaXNi2cTIGn" - ], - "frameId": null, - "index": "af", - "roundness": null, - "seed": 1015, - "version": 179, - "versionNonce": 162294857, - "isDeleted": false, - "boundElements": [], - "updated": 1756626498565, - "link": null, - "locked": false, - "text": "▶", - "fontSize": 18, - "fontFamily": 6, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "▶", - "autoResize": true, - "lineHeight": 1.35 - }, { "id": "iBaRmcgeuIwk3OfI02kuL", "type": "rectangle", - "x": 810.3571470338211, - "y": 141.27303387929163, - "width": 253.3040877100313, - "height": 554.9518986672008, + "x": 843.3519590455398, + "y": 175.25740887929163, + "width": 258.30402667487505, + "height": 538.2852726906383, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -864,11 +570,16 @@ "index": "ag", "roundness": null, "seed": 1975872585, - "version": 182, - "versionNonce": 1498742761, + "version": 252, + "versionNonce": 1239337116, "isDeleted": false, - "boundElements": [], - "updated": 1756625664404, + "boundElements": [ + { + "id": "F0fDJsXLlR0chlTMrN_Zn", + "type": "arrow" + } + ], + "updated": 1756783028691, "link": null, "locked": false }, @@ -912,8 +623,8 @@ { "id": "XixBzXhYxxZLeqjg8z0ZO", "type": "rectangle", - "x": 827.0336106324435, - "y": 162.60581025133592, + "x": 861.0336106324435, + "y": 191.60581025133592, "width": 211.53344390600182, "height": 87.10747268498352, "angle": 0, @@ -929,8 +640,8 @@ "index": "ai", "roundness": null, "seed": 891929161, - "version": 71, - "versionNonce": 306274281, + "version": 138, + "versionNonce": 957178020, "isDeleted": false, "boundElements": [ { @@ -942,15 +653,15 @@ "type": "arrow" } ], - "updated": 1756626270315, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "whP9P0oU10wxfki5Tzc62", "type": "text", - "x": 843.3004241381788, - "y": 192.65954659382768, + "x": 877.3004241381788, + "y": 221.65954659382768, "width": 178.99981689453125, "height": 27, "angle": 0, @@ -966,11 +677,11 @@ "index": "aiV", "roundness": null, "seed": 455291975, - "version": 32, - "versionNonce": 197786409, + "version": 99, + "versionNonce": 829516700, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": "signature 1 preview", @@ -986,8 +697,8 @@ { "id": "Z55O9bqO71SGHYMaUBPhR", "type": "rectangle", - "x": 830.9167767144809, - "y": 371.74081562846106, + "x": 864.9167767144809, + "y": 400.74081562846106, "width": 211.53344390600182, "height": 106.79561266731257, "angle": 0, @@ -1005,8 +716,8 @@ "index": "amG", "roundness": null, "seed": 1049648681, - "version": 161, - "versionNonce": 1622262311, + "version": 228, + "versionNonce": 1768008740, "isDeleted": false, "boundElements": [ { @@ -1014,15 +725,15 @@ "id": "XeRDzIu_O7UfMwzj2jVSr" } ], - "updated": 1756626080687, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "XeRDzIu_O7UfMwzj2jVSr", "type": "text", - "x": 869.7335627543958, - "y": 376.74081562846106, + "x": 903.7335627543958, + "y": 405.74081562846106, "width": 133.89987182617188, "height": 27, "angle": 0, @@ -1040,11 +751,11 @@ "index": "amV", "roundness": null, "seed": 931906631, - "version": 71, - "versionNonce": 1027461895, + "version": 138, + "versionNonce": 402233372, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": " new signature", @@ -1060,8 +771,8 @@ { "id": "IyLBn_6s8mdEe3m4j4aVa", "type": "rectangle", - "x": 847.9390554128533, - "y": 403.00447723591344, + "x": 881.9390554128533, + "y": 432.00447723591344, "width": 78.54616510032311, "height": 64, "angle": 0, @@ -1079,8 +790,8 @@ "index": "aml", "roundness": null, "seed": 92751719, - "version": 149, - "versionNonce": 478282985, + "version": 216, + "versionNonce": 807438244, "isDeleted": false, "boundElements": [ { @@ -1092,15 +803,15 @@ "type": "arrow" } ], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "DF_YBy8mO-3zg5Qml1Ob8", "type": "text", - "x": 866.0221584097923, - "y": 408.00447723591344, + "x": 900.0221584097923, + "y": 437.00447723591344, "width": 42.37995910644531, "height": 54, "angle": 0, @@ -1118,11 +829,11 @@ "index": "an", "roundness": null, "seed": 446978921, - "version": 84, - "versionNonce": 1748752935, + "version": 151, + "versionNonce": 1170748572, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": "from\nfile", @@ -1138,8 +849,8 @@ { "id": "jv-o_lsyoFbRU2v247F0e", "type": "rectangle", - "x": 953.5213155306128, - "y": 407.1068678489766, + "x": 987.5213155306128, + "y": 436.1068678489766, "width": 59.8151745391508, "height": 60, "angle": 0, @@ -1157,8 +868,8 @@ "index": "anV", "roundness": null, "seed": 1577206471, - "version": 87, - "versionNonce": 1169684135, + "version": 154, + "versionNonce": 24638244, "isDeleted": false, "boundElements": [ { @@ -1166,15 +877,15 @@ "id": "S7pHJH_ya1LUkqOu0N0EC" } ], - "updated": 1756626080687, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "S7pHJH_ya1LUkqOu0N0EC", "type": "text", - "x": 960.2389308763601, - "y": 423.6068678489766, + "x": 994.2389308763601, + "y": 452.6068678489766, "width": 46.37994384765625, "height": 27, "angle": 0, @@ -1192,11 +903,11 @@ "index": "ao", "roundness": null, "seed": 509366759, - "version": 74, - "versionNonce": 765689801, + "version": 141, + "versionNonce": 1754218780, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": "draw", @@ -1212,7 +923,7 @@ { "id": "pLSlN_M61Uiudwuy70z_h", "type": "rectangle", - "x": 852.0588495823167, + "x": 886.0588495823167, "y": 621.478834804223, "width": 164.7117303241327, "height": 54.0073862032541, @@ -1231,8 +942,8 @@ "type": 3 }, "seed": 1346415783, - "version": 132, - "versionNonce": 1472685033, + "version": 170, + "versionNonce": 467005092, "isDeleted": false, "boundElements": [ { @@ -1240,14 +951,14 @@ "id": "NyLAd21ZYYngMMBcBhfZ_" } ], - "updated": 1756626091145, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "NyLAd21ZYYngMMBcBhfZ_", "type": "text", - "x": 904.844745567137, + "x": 938.844745567137, "y": 634.98252790585, "width": 59.13993835449219, "height": 27, @@ -1264,11 +975,11 @@ "index": "as", "roundness": null, "seed": 1815080073, - "version": 23, - "versionNonce": 271318343, + "version": 61, + "versionNonce": 666942876, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": "export", @@ -1284,8 +995,8 @@ { "id": "8Mrx4xKoYQb9pYl6Nz7lJ", "type": "rectangle", - "x": 829.6765765874698, - "y": 267.092786204764, + "x": 863.6765765874698, + "y": 296.092786204764, "width": 211.53344390600182, "height": 87.10747268498352, "angle": 0, @@ -1301,8 +1012,8 @@ "index": "at", "roundness": null, "seed": 233656615, - "version": 95, - "versionNonce": 1352197063, + "version": 163, + "versionNonce": 1072200228, "isDeleted": false, "boundElements": [ { @@ -1312,17 +1023,21 @@ { "id": "oBLDDEiNeM4ftDjo0B4oS", "type": "arrow" + }, + { + "id": "IcoXGklBcxgzbrgxgcIkQ", + "type": "arrow" } ], - "updated": 1756626122191, + "updated": 1756782988122, "link": null, "locked": false }, { "id": "g5CeVohCoK1BBB9N-B-V8", "type": "text", - "x": 845.943390093205, - "y": 297.1465225472558, + "x": 879.943390093205, + "y": 326.1465225472558, "width": 178.99981689453125, "height": 27, "angle": 0, @@ -1338,11 +1053,11 @@ "index": "au", "roundness": null, "seed": 244749383, - "version": 60, - "versionNonce": 1452449449, + "version": 127, + "versionNonce": 612881180, "isDeleted": false, "boundElements": [], - "updated": 1756626498565, + "updated": 1756782988122, "link": null, "locked": false, "text": "signature 2 preview", @@ -1358,10 +1073,10 @@ { "id": "oBLDDEiNeM4ftDjo0B4oS", "type": "arrow", - "x": 824.0531494801987, - "y": 315.7097111409047, - "width": 125.23480537103046, - "height": 263.9451586265342, + "x": 858.0531494801987, + "y": 331.55426023468453, + "width": 157.58909128142238, + "height": 276.96342284655645, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -1377,8 +1092,8 @@ "type": 2 }, "seed": 1498168745, - "version": 153, - "versionNonce": 113571591, + "version": 252, + "versionNonce": 592612252, "isDeleted": false, "boundElements": [ { @@ -1386,7 +1101,7 @@ "id": "4xE9aa2ywOSlZgWwTQhwK" } ], - "updated": 1756626625057, + "updated": 1756783366019, "link": null, "locked": false, "points": [ @@ -1395,21 +1110,25 @@ 0 ], [ - -101.6065507296687, - 140.74088224558102 + -135.6065507296687, + 124.89633315180117 ], [ - -125.23480537103046, - 263.9451586265342 + -157.58909128142238, + 276.96342284655645 ] ], "lastCommittedPoint": null, "startBinding": { "elementId": "8Mrx4xKoYQb9pYl6Nz7lJ", - "focus": 0.785182438526405, + "focus": 0.7851824385264009, "gap": 5.623427107271027 }, - "endBinding": null, + "endBinding": { + "elementId": "XERWDNpIQMuKdXS0vdMkz", + "focus": 0.21161433945578534, + "gap": 7.684403366504625 + }, "startArrowhead": null, "endArrowhead": "arrow", "elbowed": false @@ -1419,7 +1138,7 @@ "type": "text", "x": 658.6866576494558, "y": 442.9505933864857, - "width": 127.51988220214844, + "width": 127.51985168457031, "height": 27, "angle": 0, "strokeColor": "#1e1e1e", @@ -1434,11 +1153,11 @@ "index": "avV", "roundness": null, "seed": 1357516649, - "version": 15, - "versionNonce": 34477865, + "version": 16, + "versionNonce": 316809124, "isDeleted": false, "boundElements": [], - "updated": 1756626623767, + "updated": 1756782907413, "link": null, "locked": false, "text": "drag and drop", @@ -1454,10 +1173,10 @@ { "id": "IcoXGklBcxgzbrgxgcIkQ", "type": "arrow", - "x": 1041.1110308632972, - "y": 200.65400390285498, - "width": 224.12520759073232, - "height": 38.158499568758714, + "x": 1081.1581769347615, + "y": 379.1123247786131, + "width": 120.64636825007551, + "height": 61.84099524331043, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -1473,11 +1192,11 @@ "type": 2 }, "seed": 1142794121, - "version": 41, - "versionNonce": 18952775, + "version": 404, + "versionNonce": 1967020444, "isDeleted": false, "boundElements": [], - "updated": 1756626271478, + "updated": 1756783298253, "link": null, "locked": false, "points": [ @@ -1486,17 +1205,21 @@ 0 ], [ - 224.12520759073232, - -38.158499568758714 + 120.64636825007551, + 61.84099524331043 ] ], "lastCommittedPoint": null, "startBinding": { - "elementId": "XixBzXhYxxZLeqjg8z0ZO", - "focus": 0.21011531284522128, - "gap": 2.543976324851883 + "elementId": "8Mrx4xKoYQb9pYl6Nz7lJ", + "focus": -0.18627185477610247, + "gap": 5.948156441289711 + }, + "endBinding": { + "elementId": "g4Uh6FAsGkMRFYRgcKkcM", + "focus": -0.3588501149170561, + "gap": 12.863567149268192 }, - "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow", "elbowed": false @@ -1504,10 +1227,10 @@ { "id": "g4Uh6FAsGkMRFYRgcKkcM", "type": "text", - "x": 1267.801901396605, - "y": 91.83448600449418, - "width": 340.91685327733757, - "height": 126.06201358869963, + "x": 1214.6681123341052, + "y": 427.44649568873893, + "width": 223.01190409218867, + "height": 82.4638894025017, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -1521,15 +1244,20 @@ "index": "az", "roundness": null, "seed": 815013001, - "version": 320, - "versionNonce": 2131041543, + "version": 508, + "versionNonce": 479223068, "isDeleted": false, - "boundElements": [], - "updated": 1756626484398, + "boundElements": [ + { + "id": "IcoXGklBcxgzbrgxgcIkQ", + "type": "arrow" + } + ], + "updated": 1756783298253, "link": null, "locked": false, "text": "long press or right\nclick will show menu\nwith delete option", - "fontSize": 33.616536956986565, + "fontSize": 21.990370507333783, "fontFamily": 5, "textAlign": "left", "verticalAlign": "top", @@ -1538,13 +1266,732 @@ "autoResize": false, "lineHeight": 1.25 }, + { + "id": "JeHos26tW2fq01Rk4WLuz", + "type": "arrow", + "x": 117.45638384137827, + "y": 162.71419735106227, + "width": 224.2596871512277, + "height": 213.49697807256328, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0F", + "roundness": { + "type": 2 + }, + "seed": 1040972700, + "version": 626, + "versionNonce": 784144676, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "uuo49wkpxAPVQAL4pCPH6" + } + ], + "updated": 1756783728888, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -224.2596871512277, + 124.36382955218116 + ], + [ + -3.342613377427483, + 213.49697807256328 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "7n3D1UiHStvKJRF4e_P9P", + "focus": -0.8708888535728319, + "gap": 14.257377125596634 + }, + "endBinding": { + "elementId": "thumbs", + "focus": 0.15275121438122682, + "gap": 11.63114005216697 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "fixedSegments": [ + { + "index": 3, + "start": [ + -220.92637416294644, + 40 + ], + "end": [ + -220.92637416294644, + 173.49697807256328 + ] + } + ], + "startIsSpecial": false, + "endIsSpecial": false + }, + { + "id": "uuo49wkpxAPVQAL4pCPH6", + "type": "text", + "x": -212.2532239641463, + "y": 249.57802690324343, + "width": 210.89984130859375, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0FV", + "roundness": null, + "seed": 1845681692, + "version": 54, + "versionNonce": 704067612, + "isDeleted": false, + "boundElements": null, + "updated": 1756783074885, + "link": null, + "locked": false, + "text": "determine page\noverview sidebar open\nor not", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "JeHos26tW2fq01Rk4WLuz", + "originalText": "determine page overview sidebar open or not", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "nfrsieMiuqFplgD4IGhD9", + "type": "rectangle", + "x": 97.63974507649743, + "y": 121.46820649646577, + "width": 1003.3605319172146, + "height": 50.249241420200924, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0K", + "roundness": null, + "seed": 396258633, + "version": 308, + "versionNonce": 1717370020, + "isDeleted": false, + "boundElements": [], + "updated": 1756782935549, + "link": null, + "locked": false + }, + { + "id": "-9UWBd4AturQx2OL5HZ4u", + "type": "text", + "x": 194.4774111793157, + "y": 133.74294263219156, + "width": 165.37982177734375, + "height": 27, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0L", + "roundness": null, + "seed": 1254868007, + "version": 118, + "versionNonce": 33667492, + "isDeleted": false, + "boundElements": [], + "updated": 1756783209753, + "link": null, + "locked": false, + "text": "file:agreement.pdf", + "fontSize": 20, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "file:agreement.pdf", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "type": "rectangle", + "version": 492, + "versionNonce": 1835178396, + "isDeleted": false, + "id": "UH5C0HZF_BQTThYHMND7e", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 111.8271495825251, + "y": 153.36571868816873, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.756940485339044, + "height": 8.097388585673801, + "seed": 1402192164, + "groupIds": [ + "EvYozfdyMhomPImwubtdV" + ], + "index": "b0M", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1756782872854, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 515, + "versionNonce": 48389668, + "isDeleted": false, + "id": "7n3D1UiHStvKJRF4e_P9P", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 111.8271495825251, + "y": 140.35943163979184, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.509305951589674, + "height": 8.097388585673801, + "seed": 357039268, + "groupIds": [ + "EvYozfdyMhomPImwubtdV" + ], + "index": "b0N", + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "JeHos26tW2fq01Rk4WLuz", + "type": "arrow" + } + ], + "updated": 1756782872854, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 591, + "versionNonce": 1502938652, + "isDeleted": false, + "id": "YJ_lVa0OyMnY81sRaL9Z5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 111.6436393596203, + "y": 127.35314459141497, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.42239108582276, + "height": 7.397699638354526, + "seed": 468240420, + "groupIds": [ + "EvYozfdyMhomPImwubtdV" + ], + "index": "b0O", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1756782872854, + "link": null, + "locked": false + }, + { + "id": "zoom-", + "type": "text", + "x": 770.0455423990886, + "y": 135.132597027403, + "width": 11.027289708489763, + "height": 24.83223384510387, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "r8UQCQ2BudsD9_j2c_B2W" + ], + "frameId": null, + "index": "b0P", + "roundness": null, + "seed": 1016, + "version": 158, + "versionNonce": 294631844, + "isDeleted": false, + "boundElements": [], + "updated": 1756783273470, + "link": null, + "locked": false, + "text": "−", + "fontSize": 18.394247292669533, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "−", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "zoom-value", + "type": "text", + "x": 790.4835949464991, + "y": 135.132597027403, + "width": 50.22929516501564, + "height": 24.83223384510387, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "r8UQCQ2BudsD9_j2c_B2W" + ], + "frameId": null, + "index": "b0Q", + "roundness": null, + "seed": 1017, + "version": 158, + "versionNonce": 305194276, + "isDeleted": false, + "boundElements": [], + "updated": 1756783273470, + "link": null, + "locked": false, + "text": "100%", + "fontSize": 18.394247292669533, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "100%", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "zoom+", + "type": "text", + "x": 839.5349210602847, + "y": 135.132597027403, + "width": 11.027289708489763, + "height": 24.83223384510387, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "r8UQCQ2BudsD9_j2c_B2W" + ], + "frameId": null, + "index": "b0R", + "roundness": null, + "seed": 1018, + "version": 158, + "versionNonce": 1285595300, + "isDeleted": false, + "boundElements": [], + "updated": 1756783273470, + "link": null, + "locked": false, + "text": "+", + "fontSize": 18.394247292669533, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "+", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "nav-prev", + "type": "text", + "x": 606.1832551502046, + "y": 137.48827471051894, + "width": 13.8427734375, + "height": 24.3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "H6_unFfiihfDsT0Xhc3dA" + ], + "frameId": null, + "index": "b0RV", + "roundness": null, + "seed": 1013, + "version": 313, + "versionNonce": 1688974748, + "isDeleted": false, + "boundElements": [], + "updated": 1756783666200, + "link": null, + "locked": false, + "text": "◀", + "fontSize": 18, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "◀", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "nav-page", + "type": "text", + "x": 629.1832551502046, + "y": 136.48827471051894, + "width": 92.57337951660156, + "height": 24.3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "H6_unFfiihfDsT0Xhc3dA" + ], + "frameId": null, + "index": "b0S", + "roundness": null, + "seed": 1014, + "version": 308, + "versionNonce": 1430848036, + "isDeleted": false, + "boundElements": [], + "updated": 1756783666200, + "link": null, + "locked": false, + "text": "Page 2 / 10", + "fontSize": 18, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Page 2 / 10", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "nav-next", + "type": "text", + "x": 720.7263515191676, + "y": 137.26906972117237, + "width": 13.8427734375, + "height": 24.3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "H6_unFfiihfDsT0Xhc3dA" + ], + "frameId": null, + "index": "b0T", + "roundness": null, + "seed": 1015, + "version": 355, + "versionNonce": 1096458780, + "isDeleted": false, + "boundElements": [], + "updated": 1756783666200, + "link": null, + "locked": false, + "text": "▶", + "fontSize": 18, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "▶", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "type": "rectangle", + "version": 575, + "versionNonce": 319989404, + "isDeleted": false, + "id": "3Ra9iobk1nccqYAYMZbYC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1051.925728629246, + "y": 157.41590274958705, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.756940485339044, + "height": 8.097388585673801, + "seed": 1236508572, + "groupIds": [ + "qmYDqVLNMNBpGFqwFZA2B" + ], + "index": "b0V", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1756782938753, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 598, + "versionNonce": 1203467036, + "isDeleted": false, + "id": "2rG9lcGEImQqH-j0iVBHa", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1051.925728629246, + "y": 144.40961570121013, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.509305951589674, + "height": 8.097388585673801, + "seed": 1372933148, + "groupIds": [ + "qmYDqVLNMNBpGFqwFZA2B" + ], + "index": "b0W", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1756782938753, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 675, + "versionNonce": 1497986212, + "isDeleted": false, + "id": "-6RmK0bLNp7Zx4vuEKcTJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1051.7422184063412, + "y": 131.40332865283327, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 34.42239108582276, + "height": 7.397699638354526, + "seed": 839739548, + "groupIds": [ + "qmYDqVLNMNBpGFqwFZA2B" + ], + "index": "b0X", + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "F0fDJsXLlR0chlTMrN_Zn", + "type": "arrow" + } + ], + "updated": 1756783020643, + "link": null, + "locked": false + }, + { + "id": "F0fDJsXLlR0chlTMrN_Zn", + "type": "arrow", + "x": 1084.4885924055855, + "y": 162.15127826909176, + "width": 185.58781215122758, + "height": 123.49694755498516, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Y", + "roundness": { + "type": 2 + }, + "seed": 1596114724, + "version": 868, + "versionNonce": 1670926884, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "a-gvdOxFLR2JqUwOsFpGr" + } + ], + "updated": 1756783725627, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 185.58781215122758, + 36.68151754046241 + ], + [ + 13.342613377427597, + 123.49694755498516 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "-6RmK0bLNp7Zx4vuEKcTJ", + "focus": 0, + "gap": 14 + }, + "endBinding": { + "elementId": "iBaRmcgeuIwk3OfI02kuL", + "focus": -0.28597602069539235, + "gap": 3.8247799374018996 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "fixedSegments": [ + { + "index": 3, + "start": [ + -220.92637416294644, + 40 + ], + "end": [ + -220.92637416294644, + 173.49697807256328 + ] + } + ], + "startIsSpecial": false, + "endIsSpecial": false + }, + { + "id": "a-gvdOxFLR2JqUwOsFpGr", + "type": "text", + "x": 1164.6264839025162, + "y": 161.33279580955417, + "width": 210.89984130859375, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Z", + "roundness": null, + "seed": 621167268, + "version": 65, + "versionNonce": 232181028, + "isDeleted": false, + "boundElements": [], + "updated": 1756783063773, + "link": null, + "locked": false, + "text": "determine signature\noverview sidebar open\nor not", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F0fDJsXLlR0chlTMrN_Zn", + "originalText": "determine signature overview sidebar open or not", + "autoResize": true, + "lineHeight": 1.25 + }, { "id": "ZypttJv8wXC3_nnNOBniI", "type": "rectangle", - "x": 829.2352501918391, - "y": 61.91924305998282, - "width": 109.23454710748254, - "height": 36.33306860750372, + "x": 390.60676101540685, + "y": 129.3906827398418, + "width": 101.72584959771692, + "height": 33.83556182966293, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -1557,21 +2004,21 @@ "Lc9ztVjgkY1vXWy5Zdgbj" ], "frameId": null, - "index": "b07", + "index": "b0a", "roundness": null, "seed": 2121158023, - "version": 147, - "versionNonce": 1637664743, + "version": 269, + "versionNonce": 1207713700, "isDeleted": false, "boundElements": [], - "updated": 1756646695346, + "updated": 1756783261253, "link": null, "locked": false }, { "type": "rectangle", - "version": 751, - "versionNonce": 694242825, + "version": 873, + "versionNonce": 1956904092, "isDeleted": false, "id": "ioXx3rr4MNsaBB7PmtfQN", "fillStyle": "hachure", @@ -1580,29 +2027,29 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 841.3644200044819, - "y": 73.26064731400524, + "x": 401.90218116203874, + "y": 139.9524877174958, "strokeColor": "#000000", "backgroundColor": "#868e96", - "width": 22.637490885793227, - "height": 13.582494531475936, + "width": 21.08140743103925, + "height": 12.648844458623548, "seed": 1886922409, "groupIds": [ "c9Kai9BBPEMYx9XHbYqXj", "Lc9ztVjgkY1vXWy5Zdgbj" ], "boundElements": [], - "updated": 1756646695346, + "updated": 1756783261253, "link": null, "locked": false, - "index": "b08", + "index": "b0b", "frameId": null, "roundness": null }, { "type": "line", - "version": 768, - "versionNonce": 313078535, + "version": 892, + "versionNonce": 407537052, "isDeleted": false, "id": "FHZJ-3xFc01aevwPFV0eo", "fillStyle": "hachure", @@ -1611,19 +2058,19 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 854.9469145359578, - "y": 73.26064731400524, + "x": 414.5510256206623, + "y": 139.9524877174958, "strokeColor": "#000000", "backgroundColor": "#868e96", - "width": 13.582494531475936, - "height": 4.5274981771586456, + "width": 12.648844458623548, + "height": 4.2162814862078495, "seed": 1777297801, "groupIds": [ "c9Kai9BBPEMYx9XHbYqXj", "Lc9ztVjgkY1vXWy5Zdgbj" ], "boundElements": [], - "updated": 1756646695346, + "updated": 1756783261270, "link": null, "locked": false, "startBinding": null, @@ -1637,23 +2084,23 @@ 0 ], [ - -4.5274981771586456, - -4.5274981771586456 + -4.2162814862078495, + -4.2162814862078495 ], [ - -13.582494531475934, - -4.527498177158644 + -12.648844458623547, + -4.216281486207846 ], [ - -13.582494531475936, - -8.881784197001252e-16 + -12.648844458623548, + 0 ], [ 0, 0 ] ], - "index": "b09", + "index": "b0c", "frameId": null, "roundness": null, "polygon": false @@ -1661,10 +2108,10 @@ { "id": "oyNLDcnSYZa440t9nKF1f", "type": "text", - "x": 877.2761623064885, - "y": 65.74368400413695, - "width": 49.27995300292969, - "height": 27, + "x": 435.345378327596, + "y": 132.9522345985003, + "width": 45.89248749688999, + "height": 25.144041073707307, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "#ffffff", @@ -1677,18 +2124,18 @@ "Lc9ztVjgkY1vXWy5Zdgbj" ], "frameId": null, - "index": "b0A", + "index": "b0d", "roundness": null, "seed": 2083025639, - "version": 58, - "versionNonce": 771532009, + "version": 180, + "versionNonce": 1488062748, "isDeleted": false, "boundElements": [], - "updated": 1756646695346, + "updated": 1756783261253, "link": null, "locked": false, "text": "Open", - "fontSize": 20, + "fontSize": 18.62521561015356, "fontFamily": 6, "textAlign": "left", "verticalAlign": "top", @@ -1696,6 +2143,180 @@ "originalText": "Open", "autoResize": true, "lineHeight": 1.35 + }, + { + "id": "XERWDNpIQMuKdXS0vdMkz", + "type": "rectangle", + "x": 589.0013626815467, + "y": 616.2020864477456, + "width": 172.90500559219964, + "height": 64, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0e", + "roundness": null, + "seed": 1973690532, + "version": 402, + "versionNonce": 1207557156, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "p4WkRi6XxRu6H6Gl4Eaed" + }, + { + "id": "oBLDDEiNeM4ftDjo0B4oS", + "type": "arrow" + }, + { + "id": "-lwmH-9KU_cZF8GcOqfVM", + "type": "arrow" + } + ], + "updated": 1756783698806, + "link": null, + "locked": false + }, + { + "id": "p4WkRi6XxRu6H6Gl4Eaed", + "type": "text", + "x": 601.153938719834, + "y": 621.2020864477456, + "width": 148.599853515625, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0f", + "roundness": null, + "seed": 1696623652, + "version": 299, + "versionNonce": 1975701276, + "isDeleted": false, + "boundElements": [], + "updated": 1756783366019, + "link": null, + "locked": false, + "text": "paced_signature\npreview", + "fontSize": 20, + "fontFamily": 6, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "XERWDNpIQMuKdXS0vdMkz", + "originalText": "paced_signature preview", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "OlpYnzLKDyZ_3VAGEg_Oz", + "type": "text", + "x": 510.96197186254165, + "y": 788.9623037888565, + "width": 314.0015281156262, + "height": 82.46388940250168, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0g", + "roundness": null, + "seed": 649397412, + "version": 606, + "versionNonce": 632673436, + "isDeleted": false, + "boundElements": [ + { + "id": "-lwmH-9KU_cZF8GcOqfVM", + "type": "arrow" + } + ], + "updated": 1756783737035, + "link": null, + "locked": false, + "text": "long press or right click will\nshow menu with delete\noption", + "fontSize": 21.990370507333783, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "long press or right click will show menu with delete option", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "-lwmH-9KU_cZF8GcOqfVM", + "type": "arrow", + "x": 690.0849965873819, + "y": 690.6803528195342, + "width": 37.51042821573526, + "height": 90.90275065104186, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0h", + "roundness": { + "type": 2 + }, + "seed": 500737060, + "version": 106, + "versionNonce": 969466140, + "isDeleted": false, + "boundElements": null, + "updated": 1756783737035, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -37.51042821573526, + 90.90275065104186 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "XERWDNpIQMuKdXS0vdMkz", + "focus": -0.32057357063438363, + "gap": 10.47826637178855 + }, + "endBinding": { + "elementId": "OlpYnzLKDyZ_3VAGEg_Oz", + "focus": -0.20515111160640007, + "gap": 7.379200318280482 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false } ], "appState": { diff --git a/docs/wireframe.md b/docs/wireframe.md index 04d16d9..4902cc1 100644 --- a/docs/wireframe.md +++ b/docs/wireframe.md @@ -16,7 +16,7 @@ Route: root Design notes: - Central drop zone with hint text: “Drag a PDF here or click to select”. -- Minimal top bar with app name and a gear icon for settings. +- Minimal top bar with app name and a "Configure" button with a gear icon for settings. - Clean layout encouraging first action. Illustration: @@ -29,7 +29,7 @@ Purpose: provide basic configuration before/after opening a PDF. Route: root --> settings Design notes: -- Opened via gear icon in the top bar. +- Opened via "Configure" button in the top bar. - Modal with simple sections (e.g., General, Display). - Primary action to save, secondary to cancel. @@ -39,13 +39,32 @@ Illustration: ## PDF opened -Purpose: view and navigate the PDF; prepare for signature placement. +Purpose: view and navigate the PDF; for signature placement. Route: root --> opened Design notes: -- Main canvas shows the current page. -- Navigation: previous/next page, zoom controls are placed in toolbar which is at top of main PDF canvas. -- Drag signature onto page. +- Top: A small toolbar sits at the top edge with file name text, open pdf file button, previous/next page widgets and zoom controls. + - Navigation: Previous page, Next page, and a page number input (e.g., “2 / 10”) with jump-on-Enter. + - Zoom: Zoom out, Zoom level dropdown (percent), Zoom in, Fit width, Fit page, Reset zoom. + - Optional: Find/search within PDF (if supported by engine). +- Left pane: vertical strip of page thumbnails (e.g., page1, page2, page3). Clicking a thumbnail navigates to that page; the current page is visually indicated. +- Center: main PDF viewer shows the active page. + - Ctrl/Cmd + wheel to zoom. +- Right pane: signatures drawer displaying saved signatures as cards. + - able to drag and drop signature cards onto the PDF as placed signatures. + - Each signature card shows a preview. + - long tap/right-click will show menu with options to delete, adjust graphic of image. + - "adjust graphic" opens a simple image editor, which can remove backgrounds. + - There is an empty card with "new signature" prompt and 2 buttons: "from file" and "draw". + - "from file" opens a file picker to select an image as a signature card. + - "draw" opens a simple drawing interface (draw canvas) to create a signature card. +- Interaction: drag a signature card from the right drawer onto the currently visible page to place it. + +Signature controls (after placing on page): +- Select to show bounding box with resize handles and a small inline action bar. +- Actions: Move (drag), Resize (corner/side handles), Rotate (rotation handle), Duplicate, Delete (trash icon or Delete key). +- Lock: Lock/Unlock position. +- Keyboard: Arrow keys to nudge (Shift for 10px); Shift-resize to keep aspect; Esc to cancel; Ctrl/Cmd+D to duplicate; Del/Backspace to delete. Illustration: