fix: include pre-built dist in repo (no server-side build)
This commit is contained in:
1
neode-ui/.gitignore
vendored
1
neode-ui/.gitignore
vendored
@@ -8,7 +8,6 @@ pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
|
||||
BIN
neode-ui/dist/.DS_Store
vendored
Normal file
BIN
neode-ui/dist/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/.DS_Store
vendored
Normal file
BIN
neode-ui/dist/assets/.DS_Store
vendored
Normal file
Binary file not shown.
7
neode-ui/dist/assets/AppDetails-DfPGLgac.js
vendored
Normal file
7
neode-ui/dist/assets/AppDetails-DfPGLgac.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/AppDetails-DjlSPTt1.css
vendored
Normal file
1
neode-ui/dist/assets/AppDetails-DjlSPTt1.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.modal-enter-active[data-v-46d35a3e],.modal-leave-active[data-v-46d35a3e]{transition:opacity .3s ease}.modal-enter-active .glass-card[data-v-46d35a3e],.modal-leave-active .glass-card[data-v-46d35a3e]{transition:transform .3s ease,opacity .3s ease}.modal-enter-from[data-v-46d35a3e],.modal-leave-to[data-v-46d35a3e]{opacity:0}.modal-enter-from .glass-card[data-v-46d35a3e],.modal-leave-to .glass-card[data-v-46d35a3e]{transform:scale(.95);opacity:0}.fade-enter-active[data-v-46d35a3e],.fade-leave-active[data-v-46d35a3e]{transition:opacity .3s ease}.fade-enter-from[data-v-46d35a3e],.fade-leave-to[data-v-46d35a3e]{opacity:0}
|
||||
1
neode-ui/dist/assets/AppSession-Cw_auYBr.js
vendored
Normal file
1
neode-ui/dist/assets/AppSession-Cw_auYBr.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/AppSession-DK48XcUX.css
vendored
Normal file
1
neode-ui/dist/assets/AppSession-DK48XcUX.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.app-session-root[data-v-6994c7f2]{width:100%;height:100%}.app-session-backdrop-inline[data-v-6994c7f2]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;padding:0}.app-session-inline[data-v-6994c7f2]{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;border-radius:0}@media(min-width:768px){.app-session-backdrop-inline[data-v-6994c7f2]{padding:1.5rem}.app-session-inline[data-v-6994c7f2]{border-radius:1rem;max-width:calc(100% - 1rem);max-height:calc(100vh - 6rem);box-shadow:0 25px 50px -12px #00000080}}.app-session-backdrop-overlay[data-v-6994c7f2]{position:fixed;inset:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:0;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(min-width:768px){.app-session-backdrop-overlay[data-v-6994c7f2]{padding:2.5rem}}.app-session-overlay[data-v-6994c7f2]{position:relative;z-index:10;display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;border-radius:0;box-shadow:0 25px 50px -12px #0009}@media(min-width:768px){.app-session-overlay[data-v-6994c7f2]{max-width:calc(100vw - 5rem);max-height:calc(100vh - 5rem);border-radius:1rem}}.app-session-fullscreen[data-v-6994c7f2]{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;border-radius:0!important;max-width:none!important;max-height:none!important}.app-session-btn[data-v-6994c7f2]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:#ffffffb3;transition:all .15s ease;flex-shrink:0}.app-session-btn[data-v-6994c7f2]:hover{background:#ffffff26;color:#fff}.app-session-btn[data-v-6994c7f2]:disabled{opacity:.5}.mode-option[data-v-6994c7f2]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;color:#ffffffb3;transition:all .15s ease;text-align:left}.mode-option[data-v-6994c7f2]:hover{background:#ffffff14;color:#fff}.mode-option-active[data-v-6994c7f2]{color:#fb923c;background:#fb923c14}.menu-fade-enter-active[data-v-6994c7f2],.menu-fade-leave-active[data-v-6994c7f2]{transition:opacity .15s ease,transform .15s ease}.menu-fade-enter-from[data-v-6994c7f2],.menu-fade-leave-to[data-v-6994c7f2]{opacity:0;transform:translateY(-4px)}.content-fade-enter-active[data-v-6994c7f2],.content-fade-leave-active[data-v-6994c7f2]{transition:opacity .2s ease}.content-fade-enter-from[data-v-6994c7f2],.content-fade-leave-to[data-v-6994c7f2]{opacity:0}
|
||||
7
neode-ui/dist/assets/Apps-JbZuzA3H.js
vendored
Normal file
7
neode-ui/dist/assets/Apps-JbZuzA3H.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Apps-NkvfRZrs.css
vendored
Normal file
1
neode-ui/dist/assets/Apps-NkvfRZrs.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.modal-enter-active[data-v-5129aeb7],.modal-leave-active[data-v-5129aeb7]{transition:opacity .3s ease}.modal-enter-active .glass-card[data-v-5129aeb7],.modal-leave-active .glass-card[data-v-5129aeb7]{transition:transform .3s ease,opacity .3s ease}.modal-enter-from[data-v-5129aeb7],.modal-leave-to[data-v-5129aeb7]{opacity:0}.modal-enter-from .glass-card[data-v-5129aeb7],.modal-leave-to .glass-card[data-v-5129aeb7]{transform:scale(.95);opacity:0}
|
||||
1
neode-ui/dist/assets/Chat-BLEXivD6.js
vendored
Normal file
1
neode-ui/dist/assets/Chat-BLEXivD6.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Chat-_Y5LN8Cp.css
vendored
Normal file
1
neode-ui/dist/assets/Chat-_Y5LN8Cp.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.chat-loading[data-v-18b2b408]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:10}.chat-loading-spinner[data-v-18b2b408]{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:#fb923c;border-radius:50%;animation:spin-18b2b408 .8s linear infinite}@keyframes spin-18b2b408{to{transform:rotate(360deg)}}.fade-enter-active[data-v-18b2b408],.fade-leave-active[data-v-18b2b408]{transition:opacity .3s ease}.fade-enter-from[data-v-18b2b408],.fade-leave-to[data-v-18b2b408]{opacity:0}
|
||||
1
neode-ui/dist/assets/Cloud-BkxOai3U.js
vendored
Normal file
1
neode-ui/dist/assets/Cloud-BkxOai3U.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/CloudFolder-8jSNyq3F.js
vendored
Normal file
1
neode-ui/dist/assets/CloudFolder-8jSNyq3F.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/ControllerIndicator.vue_vue_type_script_setup_true_lang-DH-pMX35.js
vendored
Normal file
1
neode-ui/dist/assets/ControllerIndicator.vue_vue_type_script_setup_true_lang-DH-pMX35.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as t,a8 as o,E as n,c as s,N as c,G as i,q as l}from"./index-DnbYEqLr.js";const a={key:0,class:"flex items-center gap-2 px-3 py-2 rounded-lg bg-white/5 border border-white/10",title:"Controller connected - use arrows & Enter to navigate"},x=t({__name:"ControllerIndicator",setup(d){const r=o();return(h,e)=>n(r).isActive?(l(),s("div",a,[...e[0]||(e[0]=[c('<svg class="w-5 h-5 text-amber-400/90 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><rect x="4" y="8" width="16" height="10" rx="2" stroke-width="2"></rect><circle cx="9" cy="13" r="1.5" fill="currentColor"></circle><circle cx="15" cy="13" r="1.5" fill="currentColor"></circle><path stroke-linecap="round" stroke-width="2" d="M12 10v2M11 11h2"></path></svg><span class="text-xs text-white/70 hidden sm:inline">Controller</span>',2)])])):i("",!0)}});export{x as _};
|
||||
1
neode-ui/dist/assets/Credentials-BgvGHu_K.css
vendored
Normal file
1
neode-ui/dist/assets/Credentials-BgvGHu_K.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.credential-input[data-v-1283cbe7]{background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;padding:.5rem .75rem;color:#ffffffe6;font-size:.875rem;outline:none;transition:border-color .2s ease}.credential-input[data-v-1283cbe7]:focus{border-color:#ffffff4d}.credential-input[data-v-1283cbe7]::-moz-placeholder{color:#ffffff4d}.credential-input[data-v-1283cbe7]::placeholder{color:#ffffff4d}select.credential-input[data-v-1283cbe7]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}select.credential-input option[data-v-1283cbe7]{background:#1a1a2e;color:#fff}textarea.credential-input[data-v-1283cbe7]{resize:vertical;min-height:4rem}
|
||||
1
neode-ui/dist/assets/Credentials-DP_VdhTb.js
vendored
Normal file
1
neode-ui/dist/assets/Credentials-DP_VdhTb.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Dashboard-Byxe5sIJ.js
vendored
Normal file
1
neode-ui/dist/assets/Dashboard-Byxe5sIJ.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Dashboard-C4e6Zldy.css
vendored
Normal file
1
neode-ui/dist/assets/Dashboard-C4e6Zldy.css
vendored
Normal file
File diff suppressed because one or more lines are too long
3
neode-ui/dist/assets/Federation-BIPGM17A.js
vendored
Normal file
3
neode-ui/dist/assets/Federation-BIPGM17A.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Federation-gSEt_uL4.css
vendored
Normal file
1
neode-ui/dist/assets/Federation-gSEt_uL4.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.network-map-container[data-v-0e9c18d1]{background:#0009;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:.75rem;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px #ffffff38;min-height:400px;width:100%}
|
||||
1
neode-ui/dist/assets/GoalDetail-BDM8F7F1.js
vendored
Normal file
1
neode-ui/dist/assets/GoalDetail-BDM8F7F1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/GoalDetail-gx_165AC.css
vendored
Normal file
1
neode-ui/dist/assets/GoalDetail-gx_165AC.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.fade-enter-active[data-v-35eaa724],.fade-leave-active[data-v-35eaa724]{transition:opacity .3s ease}.fade-enter-from[data-v-35eaa724],.fade-leave-to[data-v-35eaa724]{opacity:0}
|
||||
1
neode-ui/dist/assets/Home-BM_tfGHm.js
vendored
Normal file
1
neode-ui/dist/assets/Home-BM_tfGHm.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Home-DFbCs8LP.css
vendored
Normal file
1
neode-ui/dist/assets/Home-DFbCs8LP.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.typing-caret[data-v-ed7f5b36]:after{content:"";display:inline-block;width:3px;height:1.1em;background:#fbbf24;margin-left:2px;vertical-align:text-bottom;animation:caret-blink-ed7f5b36 .7s step-end infinite}@keyframes caret-blink-ed7f5b36{0%,to{opacity:1}50%{opacity:0}}.grid>.home-card[data-v-ed7f5b36]{min-height:280px}.home-card-shell[data-v-ed7f5b36]{background-color:#000000a6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:1rem;overflow:hidden;box-shadow:0 8px 24px #00000073;border:1px solid transparent;height:100%}.home-card-animate .home-card-shell[data-v-ed7f5b36]{animation:card-fly-in-ed7f5b36 1.2s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:calc(var(--card-stagger) * .18s);opacity:0;transform:translateY(50px) scale(.92)}@keyframes card-fly-in-ed7f5b36{0%{opacity:0;transform:translateY(50px) scale(.92);border-color:transparent}75%{opacity:1;transform:translateY(0) scale(1);border-color:transparent}to{opacity:1;transform:translateY(0) scale(1);border-color:#ffffff2e}}.home-card-inner[data-v-ed7f5b36]{overflow:hidden;opacity:0}.home-card-animate .home-card-inner[data-v-ed7f5b36]{animation:inner-draw-ed7f5b36 .8s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:calc(var(--card-stagger) * .18s + .9s)}@keyframes inner-draw-ed7f5b36{0%{opacity:0;clip-path:inset(0 100% 0 0)}15%{opacity:1}to{opacity:1;clip-path:inset(0 0 0 0)}}.home-card-text[data-v-ed7f5b36],.home-card-stats[data-v-ed7f5b36]{overflow:hidden}.home-card-btn[data-v-ed7f5b36]{opacity:0;transform:scale(.5);border-color:transparent;min-height:44px;padding-top:10px;padding-bottom:10px}.home-card-animate .home-card-btn[data-v-ed7f5b36]{animation:btn-pop-ed7f5b36 .5s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(var(--card-stagger) * .18s + 1.5s)}@keyframes btn-pop-ed7f5b36{0%{opacity:0;transform:scale(.5);border-color:transparent}85%{opacity:1;transform:scale(1);border-color:transparent}to{opacity:1;transform:scale(1);border-color:#ffffff2e}}.home-card:not(.home-card-animate) .home-card-inner[data-v-ed7f5b36],.home-card:not(.home-card-animate) .home-card-btn[data-v-ed7f5b36]{opacity:1;animation:none;clip-path:none;transform:none;border-color:#ffffff2e}.home-card:not(.home-card-animate) .home-card-shell[data-v-ed7f5b36]{border-color:#ffffff2e}
|
||||
84
neode-ui/dist/assets/INTRO-ASSETS-REPLACE.md
vendored
Normal file
84
neode-ui/dist/assets/INTRO-ASSETS-REPLACE.md
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Replace Intro & Dashboard Backgrounds
|
||||
|
||||
To change the intro splash and dashboard tab backgrounds **without touching any code**, overwrite these files with your own assets. Use the exact names and locations below.
|
||||
|
||||
**Location:** All images go in `neode-ui/public/assets/img/`
|
||||
**Format:** JPG recommended. Portrait or landscape; they use `background-size: cover` and `center center`.
|
||||
|
||||
---
|
||||
|
||||
## Intro Background
|
||||
|
||||
| Filename | Used for |
|
||||
|----------|----------|
|
||||
| **`bg-intro.jpg`** | Intro splash (alien typing + video poster + fallback), Dashboard default |
|
||||
|
||||
---
|
||||
|
||||
## Intro Video
|
||||
|
||||
| Filename | Where | Used for |
|
||||
|----------|-------|----------|
|
||||
| **`video-intro.mp4`** | `neode-ui/public/assets/video/` | Welcome Noderunner + logo, onboarding, login |
|
||||
|
||||
**Format:** MP4 (H.264). Keep under ~5MB for web. See `VIDEO_COMPRESSION_GUIDE.md` for optimization.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Dashboard Tab Backgrounds
|
||||
|
||||
| Filename | Tab |
|
||||
|----------|-----|
|
||||
| **`bg-home.jpg`** | Home |
|
||||
| **`bg-web5.jpg`** | Web5 |
|
||||
| **`bg-network.jpg`** | Server / Network |
|
||||
| **`bg-settings.jpg`** | Settings |
|
||||
| **`bg-myapps.jpg`** | My Apps |
|
||||
| **`bg-appstore.jpg`** | App Store / Marketplace |
|
||||
| **`bg-cloud.jpg`** | Cloud |
|
||||
| **`bg-intro.jpg`** | Default (also intro) |
|
||||
| **`bg-intro-3.jpg`** | Alternate layer during transitions |
|
||||
|
||||
---
|
||||
|
||||
## Intro Flow Backgrounds (onboarding)
|
||||
|
||||
| Filename | Used for |
|
||||
|----------|----------|
|
||||
| **`bg-intro-1.jpg`** | Onboarding done, login |
|
||||
| **`bg-intro-2.jpg`** | Onboarding verify |
|
||||
| **`bg-intro-3.jpg`** | Onboarding path, dashboard transition layer |
|
||||
| **`bg-intro-4.jpg`** | Onboarding options |
|
||||
| **`bg-intro-5.jpg`** | Onboarding did |
|
||||
| **`bg-intro-6.jpg`** | Onboarding backup |
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Asset | Full path |
|
||||
|-------|-----------|
|
||||
| Intro image | `neode-ui/public/assets/img/bg-intro.jpg` |
|
||||
| Intro video | `neode-ui/public/assets/video/video-intro.mp4` |
|
||||
| Home | `neode-ui/public/assets/img/bg-home.jpg` |
|
||||
| Web5 | `neode-ui/public/assets/img/bg-web5.jpg` |
|
||||
| Network | `neode-ui/public/assets/img/bg-network.jpg` |
|
||||
| Settings | `neode-ui/public/assets/img/bg-settings.jpg` |
|
||||
| My Apps | `neode-ui/public/assets/img/bg-myapps.jpg` |
|
||||
| App Store | `neode-ui/public/assets/img/bg-appstore.jpg` |
|
||||
| Cloud | `neode-ui/public/assets/img/bg-cloud.jpg` |
|
||||
| Default | `neode-ui/public/assets/img/bg-intro.jpg` |
|
||||
| Transition | `neode-ui/public/assets/img/bg-intro-3.jpg` |
|
||||
| Intro 1–6 | `neode-ui/public/assets/img/bg-intro-1.jpg` … `bg-intro-6.jpg` |
|
||||
|
||||
---
|
||||
|
||||
## Steps to Replace
|
||||
|
||||
1. Put your images in `neode-ui/public/assets/img/` with the exact filenames above.
|
||||
2. Put your video in `neode-ui/public/assets/video/video-intro.mp4`.
|
||||
3. Run `npm run build` (or deploy) so the new assets are included.
|
||||
|
||||
No code changes required.
|
||||
1
neode-ui/dist/assets/Kiosk-3Tm3M7Cs.css
vendored
Normal file
1
neode-ui/dist/assets/Kiosk-3Tm3M7Cs.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.kiosk-root[data-v-4bc5ca3f]{position:fixed;inset:0;background:#000;outline:none;overflow:hidden;z-index:9999}.kiosk-launcher[data-v-4bc5ca3f]{height:100vh;display:flex;flex-direction:column;padding:2rem 3rem;background:linear-gradient(180deg,#0a0a12,#000)}.kiosk-header[data-v-4bc5ca3f]{display:flex;justify-content:space-between;align-items:center;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2rem}.kiosk-status-pill[data-v-4bc5ca3f]{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.kiosk-grid[data-v-4bc5ca3f]{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.5rem;align-content:start;overflow-y:auto;padding:.5rem}.kiosk-app-tile[data-v-4bc5ca3f]{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem .75rem;border-radius:1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);transition:all .25s ease;cursor:pointer}.kiosk-app-tile[data-v-4bc5ca3f]:hover,.kiosk-app-tile[data-v-4bc5ca3f]:focus-visible{background:#ffffff1a;border-color:#fb923c66;transform:scale(1.05);box-shadow:0 0 30px #fb923c26;outline:none}.kiosk-app-icon-wrap[data-v-4bc5ca3f]{position:relative;width:64px;height:64px}.kiosk-app-icon[data-v-4bc5ca3f]{width:64px;height:64px;border-radius:16px;-o-object-fit:cover;object-fit:cover;background:#ffffff0d}.kiosk-app-status[data-v-4bc5ca3f]{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;border:3px solid #000}.kiosk-app-label[data-v-4bc5ca3f]{font-size:.8125rem;font-weight:500;color:#ffffffd9;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kiosk-footer[data-v-4bc5ca3f]{padding-top:1.5rem;text-align:center;border-top:1px solid rgba(255,255,255,.06);margin-top:1.5rem}
|
||||
1
neode-ui/dist/assets/Kiosk-CEZdJvXG.js
vendored
Normal file
1
neode-ui/dist/assets/Kiosk-CEZdJvXG.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as I,y as L,z as S,Q as j,o as z,O as B,c as d,a as t,D as l,f as k,J as D,E as m,F as E,P as F,r as x,j as b,q as g,t as K}from"./index-DnbYEqLr.js";const N={class:"kiosk-launcher"},O={class:"kiosk-header"},R={class:"flex items-center gap-4"},T={class:"text-sm text-white/50"},M={class:"flex items-center gap-3"},V={class:"kiosk-grid"},$=["onClick"],q={class:"kiosk-app-icon-wrap"},H=["src","alt"],J={class:"kiosk-app-label"},P={class:"kiosk-footer"},Q={class:"text-white/30 text-sm"},U=I({__name:"Kiosk",setup(W){const{t:r}=L(),i=S(),y=j(),h=x(null),c="/assets/img/favico.png",f=x(""),p=b(()=>i.isConnected),w=b(()=>{const n=i.data?.["package-data"]||{},o=[],s={"bitcoin-knots":"/app/bitcoin-ui/",lnd:"/app/lnd/",mempool:"/app/mempool/","btcpay-server":"/app/btcpay/",homeassistant:"/app/homeassistant/",grafana:"/app/grafana/",jellyfin:"/app/jellyfin/",nextcloud:"/app/nextcloud/",immich:"/app/immich/",photoprism:"/app/photoprism/",vaultwarden:"/app/vaultwarden/",filebrowser:"/app/filebrowser/",searxng:"/app/searxng/",ollama:"/app/ollama/",penpot:"/app/penpot/",onlyoffice:"/app/onlyoffice/",portainer:"/app/portainer/","uptime-kuma":"/app/uptime-kuma/","nginx-proxy-manager":"/app/nginx-proxy-manager/",tailscale:"/app/tailscale/",fedimint:"/app/fedimint/","fedimint-gateway":"/app/fedimint-gateway/",dwn:"/app/dwn/","nostr-rs-relay":"/app/nostr-rs-relay/",indeedhub:"http://localhost:8190",botfights:"https://botfights.net",nwnn:"https://nwnn.l484.com","484-kitchen":"https://484.kitchen","call-the-operator":"https://cta.tx1138.com","arch-presentation":"https://present.l484.com","syntropy-institute":"https://syntropy.institute","t-zero":"https://teeminuszero.net"};for(const[e,a]of Object.entries(n)){const v=s[e];if(!v)continue;const A=a.state==="running"||a.installed?.status==="running";o.push({id:e,title:a.manifest?.title||e,icon:a["static-files"]?.icon||c,url:v,running:A})}return o.sort((e,a)=>e.running!==a.running?e.running?-1:1:e.title.localeCompare(a.title))});function C(n){y.open({url:n.url,title:n.title})}let u;function _(){const n=new Date;f.value=n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}return z(()=>{_(),u=setInterval(_,3e4),h.value?.focus(),i.isConnected||i.connectWebSocket().catch(()=>{})}),B(()=>{u&&clearInterval(u)}),(n,o)=>(g(),d("div",{class:"kiosk-root",tabindex:"0",ref_key:"kioskRoot",ref:h},[t("div",N,[t("div",O,[t("div",R,[t("img",{src:c,alt:"Archipelago",class:"w-10 h-10"}),t("div",null,[o[1]||(o[1]=t("h1",{class:"text-2xl font-bold text-white font-archipelago"},"Archipelago",-1)),t("p",T,l(f.value),1)])]),t("div",M,[t("div",{class:k(["kiosk-status-pill",p.value?"bg-green-500/20 text-green-400":"bg-red-500/20 text-red-400"])},[t("div",{class:k(["w-2 h-2 rounded-full",p.value?"bg-green-400":"bg-red-400"])},null,2),D(" "+l(p.value?m(r)("kiosk.online"):m(r)("kiosk.offline")),1)],2)])]),t("div",V,[(g(!0),d(E,null,F(w.value,s=>(g(),d("button",{key:s.id,class:"kiosk-app-tile",onClick:e=>C(s),"data-controller-focusable":!0},[t("div",q,[t("img",{src:s.icon,alt:s.title,class:"kiosk-app-icon",onError:o[0]||(o[0]=e=>e.target.src=c)},null,40,H),t("div",{class:k(["kiosk-app-status",s.running?"bg-green-400":"bg-white/30"])},null,2)]),t("span",J,l(s.title),1)],8,$))),128))]),t("div",P,[t("span",Q,l(m(r)("kiosk.navHint")),1)])])],512))}}),X=K(U,[["__scopeId","data-v-4bc5ca3f"]]);export{X as default};
|
||||
1
neode-ui/dist/assets/KioskRecovery-DsarIru9.js
vendored
Normal file
1
neode-ui/dist/assets/KioskRecovery-DsarIru9.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as w,y,o as R,c as h,a as e,D as t,E as o,G as x,f as g,r as c,j as C,x as j,q as m}from"./index-DnbYEqLr.js";const S={class:"min-h-screen bg-black flex items-center justify-center p-6"},T={class:"glass-card p-8 w-full max-w-lg"},U={class:"text-center mb-6"},q={class:"text-2xl font-bold text-white mb-1"},D={class:"text-sm text-white/50"},A={class:"bg-white/5 rounded-lg p-4 mb-4"},B={class:"text-xs text-white/50 mb-1"},I={class:"text-lg font-mono text-white font-medium"},L={key:0,class:"text-xs text-white/40 mt-1"},N={key:0,class:"bg-white/5 rounded-lg p-4 mb-4 flex flex-col items-center"},$={class:"text-xs text-white/50 mb-2"},z={class:"bg-white p-3 rounded-lg inline-block"},E=["src"],F={class:"space-y-2 mb-6"},M={class:"flex items-center justify-between bg-white/5 rounded-lg p-3"},O={class:"text-sm text-white/70"},P={class:"flex items-center gap-2"},V={class:"flex items-center justify-between bg-white/5 rounded-lg p-3"},G={class:"text-sm text-white/70"},H={class:"text-sm text-white font-medium"},J={class:"flex items-center justify-between bg-white/5 rounded-lg p-3"},K={class:"text-sm text-white/70"},Q={class:"text-sm text-white font-medium"},W={class:"flex gap-3"},X={class:"text-center mt-4"},Y={class:"text-xs text-white/30"},te=w({__name:"KioskRecovery",setup(Z){const p=j(),{t:s}=y(),n=c(""),a=c(!1),d=c("—"),r=c("—"),_=c("—"),f=C(()=>{if(!n.value)return"";const i=`http://${n.value}`;return`https://api.qrserver.com/v1/create-qr-code/?size=128x128&data=${encodeURIComponent(i)}`});async function v(){_.value=new Date().toLocaleTimeString(),n.value=window.location.hostname!=="localhost"?window.location.hostname:"127.0.0.1";try{const i=await fetch("/health",{signal:AbortSignal.timeout(5e3)});a.value=i.ok}catch{a.value=!1}if(a.value)try{const l=await(await fetch("/rpc/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:"system.stats"}),signal:AbortSignal.timeout(5e3)})).json();if(l.result){const u=l.result.disk;if(u){const b=(u.used/u.total*100).toFixed(0);r.value=`${b}% used`}d.value=String(l.result.containers?.running??"—")}}catch{d.value="—",r.value="—"}}function k(){p.push("/login")}return R(()=>{v()}),(i,l)=>(m(),h("div",S,[e("div",T,[e("div",U,[e("h1",q,t(o(s)("kioskRecovery.title")),1),e("p",D,t(o(s)("kioskRecovery.subtitle")),1)]),e("div",A,[e("div",B,t(o(s)("kioskRecovery.serverAddress")),1),e("div",I,t(n.value||o(s)("common.loading")),1),n.value?(m(),h("div",L,t(o(s)("kioskRecovery.webUi",{address:n.value})),1)):x("",!0)]),n.value?(m(),h("div",N,[e("div",$,t(o(s)("kioskRecovery.scanForMobile")),1),e("div",z,[e("img",{src:f.value,alt:"QR Code",class:"w-32 h-32"},null,8,E)])])):x("",!0),e("div",F,[e("div",M,[e("span",O,t(o(s)("kioskRecovery.backend")),1),e("div",P,[e("div",{class:g(["w-2 h-2 rounded-full",a.value?"bg-green-400":"bg-red-400"])},null,2),e("span",{class:g(["text-sm",a.value?"text-green-400":"text-red-400"])},t(a.value?o(s)("common.healthy"):o(s)("kioskRecovery.unreachable")),3)])]),e("div",V,[e("span",G,t(o(s)("kioskRecovery.containers")),1),e("span",H,t(d.value),1)]),e("div",J,[e("span",K,t(o(s)("monitoring.diskUsage")),1),e("span",Q,t(r.value),1)])]),e("div",W,[e("button",{onClick:v,class:"glass-button px-4 py-2 rounded-lg text-sm flex-1"},t(o(s)("common.refresh")),1),e("button",{onClick:k,class:"glass-button px-4 py-2 rounded-lg text-sm flex-1 bg-orange-500/20 border-orange-500/30"},t(o(s)("kioskRecovery.goToLogin")),1)]),e("div",X,[e("p",Y,t(o(s)("kioskRecovery.lastChecked",{time:_.value})),1)])])]))}});export{te as default};
|
||||
1
neode-ui/dist/assets/LightningChannels-BTRz5y8m.js
vendored
Normal file
1
neode-ui/dist/assets/LightningChannels-BTRz5y8m.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Login-CJkTG_B-.js
vendored
Normal file
1
neode-ui/dist/assets/Login-CJkTG_B-.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Login-DRIS0ldM.css
vendored
Normal file
1
neode-ui/dist/assets/Login-DRIS0ldM.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.startup-progress-track[data-v-a59fcd7f]{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.startup-progress-bar[data-v-a59fcd7f]{height:100%;background:linear-gradient(90deg,#fb923c,#f59e0b);border-radius:2px;transition:width .5s ease-out;box-shadow:0 0 8px #fb923c66}.login-fly-perspective[data-v-a59fcd7f]{perspective:1200px;perspective-origin:center center}.login-card[data-v-a59fcd7f]{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.25,.46,.45,.94),opacity .5s cubic-bezier(.25,.46,.45,.94),filter .5s ease-out}.login-fly-towards[data-v-a59fcd7f]{animation:login-fly-towards-a59fcd7f .5s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes login-fly-towards-a59fcd7f{0%{transform:translateZ(0) scale(1);opacity:1;filter:blur(0)}60%{transform:translateZ(180px) scale(1.4);opacity:.95;filter:blur(2px)}to{transform:translateZ(400px) scale(2);opacity:0;filter:blur(8px)}}
|
||||
1
neode-ui/dist/assets/Marketplace-BasZfUkN.css
vendored
Normal file
1
neode-ui/dist/assets/Marketplace-BasZfUkN.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.line-clamp-3[data-v-f5eafd6d]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.modal-enter-active[data-v-f5eafd6d],.modal-leave-active[data-v-f5eafd6d]{transition:opacity .3s ease}.modal-enter-from[data-v-f5eafd6d],.modal-leave-to[data-v-f5eafd6d]{opacity:0}.modal-enter-active .glass-card[data-v-f5eafd6d],.modal-leave-active .glass-card[data-v-f5eafd6d]{transition:transform .3s ease}.modal-enter-from .glass-card[data-v-f5eafd6d],.modal-leave-to .glass-card[data-v-f5eafd6d]{transform:scale(.95)}.marketplace-container[data-v-f5eafd6d] ::-webkit-scrollbar{width:8px}.marketplace-container[data-v-f5eafd6d] ::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.marketplace-container[data-v-f5eafd6d] ::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px;-webkit-transition:background .3s ease;transition:background .3s ease}.marketplace-container[data-v-f5eafd6d] ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.marketplace-container[data-v-f5eafd6d]{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) rgba(255,255,255,.05)}
|
||||
1
neode-ui/dist/assets/Marketplace-dnuGfUDf.js
vendored
Normal file
1
neode-ui/dist/assets/Marketplace-dnuGfUDf.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/MarketplaceAppDetails-DhlIl2UT.js
vendored
Normal file
1
neode-ui/dist/assets/MarketplaceAppDetails-DhlIl2UT.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Mesh-CPUFszgS.js
vendored
Normal file
1
neode-ui/dist/assets/Mesh-CPUFszgS.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Mesh-Dr5A9OgS.css
vendored
Normal file
1
neode-ui/dist/assets/Mesh-Dr5A9OgS.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Monitoring-Bmi1t-3N.js
vendored
Normal file
1
neode-ui/dist/assets/Monitoring-Bmi1t-3N.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/NotFound-D22kjDbC.js
vendored
Normal file
1
neode-ui/dist/assets/NotFound-D22kjDbC.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as s,c as a,a as e,h as o,i as n,E as r,U as d,J as l,q as i}from"./index-DnbYEqLr.js";const x={class:"min-h-screen flex items-center justify-center px-4"},c={class:"glass-card px-8 py-10 text-center max-w-md"},f=s({__name:"NotFound",setup(p){return(m,t)=>(i(),a("div",x,[e("div",c,[t[1]||(t[1]=e("h1",{class:"text-6xl font-bold text-white/30 mb-4"},"404",-1)),t[2]||(t[2]=e("p",{class:"text-lg text-white/70 mb-6"},"Page not found",-1)),o(r(d),{to:"/dashboard",class:"glass-button inline-block px-6 py-3"},{default:n(()=>[...t[0]||(t[0]=[l(" Back to Dashboard ",-1)])]),_:1})])]))}});export{f as default};
|
||||
1
neode-ui/dist/assets/OnboardingBackup-DGLHJlqA.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingBackup-DGLHJlqA.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as w,c as s,a as e,D as y,G as b,g,H as _,J as u,r,B,x as C,q as a}from"./index-DnbYEqLr.js";const j={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6"},D={class:"max-w-[800px] w-full relative z-10 path-glass-container onb-scroll-container"},S={class:"flex flex-col items-center gap-4 sm:gap-6 mb-4 sm:mb-6 px-3 sm:px-4"},V={class:"w-full max-w-[600px] space-y-4 sm:space-y-6"},z={key:0,class:"text-orange-400/80 text-sm"},L={key:1,class:"text-red-400 text-sm"},M={class:"path-option-card cursor-default px-4 py-4 sm:px-6 sm:py-6"},N={class:"text-left w-full"},R={class:"relative"},U=["disabled"],E={key:0},O={key:1,class:"flex items-center justify-center gap-2"},F={key:2,class:"flex items-center justify-center gap-2"},H={key:2,class:"text-center"},T={class:"flex gap-3 sm:gap-4 max-w-[600px] mx-auto flex-shrink-0 px-3 sm:px-4 pb-4 sm:pb-6"},Y=["disabled"],P=w({__name:"OnboardingBackup",setup(I){const m=C(),l=r(""),i=r(!1),c=r(!1),p=r(""),x=r(!1);async function f(){if(l.value){i.value=!0,p.value="";try{const o=await B.createBackup(l.value),t=JSON.stringify(o,null,2),d=new Blob([t],{type:"application/json"}),h=URL.createObjectURL(d),n=document.createElement("a");n.href=h,n.download="archipelago-did-backup.json",n.style.display="none",document.body.appendChild(n),n.click(),setTimeout(()=>{document.body.removeChild(n),URL.revokeObjectURL(h)},1e3),c.value=!0,localStorage.setItem("neode_backup_created","1")}catch(o){const t=o instanceof Error?o.message:String(o);/502|503|504|timeout|fetch|network|Failed to fetch/i.test(t)?x.value=!0:p.value=t||"Failed to create backup. Please try again."}finally{i.value=!1}}}function v(){m.push("/onboarding/verify").catch(()=>{})}function k(){m.push("/onboarding/verify").catch(()=>{})}return(o,t)=>(a(),s("div",j,[e("div",D,[t[7]||(t[7]=e("div",{class:"text-center mb-4 sm:mb-6 flex-shrink-0 px-3 sm:px-4 pt-4 sm:pt-6"},[e("h1",{class:"text-xl sm:text-2xl md:text-[26px] font-semibold text-white/96 mb-2 drop-shadow-[0_2px_6px_rgba(0,0,0,0.4)]"}," Backup Your Identity "),e("p",{class:"text-sm sm:text-base md:text-[20px] text-white/75 leading-relaxed max-w-[600px] mx-auto"}," Create a secure backup of your identity. Set a passphrase and download your encrypted backup file. ")],-1)),e("div",S,[e("div",V,[x.value?(a(),s("p",z,"Server is still starting up. You can try again shortly or skip this step.")):p.value?(a(),s("p",L,y(p.value),1)):b("",!0),e("div",M,[e("div",N,[t[2]||(t[2]=e("label",{class:"block text-xs sm:text-sm font-semibold text-white/80 mb-2 sm:mb-3 uppercase tracking-wide"}," Backup Passphrase ",-1)),e("div",R,[t[1]||(t[1]=e("div",{class:"absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none"},[e("svg",{class:"w-5 h-5 text-white/60",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})])],-1)),g(e("input",{"onUpdate:modelValue":t[0]||(t[0]=d=>l.value=d),type:"password",placeholder:"Enter a strong passphrase",class:"w-full bg-black/40 border border-white/10 rounded-lg px-4 py-3 pl-12 text-white/95 placeholder-white/40 focus:outline-none focus:border-white/30 focus:bg-black/50 transition-all"},null,512),[[_,l.value]])]),t[3]||(t[3]=e("p",{class:"text-xs sm:text-sm md:text-base text-white/60 mt-2 sm:mt-3"}," Keep this passphrase safe. You'll need it to restore your identity from backup. ",-1))])]),e("button",{onClick:f,disabled:!l.value||i.value,class:"path-action-button path-action-button--continue w-full"},[!i.value&&!c.value?(a(),s("span",E,"Download Backup")):i.value?(a(),s("span",O,[...t[4]||(t[4]=[e("svg",{class:"animate-spin h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1),u(" Downloading... ",-1)])])):(a(),s("span",F,[...t[5]||(t[5]=[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1),u(" Downloaded ",-1)])]))],8,U),c.value?(a(),s("div",H,[...t[6]||(t[6]=[e("p",{class:"text-sm text-white/70"},[u(" Backup saved as "),e("span",{class:"font-mono text-white/90"},"archipelago-did-backup.json")],-1)])])):b("",!0)])]),e("div",T,[e("button",{onClick:k,class:"path-action-button path-action-button--skip"}," Skip "),e("button",{onClick:v,disabled:!c.value,class:"path-action-button path-action-button--continue disabled:opacity-50"}," Continue ",8,Y)])])]))}});export{P as default};
|
||||
1
neode-ui/dist/assets/OnboardingDid-BxUaq9s9.css
vendored
Normal file
1
neode-ui/dist/assets/OnboardingDid-BxUaq9s9.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.onb-lock-spin[data-v-8e98e431]{animation:onb-lock-pulse-8e98e431 1.2s ease-in-out infinite}@keyframes onb-lock-pulse-8e98e431{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.7}}
|
||||
1
neode-ui/dist/assets/OnboardingDid-Cr_ec55a.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingDid-Cr_ec55a.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/OnboardingDone-D8gm2WWx.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingDone-D8gm2WWx.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as a,c as n,a as t,N as r,x as i,q as l}from"./index-DnbYEqLr.js";const c={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6"},u=a({__name:"OnboardingDone",setup(d){const o=i();function s(){o.push("/login").catch(()=>{})}return(p,e)=>(l(),n("div",c,[t("div",{class:"max-w-[800px] w-full relative z-10 path-glass-container onb-scroll-container"},[t("div",{class:"text-center space-y-4 sm:space-y-6 px-3 sm:px-4 py-4 sm:py-6"},[e[0]||(e[0]=r('<div class="flex justify-center mb-4 sm:mb-6"><div class="path-option-card cursor-default w-16 h-16 sm:w-20 sm:h-20 rounded-full flex items-center justify-center"><svg class="w-10 h-10 text-black" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="3"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg></div></div><p class="text-sm sm:text-base md:text-[20px] text-white/80 leading-relaxed max-w-[600px] mx-auto mb-6 sm:mb-8"> Your sovereign identity is ready. You can now log in and start your journey as a noderunner. </p><div class="grid grid-cols-1 md:grid-cols-3 gap-3 sm:gap-4 mb-6 sm:mb-8 max-w-[700px] mx-auto"><div class="path-option-card cursor-default py-6"><svg class="w-10 h-10 mx-auto mb-3 text-white/80" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg><h3 class="text-sm font-semibold text-white/90">Sovereign Identity</h3></div><div class="path-option-card cursor-default py-6"><svg class="w-10 h-10 mx-auto mb-3 text-white/80" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg><h3 class="text-sm font-semibold text-white/90">Encrypted Backup</h3></div><div class="path-option-card cursor-default py-6"><svg class="w-10 h-10 mx-auto mb-3 text-white/80" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path></svg><h3 class="text-sm font-semibold text-white/90">Ready to Use</h3></div></div>',3)),t("button",{onClick:s,class:"path-action-button path-action-button--continue mx-auto"}," Go to Login ")])])]))}});export{u as default};
|
||||
1
neode-ui/dist/assets/OnboardingIdentity-i_e-4MVD.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingIdentity-i_e-4MVD.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as g,c as o,a as e,g as y,H as w,F as _,P as k,D as p,G as C,r as n,B as P,x as S,f as x,q as l}from"./index-DnbYEqLr.js";const B={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6"},E={class:"max-w-[800px] w-full relative z-10 path-glass-container onb-scroll-container"},N={class:"flex flex-col items-center gap-4 sm:gap-6 mb-4 sm:mb-6 px-3 sm:px-4"},z={class:"w-full max-w-[600px] space-y-4 sm:space-y-6"},F={class:"path-option-card cursor-default px-4 py-4 sm:px-6 sm:py-6"},M={class:"path-option-card cursor-default px-4 py-4 sm:px-6 sm:py-6"},j={class:"grid grid-cols-1 sm:grid-cols-3 gap-3"},D=["onClick"],I={class:"flex items-center gap-2 mb-1"},V={class:"font-medium text-sm"},G={class:"text-xs text-white/50 ml-7"},Y={key:0,class:"text-center mb-4 px-3"},q={key:1,class:"text-red-400 text-sm text-center mb-4"},A={class:"flex gap-3 sm:gap-4 max-w-[600px] mx-auto flex-shrink-0 px-3 sm:px-4 pb-4 sm:pb-6"},H=["disabled"],L={key:0},O={key:1},$=g({__name:"OnboardingIdentity",setup(R){const m=S(),c=n("Personal"),d=n("personal"),i=n(!1),r=n(""),u=n(!1),b=[{value:"personal",label:"Personal",desc:"Everyday use",color:"bg-blue-500/30 text-blue-400"},{value:"business",label:"Business",desc:"Professional",color:"bg-orange-500/30 text-orange-400"},{value:"anonymous",label:"Anonymous",desc:"Private",color:"bg-purple-500/30 text-purple-400"}];function h(s){const t=s instanceof Error?s.message:String(s);return/502|503|504|timeout|fetch|network|Failed to fetch/i.test(t)}async function v(){i.value=!0,r.value="",u.value=!1;try{await P.call({method:"identity.create",params:{name:c.value||"Personal",purpose:d.value}}),m.push("/onboarding/backup").catch(()=>{})}catch(s){h(s)?u.value=!0:r.value=s instanceof Error?s.message:"Failed to create identity"}finally{i.value=!1}}function f(){m.push("/onboarding/backup").catch(()=>{})}return(s,t)=>(l(),o("div",B,[e("div",E,[t[5]||(t[5]=e("div",{class:"text-center flex-shrink-0 px-3 sm:px-4 pt-4 sm:pt-6"},[e("h1",{class:"text-xl sm:text-2xl md:text-[26px] font-semibold text-white/96 mb-2 sm:mb-4 drop-shadow-[0_2px_6px_rgba(0,0,0,0.4)]"}," Name your identity "),e("p",{class:"text-sm sm:text-base md:text-[20px] text-white/75 leading-relaxed max-w-[600px] mx-auto mb-4 sm:mb-6"}," Give your first identity a name and choose how you'll use it. You can create more identities later. ")],-1)),e("div",N,[e("div",z,[e("div",F,[t[1]||(t[1]=e("label",{class:"block text-sm font-semibold text-white/80 mb-3 uppercase tracking-wide"},"Identity Name",-1)),y(e("input",{"onUpdate:modelValue":t[0]||(t[0]=a=>c.value=a),type:"text",placeholder:"Personal",class:"w-full bg-black/40 border border-white/10 rounded-lg px-4 py-3 text-white/95 placeholder-white/40 focus:outline-none focus:border-white/30 focus:bg-black/50 transition-all"},null,512),[[w,c.value]])]),e("div",M,[t[3]||(t[3]=e("label",{class:"block text-sm font-semibold text-white/80 mb-3 uppercase tracking-wide"},"Purpose",-1)),e("div",j,[(l(),o(_,null,k(b,a=>e("button",{key:a.value,onClick:T=>d.value=a.value,class:x(["px-4 py-3 rounded-lg border text-left transition-all",d.value===a.value?"bg-white/15 border-white/30 text-white":"bg-black/20 border-white/10 text-white/60 hover:bg-white/10 hover:text-white/80"])},[e("div",I,[e("div",{class:x(["w-5 h-5 rounded-full flex items-center justify-center shrink-0",a.color])},[...t[2]||(t[2]=[e("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1)])],2),e("span",V,p(a.label),1)]),e("p",G,p(a.desc),1)],10,D)),64))])])])]),u.value?(l(),o("div",Y,[...t[4]||(t[4]=[e("p",{class:"text-orange-400/80 text-sm"},"Server is still starting up. Your identity will be saved once it's ready.",-1)])])):r.value?(l(),o("p",q,p(r.value),1)):C("",!0),e("div",A,[e("button",{onClick:f,class:"path-action-button path-action-button--skip"}," Skip "),e("button",{onClick:v,disabled:i.value,class:"path-action-button path-action-button--continue"},[i.value?(l(),o("span",L,"Creating...")):(l(),o("span",O,"Continue"))],8,H)])])]))}});export{$ as default};
|
||||
1
neode-ui/dist/assets/OnboardingIntro-CsYM21xo.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingIntro-CsYM21xo.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as w,c as u,a as e,h as y,C as k,g as _,H as C,D as b,G as f,r as l,B as R,x as B,q as c,t as I}from"./index-DnbYEqLr.js";const N={class:"min-h-full flex items-center justify-center p-4 sm:p-6"},O={class:"max-w-2xl w-full"},S={class:"glass-card p-8 pt-16 sm:p-12 sm:pt-20 text-center relative overflow-visible onb-card"},T={class:"absolute -top-8 sm:-top-10 left-0 right-0 flex justify-center z-10 onb-logo"},V={class:"logo-gradient-border w-16 h-16 sm:w-20 sm:h-20"},j={key:0,class:"mt-6 glass-card px-6 py-6 text-left"},A={key:0,class:"text-red-400 text-xs mb-2"},D={key:1,class:"text-green-400 text-xs mb-2"},E={class:"flex gap-3"},F=["disabled"],L=w({__name:"OnboardingIntro",setup(U){const m=B();function v(){m.push("/onboarding/path").catch(()=>{})}const d=l(!1),a=l(null),r=l(""),i=l(!1),s=l(""),x=l(!1);function g(n){const o=n.target.files?.[0];if(!o)return;const p=new FileReader;p.onload=()=>{try{a.value=JSON.parse(p.result),s.value=""}catch{s.value="Invalid backup file format",a.value=null}},p.readAsText(o)}async function h(){if(!(!a.value||!r.value)){i.value=!0,s.value="";try{await R.call({method:"backup.restore-identity",params:{backup:a.value,passphrase:r.value}}),x.value=!0,setTimeout(()=>{m.push("/onboarding/did")},1500)}catch(n){s.value=n instanceof Error?n.message:"Restore failed"}finally{i.value=!1}}}return(n,t)=>(c(),u("div",N,[e("div",O,[e("div",S,[e("div",T,[e("div",V,[y(k,{"no-border":"",fit:""})])]),t[4]||(t[4]=e("h1",{class:"text-2xl sm:text-4xl font-bold text-white mb-3 sm:mb-4 onb-title"}," Welcome to Archipelago ",-1)),t[5]||(t[5]=e("p",{class:"text-base sm:text-xl text-white/80 mb-8 sm:mb-12 max-w-2xl mx-auto onb-tagline"}," Your personal server for a sovereign digital life ",-1)),e("button",{onClick:v,class:"glass-button px-6 py-3 sm:px-8 sm:py-4 rounded-lg text-base sm:text-lg font-medium transition-all hover:bg-black/70 hover:border-white/30 onb-cta"}," Unlock your sovereignty → "),e("a",{class:"text-white/50 hover:text-white/80 underline text-sm cursor-pointer mt-4 block text-center onb-cta",onClick:t[0]||(t[0]=o=>d.value=!0)}," Restore from backup "),d.value?(c(),u("div",j,[t[3]||(t[3]=e("h3",{class:"text-sm font-semibold text-white/80 mb-3 uppercase tracking-wide"},"Restore Identity from Backup",-1)),e("input",{type:"file",accept:".json",class:"block w-full text-sm text-white/60 file:mr-4 file:py-2 file:px-4 file:rounded file:border-0 file:text-sm file:bg-white/10 file:text-white/80 hover:file:bg-white/20 mb-3",onChange:g},null,32),_(e("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>r.value=o),type:"password",placeholder:"Backup passphrase",class:"w-full px-4 py-2 bg-white/10 border border-white/20 rounded-lg text-white text-sm focus:outline-none focus:border-white/40 mb-3"},null,512),[[C,r.value]]),s.value?(c(),u("p",A,b(s.value),1)):f("",!0),x.value?(c(),u("p",D,"Identity restored successfully!")):f("",!0),e("div",E,[e("button",{class:"glass-button text-sm px-4 py-2",onClick:t[2]||(t[2]=o=>d.value=!1)},"Cancel"),e("button",{class:"glass-button text-sm px-4 py-2",disabled:!a.value||!r.value||i.value,onClick:h},b(i.value?"Restoring...":"Restore"),9,F)])])):f("",!0)])])]))}}),q=I(L,[["__scopeId","data-v-da05f75f"]]);export{q as default};
|
||||
1
neode-ui/dist/assets/OnboardingIntro-CuS0o5GQ.css
vendored
Normal file
1
neode-ui/dist/assets/OnboardingIntro-CuS0o5GQ.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.onb-card[data-v-da05f75f]{opacity:0;animation:onb-card-in-da05f75f .6s cubic-bezier(.25,.46,.45,.94) .1s forwards}.onb-logo[data-v-da05f75f]{opacity:0;animation:onb-scale-in-da05f75f .5s cubic-bezier(.25,.46,.45,.94) .3s forwards}.onb-title[data-v-da05f75f]{opacity:0;animation:onb-slide-up-da05f75f .5s cubic-bezier(.25,.46,.45,.94) .7s forwards}.onb-tagline[data-v-da05f75f]{opacity:0;animation:onb-slide-up-da05f75f .5s cubic-bezier(.25,.46,.45,.94) 1s forwards}.onb-cta[data-v-da05f75f]{opacity:0;animation:onb-fade-in-da05f75f .6s ease 1.4s forwards}@keyframes onb-card-in-da05f75f{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes onb-scale-in-da05f75f{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes onb-slide-up-da05f75f{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes onb-fade-in-da05f75f{0%{opacity:0}to{opacity:1}}
|
||||
1
neode-ui/dist/assets/OnboardingOptions-BEL4MhY9.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingOptions-BEL4MhY9.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as r,o as m,c,a as s,N as i,f as d,r as x,x as p,q as h}from"./index-DnbYEqLr.js";import{completeOnboarding as u}from"./useOnboarding-BgpIyX9l.js";const v="/assets/icon/favico-black-v2.svg",w={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6"},b={class:"max-w-[1200px] w-full relative z-10 path-glass-container onb-scroll-container"},f={class:"grid grid-cols-1 md:grid-cols-3 gap-3 sm:gap-6 px-3 sm:px-4"},j=r({__name:"OnboardingOptions",setup(g){const n=p(),e=x(null);m(()=>{e.value="fresh"});function l(o){e.value=o}async function a(){try{await u()}catch{}n.push("/login").catch(()=>{})}return(o,t)=>(h(),c("div",w,[s("div",b,[t[3]||(t[3]=i('<div class="text-center mb-4 sm:mb-6 flex-shrink-0 px-3 sm:px-4 pt-4 sm:pt-6"><div class="logo-gradient-border inline-block mb-4 sm:mb-6"><img src="'+v+'" alt="Archipelago" class="w-16 h-16 sm:w-20 sm:h-20"></div><h1 class="text-2xl sm:text-4xl font-bold text-white mb-2 sm:mb-4">Choose Your Setup</h1><p class="text-base sm:text-xl text-white/80">How would you like to get started?</p></div>',1)),s("div",f,[s("button",{onClick:t[0]||(t[0]=k=>l("fresh")),class:d(["path-option-card text-center",{"path-option-card--selected":e.value==="fresh"}])},[...t[1]||(t[1]=[i('<div class="mb-3 sm:mb-4"><div class="w-12 h-12 sm:w-16 sm:h-16 mx-auto bg-white/10 rounded-full flex items-center justify-center"><svg class="w-6 h-6 sm:w-8 sm:h-8 text-white/60" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg></div></div><h3 class="text-lg sm:text-xl font-semibold text-white mb-1 sm:mb-2">Fresh Start</h3><p class="text-white/70 text-xs sm:text-sm"> Set up a new server from scratch </p>',3)])],2),t[2]||(t[2]=i('<div class="path-option-card text-center opacity-40 cursor-not-allowed"><div class="mb-3 sm:mb-4"><div class="w-12 h-12 sm:w-16 sm:h-16 mx-auto bg-white/10 rounded-full flex items-center justify-center"><svg class="w-6 h-6 sm:w-8 sm:h-8 text-white/60" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"></path></svg></div></div><h3 class="text-lg sm:text-xl font-semibold text-white mb-1 sm:mb-2">Restore Backup</h3><p class="text-white/70 text-xs sm:text-sm"> Restore from a previous backup </p><span class="text-xs text-white/50 mt-1 block">(Coming Soon)</span></div><div class="path-option-card text-center opacity-40 cursor-not-allowed"><div class="mb-3 sm:mb-4"><div class="w-12 h-12 sm:w-16 sm:h-16 mx-auto bg-white/10 rounded-full flex items-center justify-center"><svg class="w-6 h-6 sm:w-8 sm:h-8 text-white/60" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"></path></svg></div></div><h3 class="text-lg sm:text-xl font-semibold text-white mb-1 sm:mb-2">Connect Existing</h3><p class="text-white/70 text-xs sm:text-sm"> Connect to an existing Archipelago server </p><span class="text-xs text-white/50 mt-1 block">(Coming Soon)</span></div>',2))]),s("div",{class:"flex justify-center flex-shrink-0 px-3 sm:px-4 pb-4 sm:pb-6 mt-4 sm:mt-8"},[s("button",{onClick:a,class:"path-action-button path-action-button--continue"}," Continue ")])])]))}});export{j as default};
|
||||
1
neode-ui/dist/assets/OnboardingPath-BE4wazNB.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingPath-BE4wazNB.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as a,c as i,a as t,N as n,x as r,q as l}from"./index-DnbYEqLr.js";const d={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6 relative"},m=a({__name:"OnboardingPath",setup(c){const o=r();function s(){o.push("/onboarding/did").catch(()=>{})}return(p,e)=>(l(),i("div",d,[t("div",{class:"max-w-[1200px] w-full relative z-10 path-glass-container onb-scroll-container"},[e[0]||(e[0]=n('<div class="text-center mb-4 md:mb-6 flex-shrink-0 px-3 sm:px-4 pt-4 sm:pt-6"><h1 class="text-xl md:text-[26px] font-semibold text-white/96 mb-2 drop-shadow-[0_2px_6px_rgba(0,0,0,0.4)]">Your Node, Your Possibilities</h1><p class="text-xs md:text-sm text-white/75 leading-relaxed">Archipelago gives you the tools to build your sovereign digital life. All of these capabilities are available from your dashboard.</p></div><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 md:gap-4 flex-shrink-0 mb-4 md:mb-6 px-3 sm:px-4"><div class="path-option-card"><div class="icon-wrapper transition-all duration-300"><svg class="w-10 h-10 text-white/90" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div><h3 class="text-lg font-semibold text-white/96 mb-1.5">Self Sovereignty</h3><p class="text-sm text-white/75 leading-snug"> Data, files, ownership, property of my data estate. Own, manage, edit, and even sell your personal data. </p></div><div class="path-option-card"><svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"></path></svg><h3 class="text-xl font-semibold text-white/96 mb-2">Community Commerce</h3><p class="text-[15px] text-white/75 leading-snug"> Self contained and owned ecommerce system built on bitcoin and mesh networks. Trade freely without intermediaries. </p></div><div class="path-option-card"><svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 13.255A23.931 23.931 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg><h3 class="text-xl font-semibold text-white/96 mb-2">Sovereign Projects</h3><p class="text-[15px] text-white/75 leading-snug"> Logistics and project management self owned with privacy control. Collaborate without surveillance. </p></div><div class="path-option-card"><svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.394 9.393c5.857-5.857 15.355-5.857 21.213 0"></path></svg><h3 class="text-xl font-semibold text-white/96 mb-2">Data Transmitter</h3><p class="text-[15px] text-white/75 leading-snug"> Assist the new sovereign net with relay points and networking where you get paid for your value. </p></div><div class="path-option-card"><svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"></path></svg><h3 class="text-xl font-semibold text-white/96 mb-2">Hoster</h3><p class="text-[15px] text-white/75 leading-snug"> Host services and content, archives, and more to others for micro bitcoin payments. Earn while you serve. </p></div><div class="path-option-card"><svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"></path></svg><h3 class="text-xl font-semibold text-white/96 mb-2">Sovereign AI</h3><p class="text-[15px] text-white/75 leading-snug"> Run AI models locally on your hardware. No cloud surveillance, complete privacy, full control over your AI assistant. </p></div></div>',2)),t("div",{class:"flex justify-center max-w-[600px] mx-auto flex-shrink-0 px-3 sm:px-4 pb-4 sm:pb-6"},[t("button",{onClick:s,class:"path-action-button path-action-button--continue"}," Continue ")])])]))}});export{m as default};
|
||||
1
neode-ui/dist/assets/OnboardingVerify-P3nJC3Zw.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingVerify-P3nJC3Zw.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as C,c as s,a as t,G as c,D as g,J as S,N as V,r as i,B as f,x as B,q as a}from"./index-DnbYEqLr.js";import{completeOnboarding as v}from"./useOnboarding-BgpIyX9l.js";const N={class:"min-h-full flex items-center justify-center p-3 sm:p-4 md:p-6"},j={class:"max-w-[800px] w-full relative z-10 path-glass-container onb-scroll-container"},z={key:0,class:"text-center mb-4 sm:mb-6 flex-shrink-0 px-3 sm:px-4 pt-4 sm:pt-6"},F={class:"flex flex-col items-center gap-6 mb-6"},Y={key:0,class:"text-orange-400/80 text-sm"},M={key:1,class:"text-red-400 text-sm"},R=["disabled"],A={key:0},D={key:1,class:"flex items-center gap-2"},E={key:3,class:"w-full max-w-[600px]"},I={class:"path-option-card cursor-default px-6 py-6"},O={class:"text-left"},T={class:"bg-black/40 rounded-lg p-4 backdrop-blur-sm border border-white/10"},q={class:"text-white/95 font-mono text-xs break-all leading-relaxed"},G={class:"flex gap-3 sm:gap-4 max-w-[600px] mx-auto flex-shrink-0 px-3 sm:px-4 pb-4 sm:pb-6"},P=C({__name:"OnboardingVerify",setup(H){const x=B(),n=i(!1),l=i(!1),m=i(""),p=i(""),d=i(""),h=i(!1);function b(){const o=new Uint8Array(32);return crypto.getRandomValues(o),btoa(String.fromCharCode(...o))}async function y(){l.value=!0,d.value="";for(let o=0;o<3;o++)try{p.value=b();const{signature:e}=await f.signChallenge(p.value);m.value=e,l.value=!1;const r=localStorage.getItem("neode_did");if(r){const u=await f.call({method:"identity.verify",params:{did:r,message:p.value,signature:e}});n.value=u.valid!==!1}else n.value=!0;return}catch(e){const r=e instanceof Error?e.message:"",u=/502|503|504|timeout|fetch|network|Failed to fetch/i.test(r);!u||o===2?u?h.value=!0:d.value=r||"Failed to sign challenge. You can retry or skip this step.":await new Promise(k=>setTimeout(k,1e3*(o+1)))}l.value=!1}async function w(){try{await v()}catch{}x.push("/onboarding/done").catch(()=>{})}async function _(){try{await v()}catch{}x.push("/onboarding/done").catch(()=>{})}return(o,e)=>(a(),s("div",N,[t("div",j,[n.value?c("",!0):(a(),s("div",z,[...e[0]||(e[0]=[t("h1",{class:"text-xl sm:text-2xl md:text-[26px] font-semibold text-white/96 mb-2 drop-shadow-[0_2px_6px_rgba(0,0,0,0.4)]"}," Verify Your Identity ",-1),t("p",{class:"text-sm sm:text-base md:text-[20px] text-white/75 leading-relaxed max-w-[600px] mx-auto"}," Sign a challenge to verify your decentralized identity is working correctly. ",-1)])])),t("div",F,[h.value?(a(),s("p",Y,"Server is still starting up. You can try again shortly or skip this step.")):d.value?(a(),s("p",M,g(d.value),1)):c("",!0),n.value?c("",!0):(a(),s("button",{key:2,onClick:y,disabled:l.value,class:"path-action-button path-action-button--continue"},[l.value?(a(),s("span",D,[...e[1]||(e[1]=[t("svg",{class:"animate-spin h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1),S(" Signing... ",-1)])])):(a(),s("span",A,"Sign Challenge"))],8,R)),n.value?(a(),s("div",E,[e[3]||(e[3]=V('<div class="text-center mb-6"><div class="flex justify-center mb-6"><div class="path-option-card cursor-default w-20 h-20 rounded-full flex items-center justify-center"><svg class="w-10 h-10 text-black" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="3"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg></div></div><p class="text-[20px] text-white/80 leading-relaxed max-w-[600px] mx-auto mb-6"> Your identity has been successfully verified and is ready to use. </p></div>',1)),t("div",I,[t("div",O,[e[2]||(e[2]=t("h3",{class:"text-sm font-semibold text-white/80 mb-2 uppercase tracking-wide"},"Signature",-1)),t("div",T,[t("p",q,g(m.value),1)])])])])):c("",!0)]),t("div",G,[t("button",{onClick:_,class:"path-action-button path-action-button--skip"}," Skip "),n.value?(a(),s("button",{key:0,onClick:w,class:"path-action-button path-action-button--continue"}," Finish ")):c("",!0)])])]))}});export{P as default};
|
||||
1
neode-ui/dist/assets/OnboardingWrapper-BHmgMze2.css
vendored
Normal file
1
neode-ui/dist/assets/OnboardingWrapper-BHmgMze2.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/OnboardingWrapper-BsOJSH8d.js
vendored
Normal file
1
neode-ui/dist/assets/OnboardingWrapper-BsOJSH8d.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/PeerFiles-qTLuUhI-.js
vendored
Normal file
1
neode-ui/dist/assets/PeerFiles-qTLuUhI-.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/RootRedirect-DU0Atc8N.css
vendored
Normal file
1
neode-ui/dist/assets/RootRedirect-DU0Atc8N.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.root-redirect-fade[data-v-e4035a68]{animation:root-fade-in-e4035a68 .3s ease .5s forwards}@keyframes root-fade-in-e4035a68{to{opacity:1}}
|
||||
1
neode-ui/dist/assets/RootRedirect-_cfWJoe8.js
vendored
Normal file
1
neode-ui/dist/assets/RootRedirect-_cfWJoe8.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{d as r,o as c,c as l,a as t,x as n,q as i,t as p}from"./index-DnbYEqLr.js";import{isOnboardingComplete as m}from"./useOnboarding-BgpIyX9l.js";const d={class:"min-h-full flex items-center justify-center"},f=r({__name:"RootRedirect",setup(u){const o=n();return c(async()=>{if(localStorage.getItem("neode_onboarding_complete")==="1"){o.replace("/login").catch(()=>{});return}let e=!1;try{e=await Promise.race([m(),new Promise(a=>setTimeout(()=>a(!1),3e3))])}catch{e=!1}o.replace(e?"/login":"/onboarding/intro").catch(()=>{})}),(s,e)=>(i(),l("div",d,[...e[0]||(e[0]=[t("div",{class:"flex flex-col items-center gap-4 opacity-0 root-redirect-fade"},[t("svg",{class:"animate-spin h-8 w-8 text-white/60",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})])],-1)])]))}}),h=p(f,[["__scopeId","data-v-e4035a68"]]);export{h as default};
|
||||
1
neode-ui/dist/assets/Server-BNJJbUQb.js
vendored
Normal file
1
neode-ui/dist/assets/Server-BNJJbUQb.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
neode-ui/dist/assets/Settings-a5XTzOeo.js
vendored
Normal file
2
neode-ui/dist/assets/Settings-a5XTzOeo.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/SystemUpdate-DAjulYB4.js
vendored
Normal file
1
neode-ui/dist/assets/SystemUpdate-DAjulYB4.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/Web5-DcuUNKso.js
vendored
Normal file
1
neode-ui/dist/assets/Web5-DcuUNKso.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/aiPermissions-sblnS_DK.js
vendored
Normal file
1
neode-ui/dist/assets/aiPermissions-sblnS_DK.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{$ as b,r as S,j as o}from"./index-DnbYEqLr.js";const n="archipelago-ai-permissions",s=[{id:"apps",label:"Installed Apps",description:"App names, status, and health — no credentials or config details",icon:"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z",group:"Node Data"},{id:"system",label:"System Stats",description:"CPU, RAM, disk usage — no file paths or IP addresses",icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z",group:"Node Data"},{id:"network",label:"Network Status",description:"Connection status, peer count — no IP addresses or keys",icon:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01",group:"Node Data"},{id:"bitcoin",label:"Bitcoin Node",description:"Block height, sync progress, mempool stats — no wallet keys",icon:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z",group:"Node Data"},{id:"media",label:"Media Libraries",description:"Local media libraries — film, music, podcast titles and metadata, no file paths",icon:"M7 4v16M17 4v16M3 8h4m10 0h4M3 12h18M3 16h4m10 0h4M4 20h16a1 1 0 001-1V5a1 1 0 00-1-1H4a1 1 0 00-1 1v14a1 1 0 001 1z",group:"Media & Files"},{id:"files",label:"File Names",description:"Folder and file names in Cloud — no file contents",icon:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",group:"Media & Files"},{id:"notes",label:"Documents & Notes",description:"Document and note titles — no contents",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",group:"Media & Files"},{id:"search",label:"Web Search",description:"Web search via your private SearXNG instance",icon:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",group:"AI & Search"},{id:"ai-local",label:"Local AI Models",description:"Local AI models via Ollama — model names and availability",icon:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z",group:"AI & Search"},{id:"wallet",label:"Wallet Overview",description:"Balance, channel count — no private keys, seeds, or addresses",icon:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z",group:"Financial"}],f=b("aiPermissions",()=>{const a=S(t());function t(){try{const e=localStorage.getItem(n);if(e){const v=JSON.parse(e);return new Set(v.filter(p=>s.some(M=>M.id===p)))}}catch{}return new Set}function i(){localStorage.setItem(n,JSON.stringify([...a.value]))}function l(e){return a.value.has(e)}function r(e){a.value.has(e)?a.value.delete(e):a.value.add(e),a.value=new Set(a.value),i()}function c(){a.value=new Set(s.map(e=>e.id)),i()}function d(){a.value=new Set,i()}const h=o(()=>[...a.value]),m=o(()=>a.value.size===s.length),u=o(()=>a.value.size===0);return{enabled:a,isEnabled:l,toggle:r,enableAll:c,disableAll:d,enabledCategories:h,allEnabled:m,noneEnabled:u}});export{s as A,f as u};
|
||||
1
neode-ui/dist/assets/api-CHkUAu4g.js
vendored
Normal file
1
neode-ui/dist/assets/api-CHkUAu4g.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
const n={Installing:"installing",Stopping:"stopping",Stopped:"stopped",Starting:"starting",Running:"running",Restarting:"restarting"},t={Stopped:"stopped",Running:"running"};export{n as P,t as S};
|
||||
23
neode-ui/dist/assets/audio/README-welcome-speech.md
vendored
Normal file
23
neode-ui/dist/assets/audio/README-welcome-speech.md
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# Welcome Noderunner Speech
|
||||
|
||||
The intro plays a sci-fi female voice saying "Welcome Noderunner" as the text types in.
|
||||
|
||||
## Generate the audio (ElevenLabs)
|
||||
|
||||
1. Get a free API key at [elevenlabs.io](https://elevenlabs.io) (free tier: 10k chars/month)
|
||||
2. Run:
|
||||
```bash
|
||||
cd neode-ui
|
||||
ELEVENLABS_API_KEY=your_key npm run generate-welcome-speech
|
||||
```
|
||||
3. Commit `welcome-noderunner.mp3` to the repo
|
||||
|
||||
## Custom sci-fi voice
|
||||
|
||||
Browse [ElevenLabs Voice Library](https://elevenlabs.io/voice-library) and search for "sci-fi", "AI", "robot", or "character". Copy the voice ID from the URL or voice settings, then:
|
||||
|
||||
```bash
|
||||
ELEVENLABS_API_KEY=your_key ELEVENLABS_VOICE_ID=voice_id npm run generate-welcome-speech
|
||||
```
|
||||
|
||||
Recommended: "The Digital Oracle", "The Friendly AI Assistant", or similar character voices from the Synthetic/Character categories.
|
||||
BIN
neode-ui/dist/assets/audio/arrows.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/arrows.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/cosmic-updrift.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/cosmic-updrift.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/enter-to-exit.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/enter-to-exit.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/enter.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/enter.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/intro-typing.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/intro-typing.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/loop-start.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/loop-start.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/pop.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/pop.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/typing.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/typing.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/welcome-noderunner.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/welcome-noderunner.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/winning-is-invisible.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/winning-is-invisible.mp3
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/audio/woosh.mp3
vendored
Normal file
BIN
neode-ui/dist/assets/audio/woosh.mp3
vendored
Normal file
Binary file not shown.
8
neode-ui/dist/assets/browser-rpPU-9HU.js
vendored
Normal file
8
neode-ui/dist/assets/browser-rpPU-9HU.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/es-BeSu-8Qq.js
vendored
Normal file
1
neode-ui/dist/assets/es-BeSu-8Qq.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
neode-ui/dist/assets/filebrowser-client-DRXM9PC4.js
vendored
Normal file
1
neode-ui/dist/assets/filebrowser-client-DRXM9PC4.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
function n(h){const t=h.split("/").filter(Boolean),s=[];for(const e of t)e!=="."&&(e===".."?s.pop():s.push(e));return"/"+s.join("/")}class c{token=null;baseUrl;constructor(){this.baseUrl=`${window.location.origin}/app/filebrowser`}get isAuthenticated(){return this.token!==null}async login(t="admin",s="admin"){try{const e=await fetch(`${this.baseUrl}/api/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t,password:s})});if(!e.ok)return!1;const o=await e.text();return this.token=o.replace(/^"|"$/g,""),document.cookie=`auth=${this.token}; path=/app/filebrowser; SameSite=Strict`,!0}catch{return!1}}headers(){const t={};return this.token&&(t["X-Auth"]=this.token),t}async listDirectory(t){const s=n(t),e=await fetch(`${this.baseUrl}/api/resources${s}`,{headers:this.headers()});if(!e.ok)throw new Error(`Failed to list directory: ${e.status}`);return((await e.json()).items||[]).map(a=>({...a,extension:a.name.includes(".")?a.name.split(".").pop().toLowerCase():""}))}downloadUrl(t){const s=n(t);return`${this.baseUrl}/api/raw${s}`}async fetchBlobUrl(t){const s=n(t),e=await fetch(`${this.baseUrl}/api/raw${s}`,{headers:this.headers()});if(!e.ok)throw new Error(`Failed to fetch file: ${e.status}`);const o=await e.blob();return URL.createObjectURL(o)}async downloadFile(t){const s=await this.fetchBlobUrl(t),e=t.split("/").pop()||"download",o=document.createElement("a");o.href=s,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}async upload(t,s){const e=n(t),o=e.endsWith("/")?e:`${e}/`,a=encodeURIComponent(s.name),i=await fetch(`${this.baseUrl}/api/resources${o}${a}?override=true`,{method:"POST",headers:this.headers(),body:s});if(!i.ok){const r=await i.text().catch(()=>"");throw new Error(`Upload failed (${i.status}): ${r}`)}}async createFolder(t,s){const e=n(t),o=e.endsWith("/")?e:`${e}/`,a=s.replace(/\.\./g,"").replace(/\//g,""),i=await fetch(`${this.baseUrl}/api/resources${o}${a}/`,{method:"POST",headers:this.headers()});if(!i.ok)throw new Error(`Create folder failed: ${i.status}`)}async deleteItem(t){const s=n(t),e=await fetch(`${this.baseUrl}/api/resources${s}`,{method:"DELETE",headers:this.headers()});if(!e.ok)throw new Error(`Delete failed: ${e.status}`)}async getUsage(){if(!this.isAuthenticated&&!await this.login())return{totalSize:0,folderCount:0,fileCount:0};const t=await fetch(`${this.baseUrl}/api/resources/`,{headers:this.headers()});if(!t.ok)return{totalSize:0,folderCount:0,fileCount:0};const e=(await t.json()).items||[],o=e.filter(r=>r.isDir).length,a=e.filter(r=>!r.isDir).length;return{totalSize:e.reduce((r,l)=>r+(l.size||0),0),folderCount:o,fileCount:a}}static TEXT_EXTENSIONS=new Set(["txt","md","json","csv","log","conf","yaml","yml","toml","xml","html","css","js","ts","py","sh","bash","env","ini","cfg","sql","rs","go","java","c","h","cpp","hpp","rb","php","dockerfile","makefile","gitignore","editorconfig"]);isTextFile(t){const s=t.includes(".")?t.split(".").pop().toLowerCase():"",e=t.split("/").pop()?.toLowerCase()||"";return c.TEXT_EXTENSIONS.has(s)||c.TEXT_EXTENSIONS.has(e)}async readFileAsText(t,s=102400){if(!this.isAuthenticated&&!await this.login())throw new Error("FileBrowser authentication failed");if(!this.isTextFile(t))throw new Error(`Cannot read binary file: ${t}`);const e=n(t),o=await fetch(`${this.baseUrl}/api/raw${e}`,{headers:this.headers()});if(!o.ok)throw new Error(`Failed to read file: ${o.status}`);const a=await o.blob(),i=a.size,r=i>s;return{content:await(r?a.slice(0,s):a).text(),truncated:r,size:i}}async rename(t,s){const e=n(t),o=e.substring(0,e.lastIndexOf("/")+1),a=s.replace(/\.\./g,"").replace(/\//g,""),i=await fetch(`${this.baseUrl}/api/resources${e}`,{method:"PATCH",headers:{...this.headers(),"Content-Type":"application/json"},body:JSON.stringify({destination:`${o}${a}`})});if(!i.ok)throw new Error(`Rename failed: ${i.status}`)}}const u=new c;export{u as f};
|
||||
BIN
neode-ui/dist/assets/fonts/Benton_Sans/BentonSans-Regular.otf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Benton_Sans/BentonSans-Regular.otf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Courier_New/CourierNew-Bold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Courier_New/CourierNew-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Courier_New/CourierNew-Regular.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Courier_New/CourierNew-Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Black.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Black.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-BlackItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-BlackItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Bold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-BoldItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-BoldItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraBold.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraLight.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraLight.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Italic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Italic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Light.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Light.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-LightItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-LightItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Medium.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Medium.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-MediumItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-MediumItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Regular.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-SemiBold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-SemiBold.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Thin.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-Thin.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ThinItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Montserrat/Montserrat-ThinItalic.ttf
vendored
Normal file
Binary file not shown.
93
neode-ui/dist/assets/fonts/Montserrat/OFL.txt
vendored
Normal file
93
neode-ui/dist/assets/fonts/Montserrat/OFL.txt
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
202
neode-ui/dist/assets/fonts/Open_Sans/LICENSE.txt
vendored
Normal file
202
neode-ui/dist/assets/fonts/Open_Sans/LICENSE.txt
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-Bold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-BoldItalic.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-BoldItalic.ttf
vendored
Normal file
Binary file not shown.
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-ExtraBold.ttf
vendored
Normal file
BIN
neode-ui/dist/assets/fonts/Open_Sans/OpenSans-ExtraBold.ttf
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user