@floless/app 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -133,6 +133,21 @@
133
133
  <div class="inspect-body" id="inspect-body"></div>
134
134
  </aside>
135
135
 
136
+ <!-- What's-new panel — a relaunch-surviving, calm "what changed" strip shown
137
+ once after a floless.app self-update. A direct grid child of .app (sibling
138
+ to header/body/footer); occupies the extra `whats-new` row that .app.has-whats-new
139
+ inserts above the footer. Dismiss persists in localStorage so it never nags. -->
140
+ <div id="whats-new-panel" class="whats-new" hidden>
141
+ <div class="whats-new-summary">
142
+ <span class="whats-new-label">Updated</span>
143
+ <span class="whats-new-summary-text"></span>
144
+ <button class="whats-new-toggle" type="button" aria-expanded="false">What's new</button>
145
+ <a class="whats-new-link" target="_blank" rel="noopener">Full changelog ↗</a>
146
+ <button class="whats-new-dismiss" type="button" aria-label="Dismiss">✕</button>
147
+ </div>
148
+ <div class="whats-new-detail"><div class="whats-new-detail-inner"></div></div>
149
+ </div>
150
+
136
151
  <footer>
137
152
  <div class="status">
138
153
  <span class="stat"><span class="dot"></span><span class="stat-val">runtime online</span></span>
@@ -155,6 +170,11 @@
155
170
  </footer>
156
171
  </div>
157
172
 
173
+ <!-- Single reusable release-notes popover — anchored to the clicked update pill
174
+ (or the AWARE version label) at open time. Shared by #app-update and
175
+ #aware-update; its body is rendered per-open in aware.js. -->
176
+ <div id="notes-popover" class="relnotes-popover" role="dialog" aria-modal="true" aria-label="Release notes" tabindex="-1" hidden></div>
177
+
158
178
  <div class="menu" id="menu" role="menu">
159
179
  <button class="menu-item" data-action="open" role="menuitem">
160
180
  <span class="menu-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"/></svg></span>
@@ -191,6 +211,11 @@
191
211
  <span class="menu-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><line x1="10" x2="14" y1="2" y2="2"/><line x1="12" x2="15" y1="14" y2="11"/><circle cx="12" cy="14" r="8"/></svg></span>
192
212
  <span class="menu-label">Routines</span>
193
213
  </button>
214
+ <div class="menu-divider"></div>
215
+ <button class="menu-item" data-action="report-issue" role="menuitem">
216
+ <span class="menu-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" x2="4" y1="22" y2="15"/></svg></span>
217
+ <span class="menu-label">Report an issue</span>
218
+ </button>
194
219
  <!-- Start-on-login + Theme are sibling machine preferences (no divider between
195
220
  them — UX review 2026-05-31). Start-on-login toggles the per-user logon
196
221
  Scheduled Task that keeps the local server alive across logins; hidden unless
@@ -428,6 +453,40 @@
428
453
  </div>
429
454
  </div>
430
455
 
456
+ <!-- Report an issue — files into the PRIVATE product log via POST /api/report-issue
457
+ (the floless.io relay; report-relay.ts). The user gets a confirmation ref, not a
458
+ public link (the repo is private). JS swaps #ri-form for #ri-state (success / sign-in). -->
459
+ <div class="modal-backdrop" id="report-issue-modal">
460
+ <div class="modal report-issue">
461
+ <div class="modal-title">Report an issue</div>
462
+ <div class="modal-sub">Reports go to a private log — you won't get a public link to track it. We'll follow up with you if we need more details.</div>
463
+ <div id="ri-form">
464
+ <div class="modal-field">
465
+ <label>Category</label>
466
+ <div class="rtn-mode" id="ri-category" role="group" aria-label="Report category">
467
+ <button type="button" class="rtn-mode-btn active" data-cat="bug" aria-pressed="true">Bug</button>
468
+ <button type="button" class="rtn-mode-btn" data-cat="idea" aria-pressed="false">Idea</button>
469
+ <button type="button" class="rtn-mode-btn" data-cat="question" aria-pressed="false">Question</button>
470
+ </div>
471
+ </div>
472
+ <div class="modal-field">
473
+ <label for="ri-title">Title</label>
474
+ <input id="ri-title" type="text" placeholder="Summarise the issue in a few words" autocomplete="off">
475
+ </div>
476
+ <div class="modal-field">
477
+ <label for="ri-desc">Description</label>
478
+ <textarea id="ri-desc" placeholder="What happened? What did you expect? Steps to reproduce if it's a bug."></textarea>
479
+ </div>
480
+ <div class="integrations-hint" id="ri-context"></div>
481
+ <div class="modal-actions">
482
+ <button id="ri-cancel">Cancel</button>
483
+ <button id="ri-send" class="primary" disabled>Send report</button>
484
+ </div>
485
+ </div>
486
+ <div id="ri-state" hidden></div>
487
+ </div>
488
+ </div>
489
+
431
490
  <!-- Routine delete confirmation — destructive, so Cancel holds focus (Enter cancels)
432
491
  and the Delete button is danger-on-hover, never the accent primary. -->
433
492
  <div class="modal-backdrop" id="rtn-delete-modal">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floless/app",
3
- "version": "0.7.1",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "description": "Thin localhost host for floless.app — serves web/ and shells the aware CLI. No engine, no LLM.",
6
6
  "bin": {