stellar-drive 1.2.32 → 1.2.33

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.
@@ -206,7 +206,7 @@ function generatePackageJson(opts) {
206
206
  },
207
207
  dependencies: {
208
208
  postgres: '^3.4.0',
209
- 'stellar-drive': '^1.2.32'
209
+ 'stellar-drive': '^1.2.33'
210
210
  },
211
211
  type: 'module'
212
212
  }, null, 2) + '\n');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stellar-drive",
3
- "version": "1.2.32",
3
+ "version": "1.2.33",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -106,7 +106,7 @@
106
106
  background: rgba(255, 255, 255, 0.28);
107
107
  }
108
108
 
109
- /* ── Mobile: compact cinematic pill anchored above tab bar ── */
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
- border: 1px solid rgba(212, 160, 57, 0.25);
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(240, 225, 190, 0.9);
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(160, 130, 80, 0.75);
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(212, 160, 57, 0.9);
154
- background: rgba(212, 160, 57, 0.1);
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(212, 160, 57, 0.2);
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.06);
168
- color: rgba(212, 160, 57, 0.65);
169
- border: 1px solid rgba(212, 160, 57, 0.12);
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 amber glass banner just below the top navigation when the
5
- app has no network connectivity. Auto-dismisses reactively when connectivity
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: full-width bar flush below the island-header, which ends at
11
- calc(env(safe-area-inset-top, 47px) + 24px) from the viewport top.
9
+ - Mobile: pill-shaped, left/right 1rem inset, positioned below the island-header
10
+ (env(safe-area-inset-top) + 24px + 0.5rem breathing room).
12
11
  - Only renders when `$isOnline` is `false`.
13
12
  - No dismiss button — auto-hides on reconnect.
14
- - Glass morphism styling with amber tint to distinguish from DemoBanner.
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(180, 120, 0, 0.15);
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, 200, 80, 0.2);
56
- color: #ffd97a;
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.25);
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.9;
67
+ opacity: 0.75;
70
68
  }
71
69
 
72
70
  .offline-banner-text {
73
- opacity: 0.95;
71
+ opacity: 0.9;
74
72
  }
75
73
 
76
- /* ── Mobile: full-width bar flush below island-header ──
77
- island-header bottom edge = safe-area-inset-top + 24px from viewport top.
78
- Formula: -safe-area-inset-top (header top offset) + safe-area-inset-top*2 + 24px (header height)
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 bottom = env(safe-area-inset-top) + 24px from viewport top.
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: 0;
86
- right: 0;
79
+ top: calc(env(safe-area-inset-top, 47px) + 24px + 0.5rem);
80
+ left: 1rem;
81
+ right: 1rem;
87
82
  transform: none;
88
- border-radius: 0;
89
- border-left: none;
90
- border-right: none;
91
- border-top: none;
92
- border-bottom: 1px solid rgba(255, 200, 80, 0.18);
93
- padding: 0.45rem 1rem;
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(-100%);
111
+ transform: translateY(-0.75rem);
116
112
  }
117
113
  to {
118
114
  opacity: 1;