@tiddlywiki/mws 0.0.21 → 0.1.1

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 (202) hide show
  1. package/README.md +42 -9
  2. package/dist/metafile-esm.json +1 -0
  3. package/dist/mws.d.ts +1 -0
  4. package/dist/mws.js +34710 -0
  5. package/dist/mws.js.map +1 -0
  6. package/editions/mws-docs/tiddlers/$__StoryList.tid +1 -2
  7. package/editions/mws-docs/tiddlers/2025-02-18 - User Management.md.meta +2 -2
  8. package/editions/mws-docs/tiddlers/2025-04-14 - client plugins /342/234/224/357/270/217.md" +31 -0
  9. package/editions/mws-docs/tiddlers/2025-04-14 - client plugins /342/234/224/357/270/217.md.meta" +5 -0
  10. package/editions/mws-docs/tiddlers/{2025-05-04.md → 2025-05-04 - event hooks /342/234/224/357/270/217.md" } +7 -1
  11. package/editions/mws-docs/tiddlers/2025-05-04 - event hooks /342/234/224/357/270/217.md.meta" +5 -0
  12. package/editions/mws-docs/tiddlers/{2025-05-06.md → 2025-05-06 - syncer design.md } +0 -4
  13. package/editions/mws-docs/tiddlers/2025-05-06 - syncer design.md.meta +5 -0
  14. package/editions/mws-docs/tiddlers/Allowed Methods.tid +8 -0
  15. package/editions/mws-docs/tiddlers/Application Access & Security.md +14 -84
  16. package/editions/mws-docs/tiddlers/Application Access & Security.md.meta +1 -1
  17. package/editions/mws-docs/tiddlers/Body Format.md +19 -0
  18. package/editions/mws-docs/tiddlers/Body Format.md.meta +4 -0
  19. package/editions/mws-docs/tiddlers/Checklists and Features.md +0 -3
  20. package/editions/mws-docs/tiddlers/Checklists and Features.md.meta +1 -1
  21. package/editions/mws-docs/tiddlers/Client Plugins.md +17 -0
  22. package/editions/mws-docs/tiddlers/Client Plugins.md.meta +5 -0
  23. package/editions/mws-docs/tiddlers/HTTP API.md +4 -3
  24. package/editions/mws-docs/tiddlers/HTTP API.md.meta +1 -1
  25. package/editions/mws-docs/tiddlers/HelloThere.tid +2 -2
  26. package/editions/mws-docs/tiddlers/Installation.tid +2 -3
  27. package/editions/mws-docs/tiddlers/MWS Architecture.tid +6 -1
  28. package/editions/mws-docs/tiddlers/Multi-user Trust.md +12 -0
  29. package/editions/mws-docs/tiddlers/Multi-user Trust.md.meta +5 -0
  30. package/editions/mws-docs/tiddlers/Notes.tid +5 -3
  31. package/editions/mws-docs/tiddlers/Oracle Attacks.md +29 -0
  32. package/editions/mws-docs/tiddlers/Oracle Attacks.md.meta +5 -0
  33. package/editions/mws-docs/tiddlers/Reference.md +1 -0
  34. package/editions/mws-docs/tiddlers/Reference.md.meta +1 -1
  35. package/editions/mws-docs/tiddlers/Request Handling.md +53 -0
  36. package/editions/mws-docs/tiddlers/Request Handling.md.meta +5 -0
  37. package/editions/mws-docs/tiddlers/Roadmap.tid +7 -0
  38. package/editions/mws-docs/tiddlers/Route Definers.md +206 -0
  39. package/editions/mws-docs/tiddlers/Route Definers.md.meta +5 -0
  40. package/editions/mws-docs/tiddlers/Security.md +75 -0
  41. package/editions/mws-docs/tiddlers/Security.md.meta +5 -0
  42. package/editions/mws-docs/tiddlers/Server Plugins.md +7 -0
  43. package/editions/mws-docs/tiddlers/Server Plugins.md.meta +5 -0
  44. package/editions/mws-docs/tiddlers/Startup Cache.md +28 -0
  45. package/editions/mws-docs/tiddlers/Startup Cache.md.meta +5 -0
  46. package/editions/mws-docs/tiddlers/TiddlerFields.md +5 -0
  47. package/editions/mws-docs/tiddlers/TiddlerFields.md.meta +4 -0
  48. package/editions/mws-docs/tiddlers/Usage.tid +2 -2
  49. package/editions/mws-docs/tiddlers/system/$__mws_cssvar-macro.tid +10 -0
  50. package/editions/mws-docs/tiddlers/system/$__palettes_MUI +143 -0
  51. package/editions/mws-docs/tiddlers/system/$__palettes_MUI.meta +7 -0
  52. package/editions/mws-docs/tiddlers/system/$__palettes_MUI_styles.css +567 -0
  53. package/editions/mws-docs/tiddlers/system/$__palettes_MUI_styles.css.meta +6 -0
  54. package/editions/mws-docs/tiddlers/system/$__theme.tid +6 -0
  55. package/editions/mws-docs/tiddlers/system/SplashScreen.tid +21 -0
  56. package/editions/mws-docs/tiddlers/system/StaticBanner.tid +1 -1
  57. package/editions/mws-docs/tiddlers/system/Styles.tid +13 -0
  58. package/editions/mws-docs/tiddlers/system/palette.tid +4 -1
  59. package/editions/mws-docs/tiddlers/system/sidebarlayout.tid +4 -1
  60. package/editions/mws-docs/tiddlers/x-mws-tiddler.md +35 -0
  61. package/editions/mws-docs/tiddlers/x-mws-tiddler.md.meta +5 -0
  62. package/mws.run.mjs +30 -0
  63. package/package.json +47 -36
  64. package/plugins/client/package-lock.json +46 -83
  65. package/plugins/client/package.json +1 -6
  66. package/plugins/client/plugin.info +2 -2
  67. package/plugins/client/src/fflate.d.ts +1501 -0
  68. package/plugins/client/src/multiwikiclientadaptor.ts +768 -317
  69. package/plugins/client/src/mws.d.ts +4 -0
  70. package/plugins/client/src/types.d.ts +3928 -0
  71. package/plugins/client/tiddlers/en-US.multids +3 -0
  72. package/plugins/client/tiddlers/status/SaveWikiButtonTemplate.tid +3 -0
  73. package/plugins/client/tiddlers/status/icon-cloud.tid +4 -0
  74. package/plugins/client/tiddlers/status/info-segment.tid +8 -0
  75. package/plugins/client/tiddlers/status/readonly-styles.tid +27 -0
  76. package/plugins/client/tiddlers/status/save-offline.tid +7 -0
  77. package/plugins/client/tiddlers/status/save-wiki-button.tid +26 -0
  78. package/plugins/client/tiddlers/status/styles.tid +44 -0
  79. package/plugins/client/tiddlers/status/syncer-actions-copy-logs.tid +6 -0
  80. package/plugins/client/tiddlers/status/syncer-actions-login-status.tid +9 -0
  81. package/plugins/client/tiddlers/status/syncer-actions-login.tid +8 -0
  82. package/plugins/client/tiddlers/status/syncer-actions-logout.tid +8 -0
  83. package/plugins/client/tiddlers/status/syncer-actions-refresh.tid +9 -0
  84. package/plugins/client/tiddlers/status/syncer-actions-save-snapshot.tid +9 -0
  85. package/plugins/client/tiddlers/status/tags-syncerdropdown.tid +2 -0
  86. package/plugins/client/tiddlers/syncer/multiwikiclientadaptor.js +640 -0
  87. package/plugins/client/tiddlers/syncer/syncer.js +831 -0
  88. package/plugins/client/tsconfig.json +19 -16
  89. package/plugins/filter-ast-to-sql/example-run-series.ts +146 -0
  90. package/plugins/server/SplashScreen.tid +150 -0
  91. package/plugins/server/fflate.js +9 -0
  92. package/plugins/server/plugin.info +8 -0
  93. package/plugins/server/readme +1 -0
  94. package/plugins/server/url-polyfill.js +294 -0
  95. package/prisma/client/client.d.ts +1 -0
  96. package/prisma/client/client.js +3 -0
  97. package/prisma/client/default.d.ts +1 -0
  98. package/prisma/client/default.js +3 -0
  99. package/prisma/client/edge.d.ts +1 -0
  100. package/prisma/client/edge.js +297 -0
  101. package/prisma/client/index-browser.js +275 -0
  102. package/prisma/client/index.d.ts +17770 -0
  103. package/prisma/client/index.js +324 -0
  104. package/prisma/client/package.json +173 -0
  105. package/prisma/client/query_engine_bg.js +811 -0
  106. package/prisma/client/query_engine_bg.wasm +0 -0
  107. package/prisma/client/runtime/edge-esm.js +10000 -0
  108. package/prisma/client/runtime/edge.js +10036 -0
  109. package/prisma/client/runtime/index-browser.d.ts +370 -0
  110. package/prisma/client/runtime/index-browser.js +2300 -0
  111. package/prisma/client/runtime/library.d.ts +3681 -0
  112. package/prisma/client/runtime/library.js +10604 -0
  113. package/prisma/client/runtime/react-native.js +10629 -0
  114. package/prisma/client/runtime/wasm-compiler-edge.js +11238 -0
  115. package/prisma/client/runtime/wasm-engine-edge.js +7801 -0
  116. package/prisma/client/schema.prisma +156 -0
  117. package/prisma/client/wasm-edge-light-loader.mjs +4 -0
  118. package/prisma/client/wasm-worker-loader.mjs +4 -0
  119. package/prisma/client/wasm.d.ts +1 -0
  120. package/prisma/client/wasm.js +304 -0
  121. package/prisma/global.ts +53 -0
  122. package/prisma/migrations/{20250406213424_init → 20250606001949_init}/migration.sql +46 -48
  123. package/prisma/migrations/20250613000526_remove_group/migration.sql +22 -0
  124. package/prisma/migrations/20250620014502_settings/migration.sql +5 -0
  125. package/prisma/migrations/20250707205229_recipes/migration.sql +20 -0
  126. package/prisma/migrations/migration_lock.toml +1 -1
  127. package/prisma/notes.md +1 -2
  128. package/prisma/schema.prisma +52 -49
  129. package/prisma/test.sqlite +0 -0
  130. package/prisma/test.sqlite-journal +0 -0
  131. package/public/react-admin/android-chrome-192x192.png +0 -0
  132. package/public/react-admin/android-chrome-512x512.png +0 -0
  133. package/public/react-admin/apple-touch-icon.png +0 -0
  134. package/{react-user-mgmt/public/esm-QKDFEP3B.js → public/react-admin/esm-L4WLVWJN.js} +1 -1
  135. package/public/react-admin/esm-L4WLVWJN.js.map +7 -0
  136. package/public/react-admin/esm-QMNGI3LF.js +3 -0
  137. package/public/react-admin/favicon-16x16.png +0 -0
  138. package/public/react-admin/favicon-32x32.png +0 -0
  139. package/public/react-admin/favicon.ico +0 -0
  140. package/public/react-admin/index.html +36 -0
  141. package/public/react-admin/main.js +268 -0
  142. package/public/react-admin/main.js.map +7 -0
  143. package/public/react-admin/site.webmanifest +20 -0
  144. package/public/react-admin/stats.json +1 -0
  145. package/scripts.mjs +134 -25
  146. package/dist/server.d.ts +0 -945
  147. package/dist/server.js +0 -20775
  148. package/dist/server.js.map +0 -1
  149. package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md +0 -64
  150. package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md.meta +0 -5
  151. package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md +0 -18
  152. package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md.meta +0 -5
  153. package/editions/mws-docs/tiddlers/2025-05-04.md.meta +0 -5
  154. package/editions/mws-docs/tiddlers/2025-05-06.md.meta +0 -5
  155. package/editions/mws-docs/tiddlers/Moduler Design.md +0 -29
  156. package/editions/mws-docs/tiddlers/Moduler Design.md.meta +0 -5
  157. package/editions/mws-docs/tiddlers/Request Server.md +0 -20
  158. package/editions/mws-docs/tiddlers/Request Server.md.meta +0 -5
  159. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark +0 -173
  160. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark.meta +0 -6
  161. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light +0 -172
  162. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light.meta +0 -6
  163. package/plugins/client/tiddlers/config-tiddlers-filter.tid +0 -2
  164. package/plugins/client/tiddlers/config-use-server-sent-events.tid +0 -2
  165. package/plugins/client/tiddlers/info-segment.tid +0 -8
  166. package/plugins/client/tiddlers/multiwikiclientadaptor.js +0 -444
  167. package/prisma/migrations/20250407002306_disconnect_user_tables/migration.sql +0 -52
  168. package/prisma/old-db.sql +0 -144
  169. package/react-user-mgmt/README.md +0 -50
  170. package/react-user-mgmt/eslint.config.js +0 -28
  171. package/react-user-mgmt/package-lock.json +0 -2738
  172. package/react-user-mgmt/package.json +0 -31
  173. package/react-user-mgmt/public/index.html +0 -1
  174. package/react-user-mgmt/public/main.js +0 -295
  175. package/react-user-mgmt/public/main.js.map +0 -7
  176. package/react-user-mgmt/public/stats.json +0 -1
  177. package/react-user-mgmt/tsconfig.json +0 -40
  178. package/react-user-mgmt/types.d.ts +0 -2
  179. package/tiddlywiki-types/boot/boot.d.ts +0 -378
  180. package/tiddlywiki-types/boot/bootprefix.d.ts +0 -110
  181. package/tiddlywiki-types/core/modules/filters.d.ts +0 -107
  182. package/tiddlywiki-types/core/modules/tiddler.d.ts +0 -47
  183. package/tiddlywiki-types/core/modules/wiki-bulkops.d.ts +0 -36
  184. package/tiddlywiki-types/core/modules/wiki.d.ts +0 -208
  185. package/tiddlywiki-types/index.d.ts +0 -7
  186. package/tiddlywiki-types/package.json +0 -3
  187. /package/plugins/client/tiddlers/{sidebarsegment.tid → status/sidebarsegment.tid} +0 -0
  188. /package/plugins/client/tiddlers/{GettingStarted.tid → syncer/GettingStarted.tid} +0 -0
  189. /package/plugins/client/tiddlers/{config-incoming-updates-filter.tid → syncer/config-incoming-updates-filter.tid} +0 -0
  190. /package/plugins/client/tiddlers/{readme.tid → syncer/readme.tid} +0 -0
  191. /package/{react-user-mgmt/public → public/react-admin}/chunk-YALWN5OT.js +0 -0
  192. /package/{react-user-mgmt/public → public/react-admin}/chunk-YALWN5OT.js.map +0 -0
  193. /package/{react-user-mgmt/public/esm-QKDFEP3B.js.map → public/react-admin/esm-QMNGI3LF.js.map} +0 -0
  194. /package/{react-user-mgmt/public → public/react-admin}/favicon.png +0 -0
  195. /package/{react-user-mgmt/public → public/react-admin}/missing-favicon.png +0 -0
  196. /package/{react-user-mgmt/public → public/react-admin}/motovun-jack.jpg +0 -0
  197. /package/{react-user-mgmt/public → public/react-admin}/mws-icon.png +0 -0
  198. /package/{react-user-mgmt/public → public/react-admin}/stats.css +0 -0
  199. /package/{react-user-mgmt/public → public/react-admin}/stats.html +0 -0
  200. /package/{react-user-mgmt/public → public/react-admin}/stats.js +0 -0
  201. /package/{react-user-mgmt/public → public/react-admin}/stats.svg +0 -0
  202. /package/{react-user-mgmt/public → public/react-admin}/vite.svg +0 -0
@@ -0,0 +1,567 @@
1
+ /*\
2
+ created: 20250513234032612
3
+ modified: 20250514012443594
4
+ tags: $:/tags/Stylesheet
5
+ title: $:/palettes/MUI/styles
6
+ description: Colors reflecting the MWS admin UI, responsive to system settings.
7
+ type: text/css
8
+
9
+ \*/
10
+ /* ======================================================================== */
11
+ /* Material‑inspired CSS Custom Properties */
12
+ /* ------------------------------------------------------------------------ */
13
+ /* This file provides light‑mode defaults on :root and dark‑mode overrides */
14
+ /* inside @media (prefers-color-scheme: dark). */
15
+ /* Colors come from the default MUI v5 palette (blue, purple, red, orange, */
16
+ /* lightBlue, green, grey) plus sensible tweaks for contrast. */
17
+ /* ======================================================================== */
18
+
19
+ :root {
20
+ /* --------------------------------------------------------------------- */
21
+ /* Palette primitives (light mode) */
22
+ /* --------------------------------------------------------------------- */
23
+ --color-primary-light: #42a5f5;
24
+ /* blue 400 */
25
+ --color-primary: #1976d2;
26
+ /* blue 700 */
27
+ --color-primary-dark: #1565c0;
28
+ /* blue 800 */
29
+ --color-primary-background: #bbdefb;
30
+ /* blue 100 */
31
+
32
+ /* --color-secondary-light: #ba68c8; */
33
+ --color-secondary-light: var(--color-mws-300);
34
+ --color-secondary: var(--color-mws-500);
35
+ --color-secondary-dark: var(--color-mws-700);
36
+ --color-secondary-background: var(--color-mws-100);
37
+ --color-secondary-foreground: var(--color-mws-800);
38
+ /* purple 300 */
39
+ /* --color-secondary: #9c27b0; */
40
+ /* purple 500 */
41
+ /* --color-secondary-dark: #7b1fa2; */
42
+ /* purple 700 */
43
+ /* --color-secondary-background: #e1bee7; */
44
+ /* purple 100 */
45
+
46
+ /* function getDefaultSecondary(mode = 'light') {
47
+ if (mode === 'dark') {
48
+ return {
49
+ main: purple[200],
50
+ light: purple[50],
51
+ dark: purple[400]
52
+ };
53
+ }
54
+ return {
55
+ main: purple[500],
56
+ light: purple[300],
57
+ dark: purple[700]
58
+ };
59
+ } */
60
+
61
+ --color-inline-highlight: #fff59d;
62
+ /* yellow 300 */
63
+
64
+ --color-error-50: #ffebee;
65
+ /* error 50 */
66
+ --color-error-light: #ef5350;
67
+ /* red 400 */
68
+ --color-error: #d32f2f;
69
+ /* red 700 */
70
+ --color-error-dark: #c62828;
71
+ /* red 800 */
72
+
73
+ --color-warning-50: #fff8e1;
74
+ /* warning 50 */
75
+ --color-warning-light: #ffb74d;
76
+ /* orange 300 */
77
+ --color-warning: #ed6c02;
78
+ /* orange ~800 */
79
+ --color-warning-dark: #e65100;
80
+ /* orange 900 */
81
+
82
+ --color-info-50: #e3f2fd;
83
+ /* info 50 */
84
+ --color-info-light: #4fc3f7;
85
+ /* lightBlue 300 */
86
+ --color-info: #0288d1;
87
+ /* lightBlue 700 */
88
+ --color-info-dark: #01579b;
89
+ /* lightBlue 900 */
90
+
91
+
92
+ --color-success-50: #e8f5e9;
93
+ /* success 50 */
94
+ --color-success-light: #81c784;
95
+ /* green 300 */
96
+ --color-success: #2e7d32;
97
+ /* green 800 */
98
+ --color-success-dark: #1b5e20;
99
+ /* green 900 */
100
+
101
+
102
+
103
+
104
+
105
+ --color-grey-0: #ffffff;
106
+ --color-grey-50: #fafafa;
107
+ --color-grey-100: #f5f5f5;
108
+ --color-grey-200: #eeeeee;
109
+ --color-grey-300: #e0e0e0;
110
+ --color-grey-400: #bdbdbd;
111
+ --color-grey-500: #9e9e9e;
112
+ --color-grey-600: #757575;
113
+ --color-grey-700: #616161;
114
+ --color-grey-800: #424242;
115
+ --color-grey-900: #212121;
116
+
117
+ /*
118
+
119
+ The MWS color scheme was extracted from the page background.
120
+
121
+ hsl(322deg 29% 50% / 20%); over black is #21121b - the dark background
122
+ hsl(322deg 29% 50% / 20%); over white is #eddee7 - the light background
123
+ hsl(322deg 29% 50% / 100%); is #a45b89
124
+
125
+ This was entered into https://m2.material.io/inline-tools/color/
126
+
127
+ From there it is then used as the secondary color,
128
+ using the same pattern as the primary color.
129
+
130
+ */
131
+
132
+ --color-mws-50: #f2e6ed;
133
+ --color-mws-100: #e0c1d4;
134
+ --color-mws-200: #cc9ab9;
135
+ --color-mws-300: #b5759d;
136
+ --color-mws-400: #a45b89;
137
+ --color-mws-500: #934778;
138
+ --color-mws-600: #884172;
139
+ --color-mws-700: #793a69;
140
+ --color-mws-800: #6a345f;
141
+ --color-mws-900: #542851;
142
+
143
+ --page-background: #eddee7;
144
+
145
+ /* --------------------------------------------------------------------- */
146
+ /* Typography */
147
+ /* --------------------------------------------------------------------- */
148
+ --foreground: var(--color-grey-900);
149
+ /* text.primary */
150
+ --muted-foreground: var(--color-grey-700);
151
+ /* text.secondary */
152
+ --very-muted-foreground: var(--color-grey-500);
153
+ /* text.disabled */
154
+
155
+ /* --------------------------------------------------------------------- */
156
+ /* Core surfaces */
157
+ /* --------------------------------------------------------------------- */
158
+ --background: var(--color-grey-50);
159
+ /* background.default */
160
+
161
+
162
+ /* --------------------------------------------------------------------- */
163
+ /* Alerts & Warnings */
164
+ /* --------------------------------------------------------------------- */
165
+ --alert-background: var(--color-warning-50);
166
+ /* warning 50 */
167
+ --alert-border: var(--color-warning-light);
168
+ /* subtle outline */
169
+ --alert-highlight: var(--color-warning);
170
+ /* main accent */
171
+ --alert-muted-foreground: var(--muted-foreground);
172
+
173
+ /* --------------------------------------------------------------------- */
174
+ /* Primary accent */
175
+ /* --------------------------------------------------------------------- */
176
+ --primary: var(--color-primary);
177
+
178
+ /* --------------------------------------------------------------------- */
179
+ /* Blockquotes */
180
+ /* --------------------------------------------------------------------- */
181
+ --blockquote-bar: var(--color-primary-light);
182
+
183
+ /* --------------------------------------------------------------------- */
184
+ /* Buttons */
185
+ /* --------------------------------------------------------------------- */
186
+ --button-background: var(--background);
187
+ --button-foreground: var(--foreground);
188
+ /* contrastText on primary */
189
+ --button-border: var(--very-muted-foreground);
190
+
191
+ /* --------------------------------------------------------------------- */
192
+ /* Code & Pre */
193
+ /* --------------------------------------------------------------------- */
194
+ --code-background: var(--color-grey-100);
195
+ --code-border: var(--color-grey-300);
196
+ --code-foreground: var(--foreground);
197
+ --pre-background: var(--code-background);
198
+ --pre-border: var(--code-border);
199
+
200
+ /* --------------------------------------------------------------------- */
201
+ /* Diff highlighting */
202
+ /* --------------------------------------------------------------------- */
203
+ --diff-delete-background: var(--color-error-50);
204
+ --diff-delete-foreground: var(--color-error-dark);
205
+ --diff-equal-background: var(--color-warning-50);
206
+ --diff-equal-foreground: var(--color-warning-dark);
207
+ --diff-insert-background: var(--color-success-50);
208
+ --diff-insert-foreground: var(--color-success-dark);
209
+ --diff-invisible-background: transparent;
210
+ --diff-invisible-foreground: var(--very-muted-foreground);
211
+
212
+ /* --------------------------------------------------------------------- */
213
+ /* Drag & Drop */
214
+ /* --------------------------------------------------------------------- */
215
+ --dragger-background: var(--color-grey-200);
216
+ --dragger-foreground: var(--color-grey-700);
217
+ --dirty-indicator: var(--color-warning);
218
+
219
+ /* --------------------------------------------------------------------- */
220
+ /* Download / Upload progress */
221
+ /* --------------------------------------------------------------------- */
222
+ --download-background: var(--color-primary-light);
223
+ --download-foreground: var(--color-grey-0);
224
+
225
+ /* --------------------------------------------------------------------- */
226
+ /* Dropdowns */
227
+ /* --------------------------------------------------------------------- */
228
+ --dropdown-background: var(--background);
229
+ --dropdown-border: var(--color-grey-300);
230
+ --dropdown-tab-background-selected: var(--color-primary-light);
231
+ --dropdown-tab-background: var(--color-grey-100);
232
+
233
+ /* --------------------------------------------------------------------- */
234
+ /* Drop‑zone */
235
+ /* --------------------------------------------------------------------- */
236
+ --dropzone-background: var(--color-info-light);
237
+
238
+ /* --------------------------------------------------------------------- */
239
+ /* External links */
240
+ /* --------------------------------------------------------------------- */
241
+ --external-link-background: transparent;
242
+ --external-link-foreground: var(--primary);
243
+ --external-link-background-hover: var(--color-primary-light);
244
+ --external-link-foreground-hover: var(--color-grey-0);
245
+ --external-link-background-visited: transparent;
246
+ --external-link-foreground-visited: var(--color-secondary-dark);
247
+
248
+ /* --------------------------------------------------------------------- */
249
+ /* Footnotes */
250
+ /* --------------------------------------------------------------------- */
251
+ --footnote-target-background: var(--color-info-light);
252
+
253
+ /* --------------------------------------------------------------------- */
254
+ /* Inline highlight */
255
+ /* --------------------------------------------------------------------- */
256
+ --highlight-background: var(--color-inline-highlight);
257
+ --highlight-foreground: var(--color-grey-900);
258
+
259
+ /* --------------------------------------------------------------------- */
260
+ /* Messages (info) */
261
+ /* --------------------------------------------------------------------- */
262
+ --message-background: var(--color-info-50);
263
+ --message-border: var(--color-info-light);
264
+ --message-foreground: var(--color-info);
265
+
266
+ /* --------------------------------------------------------------------- */
267
+ /* Modals */
268
+ /* --------------------------------------------------------------------- */
269
+ --modal-backdrop: rgba(0, 0, 0, 0.32);
270
+ --modal-background: var(--background);
271
+ --modal-border: var(--color-grey-300);
272
+ --modal-footer-background: var(--color-grey-100);
273
+ --modal-footer-border: var(--modal-border);
274
+ --modal-header-border: var(--modal-border);
275
+
276
+ /* --------------------------------------------------------------------- */
277
+ /* Network Activity spinner / bar */
278
+ /* --------------------------------------------------------------------- */
279
+ --network-activity-foreground: var(--color-success);
280
+
281
+ /* --------------------------------------------------------------------- */
282
+ /* Notifications (secondary accent) */
283
+ /* --------------------------------------------------------------------- */
284
+ --notification-background: var(--color-secondary-background);
285
+ --notification-border: var(--color-secondary-light);
286
+
287
+ /* --------------------------------------------------------------------- */
288
+ /* Selection */
289
+ /* --------------------------------------------------------------------- */
290
+
291
+ --selection-background: var(--color-primary-background);
292
+ --selection-foreground: var(--foreground);
293
+
294
+ /* --------------------------------------------------------------------- */
295
+ /* <select> tags */
296
+ /* --------------------------------------------------------------------- */
297
+ --select-tag-background: var(--background);
298
+ --select-tag-foreground: var(--foreground);
299
+
300
+ /* --------------------------------------------------------------------- */
301
+ /* Sidebar */
302
+ /* --------------------------------------------------------------------- */
303
+ --sidebar-button-foreground: var(--button-foreground);
304
+ --sidebar-controls-foreground: var(--muted-foreground);
305
+ --sidebar-controls-foreground-hover: var(--foreground);
306
+ --sidebar-foreground-shadow: rgba(0, 0, 0, 0.08);
307
+ --sidebar-foreground: var(--muted-foreground);
308
+ --sidebar-muted-foreground-hover: var(--foreground);
309
+ --sidebar-muted-foreground: var(--muted-foreground);
310
+ --sidebar-tab-background-selected: var(--background);
311
+ --sidebar-tab-background: var(--color-grey-100);
312
+ --sidebar-tab-border-selected: var(--color-primary);
313
+ --sidebar-tab-border: var(--color-grey-300);
314
+ --sidebar-tab-divider: var(--sidebar-tab-border);
315
+ --sidebar-tab-foreground-selected: var(--primary);
316
+ --sidebar-tab-foreground: var(--muted-foreground);
317
+ --sidebar-tiddler-link-foreground-hover: var(--primary);
318
+ --sidebar-tiddler-link-foreground: var(--muted-foreground);
319
+
320
+ /* --------------------------------------------------------------------- */
321
+ /* Site title */
322
+ /* --------------------------------------------------------------------- */
323
+ --site-title-foreground: var(--tiddler-title-foreground);
324
+
325
+ /* --------------------------------------------------------------------- */
326
+ /* Stability badges */
327
+ /* --------------------------------------------------------------------- */
328
+ --stability-stable: var(--color-success);
329
+ --stability-experimental: var(--color-warning);
330
+ --stability-deprecated: var(--color-error);
331
+ --stability-legacy: var(--color-grey-500);
332
+
333
+ /* --------------------------------------------------------------------- */
334
+ /* Static alert icon / text (inherits alert palette) */
335
+ /* --------------------------------------------------------------------- */
336
+ --static-alert-foreground: var(--alert-highlight);
337
+
338
+ /* --------------------------------------------------------------------- */
339
+ /* Tabs */
340
+ /* --------------------------------------------------------------------- */
341
+ --tab-background-selected: var(--background);
342
+ --tab-background: var(--color-grey-100);
343
+ --tab-border-selected: var(--color-primary);
344
+ --tab-border: var(--color-grey-300);
345
+ --tab-divider: var(--tab-border);
346
+ --tab-foreground-selected: var(--primary);
347
+ --tab-foreground: var(--muted-foreground);
348
+
349
+ /* --------------------------------------------------------------------- */
350
+ /* Tables */
351
+ /* --------------------------------------------------------------------- */
352
+ --table-border: var(--color-grey-300);
353
+ --table-footer-background: var(--color-grey-100);
354
+ --table-header-background: var(--color-grey-100);
355
+
356
+ /* --------------------------------------------------------------------- */
357
+ /* Tags */
358
+ /* --------------------------------------------------------------------- */
359
+ --tag-background: var(--color-grey-200);
360
+ --tag-foreground: var(--foreground);
361
+
362
+ /* --------------------------------------------------------------------- */
363
+ /* Testcase accent ramp (primary hue) */
364
+ /* --------------------------------------------------------------------- */
365
+ --testcase-accent-level-1: var(--color-primary-light);
366
+ --testcase-accent-level-2: var(--color-primary);
367
+ --testcase-accent-level-3: var(--color-primary-dark);
368
+
369
+ /* --------------------------------------------------------------------- */
370
+ /* Tiddlers */
371
+ /* --------------------------------------------------------------------- */
372
+ --tiddler-background: var(--background);
373
+ --tiddler-border: var(--color-grey-300);
374
+ --tiddler-controls-foreground: var(--muted-foreground);
375
+ --tiddler-controls-foreground-hover: var(--primary);
376
+ --tiddler-controls-foreground-selected: var(--primary);
377
+ --tiddler-editor-background: var(--color-grey-100);
378
+ --tiddler-editor-border-image: none;
379
+ --tiddler-editor-border: var(--color-grey-300);
380
+ --tiddler-editor-fields-even: var(--color-grey-100);
381
+ --tiddler-editor-fields-odd: var(--background);
382
+ --tiddler-info-background: var(--color-grey-50);
383
+ --tiddler-info-border: var(--color-grey-300);
384
+ --tiddler-info-tab-background: var(--color-grey-100);
385
+ --tiddler-link-background: var(--background);
386
+ --tiddler-link-foreground: var(--primary);
387
+ --tiddler-subtitle-foreground: var(--muted-foreground);
388
+ --tiddler-title-foreground: var(--color-secondary-foreground);
389
+
390
+ /* --------------------------------------------------------------------- */
391
+ /* Toolbar actions */
392
+ /* --------------------------------------------------------------------- */
393
+
394
+ --toolbar-new-button: var(--color-primary);
395
+ --toolbar-options-button: var(--color-primary);
396
+ --toolbar-save-button: var(--color-success);
397
+ --toolbar-info-button: var(--color-primary);
398
+ --toolbar-edit-button: var(--color-warning);
399
+ --toolbar-close-button: var(--color-error);
400
+ --toolbar-delete-button: var(--color-error);
401
+ --toolbar-cancel-button: var(--color-warning);
402
+ --toolbar-done-button: var(--color-success);
403
+
404
+ /* --------------------------------------------------------------------- */
405
+ /* Misc */
406
+ /* --------------------------------------------------------------------- */
407
+ --untagged-background: var(--color-grey-50);
408
+
409
+ /* --------------------------------------------------------------------- */
410
+ /* Wiki list */
411
+ /* --------------------------------------------------------------------- */
412
+ --wikilist-background: var(--background);
413
+ --wikilist-item: var(--color-grey-50);
414
+ --wikilist-info: var(--muted-foreground);
415
+ --wikilist-title: var(--foreground);
416
+ --wikilist-title-svg: var(--primary);
417
+ --wikilist-url: var(--color-secondary);
418
+ --wikilist-button-open: var(--color-primary);
419
+ --wikilist-button-open-hover: var(--color-primary-dark);
420
+ --wikilist-button-reveal: var(--color-info);
421
+ --wikilist-button-reveal-hover: var(--color-info-dark);
422
+ --wikilist-button-remove: var(--color-error);
423
+ --wikilist-button-remove-hover: var(--color-error-dark);
424
+ --wikilist-toolbar-background: var(--color-grey-100);
425
+ --wikilist-toolbar-foreground: var(--foreground);
426
+ --wikilist-droplink-dragover: var(--color-primary-light);
427
+ --wikilist-button-background: var(--color-grey-100);
428
+ --wikilist-button-foreground: var(--primary);
429
+ }
430
+
431
+ /* ======================================================================== */
432
+ /* Dark‑mode overrides */
433
+ /* ======================================================================== */
434
+ @media (prefers-color-scheme: dark) {
435
+ :root {
436
+
437
+ /* Palette primitives (dark) */
438
+ --color-primary-light: #e3f2fd;
439
+ /* blue 50 */
440
+ --color-primary: #90caf9;
441
+ /* blue 200 */
442
+ --color-primary-dark: #42a5f5;
443
+ /* blue 400 */
444
+ --color-primary-background: #0d47a1;
445
+ /* blue 900 */
446
+
447
+ --color-secondary-light: var(--color-mws-50);
448
+ --color-secondary: var(--color-mws-200);
449
+ --color-secondary-dark: var(--color-mws-400);
450
+ --color-secondary-background: var(--color-mws-900);
451
+ --color-secondary-foreground: var(--color-mws-200);
452
+
453
+
454
+ --color-error-50: hsl(355, 6.70%, 32.40%);
455
+ /* error 50 */
456
+ --color-error-light: #ef9a9a;
457
+ /* red 300 */
458
+ --color-error: #f44336;
459
+ /* red 500 */
460
+ --color-error-dark: #e57373;
461
+ /* red 400 */
462
+
463
+ --color-warning-50: hsl(46, 6.70%, 32.40%);
464
+ /* warning 50 */
465
+ --color-warning-light: #ffcc80;
466
+ /* orange 300 */
467
+ --color-warning: #ffa000;
468
+ /* orange 700 */
469
+ --color-warning-dark: #ff8f00;
470
+ /* orange 800 */
471
+
472
+ --color-info-50: hsl(205, 6.70%, 32.40%);
473
+ /* info 50 */
474
+ --color-info-light: #4fc3f7;
475
+ /* lightBlue 300 */
476
+ --color-info: #29b6f6;
477
+ /* lightBlue 400 */
478
+ --color-info-dark: #0288d1;
479
+ /* lightBlue 700 */
480
+
481
+ --color-success-50: hsl(125, 6.70%, 32.40%);
482
+ /* success 50 */
483
+ --color-success-light: #66bb6a;
484
+ /* green 400 */
485
+ --color-success: #4caf50;
486
+ /* green 500 */
487
+ --color-success-dark: #43a047;
488
+ /* green 600 */
489
+
490
+
491
+
492
+ /* Greys flip for dark surfaces */
493
+ --color-grey-0: #000000;
494
+ --color-grey-50: #131313;
495
+ --color-grey-100: #212121;
496
+ --color-grey-200: #2f2f2f;
497
+ --color-grey-300: #424242;
498
+ --color-grey-400: #616161;
499
+ --color-grey-500: #757575;
500
+ --color-grey-600: #9e9e9e;
501
+ --color-grey-700: #bdbdbd;
502
+ --color-grey-800: #e0e0e0;
503
+ --color-grey-900: #eeeeee;
504
+
505
+
506
+ --page-background: #21121b;
507
+
508
+ --color-inline-highlight: hsl(53, 25.80%, 25.90%);
509
+ /* yellow 300 */
510
+
511
+ }
512
+ }
513
+
514
+ .tc-page-controls svg.tc-image-new-markdown-button {
515
+ fill: var(--toolbar-new-button);
516
+ }
517
+
518
+ .tc-improvement-banner {
519
+ background: var(--color-secondary-background);
520
+ }
521
+
522
+ .tc-editor-toolbar button {
523
+ background-color: var(--color-primary-background);
524
+ color: var(--button-forground);
525
+ fill: var(--button-forground);
526
+ }
527
+
528
+ html button {
529
+ border-style: solid;
530
+ border-width: thin;
531
+ border-radius: 4px;
532
+ padding-inline: 10px;
533
+ padding-block: 4px;
534
+ }
535
+
536
+ .tc-more-sidebar>.tc-tab-set>.tc-tab-buttons>button.tc-tab-selected {
537
+ background-color: var(--sidebar-tab-background-selected);
538
+ border-color: var(--sidebar-tab-border-selected);
539
+ border-style: solid;
540
+ border-width: thin;
541
+ appearance: none;
542
+ }
543
+
544
+
545
+ .tc-btn-boxed {
546
+ border: 1px solid var(--tiddler-controls-foreground);
547
+ }
548
+
549
+
550
+ .tc-btn-boxed:hover {
551
+ background: var(--muted-foreground);
552
+ color: var(--background);
553
+ }
554
+
555
+ html body.tc-body .tc-btn-boxed:hover svg {
556
+ fill: var(--background);
557
+ }
558
+
559
+ .tc-btn-rounded {
560
+ border: 1px solid var(--muted-foreground);
561
+ background: var(--muted-foreground);
562
+ color: var(--background);
563
+ }
564
+
565
+ html body.tc-body .tc-btn-rounded svg {
566
+ fill: var(--background);
567
+ }
@@ -0,0 +1,6 @@
1
+ created: 20250513234032612
2
+ description: Colors reflecting the MWS admin UI, responsive to system settings.
3
+ modified: 20250613012927316
4
+ tags: $:/tags/Stylesheet
5
+ title: $:/palettes/MUI/styles
6
+ type: text/css
@@ -0,0 +1,6 @@
1
+ created: 20250519230150889
2
+ modified: 20250519230151772
3
+ title: $:/theme
4
+ type: text/vnd.tiddlywiki
5
+
6
+ $:/themes/tiddlywiki/vanilla
@@ -31,6 +31,27 @@ type: text/vnd.tiddlywiki
31
31
  <<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
32
32
  }
33
33
 
34
+
35
+
36
+ @media(prefers-color-scheme:dark){
37
+ :root {
38
+ --page-background: #21121b;
39
+ color: white;
40
+ fill: white;
41
+ }
42
+ a {
43
+ color: #42a5f5;
44
+ }
45
+ }
46
+
47
+ @media(prefers-color-scheme:light){
48
+ :root {
49
+ --page-background: #eddee7;
50
+ color: black;
51
+ fill: black;
52
+ }
53
+ }
54
+
34
55
  html body.tc-body {
35
56
  background: <<colour page-background>>;
36
57
  }
@@ -1,3 +1,3 @@
1
1
  title: $:/StaticBanner
2
2
 
3
- <div class="tc-static-alert"><div class="tc-static-alert-inner">This page is part of a static HTML representation of the ~TiddlyWiki at https://tiddlywiki.com/</div></div>
3
+ <div class="tc-static-alert"><div class="tc-static-alert-inner">This page is part of a static HTML representation of the ~TiddlyWiki at https://mws.tiddlywiki.com/</div></div>
@@ -1,3 +1,5 @@
1
+ created: 20250601101245187
2
+ modified: 20250601101642862
1
3
  tags: $:/tags/Stylesheet
2
4
  title: $:/_styles
3
5
  type: text/vnd.tiddlywiki
@@ -47,3 +49,14 @@ type: text/vnd.tiddlywiki
47
49
  width: 1em;
48
50
  height: 1em;
49
51
  }
52
+
53
+ @media (min-width:1562px) {
54
+ .tc-sidebar-scrollable {
55
+ left: 50%;
56
+ }
57
+ .tc-story-river {
58
+ left: 50%;
59
+ margin-left: -770px;
60
+ }
61
+ }
62
+
@@ -1,3 +1,6 @@
1
+ created: 20250513215914868
2
+ modified: 20250520023735125
1
3
  title: $:/palette
4
+ type: text/vnd.tiddlywiki
2
5
 
3
- $:/palettes/MWS
6
+ $:/palettes/MUI
@@ -1,3 +1,6 @@
1
+ created: 20250601100934606
2
+ modified: 20250601100934606
1
3
  title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout
4
+ type: text/vnd.tiddlywiki
2
5
 
3
- fluid-fixed
6
+ fixed-fluid
@@ -0,0 +1,35 @@
1
+ The .tid file format does not support field names with colons. Rather than trying to catch all the unsupported variations that may appear, we'll just use JSON to send it across the wire, since that is the official fallback format in TW5. However, parsing a huge string value inside a JSON object is very slow, so we split off the text field and just send it after the other fields.
2
+
3
+ ```json
4
+ { "title": "New Tiddler" }
5
+
6
+ test
7
+ ```
8
+
9
+ Note that because the text field is optional, if the entire string is a single line, the text field will not be set, but if it ends with two line breaks, the text field will be set to an empty string.
10
+
11
+ Putting a tiddler into this format:
12
+
13
+ ```
14
+ const fields = tiddler.getFieldStrings();
15
+ const text = fields.text;
16
+ delete fields.text;
17
+ const data = JSON.stringify(fields)
18
+ + (typeof text === "string" ? ("\n\n" + text) : "");
19
+ ```
20
+
21
+ And parsing it out again:
22
+
23
+ ```
24
+ const splitter = body.indexOf("\n\n");
25
+ if(splitter === -1) {
26
+ return JSON.parse(body);
27
+ } else {
28
+ return {
29
+ ...JSON.parse(body.slice(0, splitter)),
30
+ text: body.slice(splitter + 2)
31
+ }
32
+ }
33
+ ```
34
+
35
+ There may be edge cases I'm not aware of, but since it's literally just sending strings to NodeJS, there shouldn't be any problems. Text fields are expected to be strings and binary types are base64-encoded.