@bobfrankston/rmfmail 1.1.84 → 1.1.86

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.
Files changed (105) hide show
  1. package/.commitmsg +13 -5
  2. package/client/app.bundle.js +5 -2
  3. package/client/app.bundle.js.map +2 -2
  4. package/client/app.js +14 -3
  5. package/client/app.js.map +1 -1
  6. package/client/app.ts +13 -3
  7. package/client/components/message-list.js.map +1 -1
  8. package/client/components/message-list.ts +1 -0
  9. package/client/compose/compose.js +38 -16
  10. package/client/compose/compose.js.map +1 -1
  11. package/client/compose/compose.ts +34 -15
  12. package/client/lib/mailxapi.js +5 -0
  13. package/client/lib/tinymce/skins/content/dark/content.js +4 -10
  14. package/client/lib/tinymce/skins/content/dark/content.js.map +1 -0
  15. package/client/lib/tinymce/skins/content/dark/content.min.js +4 -0
  16. package/client/lib/tinymce/skins/content/dark/content.min.js.map +1 -0
  17. package/client/lib/tinymce/skins/content/default/content.js +4 -10
  18. package/client/lib/tinymce/skins/content/default/content.js.map +1 -0
  19. package/client/lib/tinymce/skins/content/default/content.min.js +4 -0
  20. package/client/lib/tinymce/skins/content/default/content.min.js.map +1 -0
  21. package/client/lib/tinymce/skins/content/document/content.js +4 -10
  22. package/client/lib/tinymce/skins/content/document/content.js.map +1 -0
  23. package/client/lib/tinymce/skins/content/document/content.min.js +4 -0
  24. package/client/lib/tinymce/skins/content/document/content.min.js.map +1 -0
  25. package/client/lib/tinymce/skins/content/tinymce-5/content.js +4 -10
  26. package/client/lib/tinymce/skins/content/tinymce-5/content.js.map +1 -0
  27. package/client/lib/tinymce/skins/content/tinymce-5/content.min.js +4 -0
  28. package/client/lib/tinymce/skins/content/tinymce-5/content.min.js.map +1 -0
  29. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js +4 -10
  30. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js.map +1 -0
  31. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js +4 -0
  32. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js.map +1 -0
  33. package/client/lib/tinymce/skins/content/writer/content.js +4 -10
  34. package/client/lib/tinymce/skins/content/writer/content.js.map +1 -0
  35. package/client/lib/tinymce/skins/content/writer/content.min.js +4 -0
  36. package/client/lib/tinymce/skins/content/writer/content.min.js.map +1 -0
  37. package/client/lib/tinymce/skins/ui/oxide/content.inline.js +4 -10
  38. package/client/lib/tinymce/skins/ui/oxide/content.inline.js.map +1 -0
  39. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js +4 -0
  40. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js.map +1 -0
  41. package/client/lib/tinymce/skins/ui/oxide/content.js +4 -10
  42. package/client/lib/tinymce/skins/ui/oxide/content.js.map +1 -0
  43. package/client/lib/tinymce/skins/ui/oxide/content.min.js +4 -0
  44. package/client/lib/tinymce/skins/ui/oxide/content.min.js.map +1 -0
  45. package/client/lib/tinymce/skins/ui/oxide/skin.js +4 -1
  46. package/client/lib/tinymce/skins/ui/oxide/skin.js.map +1 -0
  47. package/client/lib/tinymce/skins/ui/oxide/skin.min.js +4 -0
  48. package/client/lib/tinymce/skins/ui/oxide/skin.min.js.map +1 -0
  49. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js +4 -1
  50. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js.map +1 -0
  51. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js +4 -0
  52. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js.map +1 -0
  53. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js +4 -10
  54. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js.map +1 -0
  55. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js +4 -0
  56. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js.map +1 -0
  57. package/client/lib/tinymce/skins/ui/oxide-dark/content.js +4 -10
  58. package/client/lib/tinymce/skins/ui/oxide-dark/content.js.map +1 -0
  59. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js +4 -0
  60. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js.map +1 -0
  61. package/client/lib/tinymce/skins/ui/oxide-dark/skin.js +4 -1
  62. package/client/lib/tinymce/skins/ui/oxide-dark/skin.js.map +1 -0
  63. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js +4 -0
  64. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js.map +1 -0
  65. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +4 -1
  66. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js.map +1 -0
  67. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js +4 -0
  68. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js.map +1 -0
  69. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js +4 -10
  70. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js.map +1 -0
  71. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js +4 -0
  72. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js.map +1 -0
  73. package/client/lib/tinymce/skins/ui/tinymce-5/content.js +4 -10
  74. package/client/lib/tinymce/skins/ui/tinymce-5/content.js.map +1 -0
  75. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js +4 -0
  76. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js.map +1 -0
  77. package/client/lib/tinymce/skins/ui/tinymce-5/skin.js +4 -1
  78. package/client/lib/tinymce/skins/ui/tinymce-5/skin.js.map +1 -0
  79. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js +4 -0
  80. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js.map +1 -0
  81. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +4 -1
  82. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js.map +1 -0
  83. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js +4 -0
  84. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js.map +1 -0
  85. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js +4 -10
  86. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js.map +1 -0
  87. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js +4 -0
  88. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js.map +1 -0
  89. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js +4 -10
  90. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js.map +1 -0
  91. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js +4 -0
  92. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js.map +1 -0
  93. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js +4 -1
  94. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js.map +1 -0
  95. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js +4 -0
  96. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js.map +1 -0
  97. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +4 -1
  98. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js.map +1 -0
  99. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js +4 -0
  100. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js.map +1 -0
  101. package/client/styles/components.css +8 -5
  102. package/client/styles/variables.css +4 -0
  103. package/npmchanges.md +24 -0
  104. package/package.json +1 -1
  105. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-88584 → node_modules.npmglobalize-stash-88224}/.package-lock.json +0 -0
@@ -78,9 +78,10 @@
78
78
  .tb-icon { font-size: 1.1em; }
79
79
  .tb-btn.syncing .tb-icon { animation: spin 1s linear infinite; }
80
80
  @keyframes spin { to { transform: rotate(360deg); } }
81
- /* Viewer Flag button tracks the viewed message's flagged state — same
82
- gold as the message-list row star (.ml-row.flagged .ml-flag). */
83
- #btn-flag.flagged { color: oklch(0.70 0.18 60); }
81
+ /* Viewer Flag button turns gold/amber when the viewed message is
82
+ flagged the same --color-flag-star used by the message-list row
83
+ star (.ml-row.flagged .ml-flag below). */
84
+ #btn-flag.flagged { color: var(--color-flag-star); }
84
85
  .app-version { font-size: var(--font-size-sm); color: var(--color-text); opacity: 0.7; }
85
86
 
86
87
  .tb-menu { position: relative; display: inline-block; }
@@ -623,9 +624,11 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
623
624
  align-self: center;
624
625
  cursor: pointer;
625
626
  }
626
- .ml-flag:hover { color: oklch(0.72 0.16 60); }
627
+ .ml-flag:hover { color: var(--color-flag-star); } /* preview the flag colour */
627
628
  .flagged-only .ml-row:not(.flagged) { display: none; }
628
- .ml-row.flagged .ml-flag { color: oklch(0.70 0.18 60); } /* solid gold star */
629
+ /* Flagged row star: gold/amber (--color-flag-star, oklch hue 60) the
630
+ same colour as the viewer toolbar Flag button (#btn-flag.flagged). */
631
+ .ml-row.flagged .ml-flag { color: var(--color-flag-star); }
629
632
  .ml-row.flagged { background: color-mix(in oklch, oklch(0.75 0.15 60) 8%, transparent); }
630
633
 
631
634
  /* Priority sender — strongest signal while unread; fades after read so
@@ -26,6 +26,10 @@
26
26
  --color-danger: oklch(0.65 0.15 15);
27
27
  --color-success: oklch(0.65 0.15 145);
28
28
  --color-badge: oklch(0.60 0.18 250);
29
+ /* Flag star when set — gold/amber (oklch hue 60). Shared by the
30
+ message-list row star and the message-viewer toolbar Flag button
31
+ so the two always render the identical colour. */
32
+ --color-flag-star: oklch(0.70 0.18 60);
29
33
 
30
34
  /* Typography */
31
35
  --font-ui: "Segoe UI", system-ui, -apple-system, sans-serif;
package/npmchanges.md CHANGED
@@ -116,3 +116,27 @@ The toolbar Flag button showed a ⚑ while the message-list row uses
116
116
  ★/☆ for the same flag state. Changed the toolbar glyph to ★ so the
117
117
  two are visibly the same action.
118
118
 
119
+ ## v1.1.84 — 2026-05-18
120
+
121
+ Viewer Flag button reflects flagged state, like the list star
122
+
123
+ The toolbar Flag button is now ☆ in the default colour when the viewed
124
+ message is unflagged and a gold ★ when flagged — same glyph + colour
125
+ behaviour as the message-list row star. updateFlagButton() runs on
126
+ mailx-message-shown and after every toggle (including the error revert).
127
+
128
+ ## v1.1.85 — 2026-05-18
129
+
130
+ Flag star: single named colour token; drop unneeded VS-15 churn
131
+
132
+ v1.1.84 already rendered both flag stars the same gold, so the
133
+ variation-selector / font-variant-emoji changes were reverted — they
134
+ fixed nothing and put invisible characters in source.
135
+
136
+ Instead the gold/amber flag colour is now a documented token,
137
+ --color-flag-star (oklch hue 60), in variables.css. Both the
138
+ message-list row star (.ml-row.flagged .ml-flag) and the viewer toolbar
139
+ Flag button (#btn-flag.flagged) reference it, so they can't drift, and
140
+ the colour is named rather than a duplicated magic number. Star glyphs
141
+ restored to plain literal ★/☆.
142
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.1.84",
3
+ "version": "1.1.86",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",