stellar-drive 1.2.32 → 1.2.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/install-pwa.js
CHANGED
package/package.json
CHANGED
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
background: rgba(255, 255, 255, 0.28);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
/* ── Mobile:
|
|
109
|
+
/* ── Mobile: pill anchored above tab bar, matching desktop black glass ── */
|
|
110
110
|
@media (max-width: 767px) {
|
|
111
111
|
.demo-banner {
|
|
112
112
|
left: 1rem;
|
|
@@ -114,30 +114,22 @@
|
|
|
114
114
|
bottom: calc(var(--demo-banner-bottom, 0px) + env(safe-area-inset-bottom, 0px) + 0.5rem);
|
|
115
115
|
transform: none;
|
|
116
116
|
border-radius: 12px;
|
|
117
|
-
|
|
117
|
+
background: rgba(0, 0, 0, 0.6);
|
|
118
|
+
backdrop-filter: blur(12px);
|
|
119
|
+
-webkit-backdrop-filter: blur(12px);
|
|
120
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
121
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
|
118
122
|
padding: 0.5rem 0.85rem;
|
|
119
123
|
font-size: 0.75rem;
|
|
120
124
|
gap: 0.5rem;
|
|
121
125
|
max-width: none;
|
|
122
126
|
white-space: normal;
|
|
123
127
|
flex-wrap: nowrap;
|
|
124
|
-
/* Obsidian glass with citrine shimmer */
|
|
125
|
-
background: linear-gradient(
|
|
126
|
-
135deg,
|
|
127
|
-
rgba(14, 12, 8, 0.92) 0%,
|
|
128
|
-
rgba(22, 18, 10, 0.96) 100%
|
|
129
|
-
);
|
|
130
|
-
backdrop-filter: blur(24px) saturate(1.6);
|
|
131
|
-
-webkit-backdrop-filter: blur(24px) saturate(1.6);
|
|
132
|
-
box-shadow:
|
|
133
|
-
0 8px 32px rgba(0, 0, 0, 0.5),
|
|
134
|
-
0 0 0 0.5px rgba(212, 160, 57, 0.15),
|
|
135
|
-
inset 0 1px 0 rgba(212, 160, 57, 0.1);
|
|
136
128
|
animation: demo-banner-rise 0.35s cubic-bezier(0.16, 1, 0.3, 1);
|
|
137
129
|
}
|
|
138
130
|
|
|
139
131
|
.demo-banner-text {
|
|
140
|
-
color: rgba(
|
|
132
|
+
color: rgba(255, 255, 255, 0.95);
|
|
141
133
|
font-size: 0.75rem;
|
|
142
134
|
font-weight: 500;
|
|
143
135
|
flex: 1;
|
|
@@ -145,28 +137,28 @@
|
|
|
145
137
|
}
|
|
146
138
|
|
|
147
139
|
.demo-banner-subtitle {
|
|
148
|
-
color: rgba(
|
|
140
|
+
color: rgba(255, 255, 255, 0.55);
|
|
149
141
|
font-size: 0.7rem;
|
|
150
142
|
}
|
|
151
143
|
|
|
152
144
|
.demo-banner-link {
|
|
153
|
-
color: rgba(
|
|
154
|
-
background: rgba(
|
|
145
|
+
color: rgba(255, 255, 255, 0.65);
|
|
146
|
+
background: rgba(255, 255, 255, 0.08);
|
|
155
147
|
border-radius: 6px;
|
|
156
148
|
padding: 0.2rem 0.5rem;
|
|
157
149
|
font-size: 0.68rem;
|
|
158
150
|
font-weight: 600;
|
|
159
151
|
letter-spacing: 0.03em;
|
|
160
152
|
text-transform: uppercase;
|
|
161
|
-
border: 1px solid rgba(
|
|
153
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
162
154
|
flex-shrink: 0;
|
|
163
155
|
white-space: nowrap;
|
|
164
156
|
}
|
|
165
157
|
|
|
166
158
|
.demo-banner-close {
|
|
167
|
-
background: rgba(255, 255, 255, 0.
|
|
168
|
-
color: rgba(
|
|
169
|
-
border: 1px solid rgba(
|
|
159
|
+
background: rgba(255, 255, 255, 0.1);
|
|
160
|
+
color: rgba(255, 255, 255, 0.65);
|
|
161
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
170
162
|
flex-shrink: 0;
|
|
171
163
|
width: 1.35rem;
|
|
172
164
|
height: 1.35rem;
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
@fileoverview OfflineBanner — fixed-position notification bar for offline state.
|
|
3
3
|
|
|
4
|
-
Renders a persistent
|
|
5
|
-
|
|
6
|
-
is restored — no explicit dismiss needed.
|
|
4
|
+
Renders a persistent dark glass banner when the app has no network connectivity.
|
|
5
|
+
Auto-dismisses reactively when connectivity is restored — no explicit dismiss needed.
|
|
7
6
|
|
|
8
7
|
- Desktop: pill-shaped, centered, positioned below the 64px top nav
|
|
9
8
|
(accounts for safe-area-inset-top on notch/island devices).
|
|
10
|
-
- Mobile:
|
|
11
|
-
|
|
9
|
+
- Mobile: pill-shaped, left/right 1rem inset, positioned below the island-header
|
|
10
|
+
(env(safe-area-inset-top) * 2 + 24px + 0.5rem breathing room).
|
|
12
11
|
- Only renders when `$isOnline` is `false`.
|
|
13
12
|
- No dismiss button — auto-hides on reconnect.
|
|
14
|
-
-
|
|
13
|
+
- Black glass morphism matching DemoBanner style.
|
|
15
14
|
- z-index 9000 — matches DemoBanner tier.
|
|
16
|
-
- Never overlaps top nav on desktop or island-header on mobile.
|
|
17
15
|
-->
|
|
18
16
|
<script lang="ts">
|
|
19
17
|
import { isOnline } from 'stellar-drive/stores';
|
|
@@ -49,48 +47,46 @@
|
|
|
49
47
|
gap: 0.6rem;
|
|
50
48
|
padding: 0.5rem 1.1rem;
|
|
51
49
|
border-radius: 9999px;
|
|
52
|
-
background: rgba(
|
|
50
|
+
background: rgba(0, 0, 0, 0.6);
|
|
53
51
|
backdrop-filter: blur(12px);
|
|
54
52
|
-webkit-backdrop-filter: blur(12px);
|
|
55
|
-
border: 1px solid rgba(255,
|
|
56
|
-
color: #
|
|
53
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
54
|
+
color: #fff;
|
|
57
55
|
font-size: 0.8125rem;
|
|
58
56
|
font-weight: 500;
|
|
59
57
|
letter-spacing: 0.01em;
|
|
60
58
|
white-space: nowrap;
|
|
61
59
|
max-width: calc(100vw - 2rem);
|
|
62
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.
|
|
60
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
|
63
61
|
pointer-events: none;
|
|
64
62
|
animation: offline-banner-slide-down 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
.offline-banner-icon {
|
|
68
66
|
flex-shrink: 0;
|
|
69
|
-
opacity: 0.
|
|
67
|
+
opacity: 0.75;
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
.offline-banner-text {
|
|
73
|
-
opacity: 0.
|
|
71
|
+
opacity: 0.9;
|
|
74
72
|
}
|
|
75
73
|
|
|
76
|
-
/* ── Mobile:
|
|
77
|
-
island-header
|
|
78
|
-
|
|
79
|
-
= safe-area-inset-top + 24px.
|
|
80
|
-
Using env(safe-area-inset-top, 47px) matches the fallback the header itself uses
|
|
81
|
-
so the banner stays flush on devices that don't support env(). */
|
|
74
|
+
/* ── Mobile: pill below island-header, matching desktop black glass ──
|
|
75
|
+
island-header height = env(safe-area-inset-top) * 2 + 24px.
|
|
76
|
+
+0.5rem breathing room so the pill clears the header gradient fade. */
|
|
82
77
|
@media (max-width: 767px) {
|
|
83
78
|
.offline-banner {
|
|
84
|
-
top: calc(env(safe-area-inset-top, 47px) + 24px);
|
|
85
|
-
left:
|
|
86
|
-
right:
|
|
79
|
+
top: calc(env(safe-area-inset-top, 47px) * 2 + 24px + 0.5rem);
|
|
80
|
+
left: 1rem;
|
|
81
|
+
right: 1rem;
|
|
87
82
|
transform: none;
|
|
88
|
-
border-radius:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
border
|
|
93
|
-
|
|
83
|
+
border-radius: 12px;
|
|
84
|
+
background: rgba(0, 0, 0, 0.6);
|
|
85
|
+
backdrop-filter: blur(12px);
|
|
86
|
+
-webkit-backdrop-filter: blur(12px);
|
|
87
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
88
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
|
89
|
+
padding: 0.45rem 0.85rem;
|
|
94
90
|
font-size: 0.78rem;
|
|
95
91
|
gap: 0.5rem;
|
|
96
92
|
max-width: none;
|
|
@@ -112,7 +108,7 @@
|
|
|
112
108
|
@keyframes offline-banner-drop {
|
|
113
109
|
from {
|
|
114
110
|
opacity: 0;
|
|
115
|
-
transform: translateY(-
|
|
111
|
+
transform: translateY(-0.75rem);
|
|
116
112
|
}
|
|
117
113
|
to {
|
|
118
114
|
opacity: 1;
|