diff --git a/CHANGELOG.md b/CHANGELOG.md
index 590cf9193e..ae9c955e86 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
* Use persistent peers and seeds from tendermint config @faboweb
* Updated loading icon and loading states @jolesbi
+* more components moved to `@tendermint/ui` @okwme
* Removed COSMOS_MOCKED flag @faboweb
* Improved readability and accessibility @jolesbi
* Significant style and UI updates for dark and light themes @jolesbi
@@ -26,12 +27,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
* Fixed bug in yarn build:gaia @zramsay
* Increased version of localtestnet used for testing to match gaia @faboweb
* Fixed padding issue in main container @faboweb
+* Unit tests work with new components @okwme
* Wait for LCD to start serving at app startup to prevent timing errors @mappum
* Fixed white flash on startup @okwme
* Fixed critical dependency warning @okwme
* Fixed theme bg bug @okwme
* Fixed sorting bug on staking page @okwme
+### Added
+
+* Checking known nodes round robin and signaling an error if none are available @faboweb
+
## [0.7.0] - 2018-06-13
### Changes
diff --git a/app/networks/local/basecoindversion.txt b/app/networks/local/basecoindversion.txt
new file mode 100644
index 0000000000..b4b7a5789b
--- /dev/null
+++ b/app/networks/local/basecoindversion.txt
@@ -0,0 +1 @@
+0.18.0-dev-af15f895
diff --git a/app/src/renderer/App.vue b/app/src/renderer/App.vue
index 9f4b176182..8ebafecc56 100644
--- a/app/src/renderer/App.vue
+++ b/app/src/renderer/App.vue
@@ -9,7 +9,7 @@
router-view
app-footer
modal-receive
- notifications(:notifications='notifications' theme='cosmos')
+ tm-notifications(:notifications='notifications' theme='cosmos')
modal-error(v-if='config.modals.error.active' :body='config.modals.error.message')
modal-no-nodes(v-if='config.modals.nonodes.active')
modal-lcd-approval(v-if='approvalRequired' :hash='approvalRequired')
@@ -19,14 +19,14 @@
import { mapGetters } from "vuex"
import AppHeader from "common/AppHeader"
import AppFooter from "common/AppFooter"
-import Notifications from "@nylira/vue-notifications"
-import ModalError from "common/NiModalError"
-import ModalHelp from "common/NiModalHelp"
-import ModalLcdApproval from "common/NiModalLCDApproval"
-import ModalNoNodes from "common/NiModalNoNodes"
-import ModalReceive from "common/NiModalReceive"
-import Onboarding from "common/NiOnboarding"
-import Session from "common/NiSession"
+import { TmNotifications } from "@tendermint/ui"
+import ModalError from "common/TmModalError"
+import ModalHelp from "common/TmModalHelp"
+import ModalLcdApproval from "common/TmModalLCDApproval"
+import ModalNoNodes from "common/TmModalNoNodes"
+import ModalReceive from "common/TmModalReceive"
+import Onboarding from "common/TmOnboarding"
+import Session from "common/TmSession"
import store from "./vuex/store"
export default {
name: "app",
@@ -37,8 +37,8 @@ export default {
ModalHelp,
ModalLcdApproval,
ModalReceive,
+ TmNotifications,
ModalNoNodes,
- Notifications,
Onboarding,
Session
},
diff --git a/app/src/renderer/components/common/AppFooter.vue b/app/src/renderer/components/common/AppFooter.vue
index e33337cf69..ec1686f9f3 100644
--- a/app/src/renderer/components/common/AppFooter.vue
+++ b/app/src/renderer/components/common/AppFooter.vue
@@ -3,7 +3,7 @@ footer.app-footer: connected-network
-
-
diff --git a/app/src/renderer/components/common/NiDataMsg.vue b/app/src/renderer/components/common/NiDataMsg.vue
deleted file mode 100644
index b107f7c27c..0000000000
--- a/app/src/renderer/components/common/NiDataMsg.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-
-.ni-data-msg
- .ni-data-msg__icon: i.material-icons(:class="iconCssClass") {{ icon }}
- .ni-data-msg__text
- .ni-data-msg__title: slot(name="title") {{ title }}
- .ni-data-msg__subtitle: slot(name="subtitle") {{ subtitle }}
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiFieldGroup.vue b/app/src/renderer/components/common/NiFieldGroup.vue
deleted file mode 100644
index a519bfd693..0000000000
--- a/app/src/renderer/components/common/NiFieldGroup.vue
+++ /dev/null
@@ -1,30 +0,0 @@
-
-.ni-field-group: slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiFormGroup.vue b/app/src/renderer/components/common/NiFormGroup.vue
deleted file mode 100644
index 183c451981..0000000000
--- a/app/src/renderer/components/common/NiFormGroup.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-
-div(:class='cssClass')
- span.ni-form-group__sub-label(v-if="subLabel")
- | {{ subLabel }}
- label.ni-form-group__label(:for='fieldId' v-if="fieldId && fieldLabel")
- | {{ fieldLabel }}
- .ni-form-group__field: slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiFormMsg.vue b/app/src/renderer/components/common/NiFormMsg.vue
deleted file mode 100644
index b0a14057d3..0000000000
--- a/app/src/renderer/components/common/NiFormMsg.vue
+++ /dev/null
@@ -1,107 +0,0 @@
-
-div(:class='cssClass')
- template(v-if='name') {{ name }} {{ error }}
- slot(v-else='')
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiFormStruct.vue b/app/src/renderer/components/common/NiFormStruct.vue
deleted file mode 100644
index 3f731b8212..0000000000
--- a/app/src/renderer/components/common/NiFormStruct.vue
+++ /dev/null
@@ -1,101 +0,0 @@
-
-form(:class='cssClass' v-on:submit.prevent.default='submit')
- .ni-form-container
- slot(name='overlay')
- header.ni-form-header(v-if='hasHeader')
- .ni-form-title
- slot(name='title')
- .ni-form-subtitle
- slot(name='subtitle')
- main.ni-form-main
- slot
- footer.ni-form-footer(v-if='hasFooter')
- slot(name='footer')
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiListItem.vue b/app/src/renderer/components/common/NiListItem.vue
deleted file mode 100644
index 8afd468fa6..0000000000
--- a/app/src/renderer/components/common/NiListItem.vue
+++ /dev/null
@@ -1,292 +0,0 @@
-
-mixin ni-li-thumb
- .ni-li-thumb
- template(v-if='icon'): i.material-icons(:class="spinClass") {{ icon }}
- template(v-else-if='image'): img(:src='image')
- template(v-else-if="$slots['graphic']"): slot(name='graphic')
-mixin ni-li-dl
- .ni-li-dl
- .ni-li-dt {{ dt }}
- .ni-li-dd.ni-li-dd-flush(v-if="$slots['dd']"): slot(name='dd')
- .ni-li-dd(v-else) {{ dd }}
-mixin ni-li-icon
- .ni-li-icon
- i.material-icons.inactive chevron_right
- i.material-icons.active my_location
-mixin ni-li-label
- .ni-li-label
- .ni-li-title {{ title }}
- .ni-li-subtitle {{ subtitle }}
-transition(name="proposal")
- //- dt/dd anchor
- a.ni-li.ni-li-link(v-if='dt && href' :href="href"): .ni-li-container
- +ni-li-thumb
- +ni-li-dl
- +ni-li-icon
-
- //- label and input
- .ni-li.ni-li-field(v-else-if="type === 'field'"): .ni-li-container
- +ni-li-thumb
- +ni-li-label
- .ni-li-input: slot
-
- //- dt/dd router-link
- router-link.ni-li.ni-li-link(v-else-if="dt && to && !btn" :to="to"): .ni-li-container
- +ni-li-thumb
- +ni-li-dl
- +ni-li-icon
-
- //- button router-link
- router-link.ni-li.ni-li-link(v-else-if="btn && to" :to="to"): .ni-li-container
- +ni-li-thumb
- +ni-li-dl
- btn(:value="btn" icon="chevron_right" icon-pos="right" color="primary")
-
- //- dt/dd text
- .ni-li(v-else-if='dt'): .ni-li-container
- +ni-li-thumb
- +ni-li-dl
-
- //- title/subtitle anchor
- a.ni-li.ni-li-link(v-else-if="href" :href="href"): .ni-li-container
- +ni-li-thumb
- +ni-li-label
- +ni-li-icon
-
- //- title/subtitle router-link
- router-link.ni-li.ni-li-link(v-else-if="to" :to='to'): .ni-li-container
- +ni-li-thumb
- +ni-li-label
- +ni-li-icon
-
- //- button receive
- .ni-li.ni-li-receive(v-else-if="title && btn && !to"): .ni-li-container
- +ni-li-thumb
- +ni-li-label
- btn-receive
-
- //- title/subtitle text
- .ni-li(v-else-if='title'): .ni-li-container
- +ni-li-thumb
- +ni-li-label
-
- //- image
- .ni-li(v-else-if="type === 'image'"): .ni-li-container: slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiPage.vue b/app/src/renderer/components/common/NiPage.vue
deleted file mode 100644
index a33325bb55..0000000000
--- a/app/src/renderer/components/common/NiPage.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-
-.ni-page
- page-header(:icon='icon')
- h2(slot='title') {{ title }}
- h3(slot='subtitle') {{ subtitle }}
- div(slot="menu"): slot(name="menu")
- main.ni-page-main: slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiPageFooter.vue b/app/src/renderer/components/common/NiPageFooter.vue
deleted file mode 100644
index bfaf116ffb..0000000000
--- a/app/src/renderer/components/common/NiPageFooter.vue
+++ /dev/null
@@ -1,24 +0,0 @@
-
-footer.ni-page-footer
- .container
- slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiPageHeader.vue b/app/src/renderer/components/common/NiPageHeader.vue
deleted file mode 100644
index 7d4f6a904a..0000000000
--- a/app/src/renderer/components/common/NiPageHeader.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-
-header.ni-page-header
- .ni-page-header-container
- .ni-page-header-text
- .ni-page-header-title
- slot(name='title')
- .ni-page-header-subtitle
- slot(name='subtitle')
- menu.ni-page-header-menu
- slot(name="menu")
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiSessionLoading.vue b/app/src/renderer/components/common/NiSessionLoading.vue
deleted file mode 100644
index 5819068198..0000000000
--- a/app/src/renderer/components/common/NiSessionLoading.vue
+++ /dev/null
@@ -1,18 +0,0 @@
-
-.ni-session: .ni-session-container
- .ni-session-header
- .ni-session-title Voyager is loading…
- .ni-session-main.ni-session-main--loading
- img(src="~assets/images/loader.svg")
-
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiTabBar.vue b/app/src/renderer/components/common/NiTabBar.vue
deleted file mode 100644
index d9b5d1f394..0000000000
--- a/app/src/renderer/components/common/NiTabBar.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-
-.ni-tab-bar
- .ni-tab-bar-container: slot
-
-
-
-
-
diff --git a/app/src/renderer/components/common/NiToolBar.vue b/app/src/renderer/components/common/NiToolBar.vue
deleted file mode 100644
index 35d704f94e..0000000000
--- a/app/src/renderer/components/common/NiToolBar.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-
-.ni-tool-bar
- .ni-tool-bar-container
- .main: slot
- a.back(@click="$router.go(-1)" v-tooltip.bottom="'Back'")
- i.material-icons arrow_back
- a.help(@click="enableModalHelp" v-tooltip.bottom="'Help'")
- i.material-icons help_outline
- a.sign-out(@click="signOut" v-tooltip.bottom.end="'Sign Out'")
- i.material-icons exit_to_app
-
-
-
-
-
diff --git a/app/src/renderer/components/common/Page404.vue b/app/src/renderer/components/common/Page404.vue
index 6c93badca7..d1a790b3f6 100644
--- a/app/src/renderer/components/common/Page404.vue
+++ b/app/src/renderer/components/common/Page404.vue
@@ -1,20 +1,18 @@
-page(title='404 - Page Not Found')
- part(title='Try another page...')
- list-item(to='/' title='Balances')
- list-item(to='/staking' title='Staking')
+tm-page(title='404 - Page Not Found')
+ tm-part(title='Try another page...')
+ tm-list-item(to='/' title='Balances')
+ tm-list-item(to='/staking' title='Staking')
diff --git a/app/src/renderer/components/common/PagePreferences.vue b/app/src/renderer/components/common/PagePreferences.vue
index af69cdd02e..3360f8d795 100644
--- a/app/src/renderer/components/common/PagePreferences.vue
+++ b/app/src/renderer/components/common/PagePreferences.vue
@@ -1,31 +1,31 @@
-page(title="Preferences")
+tm-page(title="Preferences")
div(slot="menu"): tool-bar
- part(title='Settings')
- list-item(type="field" title="Select network to connect to")
- field#select-network(
+ tm-part(title='Settings')
+ tm-list-item(type="field" title="Select network to connect to")
+ tm-field#select-network(
type="select"
v-model="networkSelectActive"
:options="networkSelectOptions"
placeholder="Select network..."
@change.native="setMockedConnector")
- list-item(type="field" title="Select theme")
- field#select-theme(
+ tm-list-item(type="field" title="Select theme")
+ tm-field#select-theme(
type="select"
v-model="themeSelectActive"
:options="themeSelectOptions"
placeholder="Select theme..."
@change.native="setAppTheme")
- list-item(type="field" title="View tutorial for Voyager")
- btn#toggle-onboarding(
+ tm-list-item(type="field" title="View tutorial for Voyager")
+ tm-btn#toggle-onboarding(
@click.native="setOnboarding"
value="Launch Tutorial"
icon="open_in_new")
- list-item(type="field"
+ tm-list-item(type="field"
title="Automatically send usage statistics and crash reports"
subtitle="to the Voyager development team")
- field(
+ tm-field(
type="toggle"
:style="{margin:'1em auto 0 auto'}"
:options=`{
@@ -34,9 +34,9 @@ page(title="Preferences")
}`
:value="user.errorCollection || undefined"
@change.native="setErrorCollection")
- part(title='Account')
- list-item(type="field" title="Switch account")
- btn(
+ tm-part(title='Account')
+ tm-list-item(type="field" title="Switch account")
+ tm-btn(
icon='exit_to_app'
type='button'
@click.native="signOut"
@@ -45,20 +45,17 @@ page(title="Preferences")
diff --git a/app/src/renderer/components/common/NiDataEmptySearch.vue b/app/src/renderer/components/common/TmDataEmptySearch.vue
similarity index 57%
rename from app/src/renderer/components/common/NiDataEmptySearch.vue
rename to app/src/renderer/components/common/TmDataEmptySearch.vue
index c4cc2883ac..ff4b8c0e51 100644
--- a/app/src/renderer/components/common/NiDataEmptySearch.vue
+++ b/app/src/renderer/components/common/TmDataEmptySearch.vue
@@ -1,13 +1,13 @@
-data-msg(icon="search")
+tm-data-msg(icon="search")
div(slot="title") No Results
div(slot="subtitle") Your search did not match any available data.
diff --git a/app/src/renderer/components/common/NiDataEmptyTx.vue b/app/src/renderer/components/common/TmDataEmptyTx.vue
similarity index 68%
rename from app/src/renderer/components/common/NiDataEmptyTx.vue
rename to app/src/renderer/components/common/TmDataEmptyTx.vue
index 6e18512583..cb85192ba7 100644
--- a/app/src/renderer/components/common/NiDataEmptyTx.vue
+++ b/app/src/renderer/components/common/TmDataEmptyTx.vue
@@ -1,13 +1,13 @@
-data-msg(icon="info_outline")
+tm-data-msg(icon="info_outline")
div(slot="title") No Transaction History
div(slot="subtitle") Looks like you haven't sent or received any transactions yet. Head over to #[router-link(:to="{ name: 'send' }") Send] to make your first transaction!
diff --git a/app/src/renderer/components/common/NiDataError.vue b/app/src/renderer/components/common/TmDataError.vue
similarity index 69%
rename from app/src/renderer/components/common/NiDataError.vue
rename to app/src/renderer/components/common/TmDataError.vue
index 76bb1b7263..13434531ea 100644
--- a/app/src/renderer/components/common/NiDataError.vue
+++ b/app/src/renderer/components/common/TmDataError.vue
@@ -1,13 +1,13 @@
-data-msg(icon="sentiment_very_dissatisfied")
+tm-data-msg(icon="sentiment_very_dissatisfied")
div(slot="title") Aw shucks!
div(slot="subtitle") Even though you're connected a full node, we can't display this data for you right now. Please try again later or #[a(href="https://github.com/cosmos/voyager/issues") file a bug report]. Apologies!
diff --git a/app/src/renderer/components/common/NiDataLoading.vue b/app/src/renderer/components/common/TmDataLoading.vue
similarity index 62%
rename from app/src/renderer/components/common/NiDataLoading.vue
rename to app/src/renderer/components/common/TmDataLoading.vue
index ef0b41342c..d1647155a7 100644
--- a/app/src/renderer/components/common/NiDataLoading.vue
+++ b/app/src/renderer/components/common/TmDataLoading.vue
@@ -1,14 +1,14 @@
-data-msg(icon="rotate_right" spin="true")
+tm-data-msg(icon="rotate_right" spin="true")
div(slot="title") {{ title }}
div(slot="subtitle") Please wait a moment.
diff --git a/app/src/renderer/components/common/NiFieldSeed.vue b/app/src/renderer/components/common/TmFieldSeed.vue
similarity index 81%
rename from app/src/renderer/components/common/NiFieldSeed.vue
rename to app/src/renderer/components/common/TmFieldSeed.vue
index 3f9810c115..aff4357a0d 100644
--- a/app/src/renderer/components/common/NiFieldSeed.vue
+++ b/app/src/renderer/components/common/TmFieldSeed.vue
@@ -1,5 +1,5 @@
-field.ni-field-seed(
+tm-field.tm-field-seed(
type="textarea"
@input="update($event)"
:value="value")
@@ -7,10 +7,10 @@ field.ni-field-seed(
@@ -16,7 +16,7 @@ export default {
diff --git a/app/src/renderer/components/common/NiModal.vue b/app/src/renderer/components/common/TmModal.vue
similarity index 73%
rename from app/src/renderer/components/common/NiModal.vue
rename to app/src/renderer/components/common/TmModal.vue
index d609b6f0cc..91748720b6 100644
--- a/app/src/renderer/components/common/NiModal.vue
+++ b/app/src/renderer/components/common/TmModal.vue
@@ -1,16 +1,16 @@
div(:class='cssClass' @click="close()")
- .ni-modal-container
- header.ni-modal-header
- .ni-modal-icon(v-if='icon')
+ .tm-modal-container
+ header.tm-modal-header
+ .tm-modal-icon(v-if='icon')
i.material-icons {{ icon }}
- .ni-modal-title
+ .tm-modal-title
slot(name='title')
- .ni-modal-icon.ni-modal-close(@click="close()")
+ .tm-modal-icon.tm-modal-close(@click="close()")
i.material-icons close
- main.ni-modal-main
+ main.tm-modal-main
slot
- footer.ni-modal-footer
+ footer.tm-modal-footer
slot(name='footer')
@@ -18,9 +18,9 @@ div(:class='cssClass' @click="close()")
export default {
computed: {
cssClass() {
- let value = "ni-modal"
+ let value = "tm-modal"
if (this.size === "fullscreen" || this.size === "fs") {
- value += " ni-modal-fullscreen"
+ value += " tm-modal-fullscreen"
}
return value
}
@@ -32,7 +32,7 @@ export default {
diff --git a/app/src/renderer/components/common/NiModalError.vue b/app/src/renderer/components/common/TmModalError.vue
similarity index 75%
rename from app/src/renderer/components/common/NiModalError.vue
rename to app/src/renderer/components/common/TmModalError.vue
index ed1ed6a74f..3aee987815 100644
--- a/app/src/renderer/components/common/NiModalError.vue
+++ b/app/src/renderer/components/common/TmModalError.vue
@@ -1,18 +1,18 @@
-.ni-modal-error__wrapper
- .ni-modal-error
- .ni-modal-error__icon: i.material-icons {{ errorIcon }}
- .ni-modal-error__title {{ errorTitle }}
- .ni-modal-error__body {{ errorBody }}
- .ni-modal-error__footer
- btn#ni-modal-error__btn-issue(
+.tm-modal-error__wrapper
+ .tm-modal-error
+ .tm-modal-error__icon: i.material-icons {{ errorIcon }}
+ .tm-modal-error__title {{ errorTitle }}
+ .tm-modal-error__body {{ errorBody }}
+ .tm-modal-error__footer
+ tm-btn#tm-modal-error__btn-issue(
size="lg"
icon="bug_report"
color="primary"
value="Create an issue"
type="anchor"
:href="issueUrl")
- btn#ni-modal-error__btn-logs(
+ tm-btn#tm-modal-error__btn-logs(
size="lg"
icon="info_outline"
value="View app logs"
@@ -22,10 +22,10 @@
diff --git a/app/src/renderer/components/common/NiOnboarding.vue b/app/src/renderer/components/common/TmOnboarding.vue
similarity index 62%
rename from app/src/renderer/components/common/NiOnboarding.vue
rename to app/src/renderer/components/common/TmOnboarding.vue
index 23513ce6e8..1bfc804961 100644
--- a/app/src/renderer/components/common/NiOnboarding.vue
+++ b/app/src/renderer/components/common/TmOnboarding.vue
@@ -1,30 +1,29 @@
-#onboarding.ni-session-wrapper
- img.ni-session-backdrop(src="~assets/images/cosmos-logo.png")
- .ni-session: .ni-session-container
- .ni-session-header: .ni-session-title Welcome to Voyager
- .ni-session-main
- .ni-session-label {{ activeValue }}
+#onboarding.tm-session-wrapper
+ img.tm-session-backdrop(src="~assets/images/cosmos-logo.png")
+ .tm-session: .tm-session-container
+ .tm-session-header: .tm-session-title Welcome to Voyager
+ .tm-session-main
+ .tm-session-label {{ activeValue }}
img(:src="activeImg")
- bar-discrete(:nodes="nodes" :click-fn="go" :active="activeKey")
- .ni-session-footer(v-if="activeKey === nodes.length - 1")
- btn(value="Restart" @click.native="go(0)" icon="settings_backup_restore")
- btn(value="Finish" @click.native="finish" color="primary"
+ tm-bar-discrete(:nodes="nodes" :click-fn="go" :active="activeKey")
+ .tm-session-footer(v-if="activeKey === nodes.length - 1")
+ tm-btn(value="Restart" @click.native="go(0)" icon="settings_backup_restore")
+ tm-btn(value="Finish" @click.native="finish" color="primary"
icon="chevron_right" icon-pos="right" )
- .ni-session-footer(v-else)
- btn(value="Skip" @click.native="finish" icon="close")
- btn(value="Next" @click.native="next" color="primary"
+ .tm-session-footer(v-else)
+ tm-btn(value="Skip" @click.native="finish" icon="close")
+ tm-btn(value="Next" @click.native="next" color="primary"
icon="chevron_right" icon-pos="right" )
@@ -73,6 +72,6 @@ export default {
diff --git a/app/src/renderer/components/common/NiPart.vue b/app/src/renderer/components/common/TmPart.vue
similarity index 62%
rename from app/src/renderer/components/common/NiPart.vue
rename to app/src/renderer/components/common/TmPart.vue
index 1664c823e0..d625810955 100644
--- a/app/src/renderer/components/common/NiPart.vue
+++ b/app/src/renderer/components/common/TmPart.vue
@@ -1,19 +1,19 @@
-section.ni-part
- .ni-part-container
- header.ni-part-header(v-if="$slots['title'] || title")
- .ni-part-header-container
- .ni-part-title.h5
+section.tm-part
+ .tm-part-container
+ header.tm-part-header(v-if="$slots['title'] || title")
+ .tm-part-header-container
+ .tm-part-title.h5
template(v-if='title') {{ title }}
slot(name='title', v-else='')
- menu.ni-part-menu
+ menu.tm-part-menu
slot(name='menu')
- main.ni-part-main: slot
+ main.tm-part-main: slot
@@ -21,30 +21,31 @@ export default {
diff --git a/app/src/renderer/components/common/NiSessionAccountDelete.vue b/app/src/renderer/components/common/TmSessionAccountDelete.vue
similarity index 59%
rename from app/src/renderer/components/common/NiSessionAccountDelete.vue
rename to app/src/renderer/components/common/TmSessionAccountDelete.vue
index 1b27fe2379..ec57ae27b5 100644
--- a/app/src/renderer/components/common/NiSessionAccountDelete.vue
+++ b/app/src/renderer/components/common/TmSessionAccountDelete.vue
@@ -1,48 +1,48 @@
-.ni-session: form-struct(:submit='onSubmit').ni-session-container
- .ni-session-header
+.tm-session: tm-form-struct(:submit='onSubmit').tm-session-container
+ .tm-session-header
a(@click="setState('sign-in')"): i.material-icons arrow_back
- .ni-session-title Remove Account
+ .tm-session-title Remove Account
a(@click="help"): i.material-icons help_outline
- .ni-session-main
- form-group(:error='$v.fields.deletionPassword.$error'
+ .tm-session-main
+ tm-form-group(:error='$v.fields.deletionPassword.$error'
field-id='sign-in-password' field-label='Password')
- field#sign-in-password(
+ tm-field#sign-in-password(
type="password"
placeholder="Enter your password"
v-model="fields.deletionPassword")
- form-msg(name='Password' type='required' v-if='!$v.fields.deletionPassword.required')
- form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.deletionPassword.minLength')
+ tm-form-msg(name='Password' type='required' v-if='!$v.fields.deletionPassword.required')
+ tm-form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.deletionPassword.minLength')
- form-group(field-id="sign-up-warning" field-label=' '
+ tm-form-group(field-id="sign-up-warning" field-label=' '
:error='$v.fields.deletionWarning.$error')
- .ni-field-checkbox
- .ni-field-checkbox-input
+ .tm-field-checkbox
+ .tm-field-checkbox-input
input#sign-up-warning(type="checkbox" v-model="fields.deletionWarning")
- label.ni-field-checkbox-label(for="sign-up-warning")
+ label.tm-field-checkbox-label(for="sign-up-warning")
| I understand that Cosmos cannot recover deleted accounts without the passphrase.
- form-msg(name='Deletion confirmation' type='required' v-if='!$v.fields.deletionWarning.required')
- .ni-session-footer
- btn(icon="exit_to_app" value="Sign Out and Remove Account" size="lg")
+ tm-form-msg(name='Deletion confirmation' type='required' v-if='!$v.fields.deletionWarning.required')
+ .tm-session-footer
+ tm-btn(icon="exit_to_app" value="Sign Out and Remove Account" size="lg")
diff --git a/app/src/renderer/components/common/NiSessionSignIn.vue b/app/src/renderer/components/common/TmSessionSignIn.vue
similarity index 69%
rename from app/src/renderer/components/common/NiSessionSignIn.vue
rename to app/src/renderer/components/common/TmSessionSignIn.vue
index 9b1cb57a84..ff88a544fa 100644
--- a/app/src/renderer/components/common/NiSessionSignIn.vue
+++ b/app/src/renderer/components/common/TmSessionSignIn.vue
@@ -1,48 +1,49 @@
-.ni-session: form-struct(:submit="onSubmit").ni-session-container
- .ni-session-header
+.tm-session: tm-form-struct(:submit="onSubmit").tm-session-container
+ .tm-session-header
a(@click="setState('welcome')"): i.material-icons arrow_back
- .ni-session-title Sign In
+ .tm-session-title Sign In
a(@click="help"): i.material-icons help_outline
- .ni-session-main
- form-group(field-id='sign-in-name' field-label='Select Account')
- field#sign-in-name(
+ .tm-session-main
+ tm-form-group(field-id='sign-in-name' field-label='Select Account')
+ tm-field#sign-in-name(
type="select"
v-model="fields.signInName"
placeholder="Select account…"
:options="accounts")
- form-msg(name='Name' type='required' v-if='!$v.fields.signInName.required')
+ tm-form-msg(name='Name' type='required' v-if='!$v.fields.signInName.required')
- form-group(:error='$v.fields.signInPassword.$error'
+ tm-form-group(:error='$v.fields.signInPassword.$error'
field-id='sign-in-password' field-label='Password')
- field#sign-in-password(
+ tm-field#sign-in-password(
type="password"
v-model="fields.signInPassword")
- form-msg(name='Password' type='required' v-if='!$v.fields.signInPassword.required')
- form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.signInPassword.minLength')
- form-msg(v-if='mockedConnector') default password is 1234567890
- .ni-session-footer
- btn(icon="arrow_forward" icon-pos="right" value="Sign In" size="lg" color="primary")
+ tm-form-msg(name='Password' type='required' v-if='!$v.fields.signInPassword.required')
+ tm-form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.signInPassword.minLength')
+ tm-form-msg(v-if='mockedConnector') default password is 1234567890
+
+ .tm-session-footer
+ tm-btn(icon="arrow_forward" icon-pos="right" value="Next" size="lg")
diff --git a/app/src/renderer/components/common/NiSessionSignUp.vue b/app/src/renderer/components/common/TmSessionSignUp.vue
similarity index 61%
rename from app/src/renderer/components/common/NiSessionSignUp.vue
rename to app/src/renderer/components/common/TmSessionSignUp.vue
index d9882384fd..41d3f39562 100644
--- a/app/src/renderer/components/common/NiSessionSignUp.vue
+++ b/app/src/renderer/components/common/TmSessionSignUp.vue
@@ -1,81 +1,81 @@
-.ni-session: form-struct(:submit='onSubmit').ni-session-container
- .ni-session-header
+.tm-session: tm-form-struct(:submit='onSubmit').tm-session-container
+ .tm-session-header
a(@click="setState('welcome')"): i.material-icons arrow_back
- .ni-session-title Create Account
+ .tm-session-title Create Account
a(@click="help"): i.material-icons help_outline
- .ni-session-main
- form-group(field-id='sign-up-name' field-label='Account Name' :error='$v.fields.signUpName.$error')
- field#sign-up-name(
+ .tm-session-main
+ tm-form-group(field-id='sign-up-name' field-label='Account Name' :error='$v.fields.signUpName.$error')
+ tm-field#sign-up-name(
type="text"
placeholder="Must be at least 5 characters"
v-model="fields.signUpName")
- form-msg(name='Name' type='required' v-if='!$v.fields.signUpName.required')
- form-msg(name='Name' type='minLength' min="5" v-if='!$v.fields.signUpName.minLength')
+ tm-form-msg(name='Name' type='required' v-if='!$v.fields.signUpName.required')
+ tm-form-msg(name='Name' type='minLength' min="5" v-if='!$v.fields.signUpName.minLength')
- form-group(:error='$v.fields.signUpPassword.$error'
+ tm-form-group(:error='$v.fields.signUpPassword.$error'
field-id='sign-up-password' field-label='Password')
- field#sign-up-password(
+ tm-field#sign-up-password(
type="password"
placeholder="Must be at least 10 characters"
v-model="fields.signUpPassword")
- form-msg(name='Password' type='required' v-if='!$v.fields.signUpPassword.required')
- form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.signUpPassword.minLength')
+ tm-form-msg(name='Password' type='required' v-if='!$v.fields.signUpPassword.required')
+ tm-form-msg(name='Password' type='minLength' min="10" v-if='!$v.fields.signUpPassword.minLength')
- form-group(:error='$v.fields.signUpPasswordConfirm.$error'
+ tm-form-group(:error='$v.fields.signUpPasswordConfirm.$error'
field-id='sign-up-password-confirm' field-label='Confirm Password')
- field#sign-up-password-confirm(
+ tm-field#sign-up-password-confirm(
type="password"
placeholder="Enter password again"
v-model="fields.signUpPasswordConfirm")
- form-msg(name='Password confirmation' type='match' v-if='!$v.fields.signUpPasswordConfirm.sameAsPassword')
+ tm-form-msg(name='Password confirmation' type='match' v-if='!$v.fields.signUpPasswordConfirm.sameAsPassword')
- form-group(field-id='sign-up-seed' field-label='Seed Phrase')
+ tm-form-group(field-id='sign-up-seed' field-label='Seed Phrase')
field-seed#sign-up-seed(v-model="fields.signUpSeed" disabled)
- form-msg.sm
+ tm-form-msg.sm
| Please back up the seed phrase for this account. This seed phrase cannot be recovered.
- form-group(field-id="sign-up-warning" field-label=''
+ tm-form-group(field-id="sign-up-warning" field-label=''
:error='$v.fields.signUpWarning.$error')
- .ni-field-checkbox
- .ni-field-checkbox-input
+ .tm-field-checkbox
+ .tm-field-checkbox-input
input#sign-up-warning(type="checkbox" v-model="fields.signUpWarning")
- label.ni-field-checkbox-label(for="sign-up-warning")
+ label.tm-field-checkbox-label(for="sign-up-warning")
| I have securely written down my seed. I understand that lost seeds cannot be recovered.
- form-msg(name='Recovery confirmation' type='required' v-if='!$v.fields.signUpWarning.required')
+ tm-form-msg(name='Recovery confirmation' type='required' v-if='!$v.fields.signUpWarning.required')
- form-group(field-id="error-collection" field-label=''
+ tm-form-group(field-id="error-collection" field-label=''
:error='$v.fields.errorCollection.$error')
- .ni-field-checkbox
- .ni-field-checkbox-input
+ .tm-field-checkbox
+ .tm-field-checkbox-input
input#error-collection(type="checkbox" v-model="fields.errorCollection")
- label.ni-field-checkbox-label(for="error-collection")
+ label.tm-field-checkbox-label(for="error-collection")
| I'd like to opt in for remote error tracking to help improve Voyager.
- .ni-session-footer
- btn(icon="arrow_forward" icon-pos="right" value="Next" size="lg" :disabled="creating")
+ .tm-session-footer
+ tm-btn(icon="arrow_forward" icon-pos="right" value="Next" size="lg" :disabled="creating")
diff --git a/app/src/renderer/components/common/TmToolBar.vue b/app/src/renderer/components/common/TmToolBar.vue
new file mode 100644
index 0000000000..a2d14b5ecb
--- /dev/null
+++ b/app/src/renderer/components/common/TmToolBar.vue
@@ -0,0 +1,29 @@
+
+ tm-tool-bar
+ slot
+ a.back(@click="$router.go(-1)" v-tooltip.bottom="'Back'")
+ i.material-icons arrow_back
+ a.help(@click="enableModalHelp" v-tooltip.bottom="'Help'")
+ i.material-icons help_outline
+ a.sign-out(@click="signOut" v-tooltip.bottom.end="'Sign Out'")
+ i.material-icons exit_to_app
+
+
+
diff --git a/app/src/renderer/components/common/NiUserPane.vue b/app/src/renderer/components/common/TmUserPane.vue
similarity index 79%
rename from app/src/renderer/components/common/NiUserPane.vue
rename to app/src/renderer/components/common/TmUserPane.vue
index 5aae1253d5..dafc72334d 100644
--- a/app/src/renderer/components/common/NiUserPane.vue
+++ b/app/src/renderer/components/common/TmUserPane.vue
@@ -1,5 +1,5 @@
-list-item.ni-li-user(
+tm-list-item.tm-li-user(
v-if="user.signedIn"
type="link"
to="/preferences"
@@ -11,10 +11,10 @@ list-item.ni-li-user(