mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-20 15:06:15 -04:00
Refactor "paste mode" to "share mode"; Introduce a small clipboard panel instead of changing the xNoPeer instructions. This also enables the use of the header btns while sharing; Add possibility to change shared text before sending via a dialog; Add a setting that specifies whether that dialog should always be opened when sharing text
This commit is contained in:
parent
5a2ec9c670
commit
0c2da78ed2
22 changed files with 908 additions and 506 deletions
|
@ -41,61 +41,62 @@
|
|||
|
||||
<body translate="no">
|
||||
<header class="row-reverse opacity-0">
|
||||
<a href="#about" class="icon-button" data-i18n-key="header.about" data-i18n-attrs="title aria-label">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#info-outline"></use>
|
||||
</svg>
|
||||
</a>
|
||||
<div id="language-selector" class="icon-button" data-i18n-key="header.language-selector" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-language-selector"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="theme-wrapper">
|
||||
<div id="theme-auto" class="icon-button selected" data-i18n-key="header.theme-auto" data-i18n-attrs="title">
|
||||
<div class="row-reverse">
|
||||
<a href="#about" class="icon-button" data-i18n-key="header.about" data-i18n-attrs="title aria-label">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-theme-auto"></use>
|
||||
<use xlink:href="#info-outline"></use>
|
||||
</svg>
|
||||
</a>
|
||||
<div id="language-selector" class="icon-button" data-i18n-key="header.language-selector" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-language-selector"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<div id="theme-light" class="icon-button" data-i18n-key="header.theme-light" data-i18n-attrs="title">
|
||||
<div id="theme-wrapper">
|
||||
<div id="theme-auto" class="icon-button selected" data-i18n-key="header.theme-auto" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-theme-light"></use>
|
||||
<use xlink:href="#icon-theme-auto"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="theme-dark" class="icon-button" data-i18n-key="header.theme-dark" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-theme-dark"></use>
|
||||
</svg>
|
||||
<div>
|
||||
<div id="theme-light" class="icon-button" data-i18n-key="header.theme-light" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-theme-light"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="theme-dark" class="icon-button" data-i18n-key="header.theme-dark" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#icon-theme-dark"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="notification" class="icon-button" data-i18n-key="header.notification" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#notifications"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="install" class="icon-button" data-i18n-key="header.install" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#homescreen"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="pair-device" class="icon-button" data-i18n-key="header.pair-device" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#pair-device-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="edit-paired-devices" class="icon-button" data-i18n-key="header.edit-paired-devices" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#edit-pair-devices-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="join-public-room" class="icon-button" data-i18n-key="header.join-public-room" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#public-room-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div id="notification" class="icon-button" data-i18n-key="header.notification" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#notifications"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="install" class="icon-button" data-i18n-key="header.install" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#homescreen"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="pair-device" class="icon-button" data-i18n-key="header.pair-device" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#pair-device-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="edit-paired-devices" class="icon-button" data-i18n-key="header.edit-paired-devices" data-i18n-attrs="title" hidden>
|
||||
<svg class="icon">
|
||||
<use xlink:href="#edit-pair-devices-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="join-public-room" class="icon-button" data-i18n-key="header.join-public-room" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#public-room-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="cancel-paste-mode" class="btn" data-i18n-key="header.cancel-paste-mode" data-i18n-attrs="text" hidden></div>
|
||||
</header>
|
||||
<!-- Center -->
|
||||
<div id="center" class="opacity-0">
|
||||
|
@ -106,9 +107,35 @@
|
|||
<h2 data-i18n-key="instructions.no-peers-title" data-i18n-attrs="text"></h2>
|
||||
<div data-i18n-key="instructions.no-peers-subtitle" data-i18n-attrs="text"></div>
|
||||
</x-no-peers>
|
||||
<x-instructions data-i18n-key="instructions.x-instructions" data-i18n-attrs="desktop mobile data-drop-peer data-drop-bg">
|
||||
<p id="paste-filename"></p>
|
||||
</x-instructions>
|
||||
<x-instructions data-i18n-key="instructions.x-instructions" data-i18n-attrs="desktop mobile data-drop-peer data-drop-bg"></x-instructions>
|
||||
<div class="share-panel panel column" hidden>
|
||||
<div class="row">
|
||||
<div class="thumb center">
|
||||
<div class="text-thumb row" hidden>
|
||||
<svg>
|
||||
<use xlink:href="#font"></use>
|
||||
</svg>
|
||||
<svg>
|
||||
<use xlink:href="#i-cursor"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="file-thumb" hidden>
|
||||
<svg>
|
||||
<use xlink:href="#file"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="image-thumb" hidden></div>
|
||||
</div>
|
||||
<div class="share-descriptor column p1">
|
||||
<span class="descriptor-item"></span>
|
||||
<span class="descriptor-other" hidden></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="center btn-row">
|
||||
<div class="cancel-btn btn btn-small btn-rounded btn-dark text-white" data-i18n-key="header.cancel-share-mode" data-i18n-attrs="text"></div>
|
||||
<div class="edit-btn btn btn-small btn-rounded btn-dark text-white" data-i18n-key="header.edit-share-mode" data-i18n-attrs="text" hidden></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="websocket-fallback" hidden>
|
||||
<span data-i18n-key="footer.traffic" data-i18n-attrs="text"></span>
|
||||
<span data-i18n-key="footer.routed" data-i18n-attrs="text"></span>
|
||||
|
@ -130,11 +157,11 @@
|
|||
<div class="known-as-wrapper">
|
||||
<span data-i18n-key="footer.known-as" data-i18n-attrs="text"></span>
|
||||
<div id="display-name" class="badge" data-i18n-key="footer.display-name" data-i18n-attrs="data-placeholder title" placeholder="Loading..." autocorrect="off" autocomplete="off" autocapitalize="none" spellcheck="false" contenteditable></div>
|
||||
<svg id="edit-pen" class="icon">
|
||||
<svg class="icon edit-pen">
|
||||
<use xlink:href="#edit-pen-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="discovery-wrapper row">
|
||||
<div class="discovery-wrapper panel border row">
|
||||
<div class="row center">
|
||||
<span data-i18n-key="footer.discovery" data-i18n-attrs="text"></span>
|
||||
</div>
|
||||
|
@ -224,7 +251,7 @@
|
|||
<span>(Japanese)</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="center row-reverse button-row">
|
||||
<div class="center row-reverse btn-row">
|
||||
<button class="btn btn-rounded btn-grey" type="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
|
@ -267,7 +294,7 @@
|
|||
<p class="font-subheading center text-center" data-i18n-key="dialogs.enter-key-from-another-device" data-i18n-attrs="text"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-row row-reverse">
|
||||
<div class="btn-row row-reverse">
|
||||
<button class="btn btn-rounded btn-grey" type="submit" data-i18n-key="dialogs.pair" data-i18n-attrs="text" disabled></button>
|
||||
<button class="btn btn-rounded btn-grey" type="button" data-i18n-key="dialogs.cancel" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
|
@ -291,7 +318,7 @@
|
|||
<span data-i18n-key="dialogs.auto-accept-instructions-2" data-i18n-attrs="text"></span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="center row-reverse button-row">
|
||||
<div class="center row-reverse btn-row">
|
||||
<button class="btn btn-rounded btn-grey" type="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
|
@ -336,7 +363,7 @@
|
|||
<p class="font-subheading center text-center" data-i18n-key="dialogs.enter-room-id-from-another-device" data-i18n-attrs="text"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="center row-reverse button-row">
|
||||
<div class="center row-reverse btn-row">
|
||||
<button class="btn btn-rounded btn-grey" type="submit" data-i18n-key="dialogs.join" data-i18n-attrs="text" disabled></button>
|
||||
<button class="btn btn-rounded btn-grey" type="button" data-i18n-key="dialogs.close" data-i18n-attrs="text" close></button>
|
||||
<button class="btn btn-rounded btn-grey leave-room" type="button" data-i18n-key="dialogs.leave" data-i18n-attrs="text"></button>
|
||||
|
@ -370,8 +397,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="center file-preview"></div>
|
||||
<div class="row-reverse center button-row">
|
||||
<button id="accept-request" class="btn btn-rounded btn-grey" title="ENTER" data-i18n-key="dialogs.accept" data-i18n-attrs="text" autofocus></button>
|
||||
<div class="row-reverse center btn-row">
|
||||
<button id="accept-request" class="btn btn-rounded btn-grey" title="ENTER" data-i18n-key="dialogs.accept" data-i18n-attrs="text" autofocus disabled></button>
|
||||
<button id="decline-request" class="btn btn-rounded btn-grey" title="ESCAPE" data-i18n-key="dialogs.decline" data-i18n-attrs="text"></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
|
@ -402,9 +429,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="center file-preview"></div>
|
||||
<div class="row-reverse center button-row">
|
||||
<div class="row-reverse center btn-row">
|
||||
<button id="share-btn" class="btn btn-rounded btn-grey" data-i18n-key="dialogs.share" data-i18n-attrs="text" hidden></button>
|
||||
<button id="download-btn" class="btn btn-rounded btn-grey" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus></button>
|
||||
<button id="download-btn" class="btn btn-rounded btn-grey" data-i18n-key="dialogs.download" data-i18n-attrs="text" autofocus disabled></button>
|
||||
<button class="btn btn-rounded btn-grey" data-i18n-key="dialogs.close" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
|
@ -430,10 +457,10 @@
|
|||
</div>
|
||||
<div class="row p1">
|
||||
<div class="column fw">
|
||||
<div id="text-input" class="fw textarea" role="textbox" data-i18n-key="dialogs.message" data-i18n-attrs="title placeholder" autofocus contenteditable></div>
|
||||
<div class="fw textarea" role="textbox" data-i18n-key="dialogs.message" data-i18n-attrs="title placeholder" autofocus contenteditable></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-row row-reverse">
|
||||
<div class="btn-row row-reverse">
|
||||
<button class="btn btn-rounded btn-grey" type="submit" title="CTRL/⌘ + ENTER" data-i18n-key="dialogs.send" data-i18n-attrs="text" disabled></button>
|
||||
<button class="btn btn-rounded btn-grey" type="button" title="ESCAPE" data-i18n-key="dialogs.cancel" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
|
@ -459,20 +486,53 @@
|
|||
<div id="text" class="textarea"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-reverse center button-row">
|
||||
<div class="row-reverse center btn-row">
|
||||
<button id="copy" class="btn btn-rounded btn-grey" title="CTRL/⌘ + C" data-i18n-key="dialogs.copy" data-i18n-attrs="text"></button>
|
||||
<button id="close" class="btn btn-rounded btn-grey" title="ESCAPE" data-i18n-key="dialogs.close" data-i18n-attrs="text"></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
</x-background>
|
||||
</x-dialog>
|
||||
<!-- Share Text Dialog -->
|
||||
<x-dialog id="share-text-dialog">
|
||||
<x-background class="full center">
|
||||
<x-paper shadow="2">
|
||||
<div class="row center">
|
||||
<div class="column">
|
||||
<h2 class="center" data-i18n-key="dialogs.share-text-title" data-i18n-attrs="text"></h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row center p1">
|
||||
<div class="column">
|
||||
<div class="text-center">
|
||||
<span data-i18n-key="dialogs.share-text-subtitle" data-i18n-attrs="text"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row p1">
|
||||
<div class="column fw">
|
||||
<div class="fw textarea" role="textbox" data-i18n-key="dialogs.message" data-i18n-attrs="title placeholder" contenteditable></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row center p1">
|
||||
<label class="auto-accept pointer">
|
||||
<span data-i18n-key="dialogs.share-text-checkbox" data-i18n-attrs="text"></span>
|
||||
<input type="checkbox">
|
||||
</label>
|
||||
</div>
|
||||
<div class="btn-row row-reverse">
|
||||
<button class="btn btn-rounded btn-grey" type="submit" title="CTRL/⌘ + ENTER" data-i18n-key="dialogs.approve" data-i18n-attrs="text" autofocus disabled></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
</x-background>
|
||||
</x-dialog>
|
||||
<!-- base64 Paste Dialog -->
|
||||
<x-dialog id="base64-paste-dialog">
|
||||
<x-background class="full center">
|
||||
<x-paper shadow="2">
|
||||
<button class="btn btn-rounded btn-grey center" id="base64-paste-btn" title="Paste"></button>
|
||||
<div class="textarea" placeholder="Paste here to send files" title="CMD/⌘ + V" contenteditable hidden></div>
|
||||
<div class="row-reverse center button-row">
|
||||
<div class="row-reverse center btn-row">
|
||||
<button class="btn btn-rounded btn-grey" data-i18n-key="dialogs.close" data-i18n-attrs="text" close></button>
|
||||
</div>
|
||||
</x-paper>
|
||||
|
@ -480,7 +540,14 @@
|
|||
</x-dialog>
|
||||
<!-- Toast -->
|
||||
<div class="toast-container full center">
|
||||
<x-toast id="toast" class="row center" shadow="1"></x-toast>
|
||||
<x-toast id="toast" shadow="1">
|
||||
<span class="center"></span>
|
||||
<div class="icon-button" data-i18n-key="dialogs.close-toast" data-i18n-attrs="title">
|
||||
<svg class="icon">
|
||||
<use xlink:href="#close-icon"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</x-toast>
|
||||
</div>
|
||||
<!-- About Page -->
|
||||
<x-about id="about" class="full center column">
|
||||
|
@ -555,9 +622,9 @@
|
|||
<symbol id="github">
|
||||
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
|
||||
</symbol>
|
||||
<g id="notifications">
|
||||
<symbol id="notifications">
|
||||
<path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"></path>
|
||||
</g>
|
||||
</symbol>
|
||||
<symbol id="homescreen">
|
||||
<path fill="none" d="M0 0h24v24H0V0z"></path>
|
||||
<path d="M18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM10 15h2V8H5v2h3.59L3 15.59 4.41 17 10 11.41z"></path>
|
||||
|
@ -598,6 +665,18 @@
|
|||
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"></path>
|
||||
</symbol>
|
||||
<symbol id="i-cursor" viewBox="-180 0 640 512">
|
||||
<!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.-->
|
||||
<path d="M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"/>
|
||||
</symbol>
|
||||
<symbol id="font" viewBox="-100 0 640 512">
|
||||
<!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.-->
|
||||
<path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"></path>
|
||||
</symbol>
|
||||
<symbol id="file" viewBox="-130 0 650 530">
|
||||
<!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.-->
|
||||
<path d="M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64z"/>
|
||||
</symbol>
|
||||
|
||||
</svg>
|
||||
<!-- Scripts -->
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"click-to-show": "اضغط للعرض"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "تمّ",
|
||||
"cancel-share-mode": "تمّ",
|
||||
"theme-auto_title": "تكيٌف المظهر مع النظام",
|
||||
"install_title": "تثبيت PairDrop",
|
||||
"theme-dark_title": "إستخدام دائما المظهر المظلم",
|
||||
|
@ -70,12 +70,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "انقر لإرسال الملفات أو انقر لفترة طويلة لإرسال رسالة",
|
||||
"click-to-send": "انقر للإرسال",
|
||||
"activate-paste-mode-and-other-files": "و{{count}} ملفات أخرى",
|
||||
"tap-to-send": "انقر للإرسال",
|
||||
"activate-paste-mode-base": "افتح PairDrop على الأجهزة الأخرى للإرسال",
|
||||
"x-instructions-share-mode_desktop": "انقر للإرسال",
|
||||
"activate-share-mode-and-other-files-plural": "و{{count}} ملفات أخرى",
|
||||
"x-instructions-share-mode_mobile": "انقر للإرسال",
|
||||
"activate-share-mode-base": "افتح PairDrop على الأجهزة الأخرى للإرسال",
|
||||
"no-peers-subtitle": "قم بإقران الأجهزة أو ادخل إلى غرفة عامة لتتمكن من إكتشافها على الشبكات الأخرى",
|
||||
"activate-paste-mode-shared-text": "النص المشترك",
|
||||
"activate-share-mode-shared-text": "النص المشترك",
|
||||
"x-instructions_desktop": "انقر لإرسال الملفات أو انقر بزر الماوس الأيمن لإرسال رسالة",
|
||||
"no-peers-title": "افتح PairDrop على الأجهزة الأخرى لإرسال الملفات",
|
||||
"x-instructions_data-drop-bg": "حرر لتحديد المستلم",
|
||||
|
@ -84,7 +84,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "مُعالجة …",
|
||||
"click-to-send-paste-mode": "انقر للإرسال {{descriptor}}",
|
||||
"click-to-send-share-mode": "انقر للإرسال {{descriptor}}",
|
||||
"click-to-send": "انقر لإرسال الملفات أو انقر بزر الماوس الأيمن لإرسال رسالة",
|
||||
"waiting": "يُرجى الإنتظار…",
|
||||
"connection-hash": "للتحقق من أمان التشفير الشامل، قم بمقارنة رقم الأمان هذا على كلا الجهازين",
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
"theme-auto_title": "Systemstil verwenden",
|
||||
"theme-dark_title": "Immer dunklen Stil verwenden",
|
||||
"theme-light_title": "Immer hellen Stil verwenden",
|
||||
"cancel-paste-mode": "Fertig",
|
||||
"cancel-share-mode": "Fertig",
|
||||
"language-selector_title": "Sprache Wählen",
|
||||
"join-public-room_title": "Öffentlichen Raum temporär betreten"
|
||||
},
|
||||
|
@ -138,14 +138,14 @@
|
|||
"no-peers-title": "Öffne PairDrop auf anderen Geräten, um Dateien zu senden",
|
||||
"no-peers_data-drop-bg": "Hier ablegen, um Empfänger auszuwählen",
|
||||
"no-peers-subtitle": "Kopple Geräte oder besuche einen öffentlichen Raum, damit du in anderen Netzwerken sichtbar bist",
|
||||
"click-to-send": "Klicke zum Senden von",
|
||||
"tap-to-send": "Tippe zum Senden von",
|
||||
"x-instructions-share-mode_desktop": "Klicke zum Senden von",
|
||||
"x-instructions-share-mode_mobile": "Tippe zum Senden von",
|
||||
"x-instructions_data-drop-peer": "Hier ablegen, um an Peer zu senden",
|
||||
"x-instructions_data-drop-bg": "Loslassen um Empfänger auszuwählen",
|
||||
"x-instructions_mobile": "Tippe, um Dateien zu senden oder tippe lange, um Nachrichten zu senden",
|
||||
"activate-paste-mode-base": "Öffne PairDrop auf anderen Geräten zum Senden von",
|
||||
"activate-paste-mode-and-other-files": "und {{count}} anderen Dateien",
|
||||
"activate-paste-mode-shared-text": "freigegebenem Text"
|
||||
"activate-share-mode-base": "Öffne PairDrop auf anderen Geräten zum Senden von",
|
||||
"activate-share-mode-and-other-files-plural": "und {{count}} anderen Dateien",
|
||||
"activate-share-mode-shared-text": "freigegebenem Text"
|
||||
},
|
||||
"document-titles": {
|
||||
"file-transfer-requested": "Dateiübertragung angefordert",
|
||||
|
@ -159,7 +159,7 @@
|
|||
"click-to-send": "Klicke, um Dateien zu senden oder benutze einen Rechtsklick, um eine Textnachricht zu senden",
|
||||
"connection-hash": "Um die Ende-zu-Ende Verschlüsselung zu verifizieren, vergleiche die Sicherheitsnummer auf beiden Geräten",
|
||||
"waiting": "Warte…",
|
||||
"click-to-send-paste-mode": "Klicken um {{descriptor}} zu senden",
|
||||
"click-to-send-share-mode": "Klicken um {{descriptor}} zu senden",
|
||||
"transferring": "Übertragung läuft…",
|
||||
"processing": "Bearbeitung läuft…",
|
||||
"preparing": "Vorbereitung läuft…"
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
"pair-device_title": "Pair your devices permanently",
|
||||
"edit-paired-devices_title": "Edit paired devices",
|
||||
"join-public-room_title": "Join public room temporarily",
|
||||
"cancel-paste-mode": "Done"
|
||||
"cancel-share-mode": "Cancel",
|
||||
"edit-share-mode": "Edit"
|
||||
},
|
||||
"instructions": {
|
||||
"no-peers_data-drop-bg": "Release to select recipient",
|
||||
|
@ -21,11 +22,14 @@
|
|||
"x-instructions_mobile": "Tap to send files or long tap to send a message",
|
||||
"x-instructions_data-drop-peer": "Release to send to peer",
|
||||
"x-instructions_data-drop-bg": "Release to select recipient",
|
||||
"click-to-send": "Click to send",
|
||||
"tap-to-send": "Tap to send",
|
||||
"activate-paste-mode-base": "Open PairDrop on other devices to send",
|
||||
"activate-paste-mode-and-other-files": "and {{count}} other files",
|
||||
"activate-paste-mode-shared-text": "shared text",
|
||||
"x-instructions-share-mode_desktop": "Click to send {{descriptor}}",
|
||||
"x-instructions-share-mode_mobile": "Tap to send {{descriptor}}",
|
||||
"activate-share-mode-base": "Open PairDrop on other devices to send",
|
||||
"activate-share-mode-and-other-file": "and 1 other file",
|
||||
"activate-share-mode-and-other-files-plural": "and {{count}} other files",
|
||||
"activate-share-mode-shared-text": "shared text",
|
||||
"activate-share-mode-shared-file": "shared file",
|
||||
"activate-share-mode-shared-files-plural": "{{count}} shared files",
|
||||
"webrtc-requirement": "To use PairDrop on this instance, WebRTC must be enabled!"
|
||||
},
|
||||
"footer": {
|
||||
|
@ -94,7 +98,12 @@
|
|||
"language-selector-title": "Set Language",
|
||||
"system-language": "System Language",
|
||||
"public-room-qr-code_title": "Click to copy link to public room",
|
||||
"pair-devices-qr-code_title": "Click to copy link to pair this device"
|
||||
"pair-devices-qr-code_title": "Click to copy link to pair this device",
|
||||
"approve": "approve",
|
||||
"share-text-title": "Share Text Message",
|
||||
"share-text-subtitle": "Edit message before sending:",
|
||||
"share-text-checkbox": "Always show this dialog when sharing text",
|
||||
"close-toast_title": "Close notification"
|
||||
},
|
||||
"about": {
|
||||
"close-about_aria-label": "Close About PairDrop",
|
||||
|
@ -156,7 +165,7 @@
|
|||
"message-received-plural": "{{count}} Messages Received"
|
||||
},
|
||||
"peer-ui": {
|
||||
"click-to-send-paste-mode": "Click to send {{descriptor}}",
|
||||
"click-to-send-share-mode": "Click to send {{descriptor}}",
|
||||
"click-to-send": "Click to send files or right click to send a message",
|
||||
"connection-hash": "To verify the security of the end-to-end encryption, compare this security number on both devices",
|
||||
"preparing": "Preparing…",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"language-selector_title": "Configurar Idioma",
|
||||
"about_title": "Sobre PairDrop",
|
||||
"about_aria-label": "Abrir Sobre PairDrop",
|
||||
"cancel-paste-mode": "Listo",
|
||||
"cancel-share-mode": "Listo",
|
||||
"install_title": "Instalar PairDrop",
|
||||
"theme-dark_title": "Siempre usar tema oscuro",
|
||||
"pair-device_title": "Empareja tus dispositivos permanentemente",
|
||||
|
@ -73,12 +73,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Toque para enviar archivos o toque prologádamente para enviar un mensaje",
|
||||
"click-to-send": "Haga clic para enviar",
|
||||
"activate-paste-mode-and-other-files": "y {{count}} archivos diferentes",
|
||||
"tap-to-send": "Toca para enviar",
|
||||
"activate-paste-mode-base": "Abra PairDrop en otros dispositivos para enviar",
|
||||
"x-instructions-share-mode_desktop": "Haga clic para enviar",
|
||||
"activate-share-mode-and-other-files-plural": "y {{count}} archivos diferentes",
|
||||
"x-instructions-share-mode_mobile": "Toca para enviar",
|
||||
"activate-share-mode-base": "Abra PairDrop en otros dispositivos para enviar",
|
||||
"no-peers-subtitle": "Empareje dispositivos o ingrese a una sala pública para que lo puedan encontrar en otras redes",
|
||||
"activate-paste-mode-shared-text": "texto compartido",
|
||||
"activate-share-mode-shared-text": "texto compartido",
|
||||
"x-instructions_desktop": "Haga clic para enviar archivos o haga clic derecho para enviar un mensaje",
|
||||
"no-peers-title": "Abra PairDrop en otros dispositivos para enviar archivos",
|
||||
"x-instructions_data-drop-peer": "Liberar para enviar a un par",
|
||||
|
@ -87,7 +87,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "Procesando…",
|
||||
"click-to-send-paste-mode": "Haga clic para enviar {{descriptor}}",
|
||||
"click-to-send-share-mode": "Haga clic para enviar {{descriptor}}",
|
||||
"click-to-send": "Haga clic para enviar archivos o haga clic derecho para enviar un mensaje",
|
||||
"waiting": "Esperando…",
|
||||
"connection-hash": "Para verificar la seguridad del cifrado de extremo a extremo, compare este número de seguridad en ambos dispositivos",
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"pair-device_title": "Associez vos appareils de manière permanente",
|
||||
"edit-paired-devices_title": "Gérer les appareils couplés",
|
||||
"join-public-room_title": "Rejoindre temporairement la salle publique",
|
||||
"cancel-paste-mode": "Terminé"
|
||||
"cancel-share-mode": "Terminé"
|
||||
},
|
||||
"instructions": {
|
||||
"no-peers_data-drop-bg": "Déposer pour choisir le destinataire",
|
||||
|
@ -21,11 +21,11 @@
|
|||
"x-instructions_mobile": "Appuyez pour envoyer des fichiers ou appuyez longuement pour envoyer un message",
|
||||
"x-instructions_data-drop-peer": "Déposer pour envoyer au destinataire",
|
||||
"x-instructions_data-drop-bg": "Lâcher pour choisir le destinataire",
|
||||
"click-to-send": "Cliquez pour envoyer",
|
||||
"tap-to-send": "Appuyez pour envoyer",
|
||||
"activate-paste-mode-base": "Ouvrez PairDrop sur d'autres appareils pour envoyer",
|
||||
"activate-paste-mode-and-other-files": "et {{count}} autres fichiers",
|
||||
"activate-paste-mode-shared-text": "texte partagé"
|
||||
"x-instructions-share-mode_desktop": "Cliquez pour envoyer",
|
||||
"x-instructions-share-mode_mobile": "Appuyez pour envoyer",
|
||||
"activate-share-mode-base": "Ouvrez PairDrop sur d'autres appareils pour envoyer",
|
||||
"activate-share-mode-and-other-files-plural": "et {{count}} autres fichiers",
|
||||
"activate-share-mode-shared-text": "texte partagé"
|
||||
},
|
||||
"footer": {
|
||||
"known-as": "Vous êtes connu comme :",
|
||||
|
@ -149,7 +149,7 @@
|
|||
"message-received-plural": "{{count}} Messages reçus"
|
||||
},
|
||||
"peer-ui": {
|
||||
"click-to-send-paste-mode": "Cliquez pour envoyer {{descriptor}}",
|
||||
"click-to-send-share-mode": "Cliquez pour envoyer {{descriptor}}",
|
||||
"click-to-send": "Cliquez pour envoyer des fichiers ou faites un clic droit pour envoyer un message",
|
||||
"connection-hash": "Pour vérifier la sécurité du chiffrement de bout en bout, comparez ce numéro de sécurité sur les deux appareils",
|
||||
"preparing": "Préparation…",
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
"room-url-copied-to-clipboard": "Tautan ke ruang publik disalin ke papan klip"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "Selesai",
|
||||
"cancel-share-mode": "Selesai",
|
||||
"theme-auto_title": "Sesuaikan tema dengan sistem",
|
||||
"install_title": "Instal PairDrop",
|
||||
"theme-dark_title": "Selalu gunakan tema gelap",
|
||||
|
@ -73,12 +73,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Ketuk untuk mengirim file atau ketuk lama untuk mengirim pesan",
|
||||
"click-to-send": "Klik untuk mengirim",
|
||||
"activate-paste-mode-and-other-files": "dan {{count}} file lainnya",
|
||||
"tap-to-send": "Ketuk untuk mengirim",
|
||||
"activate-paste-mode-base": "Buka PairDrop di perangkat lain untuk berkirim",
|
||||
"x-instructions-share-mode_desktop": "Klik untuk mengirim",
|
||||
"activate-share-mode-and-other-files-plural": "dan {{count}} file lainnya",
|
||||
"x-instructions-share-mode_mobile": "Ketuk untuk mengirim",
|
||||
"activate-share-mode-base": "Buka PairDrop di perangkat lain untuk berkirim",
|
||||
"no-peers-subtitle": "Pasangkan perangkat atau masuk ke ruang publik agar dapat terdeteksi di jaringan lain",
|
||||
"activate-paste-mode-shared-text": "teks bersama",
|
||||
"activate-share-mode-shared-text": "teks bersama",
|
||||
"x-instructions_desktop": "Klik untuk mengirim file atau klik kanan untuk mengirim pesan",
|
||||
"no-peers-title": "Buka PairDrop di perangkat lain untuk berkirim file",
|
||||
"x-instructions_data-drop-peer": "Lepaskan untuk mengirim ke rekan",
|
||||
|
@ -87,7 +87,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "Memproses…",
|
||||
"click-to-send-paste-mode": "Klik untuk mengirim {{descriptor}}",
|
||||
"click-to-send-share-mode": "Klik untuk mengirim {{descriptor}}",
|
||||
"click-to-send": "Klik untuk mengirim file atau klik kanan untuk mengirim pesan",
|
||||
"waiting": "Menunggu…",
|
||||
"connection-hash": "Untuk memverifikasi keamanan enkripsi end-to-end, bandingkan nomor keamanan ini pada kedua perangkat",
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"known-as": "Sei visibile come:"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "Fatto",
|
||||
"cancel-share-mode": "Fatto",
|
||||
"theme-auto_title": "Adatta il tema al sistema automaticamente",
|
||||
"install_title": "Installa PairDrop",
|
||||
"theme-dark_title": "Usa sempre il tema scuro",
|
||||
|
@ -30,12 +30,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Tocca per inviare file o tocco prolungato per inviare un messaggio",
|
||||
"click-to-send": "Clicca per inviare",
|
||||
"activate-paste-mode-and-other-files": "e altri {{count}} files",
|
||||
"tap-to-send": "Tocca per inviare",
|
||||
"activate-paste-mode-base": "Apri PairDrop su altri dispositivi per inviare",
|
||||
"x-instructions-share-mode_desktop": "Clicca per inviare",
|
||||
"activate-share-mode-and-other-files-plural": "e altri {{count}} files",
|
||||
"x-instructions-share-mode_mobile": "Tocca per inviare",
|
||||
"activate-share-mode-base": "Apri PairDrop su altri dispositivi per inviare",
|
||||
"no-peers-subtitle": "Abbina dispositivi o entra in una stanza pubblica per essere rilevabile su altre reti",
|
||||
"activate-paste-mode-shared-text": "testo condiviso",
|
||||
"activate-share-mode-shared-text": "testo condiviso",
|
||||
"x-instructions_desktop": "Clicca per inviare files o usa il tasto destro per inviare un messaggio",
|
||||
"no-peers-title": "Apri PairDrop su altri dispositivi per inviare files",
|
||||
"x-instructions_data-drop-peer": "Rilascia per inviare al peer",
|
||||
|
@ -139,7 +139,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "Elaborazione…",
|
||||
"click-to-send-paste-mode": "Clicca per inviare {{descriptor}}",
|
||||
"click-to-send-share-mode": "Clicca per inviare {{descriptor}}",
|
||||
"click-to-send": "Clicca per inviare files o tasto destro per inviare un messaggio",
|
||||
"waiting": "In attesa…",
|
||||
"connection-hash": "Per verificare la sicurezza della crittografia end-to-end, confronta questo numero di sicurezza su entrambi i dispositivi",
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
"room-url-copied-to-clipboard": "パブリックルームへのリンクをクリップボードにコピーしました"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "完了",
|
||||
"cancel-share-mode": "完了",
|
||||
"theme-auto_title": "テーマをシステムの設定に自動的に合わせる",
|
||||
"install_title": "PairDropをインストール",
|
||||
"theme-dark_title": "常にダークテーマを使用する",
|
||||
|
@ -73,12 +73,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "タップしてファイルを送信または長押ししてメッセージを送信します",
|
||||
"click-to-send": "クリックして送信",
|
||||
"activate-paste-mode-and-other-files": "とその他{{count}}個のファイル",
|
||||
"tap-to-send": "タップして送信",
|
||||
"activate-paste-mode-base": "他のデバイスでPairDropを開いて送信します",
|
||||
"x-instructions-share-mode_desktop": "クリックして送信",
|
||||
"activate-share-mode-and-other-files-plural": "とその他{{count}}個のファイル",
|
||||
"x-instructions-share-mode_mobile": "タップして送信",
|
||||
"activate-share-mode-base": "他のデバイスでPairDropを開いて送信します",
|
||||
"no-peers-subtitle": "デバイスをペア設定するかパブリックルームに参加すると、他のネットワーク上からも見つけられるようになります",
|
||||
"activate-paste-mode-shared-text": "共有されたテキスト",
|
||||
"activate-share-mode-shared-text": "共有されたテキスト",
|
||||
"x-instructions_desktop": "左クリックしてファイルを送信または右クリックしてメッセージを送信します",
|
||||
"no-peers-title": "他のデバイスでPairDropを開いてファイルを送信します",
|
||||
"x-instructions_data-drop-peer": "離すとこの相手に送信します",
|
||||
|
@ -87,7 +87,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "処理中…",
|
||||
"click-to-send-paste-mode": "クリックして{{descriptor}}を送信",
|
||||
"click-to-send-share-mode": "クリックして{{descriptor}}を送信",
|
||||
"click-to-send": "クリックしてファイルを送信または右クリックしてメッセージを送信します",
|
||||
"waiting": "待機中…",
|
||||
"connection-hash": "エンドツーエンド暗号化のセキュリティを確認するには、両方のデバイスのセキュリティナンバーを確認します",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"theme-light_title": "Alltid bruk lys drakt",
|
||||
"theme-dark_title": "Alltid bruk mørk drakt",
|
||||
"notification_title": "Skru på merknader",
|
||||
"cancel-paste-mode": "Ferdig",
|
||||
"cancel-share-mode": "Ferdig",
|
||||
"install_title": "Installer PairDrop",
|
||||
"pair-device_title": "Sammenkoble enhet"
|
||||
},
|
||||
|
@ -25,15 +25,15 @@
|
|||
"x-instructions_desktop": "Klikk for å sende filer, eller høyreklikk for å sende en melding",
|
||||
"x-instructions_mobile": "Trykk for å sende filer, eller lang-trykk for å sende en melding",
|
||||
"x-instructions_data-drop-bg": "Slipp for å velge mottager",
|
||||
"click-to-send": "Klikk for å sende",
|
||||
"x-instructions-share-mode_desktop": "Klikk for å sende",
|
||||
"no-peers_data-drop-bg": "Slipp for å velge mottager",
|
||||
"no-peers-title": "Åpne PairDrop på andre enheter for å sende filer",
|
||||
"no-peers-subtitle": "Sammenkoble enheter for å kunne oppdages på andre nettverk",
|
||||
"x-instructions_data-drop-peer": "Slipp for å sende til likemann",
|
||||
"tap-to-send": "Trykk for å sende",
|
||||
"activate-paste-mode-base": "Åpne PairDrop på andre enheter for å sende",
|
||||
"activate-paste-mode-and-other-files": "og {{count}} andre filer",
|
||||
"activate-paste-mode-shared-text": "delt tekst"
|
||||
"x-instructions-share-mode_mobile": "Trykk for å sende",
|
||||
"activate-share-mode-base": "Åpne PairDrop på andre enheter for å sende",
|
||||
"activate-share-mode-and-other-files-plural": "og {{count}} andre filer",
|
||||
"activate-share-mode-shared-text": "delt tekst"
|
||||
},
|
||||
"dialogs": {
|
||||
"input-key-on-this-device": "Skriv inn denne nøkkelen på en annen enhet",
|
||||
|
@ -132,7 +132,7 @@
|
|||
"processing": "Behandler …",
|
||||
"transferring": "Overfører …",
|
||||
"click-to-send": "Klikk for å sende filer, eller høyreklikk for å sende en melding",
|
||||
"click-to-send-paste-mode": "Klikk for å sende {{descriptor}}",
|
||||
"click-to-send-share-mode": "Klikk for å sende {{descriptor}}",
|
||||
"connection-hash": "Sammenlign dette sikkerhetsnummeret på begge enhetene for å bekrefte ende-til-ende -krypteringen."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"click-to-show": "Klik om te tonen"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "Klaar",
|
||||
"cancel-share-mode": "Klaar",
|
||||
"theme-auto_title": "Gebruik systeemstijl",
|
||||
"install_title": "PairDrop installeren",
|
||||
"theme-dark_title": "Altijd donkere modus gebruiken",
|
||||
|
@ -70,12 +70,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Tik om bestanden te versturen of houdt vast om een bericht te sturen",
|
||||
"click-to-send": "Klik om te verzenden",
|
||||
"activate-paste-mode-and-other-files": "en {{count}} andere bestanden",
|
||||
"tap-to-send": "Tik om te verzenden",
|
||||
"activate-paste-mode-base": "Open PairDrop op andere apparaten om te verzenden",
|
||||
"x-instructions-share-mode_desktop": "Klik om te verzenden",
|
||||
"activate-share-mode-and-other-files-plural": "en {{count}} andere bestanden",
|
||||
"x-instructions-share-mode_mobile": "Tik om te verzenden",
|
||||
"activate-share-mode-base": "Open PairDrop op andere apparaten om te verzenden",
|
||||
"no-peers-subtitle": "Koppel apparaten of betreed een openbare ruimte om op andere netwerken zichtbaar te worden",
|
||||
"activate-paste-mode-shared-text": "gedeelde tekst",
|
||||
"activate-share-mode-shared-text": "gedeelde tekst",
|
||||
"x-instructions_desktop": "Klik om bestanden te versturen of rechtsklik om een bericht te sturen",
|
||||
"no-peers-title": "Open PairDrop op andere apparaten om bestanden te versturen",
|
||||
"x-instructions_data-drop-peer": "Laat los om naar peer te versturen",
|
||||
|
@ -84,7 +84,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "Verwerken…",
|
||||
"click-to-send-paste-mode": "Klik om {{descriptor}} te versturen",
|
||||
"click-to-send-share-mode": "Klik om {{descriptor}} te versturen",
|
||||
"click-to-send": "Klik om bestanden te versturen of rechtsklik om een bericht te versturen",
|
||||
"waiting": "Wachten…",
|
||||
"connection-hash": "Vergelijk dit veiligheidsnummer op beide apparaten, om de beveiliging van de eind-tot-eind versleuteling te verifiëren",
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
"room-url-copied-to-clipboard": "Link către sala publică copiat în clipboard"
|
||||
},
|
||||
"header": {
|
||||
"cancel-paste-mode": "Gata",
|
||||
"cancel-share-mode": "Gata",
|
||||
"theme-auto_title": "Adaptează tema la sistem",
|
||||
"install_title": "Instalează PairDrop",
|
||||
"theme-dark_title": "Utilizați mereu tema întunecoasă",
|
||||
|
@ -73,12 +73,12 @@
|
|||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Atingeți pentru a trimite fișiere sau atingeți lung pentru a trimite un mesaj",
|
||||
"click-to-send": "Clic pentru a trimite",
|
||||
"activate-paste-mode-and-other-files": "și {{count}} alte fișiere",
|
||||
"tap-to-send": "Atinge pentru a trimite",
|
||||
"activate-paste-mode-base": "Deschideți PairDrop pe alte dispozitive pentru a trimite",
|
||||
"x-instructions-share-mode_desktop": "Clic pentru a trimite",
|
||||
"activate-share-mode-and-other-files-plural": "și {{count}} alte fișiere",
|
||||
"x-instructions-share-mode_mobile": "Atinge pentru a trimite",
|
||||
"activate-share-mode-base": "Deschideți PairDrop pe alte dispozitive pentru a trimite",
|
||||
"no-peers-subtitle": "Împerecheați dispozitive sau intrați într-o cameră publică pentru a fi descoperit în alte rețele",
|
||||
"activate-paste-mode-shared-text": "text partajat",
|
||||
"activate-share-mode-shared-text": "text partajat",
|
||||
"x-instructions_desktop": "Dați clic pentru a trimite fișiere sau dați clic dreapta pentru a trimite un mesaj",
|
||||
"no-peers-title": "Deschideți PairDrop pe alte dispozitive pentru a trimite fișiere",
|
||||
"x-instructions_data-drop-peer": "Eliberare pentru a trimite la peer",
|
||||
|
@ -87,7 +87,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "Procesarea…",
|
||||
"click-to-send-paste-mode": "Apasă pentru a trimite {{descriptor}}",
|
||||
"click-to-send-share-mode": "Apasă pentru a trimite {{descriptor}}",
|
||||
"click-to-send": "Apasă pentru a trimite fișiere sau apasă cu butonul din dreapta pentru a trimite un mesaj",
|
||||
"waiting": "Așteptând…",
|
||||
"connection-hash": "Pentru a verifica securitatea criptării end-to-end, comparați acest număr de securitate pe ambele dispozitive",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"about_aria-label": "Открыть страницу \"О сервисе\"",
|
||||
"pair-device_title": "Связать ваши устройства навсегда",
|
||||
"install_title": "Установить PairDrop",
|
||||
"cancel-paste-mode": "Выполнено",
|
||||
"cancel-share-mode": "Выполнено",
|
||||
"edit-paired-devices_title": "Редактировать связанные устройства",
|
||||
"notification_title": "Включить уведомления",
|
||||
"about_title": "О сервисе",
|
||||
|
@ -16,16 +16,16 @@
|
|||
"instructions": {
|
||||
"x-instructions_desktop": "Нажмите, чтобы отправить файлы, или щелкните правой кнопкой мыши, чтобы отправить сообщение",
|
||||
"no-peers_data-drop-bg": "Отпустите, чтобы выбрать получателя",
|
||||
"click-to-send": "Нажмите, чтобы отправить",
|
||||
"x-instructions-share-mode_desktop": "Нажмите, чтобы отправить",
|
||||
"x-instructions_data-drop-bg": "Отпустите, чтобы выбрать получателя",
|
||||
"tap-to-send": "Прикоснитесь, чтобы отправить",
|
||||
"x-instructions-share-mode_mobile": "Прикоснитесь, чтобы отправить",
|
||||
"x-instructions_data-drop-peer": "Отпустите, чтобы послать узлу",
|
||||
"x-instructions_mobile": "Прикоснитесь коротко, чтобы отправить файлы, или долго, чтобы отправить сообщение",
|
||||
"no-peers-title": "Откройте PairDrop на других устройствах, чтобы отправить файлы",
|
||||
"no-peers-subtitle": "Свяжите устройства или войдите в публичную комнату, чтобы вас могли обнаружить из других сетей",
|
||||
"activate-paste-mode-and-other-files": "и {{count}} других файлов",
|
||||
"activate-paste-mode-base": "Откройте PairDrop на других устройствах, чтобы отправить",
|
||||
"activate-paste-mode-shared-text": "общий текст"
|
||||
"activate-share-mode-and-other-files-plural": "и {{count}} других файлов",
|
||||
"activate-share-mode-base": "Откройте PairDrop на других устройствах, чтобы отправить",
|
||||
"activate-share-mode-shared-text": "общий текст"
|
||||
},
|
||||
"footer": {
|
||||
"display-name_data-placeholder": "Загрузка…",
|
||||
|
@ -148,7 +148,7 @@
|
|||
"room-url-copied-to-clipboard": "Ссылка на публичную комнату была скопирована в буфер обмена"
|
||||
},
|
||||
"peer-ui": {
|
||||
"click-to-send-paste-mode": "Нажмите, чтобы отправить {{descriptor}}",
|
||||
"click-to-send-share-mode": "Нажмите, чтобы отправить {{descriptor}}",
|
||||
"preparing": "Подготовка…",
|
||||
"transferring": "Передача…",
|
||||
"processing": "Обработка…",
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
"install_title": "PairDrop'u Yükle",
|
||||
"pair-device_title": "Cihazı kalıcı olarak eşle",
|
||||
"edit-paired-devices_title": "Eşleştirilmiş cihazları düzenle",
|
||||
"cancel-paste-mode": "Bitti",
|
||||
"cancel-share-mode": "Bitti",
|
||||
"join-public-room_title": "Geçici olarak genel odaya katılın",
|
||||
"language-selector_title": "Dili Seç"
|
||||
},
|
||||
"instructions": {
|
||||
"no-peers_data-drop-bg": "Alıcıyı seçmek için bırakın",
|
||||
"x-instructions_mobile": "Dosya göndermek için dokun veya mesaj göndermek için uzun dokun",
|
||||
"click-to-send": "Göndermek için tıkla",
|
||||
"activate-paste-mode-and-other-files": "ve {{count}} diğer dosya",
|
||||
"tap-to-send": "Göndermek için dokun",
|
||||
"activate-paste-mode-base": "Göndermek için diğer cihazlarda PairDrop'u açın",
|
||||
"x-instructions-share-mode_desktop": "Göndermek için tıkla",
|
||||
"activate-share-mode-and-other-files-plural": "ve {{count}} diğer dosya",
|
||||
"x-instructions-share-mode_mobile": "Göndermek için dokun",
|
||||
"activate-share-mode-base": "Göndermek için diğer cihazlarda PairDrop'u açın",
|
||||
"no-peers-subtitle": "Diğer ağlarda keşfedilebilir olmak için cihazları eşleştirin veya ortak bir odaya girin",
|
||||
"activate-paste-mode-shared-text": "paylaşılan metin",
|
||||
"activate-share-mode-shared-text": "paylaşılan metin",
|
||||
"x-instructions_desktop": "Dosya göndermek için tıkla ya da mesaj göndermek için sağ tıkla",
|
||||
"no-peers-title": "Dosya göndermek için diğer cihazlarda PairDrop'u açın",
|
||||
"x-instructions_data-drop-peer": "Göndermek için serbest bırak",
|
||||
|
@ -139,7 +139,7 @@
|
|||
},
|
||||
"peer-ui": {
|
||||
"processing": "İşleniyor…",
|
||||
"click-to-send-paste-mode": "{{descriptor}} göndermek için tıkla",
|
||||
"click-to-send-share-mode": "{{descriptor}} göndermek için tıkla",
|
||||
"click-to-send": "Dosya göndermek için tıkla veya mesaj göndermek için sağ tıkla",
|
||||
"waiting": "Bekleniyor…",
|
||||
"connection-hash": "Uçtan uca şifrelemenin güvenliğini doğrulamak için her iki cihazda da bu güvenlik numarasını karşılaştırın",
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
"theme-dark_title": "总是使用暗黑主题",
|
||||
"notification_title": "开启通知",
|
||||
"edit-paired-devices_title": "管理已配对设备",
|
||||
"cancel-paste-mode": "完成",
|
||||
"cancel-share-mode": "完成",
|
||||
"join-public-room_title": "暂时加入公共房间",
|
||||
"language-selector_title": "设置语言"
|
||||
},
|
||||
|
@ -21,11 +21,11 @@
|
|||
"x-instructions_desktop": "点击以发送文件 或 右键来发送信息",
|
||||
"x-instructions_mobile": "轻触以发送文件 或 长按来发送信息",
|
||||
"x-instructions_data-drop-bg": "释放来选择接收者",
|
||||
"click-to-send": "点击发送",
|
||||
"tap-to-send": "轻触发送",
|
||||
"activate-paste-mode-base": "在其他设备上打开 PairDrop 来发送",
|
||||
"activate-paste-mode-and-other-files": "和 {{count}} 个其他的文件",
|
||||
"activate-paste-mode-shared-text": "分享文本"
|
||||
"x-instructions-share-mode_desktop": "点击发送",
|
||||
"x-instructions-share-mode_mobile": "轻触发送",
|
||||
"activate-share-mode-base": "在其他设备上打开 PairDrop 来发送",
|
||||
"activate-share-mode-and-other-files-plural": "和 {{count}} 个其他的文件",
|
||||
"activate-share-mode-shared-text": "分享文本"
|
||||
},
|
||||
"footer": {
|
||||
"routed": "途径服务器",
|
||||
|
@ -155,7 +155,7 @@
|
|||
"image-transfer-requested": "图片传输请求"
|
||||
},
|
||||
"peer-ui": {
|
||||
"click-to-send-paste-mode": "点击发送 {{descriptor}}",
|
||||
"click-to-send-share-mode": "点击发送 {{descriptor}}",
|
||||
"click-to-send": "点击以发送文件 或 右键来发送信息",
|
||||
"connection-hash": "若要验证端到端加密的安全性,请在两个设备上比较此安全编号",
|
||||
"preparing": "准备中…",
|
||||
|
|
|
@ -167,6 +167,7 @@ class PairDrop {
|
|||
const clearDevicesDialog = new EditPairedDevicesDialog();
|
||||
const publicRoomDialog = new PublicRoomDialog();
|
||||
const base64ZipDialog = new Base64ZipDialog();
|
||||
const shareTextDialog = new ShareTextDialog();
|
||||
const toast = new Toast();
|
||||
const notifications = new Notifications();
|
||||
const networkStatusUI = new NetworkStatusUI();
|
||||
|
|
|
@ -433,47 +433,6 @@ class Peer {
|
|||
: false;
|
||||
}
|
||||
|
||||
getResizedImageDataUrl(file, width = undefined, height = undefined, quality = 0.7) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let image = new Image();
|
||||
image.src = URL.createObjectURL(file);
|
||||
image.onload = _ => {
|
||||
let imageWidth = image.width;
|
||||
let imageHeight = image.height;
|
||||
let canvas = document.createElement('canvas');
|
||||
|
||||
// resize the canvas and draw the image data into it
|
||||
if (width && height) {
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
}
|
||||
else if (width) {
|
||||
canvas.width = width;
|
||||
canvas.height = Math.floor(imageHeight * width / imageWidth)
|
||||
}
|
||||
else if (height) {
|
||||
canvas.width = Math.floor(imageWidth * height / imageHeight);
|
||||
canvas.height = height;
|
||||
}
|
||||
else {
|
||||
canvas.width = imageWidth;
|
||||
canvas.height = imageHeight
|
||||
}
|
||||
|
||||
var ctx = canvas.getContext("2d");
|
||||
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
|
||||
|
||||
let dataUrl = canvas.toDataURL("image/jpeg", quality);
|
||||
resolve(dataUrl);
|
||||
}
|
||||
image.onerror = _ => reject(`Could not create an image thumbnail from type ${file.type}`);
|
||||
})
|
||||
.then(dataUrl => {
|
||||
return dataUrl;
|
||||
})
|
||||
.catch(e => console.error(e));
|
||||
}
|
||||
|
||||
async requestFileTransfer(files) {
|
||||
let header = [];
|
||||
let totalSize = 0;
|
||||
|
@ -491,9 +450,14 @@ class Peer {
|
|||
|
||||
Events.fire('set-progress', {peerId: this._peerId, progress: 0.8, status: 'prepare'})
|
||||
|
||||
let dataUrl = '';
|
||||
let dataUrl;
|
||||
|
||||
if (files[0].type.split('/')[0] === 'image') {
|
||||
dataUrl = await this.getResizedImageDataUrl(files[0], 400, null, 0.9);
|
||||
try {
|
||||
dataUrl = await getResizedImageDataUrl(files[0], 400, null, 0.9);
|
||||
} catch (e) {
|
||||
dataUrl = '';
|
||||
}
|
||||
}
|
||||
|
||||
Events.fire('set-progress', {peerId: this._peerId, progress: 1, status: 'prepare'})
|
||||
|
|
|
@ -241,6 +241,9 @@ class BackgroundCanvas {
|
|||
Events.on('resize', _ => this.init());
|
||||
Events.on('redraw-canvas', _ => this.init());
|
||||
Events.on('translation-loaded', _ => this.init());
|
||||
|
||||
// ShareMode
|
||||
Events.on('share-mode-changed', e => this.onShareModeChanged(e.detail.active));
|
||||
}
|
||||
|
||||
_fadeIn() {
|
||||
|
@ -263,16 +266,24 @@ class BackgroundCanvas {
|
|||
this.x0 = this.w / 2;
|
||||
this.y0 = this.h - this.offset;
|
||||
this.dw = Math.round(Math.max(this.w, this.h, 1000) / 13);
|
||||
this.baseColor = '165, 165, 165';
|
||||
this.baseOpacity = 0.3;
|
||||
|
||||
this.drawCircles(this.cCtx);
|
||||
}
|
||||
|
||||
onShareModeChanged(active) {
|
||||
this.baseColor = active ? '165, 165, 255' : '165, 165, 165';
|
||||
this.baseOpacity = active ? 0.5 : 0.3;
|
||||
this.drawCircles(this.cCtx);
|
||||
}
|
||||
|
||||
|
||||
drawCircle(ctx, radius) {
|
||||
ctx.beginPath();
|
||||
ctx.lineWidth = 2;
|
||||
let opacity = Math.max(0, 0.3 * (1 - 1.2 * radius / Math.max(this.w, this.h)));
|
||||
ctx.strokeStyle = `rgba(165, 165, 165, ${opacity})`;
|
||||
let opacity = Math.max(0, this.baseOpacity * (1 - 1.2 * radius / Math.max(this.w, this.h)));
|
||||
ctx.strokeStyle = `rgba(${this.baseColor}, ${opacity})`;
|
||||
ctx.arc(this.x0, this.y0, radius, 0, 2 * Math.PI);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -458,3 +458,40 @@ function base64ToArrayBuffer(base64) {
|
|||
}
|
||||
return bytes.buffer;
|
||||
}
|
||||
|
||||
function getResizedImageDataUrl(file, width = undefined, height = undefined, quality = 0.7) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let image = new Image();
|
||||
image.src = URL.createObjectURL(file);
|
||||
image.onload = _ => {
|
||||
let imageWidth = image.width;
|
||||
let imageHeight = image.height;
|
||||
let canvas = document.createElement('canvas');
|
||||
|
||||
// resize the canvas and draw the image data into it
|
||||
if (width && height) {
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
}
|
||||
else if (width) {
|
||||
canvas.width = width;
|
||||
canvas.height = Math.floor(imageHeight * width / imageWidth)
|
||||
}
|
||||
else if (height) {
|
||||
canvas.width = Math.floor(imageWidth * height / imageHeight);
|
||||
canvas.height = height;
|
||||
}
|
||||
else {
|
||||
canvas.width = imageWidth;
|
||||
canvas.height = imageHeight
|
||||
}
|
||||
|
||||
let ctx = canvas.getContext("2d");
|
||||
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
|
||||
|
||||
let dataUrl = canvas.toDataURL("image/jpeg", quality);
|
||||
resolve(dataUrl);
|
||||
}
|
||||
image.onerror = _ => reject(`Could not create an image thumbnail from type ${file.type}`);
|
||||
})
|
||||
}
|
|
@ -1,20 +1,5 @@
|
|||
/* All styles in this sheet are not needed on page load and deferred */
|
||||
|
||||
/* Paste mode */
|
||||
#cancel-paste-mode {
|
||||
z-index: 21;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 56px;
|
||||
background-color: var(--primary-color);
|
||||
color: rgb(238, 238, 238);
|
||||
}
|
||||
|
||||
/* Text Input */
|
||||
.textarea {
|
||||
box-sizing: border-box;
|
||||
|
@ -22,7 +7,7 @@
|
|||
outline: none;
|
||||
padding: 16px 24px;
|
||||
border-radius: 12px;
|
||||
font-size: inherit;
|
||||
font-size: 16px;
|
||||
font-family: inherit;
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
@ -33,6 +18,10 @@
|
|||
word-wrap: anywhere;
|
||||
}
|
||||
|
||||
.textarea:before {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Peers */
|
||||
|
||||
x-peers:has(> x-peer) {
|
||||
|
@ -529,30 +518,19 @@ x-dialog hr {
|
|||
}
|
||||
|
||||
/* button row*/
|
||||
x-paper > .button-row {
|
||||
height: 50px;
|
||||
margin: 5px 10px 10px;
|
||||
}
|
||||
|
||||
x-paper > .button-row > .btn {
|
||||
.btn-row > .btn {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
html:not([dir="rtl"]) x-paper > .button-row > .btn:not(:first-child) {
|
||||
.btn-row > .btn {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
html:not([dir="rtl"]) x-paper > .button-row > .btn:not(:last-child) {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
html[dir="rtl"] x-paper > .button-row > .btn:not(:first-child) {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
html[dir="rtl"] x-paper > .button-row > .btn:not(:last-child) {
|
||||
margin-left: 5px;
|
||||
x-paper > .btn-row {
|
||||
height: 50px;
|
||||
margin: 5px 10px 10px;
|
||||
}
|
||||
|
||||
.language-buttons > button > span {
|
||||
|
@ -597,7 +575,10 @@ x-dialog .dialog-subheader {
|
|||
|
||||
#send-text-dialog,
|
||||
#receive-text-dialog {
|
||||
font-size: 16px; /* prevents auto-zoom on edit */
|
||||
font-size: 16px; /* prevents auto-zoom on edit */
|
||||
}
|
||||
|
||||
.textarea.overflowing {
|
||||
--shadow-color-rgb: var(--shadow-color-secondary-rgb);
|
||||
--shadow-color-cover-rgb: var(--shadow-color-secondary-cover-rgb);
|
||||
}
|
||||
|
@ -607,10 +588,6 @@ x-dialog .dialog-subheader {
|
|||
--shadow-color-cover-rgb: var(--shadow-color-dialog-cover-rgb);
|
||||
}
|
||||
|
||||
#text-input:before {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Receive Text Dialog */
|
||||
|
||||
#receive-text-dialog #text {
|
||||
|
@ -634,6 +611,69 @@ x-dialog .dialog-subheader {
|
|||
pointer-events: none;
|
||||
}
|
||||
|
||||
.share-panel {
|
||||
max-width: calc(100vw - 20px);
|
||||
overflow: hidden;
|
||||
background-color: var(--primary-color);
|
||||
color: white;
|
||||
background-image: linear-gradient(225deg, var(--accent-color) 0%, color-mix(in srgb, var(--accent-color) 60%, black) 100%);
|
||||
}
|
||||
|
||||
.share-panel > div {
|
||||
margin: 4px 2px;
|
||||
}
|
||||
|
||||
.share-panel > div:not(:first-child) {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.share-panel .thumb > div {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background: white;
|
||||
border-radius: 6px;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.share-panel .text-thumb svg {
|
||||
width: 18px;
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
.share-panel .file-thumb svg {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
.share-panel .thumb .image-thumb {
|
||||
background-size: cover;
|
||||
border-radius: 6px;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.share-descriptor {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.share-descriptor > span {
|
||||
display: inline;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
height: 20px;
|
||||
max-width: 15rem;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.share-descriptor > span:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.share-descriptor > span:not(:first-child) {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
#base64-paste-btn,
|
||||
#base64-paste-dialog .textarea {
|
||||
width: 100%;
|
||||
|
|
|
@ -34,6 +34,10 @@ html {
|
|||
padding: 10px;
|
||||
}
|
||||
|
||||
.cursive {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.row-reverse {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
|
@ -86,29 +90,29 @@ header {
|
|||
right: 0;
|
||||
}
|
||||
|
||||
header > * {
|
||||
header > .row-reverse > * {
|
||||
margin-left: 4px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
header > div {
|
||||
header > .row-reverse > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-self: flex-start;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
header > div .icon-button {
|
||||
header > .row-reverse > div .icon-button {
|
||||
height: 40px;
|
||||
transition: all 300ms;
|
||||
}
|
||||
|
||||
header > div > div {
|
||||
header > .row-reverse > div > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
header > div:not(:hover) .icon-button:not(.selected) {
|
||||
header > .row-reverse > div:not(:hover) .icon-button:not(.selected) {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
@ -127,22 +131,22 @@ header > div:not(:hover) .icon-button:not(.selected) {
|
|||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
header > div:hover .icon-button.selected::before {
|
||||
header > .row-reverse > div:hover .icon-button.selected::before {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
@media (pointer: coarse) {
|
||||
header > div:hover .icon-button.selected:hover::before {
|
||||
header > .row-reverse > div:hover .icon-button.selected:hover::before {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
header > div .icon-button:not(.selected) {
|
||||
header > .row-reverse > div .icon-button:not(.selected) {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
header > div > div {
|
||||
header > .row-reverse > div > div {
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
|
@ -201,6 +205,10 @@ h3 {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.text-white {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.font-body1,
|
||||
body {
|
||||
font-size: 14px;
|
||||
|
@ -382,30 +390,35 @@ footer .logo {
|
|||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.discovery-wrapper {
|
||||
font-size: 14px;
|
||||
margin: 15px auto auto;
|
||||
.border {
|
||||
border: 2px solid var(--border-color);
|
||||
}
|
||||
|
||||
.panel {
|
||||
font-size: 14px;
|
||||
padding: 2px;
|
||||
background-color: rgb(var(--bg-color));
|
||||
transition: background-color 0.5s ease;
|
||||
min-height: 24px;
|
||||
}
|
||||
|
||||
.discovery-wrapper.column {
|
||||
.panel.column {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.discovery-wrapper.row {
|
||||
.panel.row {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/*You can be discovered wrapper*/
|
||||
.discovery-wrapper > div:first-of-type {
|
||||
.panel > div:first-of-type {
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
/* You can be discovered wrapper */
|
||||
.discovery-wrapper {
|
||||
margin: 15px auto auto;
|
||||
}
|
||||
|
||||
.discovery-wrapper .badge {
|
||||
word-break: keep-all;
|
||||
|
@ -447,8 +460,11 @@ footer .logo {
|
|||
text-align: left;
|
||||
border: none;
|
||||
outline: none;
|
||||
height: 20px;
|
||||
max-width: 15em;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
cursor: text;
|
||||
margin-bottom: -6px;
|
||||
padding-bottom: 0.1rem;
|
||||
|
@ -456,11 +472,10 @@ footer .logo {
|
|||
border-right: solid 1rem transparent;
|
||||
border-left: solid 1rem transparent;
|
||||
background-clip: padding-box;
|
||||
overflow: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#edit-pen {
|
||||
.edit-pen {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-bottom: -2px;
|
||||
|
@ -468,16 +483,16 @@ footer .logo {
|
|||
}
|
||||
|
||||
html:not([dir="rtl"]) #display-name,
|
||||
html:not([dir="rtl"]) #edit-pen {
|
||||
html:not([dir="rtl"]) .edit-pen {
|
||||
margin-left: -1rem;
|
||||
}
|
||||
|
||||
html[dir="rtl"] #display-name,
|
||||
html[dir="rtl"] #edit-pen {
|
||||
html[dir="rtl"] .edit-pen {
|
||||
margin-right: -1rem;
|
||||
}
|
||||
|
||||
html[dir="rtl"] #edit-pen {
|
||||
html[dir="rtl"] .edit-pen {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
|
@ -505,6 +520,11 @@ x-dialog:not([show]) x-background {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
.btn-small {
|
||||
font-size: 12px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.btn[disabled] {
|
||||
color: var(--btn-disabled-color);
|
||||
cursor: not-allowed;
|
||||
|
@ -551,14 +571,31 @@ x-dialog:not([show]) x-background {
|
|||
opacity: 0.2;
|
||||
}
|
||||
|
||||
.btn-round {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.btn-rounded {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.btn-small.btn-rounded {
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.btn-grey {
|
||||
background-color: var(--bg-color-secondary);
|
||||
}
|
||||
|
||||
.btn-dark {
|
||||
background-color: #262628;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--primary-color);
|
||||
color: rgb(var(--bg-color));
|
||||
}
|
||||
|
||||
button::-moz-focus-inner {
|
||||
border: 0;
|
||||
}
|
||||
|
@ -686,6 +723,8 @@ canvas.circles {
|
|||
}
|
||||
|
||||
x-toast {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
position: absolute;
|
||||
min-height: 48px;
|
||||
top: 50px;
|
||||
|
@ -695,7 +734,7 @@ x-toast {
|
|||
color: var(--dialog-bg-color);
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
padding: 8px 24px;
|
||||
padding: 8px;
|
||||
z-index: 40;
|
||||
transition: opacity 200ms, transform 300ms ease-out;
|
||||
cursor: default;
|
||||
|
@ -704,9 +743,17 @@ x-toast {
|
|||
pointer-events: all;
|
||||
}
|
||||
|
||||
x-toast:not([show]):not(:hover) {
|
||||
x-toast.top-row {
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
x-toast:not([show]) {
|
||||
opacity: 0;
|
||||
transform: translateY(-100px);
|
||||
transform: translateY(calc(-100% + -55px));
|
||||
}
|
||||
|
||||
x-toast span {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
/* Instructions */
|
||||
|
@ -735,9 +782,6 @@ x-instructions[drop-bg]:not([drop-peer]):before {
|
|||
content: attr(data-drop-bg);
|
||||
}
|
||||
|
||||
x-instructions p {
|
||||
display: none;
|
||||
}
|
||||
|
||||
x-peers:empty~x-instructions {
|
||||
opacity: 0 !important;
|
||||
|
@ -864,7 +908,7 @@ body.dark-theme {
|
|||
--badge-color: #a5a5a5;
|
||||
|
||||
--shadow-color-secondary-rgb: 0,0,0;
|
||||
--shadow-color-secondary-cover-rgb: 242,242,242;
|
||||
--shadow-color-secondary-cover-rgb: 255,255,255;
|
||||
--shadow-color-dialog-rgb: 0,0,0;
|
||||
--shadow-color-dialog-cover-rgb: 242,242,242;
|
||||
}
|
||||
|
@ -877,28 +921,6 @@ body {
|
|||
transition: background-color 0.5s ease;
|
||||
}
|
||||
|
||||
x-dialog x-paper {
|
||||
background-color: var(--dialog-bg-color);
|
||||
}
|
||||
|
||||
.textarea {
|
||||
color: rgb(var(--text-color)) !important;
|
||||
background-color: var(--bg-color-secondary) !important;
|
||||
}
|
||||
|
||||
.textarea * {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
color: unset !important;
|
||||
background: unset !important;
|
||||
border: unset !important;
|
||||
opacity: unset !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-style: unset !important;
|
||||
font-weight: unset !important;
|
||||
}
|
||||
|
||||
/* Gradient for wifi-tether icon */
|
||||
#primaryGradient .start-color {
|
||||
stop-color: var(--primary-color);
|
||||
|
@ -946,8 +968,8 @@ html {
|
|||
/* webkit scrollbar style*/
|
||||
|
||||
::-webkit-scrollbar{
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue