chore(refactor): modern UI

This commit is contained in:
Liyas Thomas
2020-12-11 22:24:34 +05:30
parent 773423069b
commit 5a7bcf32ea
55 changed files with 936 additions and 860 deletions

View File

@@ -20,7 +20,6 @@ $responsiveWidth: 768px;
::-webkit-scrollbar {
@apply h-1;
@apply w-2;
@apply rounded-lg;
&:hover {
@apply bg-bgDarkColor;
@@ -28,7 +27,6 @@ $responsiveWidth: 768px;
}
::-webkit-scrollbar-thumb {
@apply rounded-lg;
@apply bg-fgLightColor;
&:hover {
@@ -290,6 +288,7 @@ hr {
button {
@apply flex-1;
@apply m-0;
@apply p-2;
@apply justify-start;
@apply text-left;
}
@@ -337,10 +336,7 @@ button {
@apply inline-flex;
@apply items-center;
@apply justify-center;
@apply m-2;
@apply py-2;
@apply px-4;
@apply rounded-lg;
@apply p-4;
@apply bg-acColor;
@apply text-actColor;
@apply font-body;
@@ -373,10 +369,9 @@ button {
@apply bg-transparent;
@apply text-fgLightColor;
@apply fill-current;
@apply rounded-lg;
@apply outline-none;
@apply border-none;
@apply p-2;
@apply rounded-lg;
&:not([disabled]):hover,
&:not([disabled]):active,
@@ -389,6 +384,7 @@ button {
&.primary {
@apply text-acColor;
@apply px-6;
&:not([disabled]):hover,
&:not([disabled]):active,
@@ -473,9 +469,7 @@ textarea,
pre,
code {
@apply flex;
@apply m-2;
@apply p-2;
@apply rounded-lg;
@apply p-4;
@apply bg-bgDarkColor;
@apply text-fgColor;
@apply font-mono;
@@ -486,8 +480,7 @@ code {
@apply select-text;
@apply resize-y;
@apply outline-none;
width: calc(100% - 16px);
@apply w-full;
&:not([readonly]):not(.ace_editor):hover,
&:not([readonly]):not(.ace_editor):active,
@@ -499,6 +492,7 @@ code {
.method {
@apply cursor-pointer;
@apply uppercase;
@apply rounded-none;
min-width: 128px;
@@ -527,6 +521,7 @@ pre {
.select-wrapper {
@apply relative;
@apply w-full;
pre,
input {
@@ -553,7 +548,7 @@ select {
@apply cursor-pointer;
@apply appearance-none;
height: 40px;
// height: 40px;
&::-ms-expand {
@apply hidden;
@@ -613,7 +608,7 @@ input[type="checkbox"] {
}
label {
@apply px-2;
@apply p-4;
@apply text-fgLightColor;
@apply text-sm;
@apply transition;
@@ -624,15 +619,6 @@ label {
ul,
ol {
@apply flex;
@apply p-0;
@apply list-none;
margin: 4px 0 4px;
ul,
ol {
@apply m-0;
}
}
ul li,
@@ -689,8 +675,6 @@ ol li {
#response-details-wrapper {
@apply relative;
@apply overflow-hidden;
@apply rounded-lg;
textarea {
@apply m-0;
@@ -720,6 +704,7 @@ ol li {
@apply ease-in-out;
@apply duration-200;
@apply shadow-lg;
@apply rounded-lg;
bottom: 86px;
left: 50%;

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -55,7 +55,6 @@
</v-popover>
</div>
</div>
<div v-show="showChildren || isFiltered">
<ul class="flex-col">
<li
@@ -75,9 +74,6 @@
@edit-request="$emit('edit-request', $event)"
/>
</li>
<li v-if="collection.folders.length === 0 && collection.requests.length === 0">
<p class="info">{{ $t("collection_empty") }}</p>
</li>
</ul>
<ul class="flex-col">
<li
@@ -96,6 +92,16 @@
/>
</li>
</ul>
<ul>
<li
v-if="collection.folders.length === 0 && collection.requests.length === 0"
class="flex ml-8 border-l border-brdColor"
>
<p class="info">
<i class="material-icons">not_interested</i> {{ $t("collection_empty") }}
</p>
</li>
</ul>
</div>
</div>
</template>

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -51,7 +51,6 @@
</template>
</v-popover>
</div>
<div v-show="showChildren || isFiltered">
<ul class="flex-col">
<li
@@ -71,7 +70,11 @@
</li>
</ul>
<ul v-if="folder.folders && folder.folders.length" class="flex-col">
<li v-for="(subFolder, subFolderIndex) in folder.folders" :key="subFolder.name">
<li
v-for="(subFolder, subFolderIndex) in folder.folders"
:key="subFolder.name"
class="ml-8 border-l border-brdColor"
>
<folder
:folder="subFolder"
:folder-index="subFolderIndex"
@@ -84,6 +87,11 @@
/>
</li>
</ul>
<ul v-if="folder.folders.length === 0 && folder.requests.length === 0">
<li class="flex ml-8 border-l border-brdColor">
<p class="info"><i class="material-icons">not_interested</i> {{ $t("folder_empty") }}</p>
</li>
</ul>
</div>
</div>
</template>

View File

@@ -44,8 +44,8 @@
</div>
</div>
</div>
<div slot="body">
<div class="flex flex-col items-start">
<div slot="body" class="flex flex-col">
<div class="flex flex-col items-start p-2">
<span
v-tooltip="{
content: !fb.currentUser ? $t('login_first') : $t('replace_current'),

View File

@@ -1,15 +1,13 @@
<!--
TODO:
- probably refactor and pass event arguments to modals directly without unpacking
-->
<template>
<pw-section class="yellow" :label="$t('collections')" ref="collections">
<pw-section class="yellow" :label="$t('collections')" ref="collections" no-legend>
<div class="show-on-large-screen">
<input aria-label="Search" type="search" :placeholder="$t('search')" v-model="filterText" />
<!-- <button class="icon">
<i class="material-icons">search</i>
</button> -->
<input
aria-label="Search"
type="search"
:placeholder="$t('search')"
v-model="filterText"
class="rounded-t-lg"
/>
</div>
<add-collection :show="showModalAdd" @hide-modal="displayModalAdd(false)" />
<edit-collection
@@ -45,28 +43,14 @@ TODO:
:show="showModalImportExport"
@hide-modal="displayModalImportExport(false)"
/>
<div class="row-wrapper">
<div>
<div class="border-b row-wrapper border-brdColor">
<button class="icon" @click="displayModalAdd(true)">
<i class="material-icons">add</i>
<span>{{ $t("new") }}</span>
</button>
</div>
<div>
<button class="icon" @click="displayModalImportExport(true)">
{{ $t("import_export") }}
</button>
<!-- <a
href="https://github.com/hoppscotch/hoppscotch/wiki/Collections"
target="_blank"
rel="noopener"
>
<button class="icon" v-tooltip="'Wiki'">
<i class="material-icons">help_outline</i>
</button>
</a> -->
</div>
</div>
<p v-if="collections.length === 0" class="info">
<i class="material-icons">help_outline</i> {{ $t("create_new_collection") }}
@@ -90,7 +74,7 @@ TODO:
</ul>
</div>
<p v-if="filterText && filteredCollections.length === 0" class="info">
{{ $t("nothing_found") }} "{{ filterText }}"
<i class="material-icons">not_interested</i> {{ $t("nothing_found") }} "{{ filterText }}"
</p>
</pw-section>
</template>

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("token_req_name") }}</label>
<input type="text" id="selectLabel" v-model="requestData.name" @keyup.enter="saveRequestAs" />
<ul>

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="selectLabel">{{ $t("label") }}</label>
<input
type="text"

View File

@@ -44,8 +44,8 @@
</div>
</div>
</div>
<div slot="body">
<div class="flex flex-col items-start">
<div slot="body" class="flex flex-col">
<div class="flex flex-col items-start p-2">
<span
v-tooltip="{
content: !fb.currentUser ? $t('login_first') : $t('replace_current'),

View File

@@ -1,14 +1,13 @@
<template>
<pw-section class="green" icon="history" :label="$t('environments')" ref="environments">
<pw-section class="green" icon="history" :label="$t('environments')" ref="environments" no-legend>
<div class="show-on-large-screen">
<ul class="w-full">
<li>
<label for="currentEnvironment">{{ $t("select_environment") }}</label>
<!-- <label for="currentEnvironment">{{ $t("select_environment") }}</label> -->
<span class="select-wrapper">
<select
id="currentEnvironment"
v-model="selectedEnvironmentIndex"
:disabled="environments.length == 0"
class="rounded-t-lg"
>
<option :value="-1">No environment</option>
<option v-if="environments.length === 0" value="0">
@@ -19,8 +18,6 @@
</option>
</select>
</span>
</li>
</ul>
</div>
<add-environment :show="showModalAdd" @hide-modal="displayModalAdd(false)" />
<edit-environment
@@ -33,7 +30,7 @@
:show="showModalImportExport"
@hide-modal="displayModalImportExport(false)"
/>
<div class="row-wrapper">
<div class="border-b row-wrapper border-brdColor">
<div>
<button class="icon" @click="displayModalAdd(true)">
<i class="material-icons">add</i>

View File

@@ -1,10 +1,9 @@
<template>
<div v-if="fb.currentFeeds.length !== 0" class="virtual-list">
<ul
v-for="feed in fb.currentFeeds"
:key="feed.id"
class="flex-col py-2 border-b border-dashed border-brdColor"
<div
v-if="fb.currentFeeds.length !== 0"
class="divide-y virtual-list divide-dashed divide-brdColor"
>
<ul v-for="feed in fb.currentFeeds" :key="feed.id" class="flex-col">
<div data-test="list-item" class="show-on-large-screen">
<li class="info">
<label data-test="list-label">
@@ -24,7 +23,7 @@
</div>
<ul v-else class="flex-col">
<li>
<label class="info">{{ $t("empty") }}</label>
<p class="info"><i class="material-icons">not_interested</i> {{ $t("empty") }}</p>
</li>
</ul>
</template>

View File

@@ -8,9 +8,10 @@
v-model="message"
:placeholder="$t('paste_a_note')"
@keyup.enter="formPost"
class="rounded-t-lg"
/>
</div>
<div class="show-on-large-screen">
<div class="border-b show-on-large-screen border-brdColor">
<input
:aria-label="$t('label')"
type="text"

View File

@@ -1,6 +1,6 @@
<template>
<div class="opacity-0 show-if-initialized" :class="{ initialized }">
<pre ref="editor"></pre>
<pre ref="editor" :class="styles"></pre>
</div>
</template>
@@ -46,6 +46,10 @@ export default {
type: Object,
default: {},
},
styles: {
type: String,
default: "",
},
},
data() {

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<label for="requestType">{{ $t("request_type") }}</label>
<span class="select-wrapper">
<v-popover>
@@ -54,6 +54,7 @@
rows="8"
v-model="requestCode"
readonly
class="rounded-b-lg"
></textarea>
</div>
</modal>

View File

@@ -1,5 +1,5 @@
<template>
<pw-section class="orange" label="Headers" ref="headers">
<pw-section class="orange" label="Headers" ref="headers" no-legend>
<ul v-if="headers.length !== 0">
<li>
<div class="row-wrapper">

View File

@@ -1,5 +1,5 @@
<template>
<pw-section class="pink" label="Parameters" ref="parameters">
<pw-section class="pink" label="Parameters" ref="parameters" no-legend>
<ul v-if="params.length !== 0">
<li>
<div class="row-wrapper">

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<textarea id="import-curl" autofocus rows="8" :placeholder="$t('enter_curl')"></textarea>
</div>
<div slot="footer">

View File

@@ -1,5 +1,5 @@
<template>
<pw-section class="pink" :label="$t('notes')" ref="sync">
<pw-section class="pink" :label="$t('notes')" ref="sync" no-legend>
<div v-if="fb.currentUser">
<inputform />
<feeds />

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<div class="row-wrapper">
<label for="token-list">{{ $t("token_list") }}</label>
<div v-if="tokens.length != 0">

View File

@@ -6,7 +6,7 @@
<p class="info">
{{ $t("donate_info2") }}
</p>
<div class="row-wrapper">
<div class="px-2 row-wrapper">
<span>
<a
href="https://github.com/sponsors/hoppscotch"
@@ -33,7 +33,7 @@
</a>
</span>
</div>
<div class="row-wrapper">
<div class="px-2 row-wrapper">
<span>
<a
href="https://opencollective.com/hoppscotch"
@@ -48,7 +48,8 @@
</a>
</span>
</div>
<div>
<div class="px-2 row-wrapper">
<span>
<a
href="https://www.patreon.com/liyasthomas"
target="_blank"
@@ -60,8 +61,10 @@
<span>{{ $t("patreon") }}</span>
</button>
</a>
</span>
</div>
<div>
<div class="px-2 row-wrapper">
<span>
<a
href="https://www.paypal.me/liyascthomas"
target="_blank"
@@ -73,10 +76,12 @@
<span>{{ $t("paypal") }}</span>
</button>
</a>
</span>
</div>
<hr />
<div class="p-2">
<h3 class="title">Financial Contributors</h3>
<div class="contributors fle">
<div class="contributors">
<a href="https://www.deta.sh/?ref=hoppscotch" target="_blank" rel="noopener">
<img style="max-width: 200px" src="~assets/images/hs-gh-banner.png" alt="Deta" />
</a>
@@ -87,7 +92,11 @@
target="_blank"
rel="noopener"
>
<img style="max-width: 100px" src="~assets/images/Paw-Logo-for-Hoppscotch.png" alt="Paw" />
<img
style="max-width: 100px"
src="~assets/images/Paw-Logo-for-Hoppscotch.png"
alt="Paw"
/>
</a>
</div>
<div class="contributors">
@@ -115,17 +124,20 @@
<img src="https://opencollective.com/hoppscotch/organization/1/avatar.svg" />
</a>
</div>
<h3 class="title">Code Contributors</h3>
<p class="info">This project exists thanks to all the people who contribute.</p>
<div class="contributors">
</div>
<hr />
<p class="info">
This project exists thanks to all the
<a
target="_blank"
rel="noopener"
href="https://github.com/hoppscotch/hoppscotch/graphs/contributors"
class="link"
>
<img src="https://opencollective.com/hoppscotch/contributors.svg" />
people who contribute
</a>
</div>
.
</p>
</div>
</template>
@@ -135,11 +147,6 @@
@apply items-center;
@apply flex-no-wrap;
@apply overflow-auto;
@apply my-4;
}
.github-sponsor {
@apply mr-2;
@apply rounded-full;
@apply m-2;
}
</style>

View File

@@ -1,13 +1,19 @@
<template>
<pw-section class="green" icon="history" :label="$t('history')" ref="history">
<pw-section class="green" icon="history" :label="$t('history')" ref="history" no-legend>
<div class="show-on-large-screen">
<input aria-label="Search" type="search" :placeholder="$t('search')" v-model="filterText" />
<button class="icon">
<i class="material-icons">search</i>
</button>
<input
aria-label="Search"
type="search"
:placeholder="$t('search')"
v-model="filterText"
class="rounded-t-lg"
/>
</div>
<div class="virtual-list" :class="{ filled: filteredHistory.length }">
<ul v-for="(entry, index) in filteredHistory" :key="index" class="entry">
<div
class="divide-y virtual-list divide-dashed divide-brdColor"
:class="{ filled: filteredHistory.length }"
>
<ul v-for="(entry, index) in filteredHistory" :key="index">
<div class="show-on-large-screen">
<span
class="p-2 m-2"
@@ -105,15 +111,17 @@
readonly
:value="entry.time"
v-tooltip="entry.date"
class="pt-0 mt-0 text-sm bg-transparent text-fgLightColor"
/>
</li>
<li>
<input
:aria-label="$t('duration')"
:aria-label="$t('nn')"
type="text"
readonly
:value="entry.duration"
:placeholder="$t('no_duration')"
class="pt-0 mt-0 text-sm bg-transparent text-fgLightColor"
/>
</li>
<li>
@@ -123,6 +131,7 @@
readonly
:value="entry.preRequestScript"
:placeholder="$t('no_prerequest_script')"
class="pt-0 mt-0 text-sm bg-transparent text-fgLightColor"
/>
</li>
</div>
@@ -135,7 +144,7 @@
<p v-if="history.length === 0" class="info">
<i class="material-icons">schedule</i> {{ $t("history_empty") }}
</p>
<div v-if="history.length !== 0">
<div v-if="history.length !== 0" class="rounded-b-lg bg-bgDarkColor">
<div class="row-wrapper" v-if="!isClearingHistory">
<button
class="icon"
@@ -199,9 +208,9 @@
</v-popover>
</div>
<div class="row-wrapper" v-else>
<label for="clear-history-button" class="info">
<p for="clear-history-button" class="info">
<i class="material-icons">help_outline</i> {{ $t("are_you_sure") }}
</label>
</p>
<div>
<button
class="icon"
@@ -253,11 +262,6 @@ ol {
flex-direction: column;
}
.entry {
border-bottom: 1px dashed var(--brd-color);
padding: 0 0 8px;
}
@media (max-width: 720px) {
.virtual-list.filled {
min-height: 320px;

View File

@@ -1,6 +1,6 @@
<template>
<fieldset :id="label.toLowerCase()" :class="{ 'no-colored-frames': !frameColorsEnabled }">
<legend @click.prevent="collapse">
<legend v-if="!noLegend" @click.prevent="collapse">
<span>{{ label }}</span>
<i class="ml-2 align-middle material-icons">
{{ isCollapsed(label) ? "expand_more" : "expand_less" }}
@@ -14,8 +14,7 @@
<style scoped lang="scss">
fieldset {
@apply my-2;
@apply p-2;
@apply my-4;
@apply rounded-lg;
@apply bg-bgDarkColor;
@apply transition;
@@ -23,8 +22,8 @@ fieldset {
@apply duration-200;
legend {
@apply px-4;
@apply text-fgColor;
@apply text-sm;
@apply font-bold;
@apply cursor-pointer;
@apply transition;
@@ -86,6 +85,10 @@ export default {
type: String,
default: "Section",
},
noLegend: {
type: Boolean,
default: false,
},
},
methods: {

View File

@@ -61,6 +61,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
<iframe
:class="{ hidden: !previewEnabled }"

View File

@@ -52,6 +52,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</div>
</div>

View File

@@ -49,6 +49,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</div>
</div>

View File

@@ -49,6 +49,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</div>
</div>

View File

@@ -1,6 +1,6 @@
<template>
<div>
<tabs>
<tabs styles="m-4">
<tab
v-for="(lens, index) in validLenses"
:key="lens.lensName"

View File

@@ -10,11 +10,11 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<p class="info">
{{ $t("extensions_info1") }}
</p>
<div>
<div class="px-2">
<a
href="https://addons.mozilla.org/en-US/firefox/addon/hoppscotch"
target="_blank"
@@ -33,7 +33,7 @@
</button>
</a>
</div>
<div>
<div class="px-2">
<a
href="https://chrome.google.com/webstore/detail/hoppscotch-browser-extens/amknoiejhlmhancpahfcfcfhllgkpbld"
target="_blank"

View File

@@ -10,7 +10,8 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<div class="p-2">
<div>
<kbd>{{ getSpecialKey() }}</kbd>
+
@@ -32,7 +33,9 @@
>+<kbd>I</kbd>
<label>{{ $t("reset_request") }}</label>
</div>
</div>
<hr />
<div class="p-2">
<div>
<kbd>Alt</kbd>+<kbd></kbd>
<label>{{ $t("select_next_method") }}</label>
@@ -41,7 +44,9 @@
<kbd>Alt</kbd>+<kbd></kbd>
<label>{{ $t("select_previous_method") }}</label>
</div>
</div>
<hr />
<div class="p-2">
<div>
<kbd>Alt</kbd>+<kbd>G</kbd>
<label>{{ $t("select_get_method") }}</label>
@@ -63,6 +68,7 @@
<label>{{ $t("select_delete_method") }}</label>
</div>
</div>
</div>
<div slot="footer"></div>
</modal>
</template>
@@ -71,6 +77,11 @@
kbd {
@apply inline-flex;
@apply resize-none;
@apply m-2;
@apply rounded-lg;
@apply py-2;
@apply px-4;
@apply text-sm;
}
</style>

View File

@@ -10,7 +10,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<contributors />
</div>
<div slot="footer"></div>

View File

@@ -1,5 +1,5 @@
<template>
<div>
<div class="flex flex-col">
<label for="log">{{ title }}</label>
<div name="log" class="realtime-log" ref="log">
<span v-if="log">
@@ -14,9 +14,7 @@
<style scoped lang="scss">
.realtime-log {
@apply m-2;
@apply p-2;
@apply rounded-lg;
@apply p-4;
@apply bg-bgDarkColor;
@apply text-fgColor;
@apply overflow-auto;
@@ -25,7 +23,6 @@
&,
span {
@apply text-sm;
@apply font-mono;
@apply font-normal;
@apply select-text;

View File

@@ -1,15 +1,26 @@
<template>
<div>
<pw-section class="blue" :label="$t('request')">
<pw-section class="blue" :label="$t('request')" no-legend>
<ul>
<li>
<label for="mqtt-url">{{ $t("url") }}</label>
<input id="mqtt-url" type="url" v-model="url" spellcheck="false" />
<input
id="mqtt-url"
type="url"
v-model="url"
spellcheck="false"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="connect" class="hide-on-small-screen">&nbsp;</label>
<button id="connect" :disabled="!validUrl" @click="toggleConnection">
<button
id="connect"
:disabled="!validUrl"
@click="toggleConnection"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ this.connectionState ? $t("disconnect") : $t("connect") }}
<span>
<i class="material-icons">{{ !connectionState ? "sync" : "sync_disabled" }}</i>
@@ -20,7 +31,7 @@
</ul>
</pw-section>
<pw-section class="blue" :label="$t('communication')">
<pw-section class="blue" :label="$t('communication')" no-legend>
<ul>
<li>
<log :title="$t('log')" :log="this.log" />
@@ -50,12 +61,24 @@
<ul>
<li>
<label for="sub_topic">{{ $t("mqtt_topic") }}</label>
<input id="sub_topic" type="text" v-model="sub_topic" spellcheck="false" />
<input
id="sub_topic"
type="text"
v-model="sub_topic"
spellcheck="false"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="subscribe" class="hide-on-small-screen">&nbsp;</label>
<button id="subscribe" name="get" :disabled="!cansubscribe" @click="toggleSubscription">
<button
id="subscribe"
name="get"
:disabled="!cansubscribe"
@click="toggleSubscription"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ subscriptionState ? $t("mqtt_unsubscribe") : $t("mqtt_subscribe") }}
<span>
<i class="material-icons">{{ subscriptionState ? "sync_disabled" : "sync" }}</i>

View File

@@ -1,6 +1,6 @@
<template>
<div>
<pw-section class="blue" :label="$t('request')" ref="request">
<pw-section class="blue" :label="$t('request')" ref="request" no-legend>
<ul>
<li>
<label for="socketio-url">{{ $t("url") }}</label>
@@ -11,6 +11,7 @@
:class="{ error: !urlValid }"
v-model="url"
@keyup.enter="urlValid ? toggleConnection() : null"
class="md:rounded-bl-lg"
/>
</li>
<div>
@@ -22,7 +23,13 @@
<div>
<li>
<label for="connect" class="hide-on-small-screen">&nbsp;</label>
<button :disabled="!urlValid" id="connect" name="connect" @click="toggleConnection">
<button
:disabled="!urlValid"
id="connect"
name="connect"
@click="toggleConnection"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ !connectionState ? $t("connect") : $t("disconnect") }}
<span>
<i class="material-icons">
@@ -34,7 +41,8 @@
</div>
</ul>
</pw-section>
<pw-section class="purple" :label="$t('communication')" id="response" ref="response">
<pw-section class="purple" :label="$t('communication')" id="response" ref="response" no-legend>
<ul>
<li>
<log :title="$t('log')" :log="communication.log" />

View File

@@ -1,6 +1,6 @@
<template>
<div class="page">
<pw-section class="blue" :label="$t('request')" ref="request">
<pw-section class="blue" :label="$t('request')" ref="request" no-legend>
<ul>
<li>
<label for="server">{{ $t("server") }}</label>
@@ -10,12 +10,19 @@
:class="{ error: !serverValid }"
v-model="server"
@keyup.enter="serverValid ? toggleSSEConnection() : null"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="start" class="hide-on-small-screen">&nbsp;</label>
<button :disabled="!serverValid" id="start" name="start" @click="toggleSSEConnection">
<button
:disabled="!serverValid"
id="start"
name="start"
@click="toggleSSEConnection"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ !connectionSSEState ? $t("start") : $t("stop") }}
<span>
<i class="material-icons">
@@ -28,7 +35,7 @@
</ul>
</pw-section>
<pw-section class="purple" :label="$t('communication')" id="response" ref="response">
<pw-section class="purple" :label="$t('communication')" id="response" ref="response" no-legend>
<ul>
<li>
<log :title="$t('events')" :log="events.log" />

View File

@@ -1,6 +1,6 @@
<template>
<div class="page">
<pw-section class="blue" :label="$t('request')" ref="request">
<pw-section class="blue" :label="$t('request')" ref="request" no-legend>
<ul>
<li>
<label for="websocket-url">{{ $t("url") }}</label>
@@ -11,12 +11,19 @@
:class="{ error: !urlValid }"
v-model="url"
@keyup.enter="urlValid ? toggleConnection() : null"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="connect" class="hide-on-small-screen">&nbsp;</label>
<button :disabled="!urlValid" id="connect" name="connect" @click="toggleConnection">
<button
:disabled="!urlValid"
id="connect"
name="connect"
@click="toggleConnection"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ !connectionState ? $t("connect") : $t("disconnect") }}
<span>
<i class="material-icons">
@@ -29,7 +36,7 @@
</ul>
</pw-section>
<pw-section class="purple" :label="$t('communication')" id="response" ref="response">
<pw-section class="purple" :label="$t('communication')" id="response" ref="response" no-legend>
<ul>
<li>
<log :title="$t('log')" :log="communication.log" />
@@ -47,12 +54,19 @@
@keyup.enter="connectionState ? sendMessage() : null"
@keyup.up="connectionState ? walkHistory('up') : null"
@keyup.down="connectionState ? walkHistory('down') : null"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="send" class="hide-on-small-screen">&nbsp;</label>
<button id="send" name="send" :disabled="!connectionState" @click="sendMessage">
<button
id="send"
name="send"
:disabled="!connectionState"
@click="sendMessage"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ $t("send") }}
<span>
<i class="material-icons">send</i>

View File

@@ -1,5 +1,5 @@
<template>
<li>
<div>
<label>{{ $t("color") }}: {{ active.charAt(0).toUpperCase() + active.slice(1) }}</label>
<div class="space-x-2">
<span
@@ -13,7 +13,7 @@
<i class="material-icons">lens</i>
</span>
</div>
</li>
</div>
</template>
<script>

View File

@@ -1,6 +1,6 @@
<template>
<div class="show-if-initialized" :class="{ initialized }">
<pre ref="editor"></pre>
<pre ref="editor" :class="styles"></pre>
</div>
</template>
@@ -48,6 +48,10 @@ export default {
type: Object,
default: {},
},
styles: {
type: String,
default: "",
},
},
data() {

View File

@@ -12,6 +12,7 @@
:spellcheck="spellcheck"
:autocapitalize="autocapitalize"
:autocorrect="spellcheck"
:class="styles"
/>
<ul
class="suggestions"
@@ -108,6 +109,11 @@ export default {
default: "",
required: false,
},
styles: {
type: String,
default: "",
},
},
watch: {

View File

@@ -1,5 +1,5 @@
<template>
<li>
<div>
<label>
<ColorScheme placeholder="..." tag="span">
{{ $t("background") }}:
@@ -24,7 +24,7 @@
<i class="material-icons">{{ getIcon(color) }}</i>
</span>
</div>
</li>
</div>
</template>
<script>

View File

@@ -1,6 +1,6 @@
<template>
<div class="show-if-initialized" :class="{ initialized }">
<pre ref="editor"></pre>
<pre ref="editor" :class="styles"></pre>
</div>
</template>
@@ -40,6 +40,10 @@ export default {
type: Object,
default: {},
},
styles: {
type: String,
default: "",
},
},
data() {

View File

@@ -49,7 +49,6 @@
@apply flex-1;
@apply flex-col;
@apply m-2;
@apply p-2;
@apply transition;
@apply ease-in-out;
@apply duration-200;
@@ -58,13 +57,21 @@
@apply shadow-2xl;
max-height: calc(100vh - 128px);
max-width: 720px;
max-width: 640px;
}
.modal-header {
@apply pl-2;
}
.modal-body {
@apply overflow-auto;
}
.modal-footer {
@apply p-2;
}
/*
* The following styles are auto-applied to elements with
* transition="modal" when their visibility is toggled

View File

@@ -1,9 +1,9 @@
<template>
<div @click="toggle()">
<div @click="toggle()" class="inline-block cursor-pointer">
<label class="toggle" :class="{ on: on }" ref="toggle">
<span class="handle"></span>
</label>
<label class="caption">
<label class="pl-0 align-middle cursor-pointer">
<slot />
</label>
</div>
@@ -21,24 +21,13 @@ $height: 16px;
$handleSpacing: 4px;
$transition: all 0.2s ease-in-out;
div {
@apply inline-block;
@apply cursor-pointer;
}
label.caption {
@apply align-middle;
@apply cursor-pointer;
}
label.toggle {
.toggle {
@apply relative;
@apply inline-block;
@apply align-middle;
@apply rounded-full;
@apply p-0;
@apply my-4;
@apply mx-2;
@apply m-4;
@apply cursor-pointer;
width: $width;

View File

@@ -1,7 +1,7 @@
<template>
<div class="tabs-wrapper">
<div class="tabs">
<ul>
<ul :class="styles">
<li
v-for="(tab, index) in tabs"
:class="{ 'is-active': tab.isActive }"
@@ -90,6 +90,13 @@
<script>
export default {
props: {
styles: {
type: String,
default: "",
},
},
data() {
return {
tabs: [],

View File

@@ -64,6 +64,7 @@
"server": "Server",
"events": "Events",
"url": "URL",
"variables": "Variables",
"get_schema": "Get schema",
"header_list": "Header list",
"add_new": "Add new",

12
package-lock.json generated
View File

@@ -2924,9 +2924,9 @@
}
},
"@nuxtjs/tailwindcss": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/@nuxtjs/tailwindcss/-/tailwindcss-3.3.3.tgz",
"integrity": "sha512-IAWyKm9iXGlok0GgNcjEuoMvPIAmOrUmlAFJVlpZBTySr1Bs0aeZhNqfiTUSQAEaSDLFw+gwZvxRPrHytR3J0w==",
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/@nuxtjs/tailwindcss/-/tailwindcss-3.3.4.tgz",
"integrity": "sha512-blign8PnZDoHI/A7vxSJTNEpqS7REu7ZwaclB37+HskJSep1qYXblELwvNlMa3/eVuP/KKk8tUFxCtDXiqOdUQ==",
"dev": true,
"requires": {
"clear-module": "^4.1.1",
@@ -8613,9 +8613,9 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
"integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
},
"inquirer": {
"version": "7.3.3",

View File

@@ -50,7 +50,7 @@
"@nuxtjs/color-mode": "^2.0.2",
"@nuxtjs/google-analytics": "^2.4.0",
"@nuxtjs/pwa": "^3.3.2",
"@nuxtjs/tailwindcss": "^3.3.3",
"@nuxtjs/tailwindcss": "^3.3.4",
"@testing-library/jest-dom": "^5.11.6",
"@vue/test-utils": "^1.1.1",
"babel-core": "^7.0.0-bridge.0",

View File

@@ -2,23 +2,15 @@
<div class="page">
<div class="content">
<div class="page-columns inner-left">
<pw-section class="blue" :label="$t('import')" ref="import">
<ul>
<li>
<pw-section class="blue" :label="$t('import')" ref="import" no-legend>
<div class="flex flex-col">
<label>{{ $t("collection") }}</label>
<p class="info">
{{ $t("generate_docs_message") }}
</p>
</li>
</ul>
<ul>
<li>
<div class="row-wrapper">
<label for="collectionUpload">
<button
class="icon"
@click="$refs.collectionUpload.click()"
v-tooltip="$t('json')"
>
<button class="icon" @click="$refs.collectionUpload.click()" v-tooltip="$t('json')">
<i class="material-icons">folder</i>
<span>{{ $t("import_collections") }}</span>
</button>
@@ -30,19 +22,11 @@
@change="uploadCollection"
/>
<div>
<button
class="icon"
@click="collectionJSON = '[]'"
v-tooltip.bottom="$t('clear')"
>
<button class="icon" @click="collectionJSON = '[]'" v-tooltip.bottom="$t('clear')">
<i class="material-icons">clear_all</i>
</button>
</div>
</div>
</li>
</ul>
<ul>
<li>
<ace-editor
v-model="collectionJSON"
:lang="'json'"
@@ -56,19 +40,16 @@
useWorker: false,
}"
/>
</li>
</ul>
<ul>
<li>
<button class="icon" @click="getDoc">
<i class="material-icons">topic</i>
<span>{{ $t("generate_docs") }}</span>
</button>
</li>
</ul>
</div>
</pw-section>
<pw-section class="green" :label="$t('documentation')" ref="documentation">
<pw-section class="green" :label="$t('documentation')" ref="documentation" no-legend>
<div class="flex flex-col">
<label>{{ $t("documentation") }}</label>
<p v-if="this.items.length === 0" class="info">
{{ $t("generate_docs_first") }}
</p>
@@ -295,6 +276,7 @@
</span>
</span>
</div>
</div>
</pw-section>
</div>

View File

@@ -2,7 +2,7 @@
<div class="page">
<div class="content">
<div class="page-columns inner-left">
<pw-section class="blue" :label="$t('endpoint')" ref="endpoint">
<pw-section class="blue" :label="$t('endpoint')" ref="endpoint" no-legend>
<ul>
<li>
<label for="url">{{ $t("url") }}</label>
@@ -12,12 +12,18 @@
v-model="url"
spellcheck="false"
@keyup.enter="onPollSchemaClick()"
class="md:rounded-bl-lg"
/>
</li>
<div>
<li>
<label for="get" class="hide-on-small-screen">&nbsp;</label>
<button id="get" name="get" @click="onPollSchemaClick">
<button
id="get"
name="get"
@click="onPollSchemaClick"
class="rounded-b-lg md:rounded-bl-none md:rounded-br-lg"
>
{{ !isPollingSchema ? $t("connect") : $t("disconnect") }}
<span
><i class="material-icons">{{
@@ -30,7 +36,9 @@
</ul>
</pw-section>
<pw-section class="orange" :label="$t('headers')" ref="headers">
<pw-section class="orange" :label="$t('headers')" ref="headers" no-legend>
<div class="flex flex-col">
<label>{{ $t("headers") }}</label>
<ul v-if="headers.length !== 0">
<li>
<div class="row-wrapper">
@@ -94,9 +102,10 @@
</button>
</li>
</ul>
</div>
</pw-section>
<pw-section class="green" :label="$t('schema')" ref="schema">
<pw-section class="green" :label="$t('schema')" ref="schema" no-legend>
<div class="row-wrapper">
<label>{{ $t("schema") }}</label>
<div v-if="schema">
@@ -143,10 +152,11 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
<input
v-else
class="missing-data-response"
class="rounded-b-lg missing-data-response"
:value="$t('waiting_receive_schema')"
ref="status"
id="status"
@@ -156,7 +166,7 @@
/>
</pw-section>
<pw-section class="teal" :label="$t('query')" ref="query">
<pw-section class="teal" :label="$t('query')" ref="query" no-legend>
<div class="row-wrapper gqlRunQuery">
<label for="gqlQuery">{{ $t("query") }}</label>
<div>
@@ -195,10 +205,13 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</pw-section>
<pw-section class="yellow" label="Variables" ref="variables">
<pw-section class="yellow" :label="$t('variables')" ref="variables" no-legend>
<div class="flex flex-col">
<label>{{ $t("variables") }}</label>
<ace-editor
v-model="variableString"
:lang="'json'"
@@ -210,10 +223,14 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</div>
</pw-section>
<pw-section class="purple" label="Response" ref="response">
<pw-section class="purple" :label="$t('response')" ref="response" no-legend>
<div class="flex flex-col">
<label>{{ $t("response") }}</label>
<div class="row-wrapper">
<label for="responseField">{{ $t("response") }}</label>
<div>
@@ -251,10 +268,11 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
<input
v-else
class="missing-data-response"
class="rounded-b-lg missing-data-response"
:value="$t('waiting_receive_response')"
ref="status"
id="status"
@@ -262,13 +280,20 @@
readonly
type="text"
/>
</div>
</pw-section>
</div>
<aside class="sticky-inner inner-right lg:max-w-md">
<pw-section class="purple" :label="$t('docs')" ref="docs">
<pw-section class="purple" :label="$t('docs')" ref="docs" no-legend>
<section class="flex-col">
<input type="text" :placeholder="$t('search')" v-model="graphqlFieldsFilterText" />
<tabs ref="gqlTabs">
<input
type="text"
:placeholder="$t('search')"
v-model="graphqlFieldsFilterText"
class="rounded-t-lg"
/>
<tabs ref="gqlTabs" styles="m-4">
<div class="gqlTabs">
<tab
v-if="queryFields.length > 0"

View File

@@ -2,7 +2,7 @@
<div class="page">
<div class="content">
<div class="page-columns inner-left">
<pw-section class="blue" :label="$t('request')" ref="request">
<pw-section class="blue" :label="$t('request')" ref="request" no-legend>
<ul>
<li class="shrink">
<label for="method">{{ $t("method") }}</label>
@@ -40,6 +40,7 @@
<input
v-if="!this.$store.state.postwoman.settings.EXPERIMENTAL_URL_BAR_ENABLED"
:class="{ error: !isValidURL }"
class="rounded-none"
@keyup.enter="isValidURL ? sendRequest() : null"
id="url"
name="url"
@@ -47,6 +48,7 @@
v-model="uri"
spellcheck="false"
@input="pathInputHandler"
:placeholder="$t('url')"
/>
<url-field v-model="uri" v-else />
</li>
@@ -72,18 +74,27 @@
</button>
</li>
</ul>
<div>
<label for="name">{{ $t("token_req_name") }}</label>
<input id="name" name="name" type="text" v-model="name" />
</div>
<ul>
<li>
<label for="name" class="text-sm">{{ $t("token_req_name") }}</label>
<input
id="name"
name="name"
type="text"
v-model="name"
class="text-sm rounded-none"
/>
</li>
</ul>
<div label="Request Body" v-if="['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)">
<ul>
<li>
<label for="contentType">{{ $t("content_type") }}</label>
<label for="contentType" class="text-sm">{{ $t("content_type") }}</label>
<autocomplete
:source="validContentTypes"
:spellcheck="false"
v-model="contentType"
styles="text-sm rounded-none"
/>
</li>
</ul>
@@ -96,7 +107,7 @@
</pw-toggle>
</span>
<div>
<label for="attachment">
<label for="attachment" class="p-0">
<button
class="icon"
@click="$refs.attachment.click()"
@@ -123,7 +134,7 @@
@change="uploadAttachment"
multiple
/>
<label for="payload">
<label for="payload" class="p-0">
<button
class="icon"
@click="$refs.payload.click()"
@@ -318,8 +329,23 @@
/>
</tab>
<tab
:id="'headers'"
:label="
$t('headers') + `${headers.length !== 0 ? ' \xA0 • \xA0 ' + headers.length : ''}`
"
>
<http-headers
:headers="headers"
@clear-content="clearContent"
@set-route-query-state="setRouteQueryState"
@remove-request-header="removeRequestHeader"
@add-request-header="addRequestHeader"
/>
</tab>
<tab :id="'authentication'" :label="$t('authentication')">
<pw-section class="teal" :label="$t('authentication')" ref="authentication">
<pw-section class="teal" :label="$t('authentication')" ref="authentication" no-legend>
<ul>
<li>
<div class="row-wrapper">
@@ -401,6 +427,7 @@
</pw-toggle>
</div>
</pw-section>
<pw-section
v-if="showTokenRequest"
class="red"
@@ -522,27 +549,13 @@
</pw-section>
</tab>
<tab
:id="'headers'"
:label="
$t('headers') + `${headers.length !== 0 ? ' \xA0 • \xA0 ' + headers.length : ''}`
"
>
<http-headers
:headers="headers"
@clear-content="clearContent"
@set-route-query-state="setRouteQueryState"
@remove-request-header="removeRequestHeader"
@add-request-header="addRequestHeader"
/>
</tab>
<tab :id="'pre_request_script'" :label="$t('pre_request_script')">
<pw-section
v-if="showPreRequestScript"
class="orange"
:label="$t('pre_request_script')"
ref="preRequest"
no-legend
>
<ul>
<li>
@@ -570,6 +583,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
</li>
</ul>
@@ -582,6 +596,7 @@
class="orange"
:label="$t('tests')"
ref="postRequestTests"
no-legend
>
<ul>
<li>
@@ -609,6 +624,7 @@
showPrintMargin: false,
useWorker: false,
}"
styles="rounded-b-lg"
/>
<div v-if="testReports.length !== 0">
<div class="row-wrapper">
@@ -654,7 +670,10 @@
<li>
<label for="status">{{ $t("status") }}</label>
<input
:class="statusCategory ? statusCategory.className : ''"
:class="[
statusCategory ? statusCategory.className : '',
response.status ? '' : 'rounded-b-lg',
]"
:value="response.status || $t('waiting_send_req')"
ref="status"
id="status"
@@ -733,7 +752,7 @@
</div>
</div>
</div>
<div slot="body">
<div slot="body" class="flex flex-col">
<div class="row-wrapper">
<label for="token-req-list">{{ $t("token_req_list") }}</label>
<div>

View File

@@ -1,8 +1,8 @@
<template>
<div class="page">
<pw-section class="green" :label="$t('account')" ref="account">
<ul>
<li>
<pw-section class="green" :label="$t('account')" ref="account" no-legend>
<div class="flex flex-col">
<label>{{ $t("account") }}</label>
<div v-if="fb.currentUser">
<button class="icon">
<img
@@ -47,19 +47,14 @@
<login />
</p>
</div>
</li>
</ul>
</div>
</pw-section>
<pw-section class="teal" :label="$t('theme')" ref="theme">
<ul>
<pw-section class="teal" :label="$t('theme')" ref="theme" no-legend>
<div class="flex flex-col">
<label>{{ $t("theme") }}</label>
<color-mode-picker />
</ul>
<ul>
<accent-mode-picker />
</ul>
<ul>
<li>
<span>
<pw-toggle
:on="settings.FRAME_COLORS_ENABLED"
@@ -69,10 +64,6 @@
{{ settings.FRAME_COLORS_ENABLED ? $t("enabled") : $t("disabled") }}
</pw-toggle>
</span>
</li>
</ul>
<ul>
<li>
<span>
<pw-toggle
:on="settings.SCROLL_INTO_ENABLED"
@@ -82,13 +73,12 @@
{{ settings.SCROLL_INTO_ENABLED ? $t("enabled") : $t("disabled") }}
</pw-toggle>
</span>
</li>
</ul>
</div>
</pw-section>
<pw-section class="purple" :label="$t('extensions')" ref="extensions">
<ul>
<li>
<pw-section class="purple" :label="$t('extensions')" ref="extensions" no-legend>
<div class="flex flex-col">
<label>{{ $t("extensions") }}</label>
<div class="row-wrapper">
<pw-toggle
:on="settings.EXTENSIONS_ENABLED"
@@ -97,25 +87,18 @@
{{ $t("extensions_use_toggle") }}
</pw-toggle>
</div>
</li>
</ul>
<ul class="info">
<li v-if="extensionVersion != null">
<p>
{{ $t("extension_version") }}: v{{ extensionVersion.major }}.{{
extensionVersion.minor
}}
<p v-if="extensionVersion != null" class="info">
{{ $t("extension_version") }}: v{{ extensionVersion.major }}.{{ extensionVersion.minor }}
</p>
</li>
<li v-else>
<p>{{ $t("extension_version") }}: {{ $t("extension_ver_not_reported") }}</p>
</li>
</ul>
<p v-else class="info">
{{ $t("extension_version") }}: {{ $t("extension_ver_not_reported") }}
</p>
</div>
</pw-section>
<pw-section class="blue" :label="$t('proxy')" ref="proxy">
<ul>
<li>
<pw-section class="blue" :label="$t('proxy')" ref="proxy" no-legend>
<div class="flex flex-col">
<label>{{ $t("proxy") }}</label>
<div class="row-wrapper">
<span>
<pw-toggle :on="settings.PROXY_ENABLED" @change="toggleSetting('PROXY_ENABLED')">
@@ -133,10 +116,6 @@
</button>
</a>
</div>
</li>
</ul>
<ul>
<li>
<div class="row-wrapper">
<label for="url">{{ $t("url") }}</label>
<button class="icon" @click="resetProxy" v-tooltip.bottom="$t('reset_default')">
@@ -149,11 +128,7 @@
v-model="settings.PROXY_URL"
:disabled="!settings.PROXY_ENABLED"
/>
</li>
</ul>
<ul class="info">
<li>
<p>
<p class="info">
{{ $t("postwoman_official_proxy_hosting") }}
<br />
{{ $t("read_the") }}
@@ -166,8 +141,7 @@
{{ $t("apollosw_privacy_policy") }} </a
>.
</p>
</li>
</ul>
</div>
<!--
PROXY SETTINGS URL AND KEY
--------------
@@ -185,10 +159,10 @@
-->
</pw-section>
<pw-section class="red" :label="$t('experiments')" ref="experiments">
<ul class="info">
<li>
<p>
<pw-section class="red" :label="$t('experiments')" ref="experiments" no-legend>
<div class="flex flex-col">
<label>{{ $t("experiments") }}</label>
<p class="info">
{{ $t("experiments_notice") }}
<a
class="link"
@@ -198,10 +172,6 @@
>{{ $t("contact_us") }}</a
>.
</p>
</li>
</ul>
<ul>
<li>
<div class="row-wrapper">
<pw-toggle
:on="settings.EXPERIMENTAL_URL_BAR_ENABLED"
@@ -210,8 +180,7 @@
{{ $t("use_experimental_url_bar") }}
</pw-toggle>
</div>
</li>
</ul>
</div>
</pw-section>
</div>
</template>