@bobfrankston/mailx 1.0.208 → 1.0.209

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/client/app.js CHANGED
@@ -352,7 +352,14 @@ async function openCompose(mode) {
352
352
  function showComposeOverlay() {
353
353
  const wrapper = document.createElement("div");
354
354
  wrapper.className = "compose-overlay";
355
- wrapper.style.cssText = "position:fixed;bottom:0;right:16px;width:min(900px,55vw);height:min(700px,70vh);z-index:1000;border-radius:8px 8px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,0.3);display:flex;flex-direction:column;resize:both;overflow:hidden;";
355
+ // Full-screen on small/short screens, floating on larger
356
+ const isSmall = window.innerWidth <= 768 || window.innerHeight <= 600;
357
+ if (isSmall) {
358
+ wrapper.style.cssText = "position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#fff;";
359
+ }
360
+ else {
361
+ wrapper.style.cssText = "position:fixed;bottom:0;right:16px;width:min(900px,55vw);height:min(700px,70vh);z-index:1000;border-radius:8px 8px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,0.3);display:flex;flex-direction:column;resize:both;overflow:hidden;";
362
+ }
356
363
  // Title bar — drag to move, close button
357
364
  const titleBar = document.createElement("div");
358
365
  titleBar.style.cssText = "display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#e8ecf0;border-radius:8px 8px 0 0;cursor:move;user-select:none;flex-shrink:0;";
@@ -311,6 +311,8 @@ function appendMessages(body, accountId, items) {
311
311
  row.classList.add("unread");
312
312
  if (msg.flags.includes("\\Flagged"))
313
313
  row.classList.add("flagged");
314
+ if (!msg.bodyPath)
315
+ row.classList.add("not-downloaded");
314
316
  row.dataset.uid = String(msg.uid);
315
317
  row.dataset.accountId = msgAccountId;
316
318
  row.dataset.folderId = String(msg.folderId);
@@ -398,6 +398,17 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
398
398
  }
399
399
  .no-snippets .ml-preview { display: none; }
400
400
  .ml-date { white-space: nowrap; text-align: right; color: var(--color-text-muted); font-family: var(--font-mono); font-size: var(--font-size-sm); }
401
+ /* Not-downloaded indicator: small dot before the date */
402
+ .ml-row.not-downloaded .ml-date::before {
403
+ content: "○ ";
404
+ color: var(--color-text-muted);
405
+ opacity: 0.7;
406
+ }
407
+ .ml-row:not(.not-downloaded) .ml-date::before {
408
+ content: "● ";
409
+ color: #4a9;
410
+ opacity: 0.5;
411
+ }
401
412
 
402
413
  .ml-empty {
403
414
  grid-column: 1 / -1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx",
3
- "version": "1.0.208",
3
+ "version": "1.0.209",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -24,7 +24,7 @@
24
24
  "@bobfrankston/iflow-node": "^0.1.2",
25
25
  "@bobfrankston/miscinfo": "^1.0.8",
26
26
  "@bobfrankston/oauthsupport": "^1.0.22",
27
- "@bobfrankston/msger": "^0.1.269",
27
+ "@bobfrankston/msger": "^0.1.270",
28
28
  "@capacitor/android": "^8.3.0",
29
29
  "@capacitor/cli": "^8.3.0",
30
30
  "@capacitor/core": "^8.3.0",
@@ -248,7 +248,8 @@ export class MailxDB {
248
248
  flags: JSON.parse(r.flags_json),
249
249
  size: r.size,
250
250
  hasAttachments: !!r.has_attachments,
251
- preview: r.preview
251
+ preview: r.preview,
252
+ bodyPath: r.body_path || ""
252
253
  }));
253
254
  return { items, total, page, pageSize };
254
255
  }
@@ -279,7 +280,8 @@ export class MailxDB {
279
280
  flags: JSON.parse(r.flags_json),
280
281
  size: r.size,
281
282
  hasAttachments: !!r.has_attachments,
282
- preview: r.preview
283
+ preview: r.preview,
284
+ bodyPath: r.body_path || ""
283
285
  }));
284
286
  return { items, total, page, pageSize };
285
287
  }