@oasisomniverse/vue 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +37 -0
- package/src/components/Avatar/AvatarWallet.vue +29 -0
- package/src/components/Avatar/EditAvatar.vue +21 -0
- package/src/components/Avatar/SearchAvatar.vue +24 -0
- package/src/components/Avatar/ViewAvatar.vue +19 -0
- package/src/components/AvatarConnect/AvatarConnect.vue +64 -0
- package/src/components/AvatarProfile/AvatarProfile.vue +123 -0
- package/src/components/ComingSoon/ComingSoon.vue +14 -0
- package/src/components/Confirmation/Confirmation.vue +18 -0
- package/src/components/Contact/Contact.vue +40 -0
- package/src/components/DataScreen/AddData.vue +26 -0
- package/src/components/DataScreen/CrossChainManagement.vue +14 -0
- package/src/components/DataScreen/LoadData.vue +24 -0
- package/src/components/DataScreen/ManageData.vue +14 -0
- package/src/components/DataScreen/OffChainManagement.vue +14 -0
- package/src/components/DataScreen/SearchData.vue +24 -0
- package/src/components/Eggs/Eggs.vue +40 -0
- package/src/components/Eggs/ManageEggs.vue +14 -0
- package/src/components/Eggs/SearchEggs.vue +24 -0
- package/src/components/Eggs/ViewEggs.vue +20 -0
- package/src/components/ForgotPassword/ForgotPassword.vue +71 -0
- package/src/components/Game/Game.vue +29 -0
- package/src/components/Game/SearchProfiles.vue +24 -0
- package/src/components/Game/ViewAchievements.vue +25 -0
- package/src/components/Game/ViewLeagues.vue +25 -0
- package/src/components/Game/ViewTournaments.vue +27 -0
- package/src/components/HyperDrive/HyperDrive.vue +46 -0
- package/src/components/Karma/SearchKarma.vue +24 -0
- package/src/components/Karma/ViewAvatarKarma.vue +20 -0
- package/src/components/Karma/ViewKarma.vue +30 -0
- package/src/components/Karma/VoteKarma.vue +26 -0
- package/src/components/KarmaPanel/KarmaPanel.vue +71 -0
- package/src/components/KarmaToast/KarmaToast.vue +29 -0
- package/src/components/Login/Login.vue +90 -0
- package/src/components/Map/Add2dObjectMap.vue +23 -0
- package/src/components/Map/Add3dObjectMap.vue +24 -0
- package/src/components/Map/AddQuestToMap.vue +22 -0
- package/src/components/Map/DownloadOurWorld.vue +18 -0
- package/src/components/Map/ManageMap.vue +14 -0
- package/src/components/Map/Map.vue +38 -0
- package/src/components/Map/PlotRouteOnMap.vue +25 -0
- package/src/components/Map/SearchMap.vue +24 -0
- package/src/components/Map/ViewGlobal3dMap.vue +14 -0
- package/src/components/Map/ViewHalonsOnMap.vue +27 -0
- package/src/components/Map/ViewOappOnMap.vue +14 -0
- package/src/components/Map/ViewQuestOnMap.vue +20 -0
- package/src/components/MenuMessage/MenuMessage.vue +72 -0
- package/src/components/Message/Message.vue +50 -0
- package/src/components/Messaging/Messaging.vue +44 -0
- package/src/components/Mission/ManageMission.vue +14 -0
- package/src/components/Mission/Mission.vue +32 -0
- package/src/components/Mission/SearchMission.vue +24 -0
- package/src/components/Mission/ViewMission.vue +21 -0
- package/src/components/NFT/ContactPopup.vue +36 -0
- package/src/components/NFT/ManageOasisNft.vue +14 -0
- package/src/components/NFT/NFT.vue +36 -0
- package/src/components/NFT/PurchaseOasisNft.vue +21 -0
- package/src/components/NFT/PurchaseOasisVirtualLandNft.vue +23 -0
- package/src/components/NFT/SearchOasisNft.vue +30 -0
- package/src/components/NFT/Solana.vue +27 -0
- package/src/components/NFT/ViewOasisNft.vue +20 -0
- package/src/components/NavBar/NavBar.vue +71 -0
- package/src/components/OApp/CreateOAPP.vue +31 -0
- package/src/components/OApp/DeployOAPP.vue +23 -0
- package/src/components/OApp/DownloadOurWorld.vue +18 -0
- package/src/components/OApp/EditOAPP.vue +21 -0
- package/src/components/OApp/InstallOAPP.vue +23 -0
- package/src/components/OApp/LaunchOAPP.vue +19 -0
- package/src/components/OApp/ManageOAPP.vue +14 -0
- package/src/components/OApp/OApp.vue +40 -0
- package/src/components/OApp/SearchOAPP.vue +30 -0
- package/src/components/ONET/ONET.vue +40 -0
- package/src/components/ONODE/ONODE.vue +42 -0
- package/src/components/OasisModal/OasisModal.vue +36 -0
- package/src/components/Provider/ActivityPub.vue +14 -0
- package/src/components/Provider/CompareProviderSpeeds.vue +32 -0
- package/src/components/Provider/Eosio.vue +14 -0
- package/src/components/Provider/Ethereum.vue +14 -0
- package/src/components/Provider/Holochain.vue +14 -0
- package/src/components/Provider/Ipfs.vue +14 -0
- package/src/components/Provider/ManageAutoFailOver.vue +14 -0
- package/src/components/Provider/ManageAutoReplicaton.vue +14 -0
- package/src/components/Provider/ManageLoadBalancing.vue +14 -0
- package/src/components/Provider/ManageProviders.vue +27 -0
- package/src/components/Provider/MongoDb.vue +14 -0
- package/src/components/Provider/Neo4j.vue +14 -0
- package/src/components/Provider/SearchProviders.vue +24 -0
- package/src/components/Provider/Seeds.vue +14 -0
- package/src/components/Provider/Solid.vue +14 -0
- package/src/components/Provider/SqlLite.vue +14 -0
- package/src/components/Provider/ThreeFold.vue +14 -0
- package/src/components/Provider/ViewProviderStats.vue +27 -0
- package/src/components/Provider/ViewProviders.vue +30 -0
- package/src/components/ProviderDropdown/ProviderDropdown.vue +34 -0
- package/src/components/Providers/Providers.vue +30 -0
- package/src/components/Quest/ManageQuest.vue +14 -0
- package/src/components/Quest/Quest.vue +35 -0
- package/src/components/Quest/SearchQuest.vue +30 -0
- package/src/components/Quest/ViewQuest.vue +23 -0
- package/src/components/ResetPassword/ResetPassword.vue +39 -0
- package/src/components/SearchAvatars/SearchAvatars.vue +42 -0
- package/src/components/Seeds/AcceptInvite.vue +26 -0
- package/src/components/Seeds/DonateSeeds.vue +34 -0
- package/src/components/Seeds/ManageSeeds.vue +14 -0
- package/src/components/Seeds/PayWithSeeds.vue +34 -0
- package/src/components/Seeds/RewardSeeds.vue +20 -0
- package/src/components/Seeds/SearchSeeds.vue +18 -0
- package/src/components/Seeds/Seeds.vue +37 -0
- package/src/components/Seeds/SendInvite.vue +34 -0
- package/src/components/Seeds/ViewOrganizations.vue +27 -0
- package/src/components/Seeds/ViewSeeds.vue +34 -0
- package/src/components/Settings/Settings.vue +52 -0
- package/src/components/Signup/Signup.vue +121 -0
- package/src/components/StarField/StarField.vue +55 -0
- package/src/components/VerifyEmail/VerifyEmail.vue +21 -0
- package/src/components/Wallet/Wallet.vue +41 -0
- package/src/index.ts +143 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import { useOasis } from '../../../composables/useOasis'
|
|
4
|
+
|
|
5
|
+
const emit = defineEmits<{ switchTo: [view: 'login'] }>()
|
|
6
|
+
|
|
7
|
+
const { register } = useOasis()
|
|
8
|
+
|
|
9
|
+
const firstName = ref('')
|
|
10
|
+
const lastName = ref('')
|
|
11
|
+
const username = ref('')
|
|
12
|
+
const email = ref('')
|
|
13
|
+
const password = ref('')
|
|
14
|
+
const confirmPassword = ref('')
|
|
15
|
+
const acceptTerms = ref(false)
|
|
16
|
+
const loading = ref(false)
|
|
17
|
+
const error = ref('')
|
|
18
|
+
const success = ref(false)
|
|
19
|
+
|
|
20
|
+
async function submit() {
|
|
21
|
+
if (!firstName.value || !lastName.value || !username.value || !email.value || !password.value) {
|
|
22
|
+
error.value = 'Please fill in all fields.'; return
|
|
23
|
+
}
|
|
24
|
+
if (password.value !== confirmPassword.value) { error.value = 'Passwords do not match.'; return }
|
|
25
|
+
if (password.value.length < 6) { error.value = 'Password must be at least 6 characters.'; return }
|
|
26
|
+
if (!acceptTerms.value) { error.value = 'Please accept the Terms of Service.'; return }
|
|
27
|
+
loading.value = true
|
|
28
|
+
error.value = ''
|
|
29
|
+
try {
|
|
30
|
+
await register(firstName.value, lastName.value, username.value, email.value, password.value)
|
|
31
|
+
success.value = true
|
|
32
|
+
} catch (e: any) {
|
|
33
|
+
error.value = e?.message ?? 'Registration failed. Please try again.'
|
|
34
|
+
} finally {
|
|
35
|
+
loading.value = false
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<div class="oasis-auth-form">
|
|
42
|
+
<div class="oasis-auth-header">
|
|
43
|
+
<h2 class="oasis-auth-title">Sign Up</h2>
|
|
44
|
+
<p class="oasis-auth-sub">
|
|
45
|
+
Already have an account?
|
|
46
|
+
<a class="oasis-link" href="#" @click.prevent="emit('switchTo', 'login')">Beam In</a>
|
|
47
|
+
</p>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div v-if="error" class="oasis-auth-error">{{ error }}</div>
|
|
51
|
+
|
|
52
|
+
<template v-if="!success">
|
|
53
|
+
<div class="oasis-grid-2">
|
|
54
|
+
<div class="oasis-field">
|
|
55
|
+
<label class="oasis-label" for="su-first">First Name</label>
|
|
56
|
+
<input class="oasis-input" id="su-first" type="text" v-model="firstName" placeholder="John" />
|
|
57
|
+
</div>
|
|
58
|
+
<div class="oasis-field">
|
|
59
|
+
<label class="oasis-label" for="su-last">Last Name</label>
|
|
60
|
+
<input class="oasis-input" id="su-last" type="text" v-model="lastName" placeholder="Doe" />
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="oasis-grid-2">
|
|
65
|
+
<div class="oasis-field">
|
|
66
|
+
<label class="oasis-label" for="su-username">Username</label>
|
|
67
|
+
<input class="oasis-input" id="su-username" type="text" v-model="username" placeholder="johndoe" autocomplete="username" />
|
|
68
|
+
</div>
|
|
69
|
+
<div class="oasis-field">
|
|
70
|
+
<label class="oasis-label" for="su-email">Email</label>
|
|
71
|
+
<input class="oasis-input" id="su-email" type="email" v-model="email" placeholder="name@example.com" autocomplete="email" />
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="oasis-grid-2">
|
|
76
|
+
<div class="oasis-field">
|
|
77
|
+
<label class="oasis-label" for="su-pwd">Password</label>
|
|
78
|
+
<input class="oasis-input" id="su-pwd" type="password" v-model="password" placeholder="min 6 characters" autocomplete="new-password" />
|
|
79
|
+
</div>
|
|
80
|
+
<div class="oasis-field">
|
|
81
|
+
<label class="oasis-label" for="su-cpwd">Confirm Password</label>
|
|
82
|
+
<input class="oasis-input" id="su-cpwd" type="password" v-model="confirmPassword" placeholder="••••••••" autocomplete="new-password" />
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div class="oasis-field oasis-field--row">
|
|
87
|
+
<input class="oasis-checkbox" id="su-terms" type="checkbox" v-model="acceptTerms" />
|
|
88
|
+
<label class="oasis-label oasis-label--inline" for="su-terms">I accept the Terms of Service</label>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<button class="oasis-btn" type="button" :disabled="loading" @click="submit">
|
|
92
|
+
{{ loading ? 'Creating account…' : 'Create Account' }}
|
|
93
|
+
</button>
|
|
94
|
+
</template>
|
|
95
|
+
|
|
96
|
+
<div v-else class="oasis-auth-success">
|
|
97
|
+
✅ Account created!
|
|
98
|
+
<a class="oasis-link" href="#" @click.prevent="emit('switchTo', 'login')">Beam In</a>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</template>
|
|
102
|
+
|
|
103
|
+
<style scoped>
|
|
104
|
+
.oasis-auth-form { display:flex; flex-direction:column; gap:18px; }
|
|
105
|
+
.oasis-auth-header { text-align:center; }
|
|
106
|
+
.oasis-auth-title { font-family:'Orbitron',sans-serif; font-size:22px; color:#fff; margin:0 0 6px; }
|
|
107
|
+
.oasis-auth-sub { font-size:13px; color:#7a9bbf; margin:0; }
|
|
108
|
+
.oasis-auth-error { background:rgba(255,80,80,.12); border:1px solid rgba(255,80,80,.3); color:#ff6b6b; border-radius:8px; padding:10px 14px; font-size:13px; }
|
|
109
|
+
.oasis-auth-success { background:rgba(72,220,130,.12); border:1px solid rgba(72,220,130,.3); color:#48dc82; border-radius:8px; padding:10px 14px; font-size:13px; }
|
|
110
|
+
.oasis-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
|
|
111
|
+
.oasis-field { display:flex; flex-direction:column; gap:6px; }
|
|
112
|
+
.oasis-field--row { flex-direction:row; align-items:center; gap:10px; }
|
|
113
|
+
.oasis-label { font-size:12px; font-weight:600; letter-spacing:.06em; color:#7a9bbf; text-transform:uppercase; }
|
|
114
|
+
.oasis-label--inline { text-transform:none; font-size:13px; color:#a8bfd8; }
|
|
115
|
+
.oasis-input { width:100%; background:rgba(255,255,255,.05); border:1px solid rgba(0,200,255,.2); border-radius:8px; padding:10px 14px; color:#fff; font-size:14px; outline:none; box-sizing:border-box; transition:border-color .2s; }
|
|
116
|
+
.oasis-input:focus { border-color:rgba(0,200,255,.5); }
|
|
117
|
+
.oasis-checkbox { width:16px; height:16px; accent-color:#00c8ff; cursor:pointer; flex-shrink:0; }
|
|
118
|
+
.oasis-link { color:#00c8ff; text-decoration:none; cursor:pointer; }
|
|
119
|
+
.oasis-btn { background:linear-gradient(135deg,#00c8ff,#0080ff); border:none; border-radius:8px; color:#fff; font-family:'Orbitron',sans-serif; font-size:13px; font-weight:700; letter-spacing:.08em; padding:12px; cursor:pointer; transition:opacity .2s; }
|
|
120
|
+
.oasis-btn:disabled { opacity:.5; cursor:not-allowed; }
|
|
121
|
+
</style>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<canvas ref="canvas" class="star-canvas" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup lang="ts">
|
|
6
|
+
import { ref, onMounted, onUnmounted } from 'vue'
|
|
7
|
+
|
|
8
|
+
const canvas = ref<HTMLCanvasElement | null>(null)
|
|
9
|
+
let animId = 0
|
|
10
|
+
|
|
11
|
+
onMounted(() => {
|
|
12
|
+
const el = canvas.value!
|
|
13
|
+
const ctx = el.getContext('2d')!
|
|
14
|
+
const stars = Array.from({ length: 160 }, () => ({
|
|
15
|
+
x: Math.random(), y: Math.random(),
|
|
16
|
+
r: Math.random() * 1.2 + 0.2,
|
|
17
|
+
o: Math.random(),
|
|
18
|
+
s: (Math.random() - 0.5) * 0.002,
|
|
19
|
+
}))
|
|
20
|
+
|
|
21
|
+
const resize = () => { el.width = window.innerWidth; el.height = window.innerHeight }
|
|
22
|
+
resize()
|
|
23
|
+
window.addEventListener('resize', resize)
|
|
24
|
+
|
|
25
|
+
const draw = () => {
|
|
26
|
+
ctx.clearRect(0, 0, el.width, el.height)
|
|
27
|
+
for (const s of stars) {
|
|
28
|
+
s.o += s.s
|
|
29
|
+
if (s.o < 0.1 || s.o > 1) s.s = -s.s
|
|
30
|
+
ctx.beginPath()
|
|
31
|
+
ctx.arc(s.x * el.width, s.y * el.height, s.r, 0, Math.PI * 2)
|
|
32
|
+
ctx.fillStyle = `rgba(200,220,255,${s.o.toFixed(2)})`
|
|
33
|
+
ctx.fill()
|
|
34
|
+
}
|
|
35
|
+
animId = requestAnimationFrame(draw)
|
|
36
|
+
}
|
|
37
|
+
draw()
|
|
38
|
+
|
|
39
|
+
onUnmounted(() => {
|
|
40
|
+
cancelAnimationFrame(animId)
|
|
41
|
+
window.removeEventListener('resize', resize)
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<style scoped>
|
|
47
|
+
.star-canvas {
|
|
48
|
+
position: fixed;
|
|
49
|
+
inset: 0;
|
|
50
|
+
z-index: 0;
|
|
51
|
+
pointer-events: none;
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 100%;
|
|
54
|
+
}
|
|
55
|
+
</style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import { OASISClient } from '@oasisomniverse/web4-api'
|
|
4
|
+
const loading = ref(false); const error = ref(''); const sent = ref(false)
|
|
5
|
+
async function resend() {
|
|
6
|
+
loading.value = true; error.value = ''; sent.value = false
|
|
7
|
+
try { const oasis = new OASISClient({ baseUrl: 'https://api.web4.oasisomniverse.one' }); await (oasis.auth as any).resendVerificationEmail(); sent.value = true }
|
|
8
|
+
catch (e: any) { error.value = e?.message ?? 'Failed to resend.' } finally { loading.value = false }
|
|
9
|
+
}
|
|
10
|
+
</script>
|
|
11
|
+
<template>
|
|
12
|
+
<div class="oasis-auth-form">
|
|
13
|
+
<div class="oasis-auth-header"><div style="font-size:48px;margin-bottom:12px">📧</div><h2 class="oasis-auth-title">Verify Your Email</h2><p class="oasis-auth-sub">Check your inbox and click the link to activate your account.</p></div>
|
|
14
|
+
<div v-if="error" class="oasis-auth-error">{{ error }}</div>
|
|
15
|
+
<div v-if="sent" class="oasis-auth-success">✅ Verification email resent!</div>
|
|
16
|
+
<button class="oasis-btn oasis-btn--ghost" :disabled="loading" @click="resend">{{ loading ? 'Sending…' : 'Resend Verification Email' }}</button>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
<style scoped>
|
|
20
|
+
.oasis-auth-form{display:flex;flex-direction:column;gap:20px;text-align:center}.oasis-auth-header{display:flex;flex-direction:column;align-items:center}.oasis-auth-title{font-family:'Orbitron',sans-serif;font-size:20px;color:#fff;margin:0 0 8px}.oasis-auth-sub{font-size:13px;color:#7a9bbf;margin:0;line-height:1.6}.oasis-auth-error{background:rgba(255,80,80,.12);border:1px solid rgba(255,80,80,.3);color:#ff6b6b;border-radius:8px;padding:10px 14px;font-size:13px}.oasis-auth-success{background:rgba(72,220,130,.12);border:1px solid rgba(72,220,130,.3);color:#48dc82;border-radius:8px;padding:10px 14px;font-size:13px}.oasis-btn{border:none;border-radius:8px;font-family:'Orbitron',sans-serif;font-size:13px;font-weight:700;letter-spacing:.08em;padding:12px;cursor:pointer;transition:opacity .2s}.oasis-btn--ghost{background:transparent;border:1px solid rgba(0,200,255,.3);color:#00c8ff}.oasis-btn:disabled{opacity:.5;cursor:not-allowed}
|
|
21
|
+
</style>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
interface Transaction { id: string; type: 'in' | 'out'; amount: number; currency: string; description: string; date: string }
|
|
3
|
+
const balances = [
|
|
4
|
+
{ icon: '⟠', currency: 'Ethereum', network: 'Mainnet', amount: '0.4821', symbol: 'ETH' },
|
|
5
|
+
{ icon: '◎', currency: 'Solana', network: 'Mainnet', amount: '12.305', symbol: 'SOL' },
|
|
6
|
+
{ icon: '⬡', currency: 'Polygon', network: 'Mainnet', amount: '245.00', symbol: 'MATIC' },
|
|
7
|
+
]
|
|
8
|
+
const transactions: Transaction[] = [
|
|
9
|
+
{ id: '1', type: 'in', amount: 0.05, currency: 'ETH', description: 'NFT Sale — Cosmic Warrior', date: '2 hours ago' },
|
|
10
|
+
{ id: '2', type: 'out', amount: 12, currency: 'SOL', description: 'Quest Reward Conversion', date: '1 day ago' },
|
|
11
|
+
{ id: '3', type: 'in', amount: 100, currency: 'MATIC', description: 'Karma Reward Payout', date: '3 days ago' },
|
|
12
|
+
]
|
|
13
|
+
</script>
|
|
14
|
+
<template>
|
|
15
|
+
<div class="wlt-shell">
|
|
16
|
+
<div class="wlt-header"><h2 class="wlt-title">💰 Wallet</h2><p class="wlt-sub">Your OASIS multi-chain wallet.</p></div>
|
|
17
|
+
<div class="wlt-balances">
|
|
18
|
+
<div v-for="b in balances" :key="b.currency" class="wlt-balance-card">
|
|
19
|
+
<div class="wlt-currency-icon">{{ b.icon }}</div>
|
|
20
|
+
<div class="wlt-currency-info"><div class="wlt-currency-name">{{ b.currency }}</div><div class="wlt-currency-net">{{ b.network }}</div></div>
|
|
21
|
+
<div class="wlt-amount">{{ b.amount }} <span class="wlt-symbol">{{ b.symbol }}</span></div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="wlt-actions">
|
|
25
|
+
<button class="wlt-action-btn">📤 Send</button>
|
|
26
|
+
<button class="wlt-action-btn">📥 Receive</button>
|
|
27
|
+
<button class="wlt-action-btn">🔄 Swap</button>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="wlt-tx-header">Recent Transactions</div>
|
|
30
|
+
<div class="wlt-tx-list">
|
|
31
|
+
<div v-for="t in transactions" :key="t.id" class="wlt-tx">
|
|
32
|
+
<div class="wlt-tx-icon" :class="`wlt-tx-icon--${t.type}`">{{ t.type === 'in' ? '↓' : '↑' }}</div>
|
|
33
|
+
<div class="wlt-tx-info"><div class="wlt-tx-desc">{{ t.description }}</div><div class="wlt-tx-date">{{ t.date }}</div></div>
|
|
34
|
+
<div class="wlt-tx-amount" :class="`wlt-tx-amount--${t.type}`">{{ t.type === 'in' ? '+' : '-' }}{{ t.amount }} {{ t.currency }}</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</template>
|
|
39
|
+
<style scoped>
|
|
40
|
+
.wlt-shell{display:flex;flex-direction:column;gap:18px}.wlt-header{text-align:center}.wlt-title{font-family:'Orbitron',sans-serif;font-size:20px;color:#fff;margin:0 0 6px}.wlt-sub{font-size:13px;color:#7a9bbf;margin:0}.wlt-balances{display:flex;flex-direction:column;gap:10px}.wlt-balance-card{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.04);border:1px solid rgba(0,200,255,.12);border-radius:10px;padding:14px 16px}.wlt-currency-icon{font-size:24px}.wlt-currency-info{flex:1}.wlt-currency-name{font-family:'Orbitron',sans-serif;font-size:13px;color:#fff}.wlt-currency-net{font-size:11px;color:#7a9bbf;margin-top:2px}.wlt-amount{font-family:'Share Tech Mono',monospace;font-size:16px;color:#00c8ff;font-weight:600}.wlt-symbol{font-size:12px;color:#7a9bbf}.wlt-actions{display:flex;gap:10px}.wlt-action-btn{flex:1;background:rgba(0,200,255,.08);border:1px solid rgba(0,200,255,.2);border-radius:8px;color:#00c8ff;font-family:'Orbitron',sans-serif;font-size:11px;font-weight:700;letter-spacing:.06em;padding:10px;cursor:pointer;transition:all .2s}.wlt-action-btn:hover{background:rgba(0,200,255,.15)}.wlt-tx-header{font-family:'Orbitron',sans-serif;font-size:12px;color:#7a9bbf;letter-spacing:.06em;text-transform:uppercase}.wlt-tx-list{display:flex;flex-direction:column;gap:8px}.wlt-tx{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid rgba(0,200,255,.08);border-radius:8px}.wlt-tx-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.wlt-tx-icon--in{background:rgba(72,220,130,.15);color:#48dc82}.wlt-tx-icon--out{background:rgba(255,107,107,.15);color:#ff6b6b}.wlt-tx-info{flex:1}.wlt-tx-desc{font-size:13px;color:#e0f0ff}.wlt-tx-date{font-size:11px;color:#4a6a88;margin-top:2px}.wlt-tx-amount{font-family:'Share Tech Mono',monospace;font-size:13px;font-weight:600;white-space:nowrap}.wlt-tx-amount--in{color:#48dc82}.wlt-tx-amount--out{color:#ff6b6b}
|
|
41
|
+
</style>
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// @oasisomniverse/vue — OASIS Omniverse Vue 3 components
|
|
2
|
+
|
|
3
|
+
export { default as AvatarConnect } from './components/AvatarConnect/AvatarConnect.vue';
|
|
4
|
+
export { default as AvatarProfile } from './components/AvatarProfile/AvatarProfile.vue';
|
|
5
|
+
export { default as ComingSoon } from './components/ComingSoon/ComingSoon.vue';
|
|
6
|
+
export { default as Confirmation } from './components/Confirmation/Confirmation.vue';
|
|
7
|
+
export { default as Contact } from './components/Contact/Contact.vue';
|
|
8
|
+
export { default as Eggs } from './components/Eggs/Eggs.vue';
|
|
9
|
+
export { default as ForgotPassword } from './components/ForgotPassword/ForgotPassword.vue';
|
|
10
|
+
export { default as Game } from './components/Game/Game.vue';
|
|
11
|
+
export { default as HyperDrive } from './components/HyperDrive/HyperDrive.vue';
|
|
12
|
+
export { default as KarmaPanel } from './components/KarmaPanel/KarmaPanel.vue';
|
|
13
|
+
export { default as KarmaToast } from './components/KarmaToast/KarmaToast.vue';
|
|
14
|
+
export { default as Login } from './components/Login/Login.vue';
|
|
15
|
+
export { default as Map } from './components/Map/Map.vue';
|
|
16
|
+
export { default as MenuMessage } from './components/MenuMessage/MenuMessage.vue';
|
|
17
|
+
export { default as Messaging } from './components/Messaging/Messaging.vue';
|
|
18
|
+
export { default as Mission } from './components/Mission/Mission.vue';
|
|
19
|
+
export { default as NavBar } from './components/NavBar/NavBar.vue';
|
|
20
|
+
export { default as NFT } from './components/NFT/NFT.vue';
|
|
21
|
+
export { default as OApp } from './components/OApp/OApp.vue';
|
|
22
|
+
export { default as OasisModal } from './components/OasisModal/OasisModal.vue';
|
|
23
|
+
export { default as ONET } from './components/ONET/ONET.vue';
|
|
24
|
+
export { default as ONODE } from './components/ONODE/ONODE.vue';
|
|
25
|
+
export { default as ProviderDropdown } from './components/ProviderDropdown/ProviderDropdown.vue';
|
|
26
|
+
export { default as Providers } from './components/Providers/Providers.vue';
|
|
27
|
+
export { default as Quest } from './components/Quest/Quest.vue';
|
|
28
|
+
export { default as ResetPassword } from './components/ResetPassword/ResetPassword.vue';
|
|
29
|
+
export { default as SearchAvatars } from './components/SearchAvatars/SearchAvatars.vue';
|
|
30
|
+
export { default as Seeds } from './components/Seeds/Seeds.vue';
|
|
31
|
+
export { default as Settings } from './components/Settings/Settings.vue';
|
|
32
|
+
export { default as Signup } from './components/Signup/Signup.vue';
|
|
33
|
+
export { default as StarField } from './components/StarField/StarField.vue';
|
|
34
|
+
export { default as VerifyEmail } from './components/VerifyEmail/VerifyEmail.vue';
|
|
35
|
+
export { default as Wallet } from './components/Wallet/Wallet.vue';
|
|
36
|
+
|
|
37
|
+
// Avatar sub-components
|
|
38
|
+
export { default as AvatarWallet } from './components/Avatar/AvatarWallet.vue';
|
|
39
|
+
export { default as EditAvatar } from './components/Avatar/EditAvatar.vue';
|
|
40
|
+
export { default as SearchAvatar } from './components/Avatar/SearchAvatar.vue';
|
|
41
|
+
export { default as ViewAvatar } from './components/Avatar/ViewAvatar.vue';
|
|
42
|
+
|
|
43
|
+
// DataScreen sub-components
|
|
44
|
+
export { default as AddData } from './components/DataScreen/AddData.vue';
|
|
45
|
+
export { default as CrossChainManagement } from './components/DataScreen/CrossChainManagement.vue';
|
|
46
|
+
export { default as LoadData } from './components/DataScreen/LoadData.vue';
|
|
47
|
+
export { default as ManageData } from './components/DataScreen/ManageData.vue';
|
|
48
|
+
export { default as OffChainManagement } from './components/DataScreen/OffChainManagement.vue';
|
|
49
|
+
export { default as SearchData } from './components/DataScreen/SearchData.vue';
|
|
50
|
+
|
|
51
|
+
// Eggs sub-components
|
|
52
|
+
export { default as ManageEggs } from './components/Eggs/ManageEggs.vue';
|
|
53
|
+
export { default as SearchEggs } from './components/Eggs/SearchEggs.vue';
|
|
54
|
+
export { default as ViewEggs } from './components/Eggs/ViewEggs.vue';
|
|
55
|
+
|
|
56
|
+
// Game sub-components
|
|
57
|
+
export { default as SearchProfiles } from './components/Game/SearchProfiles.vue';
|
|
58
|
+
export { default as ViewAchievements } from './components/Game/ViewAchievements.vue';
|
|
59
|
+
export { default as ViewLeagues } from './components/Game/ViewLeagues.vue';
|
|
60
|
+
export { default as ViewTournaments } from './components/Game/ViewTournaments.vue';
|
|
61
|
+
|
|
62
|
+
// Karma sub-components
|
|
63
|
+
export { default as SearchKarma } from './components/Karma/SearchKarma.vue';
|
|
64
|
+
export { default as ViewAvatarKarma } from './components/Karma/ViewAvatarKarma.vue';
|
|
65
|
+
export { default as ViewKarma } from './components/Karma/ViewKarma.vue';
|
|
66
|
+
export { default as VoteKarma } from './components/Karma/VoteKarma.vue';
|
|
67
|
+
|
|
68
|
+
// Map sub-components
|
|
69
|
+
export { default as Add2dObjectMap } from './components/Map/Add2dObjectMap.vue';
|
|
70
|
+
export { default as Add3dObjectMap } from './components/Map/Add3dObjectMap.vue';
|
|
71
|
+
export { default as AddQuestToMap } from './components/Map/AddQuestToMap.vue';
|
|
72
|
+
export { default as DownloadOurWorld } from './components/Map/DownloadOurWorld.vue';
|
|
73
|
+
export { default as ManageMap } from './components/Map/ManageMap.vue';
|
|
74
|
+
export { default as PlotRouteOnMap } from './components/Map/PlotRouteOnMap.vue';
|
|
75
|
+
export { default as SearchMap } from './components/Map/SearchMap.vue';
|
|
76
|
+
export { default as ViewGlobal3dMap } from './components/Map/ViewGlobal3dMap.vue';
|
|
77
|
+
export { default as ViewHalonsOnMap } from './components/Map/ViewHalonsOnMap.vue';
|
|
78
|
+
export { default as ViewOappOnMap } from './components/Map/ViewOappOnMap.vue';
|
|
79
|
+
export { default as ViewQuestOnMap } from './components/Map/ViewQuestOnMap.vue';
|
|
80
|
+
|
|
81
|
+
// Message sub-components
|
|
82
|
+
export { default as Message } from './components/Message/Message.vue';
|
|
83
|
+
|
|
84
|
+
// Mission sub-components
|
|
85
|
+
export { default as ManageMission } from './components/Mission/ManageMission.vue';
|
|
86
|
+
export { default as SearchMission } from './components/Mission/SearchMission.vue';
|
|
87
|
+
export { default as ViewMission } from './components/Mission/ViewMission.vue';
|
|
88
|
+
|
|
89
|
+
// NFT sub-components
|
|
90
|
+
export { default as ManageOasisNft } from './components/NFT/ManageOasisNft.vue';
|
|
91
|
+
export { default as PurchaseOasisNft } from './components/NFT/PurchaseOasisNft.vue';
|
|
92
|
+
export { default as PurchaseOasisVirtualLandNft } from './components/NFT/PurchaseOasisVirtualLandNft.vue';
|
|
93
|
+
export { default as SearchOasisNft } from './components/NFT/SearchOasisNft.vue';
|
|
94
|
+
export { default as ViewOasisNft } from './components/NFT/ViewOasisNft.vue';
|
|
95
|
+
export { default as ContactPopup } from './components/NFT/ContactPopup.vue';
|
|
96
|
+
export { default as Solana } from './components/NFT/Solana.vue';
|
|
97
|
+
|
|
98
|
+
// OApp sub-components
|
|
99
|
+
export { default as CreateOAPP } from './components/OApp/CreateOAPP.vue';
|
|
100
|
+
export { default as DeployOAPP } from './components/OApp/DeployOAPP.vue';
|
|
101
|
+
export { default as DownloadOurWorldOApp } from './components/OApp/DownloadOurWorld.vue';
|
|
102
|
+
export { default as EditOAPP } from './components/OApp/EditOAPP.vue';
|
|
103
|
+
export { default as InstallOAPP } from './components/OApp/InstallOAPP.vue';
|
|
104
|
+
export { default as LaunchOAPP } from './components/OApp/LaunchOAPP.vue';
|
|
105
|
+
export { default as ManageOAPP } from './components/OApp/ManageOAPP.vue';
|
|
106
|
+
export { default as SearchOAPP } from './components/OApp/SearchOAPP.vue';
|
|
107
|
+
|
|
108
|
+
// Provider sub-components
|
|
109
|
+
export { default as ActivityPub } from './components/Provider/ActivityPub.vue';
|
|
110
|
+
export { default as CompareProviderSpeeds } from './components/Provider/CompareProviderSpeeds.vue';
|
|
111
|
+
export { default as Eosio } from './components/Provider/Eosio.vue';
|
|
112
|
+
export { default as Ethereum } from './components/Provider/Ethereum.vue';
|
|
113
|
+
export { default as Holochain } from './components/Provider/Holochain.vue';
|
|
114
|
+
export { default as Ipfs } from './components/Provider/Ipfs.vue';
|
|
115
|
+
export { default as ManageAutoFailOver } from './components/Provider/ManageAutoFailOver.vue';
|
|
116
|
+
export { default as ManageAutoReplicaton } from './components/Provider/ManageAutoReplicaton.vue';
|
|
117
|
+
export { default as ManageLoadBalancing } from './components/Provider/ManageLoadBalancing.vue';
|
|
118
|
+
export { default as ManageProviders } from './components/Provider/ManageProviders.vue';
|
|
119
|
+
export { default as MongoDb } from './components/Provider/MongoDb.vue';
|
|
120
|
+
export { default as Neo4j } from './components/Provider/Neo4j.vue';
|
|
121
|
+
export { default as SearchProviders } from './components/Provider/SearchProviders.vue';
|
|
122
|
+
export { default as SeedsProvider } from './components/Provider/Seeds.vue';
|
|
123
|
+
export { default as Solid } from './components/Provider/Solid.vue';
|
|
124
|
+
export { default as SqlLite } from './components/Provider/SqlLite.vue';
|
|
125
|
+
export { default as ThreeFold } from './components/Provider/ThreeFold.vue';
|
|
126
|
+
export { default as ViewProviders } from './components/Provider/ViewProviders.vue';
|
|
127
|
+
export { default as ViewProviderStats } from './components/Provider/ViewProviderStats.vue';
|
|
128
|
+
|
|
129
|
+
// Quest sub-components
|
|
130
|
+
export { default as ManageQuest } from './components/Quest/ManageQuest.vue';
|
|
131
|
+
export { default as SearchQuest } from './components/Quest/SearchQuest.vue';
|
|
132
|
+
export { default as ViewQuest } from './components/Quest/ViewQuest.vue';
|
|
133
|
+
|
|
134
|
+
// Seeds sub-components
|
|
135
|
+
export { default as AcceptInvite } from './components/Seeds/AcceptInvite.vue';
|
|
136
|
+
export { default as DonateSeeds } from './components/Seeds/DonateSeeds.vue';
|
|
137
|
+
export { default as ManageSeeds } from './components/Seeds/ManageSeeds.vue';
|
|
138
|
+
export { default as PayWithSeeds } from './components/Seeds/PayWithSeeds.vue';
|
|
139
|
+
export { default as RewardSeeds } from './components/Seeds/RewardSeeds.vue';
|
|
140
|
+
export { default as SearchSeeds } from './components/Seeds/SearchSeeds.vue';
|
|
141
|
+
export { default as SendInvite } from './components/Seeds/SendInvite.vue';
|
|
142
|
+
export { default as ViewOrganizations } from './components/Seeds/ViewOrganizations.vue';
|
|
143
|
+
export { default as ViewSeeds } from './components/Seeds/ViewSeeds.vue';
|