skill-memo-ilife 0.3.2 → 0.3.13

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 (320) hide show
  1. package/SKILL.md +33 -34
  2. package/dist/checkin/index.d.ts +8 -0
  3. package/dist/checkin/index.d.ts.map +1 -0
  4. package/dist/checkin/index.js +8 -0
  5. package/dist/checkin/index.js.map +1 -0
  6. package/dist/checkin/receipt.d.ts +17 -0
  7. package/dist/checkin/receipt.d.ts.map +1 -0
  8. package/dist/checkin/receipt.js +63 -0
  9. package/dist/checkin/receipt.js.map +1 -0
  10. package/dist/checkin/routes.d.ts +4 -0
  11. package/dist/checkin/routes.d.ts.map +1 -1
  12. package/dist/checkin/routes.js +2 -2
  13. package/dist/checkin/routes.js.map +1 -1
  14. package/dist/cli/cmd_read.js +19 -53
  15. package/dist/cli/cmd_read.js.map +1 -1
  16. package/dist/cli/config.d.ts +4 -4
  17. package/dist/cli/config.d.ts.map +1 -1
  18. package/dist/cli/config.js +25 -4
  19. package/dist/cli/config.js.map +1 -1
  20. package/dist/cli/health/items.js +2 -2
  21. package/dist/cli/health/items.js.map +1 -1
  22. package/dist/cli/health.d.ts.map +1 -1
  23. package/dist/cli/health.js +3 -2
  24. package/dist/cli/health.js.map +1 -1
  25. package/dist/cli/keys.d.ts +6 -3
  26. package/dist/cli/keys.d.ts.map +1 -1
  27. package/dist/cli/keys.js +2 -5
  28. package/dist/cli/keys.js.map +1 -1
  29. package/dist/cli/registry.d.ts +1 -1
  30. package/dist/{fetch/db.d.ts → db/readonly.d.ts} +1 -1
  31. package/dist/db/readonly.d.ts.map +1 -0
  32. package/dist/{fetch/db.js → db/readonly.js} +5 -5
  33. package/dist/db/readonly.js.map +1 -0
  34. package/dist/help/lookup.d.ts +18 -1
  35. package/dist/help/lookup.d.ts.map +1 -1
  36. package/dist/help/lookup.js +53 -37
  37. package/dist/help/lookup.js.map +1 -1
  38. package/dist/help/sceneData.js +1 -1
  39. package/dist/help/scenes/checkin.d.ts +1 -1
  40. package/dist/help/scenes/checkin.js +1 -1
  41. package/dist/help/scenes/init.d.ts +1 -1
  42. package/dist/help/scenes/init.js +1 -1
  43. package/dist/help/scenes/memo.d.ts +1 -1
  44. package/dist/help/scenes/memo.js +1 -1
  45. package/dist/help/scenes/mood.d.ts +1 -1
  46. package/dist/help/scenes/mood.js +1 -1
  47. package/dist/help/scenes/remind.d.ts +1 -1
  48. package/dist/help/scenes/remind.js +2 -2
  49. package/dist/help/scenes/remind.js.map +1 -1
  50. package/dist/help/scenes/search.d.ts +1 -1
  51. package/dist/help/scenes/search.js +1 -1
  52. package/dist/help/scenes/sync.d.ts +1 -1
  53. package/dist/help/scenes/sync.js +1 -1
  54. package/dist/help/scenes/wish.d.ts +1 -1
  55. package/dist/help/scenes/wish.js +1 -1
  56. package/dist/index.d.ts +11 -4
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +11 -5
  59. package/dist/index.js.map +1 -1
  60. package/dist/init/diagnosis.d.ts +2 -1
  61. package/dist/init/diagnosis.d.ts.map +1 -1
  62. package/dist/init/diagnosis.js.map +1 -1
  63. package/dist/init/page.d.ts +3 -2
  64. package/dist/init/page.d.ts.map +1 -1
  65. package/dist/init/page.js +20 -10
  66. package/dist/init/page.js.map +1 -1
  67. package/dist/init/routes.d.ts +4 -1
  68. package/dist/init/routes.d.ts.map +1 -1
  69. package/dist/init/routes.js +14 -0
  70. package/dist/init/routes.js.map +1 -1
  71. package/dist/init/run.d.ts.map +1 -1
  72. package/dist/init/run.js +7 -1
  73. package/dist/init/run.js.map +1 -1
  74. package/dist/{fetch → memo}/batch.d.ts +6 -2
  75. package/dist/memo/batch.d.ts.map +1 -0
  76. package/dist/{fetch → memo}/batch.js +8 -4
  77. package/dist/memo/batch.js.map +1 -0
  78. package/dist/memo/category.d.ts.map +1 -0
  79. package/dist/{policy → memo}/category.js +1 -1
  80. package/dist/memo/category.js.map +1 -0
  81. package/dist/memo/commands.d.ts +3 -12
  82. package/dist/memo/commands.d.ts.map +1 -1
  83. package/dist/memo/commands.js +1 -9
  84. package/dist/memo/commands.js.map +1 -1
  85. package/dist/{policy → memo}/crud.d.ts +1 -1
  86. package/dist/memo/crud.d.ts.map +1 -0
  87. package/dist/{policy → memo}/crud.js +22 -7
  88. package/dist/memo/crud.js.map +1 -0
  89. package/dist/memo/index.d.ts +4 -2
  90. package/dist/memo/index.d.ts.map +1 -1
  91. package/dist/memo/index.js +4 -2
  92. package/dist/memo/index.js.map +1 -1
  93. package/dist/memo/media.d.ts.map +1 -0
  94. package/dist/{policy → memo}/media.js +2 -2
  95. package/dist/memo/media.js.map +1 -0
  96. package/dist/memo/receipt.d.ts +35 -0
  97. package/dist/memo/receipt.d.ts.map +1 -0
  98. package/dist/memo/receipt.js +62 -0
  99. package/dist/memo/receipt.js.map +1 -0
  100. package/dist/memo/receiptPage.d.ts +44 -0
  101. package/dist/memo/receiptPage.d.ts.map +1 -0
  102. package/dist/memo/receiptPage.js +50 -0
  103. package/dist/memo/receiptPage.js.map +1 -0
  104. package/dist/memo/routes.d.ts.map +1 -1
  105. package/dist/memo/routes.js +32 -0
  106. package/dist/memo/routes.js.map +1 -1
  107. package/dist/memo/run.d.ts +9 -8
  108. package/dist/memo/run.d.ts.map +1 -1
  109. package/dist/memo/run.js +140 -97
  110. package/dist/memo/run.js.map +1 -1
  111. package/dist/mood/routes.d.ts.map +1 -1
  112. package/dist/mood/routes.js +36 -0
  113. package/dist/mood/routes.js.map +1 -1
  114. package/dist/remind/index.d.ts +5 -2
  115. package/dist/remind/index.d.ts.map +1 -1
  116. package/dist/remind/index.js +5 -2
  117. package/dist/remind/index.js.map +1 -1
  118. package/dist/{policy/reminder.d.ts → remind/policy.d.ts} +1 -1
  119. package/dist/remind/policy.d.ts.map +1 -0
  120. package/dist/{policy/reminder.js → remind/policy.js} +2 -2
  121. package/dist/remind/policy.js.map +1 -0
  122. package/dist/remind/routes.d.ts +1 -2
  123. package/dist/remind/routes.d.ts.map +1 -1
  124. package/dist/remind/routes.js +32 -2
  125. package/dist/remind/routes.js.map +1 -1
  126. package/dist/remind/run.d.ts +1 -1
  127. package/dist/remind/run.d.ts.map +1 -1
  128. package/dist/remind/run.js +112 -7
  129. package/dist/remind/run.js.map +1 -1
  130. package/dist/{fetch/reminders.d.ts → remind/store.d.ts} +2 -2
  131. package/dist/remind/store.d.ts.map +1 -0
  132. package/dist/{fetch/reminders.js → remind/store.js} +3 -3
  133. package/dist/remind/store.js.map +1 -0
  134. package/dist/render/envelope.d.ts.map +1 -1
  135. package/dist/render/envelope.js +3 -2
  136. package/dist/render/envelope.js.map +1 -1
  137. package/dist/render/html.js +1 -1
  138. package/dist/render/html.js.map +1 -1
  139. package/dist/render/index.d.ts +4 -1
  140. package/dist/render/index.d.ts.map +1 -1
  141. package/dist/render/index.js +5 -3
  142. package/dist/render/index.js.map +1 -1
  143. package/dist/render/listPage.d.ts +34 -0
  144. package/dist/render/listPage.d.ts.map +1 -0
  145. package/dist/render/listPage.js +39 -0
  146. package/dist/render/listPage.js.map +1 -0
  147. package/dist/render/memoPageAssets.d.ts +32 -0
  148. package/dist/render/memoPageAssets.d.ts.map +1 -0
  149. package/dist/render/memoPageAssets.js +320 -0
  150. package/dist/render/memoPageAssets.js.map +1 -0
  151. package/dist/render/pageAssets.js +3 -3
  152. package/dist/render/pageAssets.js.map +1 -1
  153. package/dist/render/pages.d.ts +9 -2
  154. package/dist/render/pages.d.ts.map +1 -1
  155. package/dist/render/pages.js +8 -16
  156. package/dist/render/pages.js.map +1 -1
  157. package/dist/render/receipt.d.ts +12 -3
  158. package/dist/render/receipt.d.ts.map +1 -1
  159. package/dist/render/receipt.js +55 -10
  160. package/dist/render/receipt.js.map +1 -1
  161. package/dist/search/routes.d.ts.map +1 -1
  162. package/dist/search/routes.js +1 -0
  163. package/dist/search/routes.js.map +1 -1
  164. package/dist/search/run.d.ts +11 -3
  165. package/dist/search/run.d.ts.map +1 -1
  166. package/dist/search/run.js +130 -11
  167. package/dist/search/run.js.map +1 -1
  168. package/dist/shared/commandSpec.d.ts +4 -5
  169. package/dist/shared/commandSpec.d.ts.map +1 -1
  170. package/dist/shared/errors.d.ts.map +1 -0
  171. package/dist/shared/errors.js.map +1 -0
  172. package/dist/{fetch → shared}/paths.d.ts +1 -1
  173. package/dist/shared/paths.d.ts.map +1 -0
  174. package/dist/{fetch → shared}/paths.js +3 -3
  175. package/dist/shared/paths.js.map +1 -0
  176. package/dist/shared/validators.d.ts +3 -0
  177. package/dist/shared/validators.d.ts.map +1 -0
  178. package/dist/shared/validators.js +15 -0
  179. package/dist/shared/validators.js.map +1 -0
  180. package/dist/sync/auth.d.ts.map +1 -0
  181. package/dist/{fetch → sync}/auth.js +3 -3
  182. package/dist/sync/auth.js.map +1 -0
  183. package/dist/sync/commands.d.ts.map +1 -1
  184. package/dist/sync/commands.js.map +1 -1
  185. package/dist/sync/feishu.d.ts.map +1 -0
  186. package/dist/{fetch → sync}/feishu.js +9 -9
  187. package/dist/sync/feishu.js.map +1 -0
  188. package/dist/sync/index.d.ts +5 -2
  189. package/dist/sync/index.d.ts.map +1 -1
  190. package/dist/sync/index.js +4 -2
  191. package/dist/sync/index.js.map +1 -1
  192. package/dist/sync/run.d.ts +1 -1
  193. package/dist/sync/run.d.ts.map +1 -1
  194. package/dist/sync/run.js +2 -1
  195. package/dist/sync/run.js.map +1 -1
  196. package/dist/{fetch → sync}/sentinel.d.ts +1 -1
  197. package/dist/sync/sentinel.d.ts.map +1 -0
  198. package/dist/{fetch → sync}/sentinel.js +1 -2
  199. package/dist/sync/sentinel.js.map +1 -0
  200. package/dist/triggers/routes.generated.d.ts +1 -1
  201. package/dist/triggers/routes.generated.d.ts.map +1 -1
  202. package/dist/triggers/routes.generated.js +19 -6
  203. package/dist/triggers/routes.generated.js.map +1 -1
  204. package/dist/triggers/routing.d.ts +7 -0
  205. package/dist/triggers/routing.d.ts.map +1 -0
  206. package/dist/triggers/routing.js +35 -0
  207. package/dist/triggers/routing.js.map +1 -0
  208. package/dist/wish/complete.d.ts +1 -1
  209. package/dist/wish/complete.d.ts.map +1 -1
  210. package/dist/wish/complete.js +1 -1
  211. package/dist/wish/complete.js.map +1 -1
  212. package/dist/wish/due.d.ts +1 -1
  213. package/dist/wish/due.d.ts.map +1 -1
  214. package/dist/wish/due.js +1 -1
  215. package/dist/wish/due.js.map +1 -1
  216. package/dist/wish/ensure.d.ts +2 -2
  217. package/dist/wish/ensure.d.ts.map +1 -1
  218. package/dist/wish/ensure.js +2 -2
  219. package/dist/wish/ensure.js.map +1 -1
  220. package/dist/wish/gate.d.ts +1 -1
  221. package/dist/wish/gate.d.ts.map +1 -1
  222. package/dist/wish/gate.js +1 -1
  223. package/dist/wish/gate.js.map +1 -1
  224. package/dist/wish/index.d.ts +4 -0
  225. package/dist/wish/index.d.ts.map +1 -1
  226. package/dist/wish/index.js +7 -0
  227. package/dist/wish/index.js.map +1 -1
  228. package/dist/{policy/wish.d.ts → wish/policy.d.ts} +1 -1
  229. package/dist/wish/policy.d.ts.map +1 -0
  230. package/dist/{policy/wish.js → wish/policy.js} +3 -3
  231. package/dist/wish/policy.js.map +1 -0
  232. package/dist/wish/receipt.d.ts +45 -0
  233. package/dist/wish/receipt.d.ts.map +1 -0
  234. package/dist/wish/receipt.js +68 -0
  235. package/dist/wish/receipt.js.map +1 -0
  236. package/dist/wish/reconcile.d.ts +1 -1
  237. package/dist/wish/reconcile.d.ts.map +1 -1
  238. package/dist/wish/reconcile.js +2 -2
  239. package/dist/wish/reconcile.js.map +1 -1
  240. package/dist/wish/routes.d.ts.map +1 -1
  241. package/dist/wish/routes.js +11 -1
  242. package/dist/wish/routes.js.map +1 -1
  243. package/dist/wish/run.d.ts +11 -3
  244. package/dist/wish/run.d.ts.map +1 -1
  245. package/dist/wish/run.js +75 -7
  246. package/dist/wish/run.js.map +1 -1
  247. package/dist/wish/taskRemove.js +2 -2
  248. package/dist/wish/taskRemove.js.map +1 -1
  249. package/dist/wish/taskSync.d.ts +1 -1
  250. package/dist/wish/taskSync.d.ts.map +1 -1
  251. package/dist/wish/taskSync.js +3 -3
  252. package/dist/wish/taskSync.js.map +1 -1
  253. package/dist/wish/taskWrite.d.ts.map +1 -0
  254. package/dist/{fetch → wish}/taskWrite.js +2 -2
  255. package/dist/wish/taskWrite.js.map +1 -0
  256. package/dist/wish/tasks.d.ts.map +1 -0
  257. package/dist/{fetch → wish}/tasks.js +2 -2
  258. package/dist/wish/tasks.js.map +1 -0
  259. package/dist/wish/wizards.d.ts +1 -1
  260. package/dist/wish/wizards.d.ts.map +1 -1
  261. package/dist/wish/wizards.js +1 -1
  262. package/dist/wish/wizards.js.map +1 -1
  263. package/package.json +4 -7
  264. package/templates/change_category.html +52 -28
  265. package/templates/init_report.html +15 -14
  266. package/templates/memo_query.html +59 -24
  267. package/templates/receipt.html +97 -27
  268. package/templates/sync_report.html +106 -98
  269. package/templates/wish_complete.html +48 -30
  270. package/templates/wish_plan.html +35 -20
  271. package/dist/fetch/auth.d.ts.map +0 -1
  272. package/dist/fetch/auth.js.map +0 -1
  273. package/dist/fetch/batch.d.ts.map +0 -1
  274. package/dist/fetch/batch.js.map +0 -1
  275. package/dist/fetch/db.d.ts.map +0 -1
  276. package/dist/fetch/db.js.map +0 -1
  277. package/dist/fetch/errors.d.ts.map +0 -1
  278. package/dist/fetch/errors.js.map +0 -1
  279. package/dist/fetch/feishu.d.ts.map +0 -1
  280. package/dist/fetch/feishu.js.map +0 -1
  281. package/dist/fetch/index.d.ts +0 -19
  282. package/dist/fetch/index.d.ts.map +0 -1
  283. package/dist/fetch/index.js +0 -13
  284. package/dist/fetch/index.js.map +0 -1
  285. package/dist/fetch/paths.d.ts.map +0 -1
  286. package/dist/fetch/paths.js.map +0 -1
  287. package/dist/fetch/reminders.d.ts.map +0 -1
  288. package/dist/fetch/reminders.js.map +0 -1
  289. package/dist/fetch/sentinel.d.ts.map +0 -1
  290. package/dist/fetch/sentinel.js.map +0 -1
  291. package/dist/fetch/taskWrite.d.ts.map +0 -1
  292. package/dist/fetch/taskWrite.js.map +0 -1
  293. package/dist/fetch/tasks.d.ts.map +0 -1
  294. package/dist/fetch/tasks.js.map +0 -1
  295. package/dist/policy/category.d.ts.map +0 -1
  296. package/dist/policy/category.js.map +0 -1
  297. package/dist/policy/crud.d.ts.map +0 -1
  298. package/dist/policy/crud.js.map +0 -1
  299. package/dist/policy/index.d.ts +0 -11
  300. package/dist/policy/index.d.ts.map +0 -1
  301. package/dist/policy/index.js +0 -8
  302. package/dist/policy/index.js.map +0 -1
  303. package/dist/policy/media.d.ts.map +0 -1
  304. package/dist/policy/media.js.map +0 -1
  305. package/dist/policy/reminder.d.ts.map +0 -1
  306. package/dist/policy/reminder.js.map +0 -1
  307. package/dist/policy/wakewords.d.ts +0 -14
  308. package/dist/policy/wakewords.d.ts.map +0 -1
  309. package/dist/policy/wakewords.js +0 -68
  310. package/dist/policy/wakewords.js.map +0 -1
  311. package/dist/policy/wish.d.ts.map +0 -1
  312. package/dist/policy/wish.js.map +0 -1
  313. /package/dist/{policy → memo}/category.d.ts +0 -0
  314. /package/dist/{policy → memo}/media.d.ts +0 -0
  315. /package/dist/{fetch → shared}/errors.d.ts +0 -0
  316. /package/dist/{fetch → shared}/errors.js +0 -0
  317. /package/dist/{fetch → sync}/auth.d.ts +0 -0
  318. /package/dist/{fetch → sync}/feishu.d.ts +0 -0
  319. /package/dist/{fetch → wish}/taskWrite.d.ts +0 -0
  320. /package/dist/{fetch → wish}/tasks.d.ts +0 -0
@@ -0,0 +1,320 @@
1
+ // 渲染层·页面资产(#870):备忘录七个数据页共用一份**由公共层产出**的样式与运行时。
2
+ //
3
+ // #665 D-28 那份自持窄镜像(`MEMO_PAGE_CSS` + `MEMO_PAGE_RUNTIME`)已退役,本件是它的接替者:
4
+ // 样式一律取公共层产出器,运行时一律取公共层的激活通道,本件只做两件公共层不做的事——
5
+ //
6
+ // ① **拼装**(`memoPageAssets()`):把公共层四件产物按 `fillTemplate` 的两个槽位拼好。
7
+ // · `sharedCssText`:`buildStyleSheet().css`(11 个冻结 token + 8 个控制样式区)
8
+ // + `blocksCss()`(12 区块样式区)+ `pageUiCss()` + `pageShapeCss()`(页面级配方与形状件)。
9
+ // 模板里的 `var(--fg)/--bg/--card/--line/--blue` 等 token **不再由本包给**——它们就是
10
+ // `buildStyleSheet()` 的 `:root` 那 11 个(逐值同源:`--bg` `#f5f5f7`、`--blue` `#007aff`…)。
11
+ // · `sharedHelpersJs`:`buildSharedHelpersJs()`——复制按钮的**唯一激活通道**(页面内事件委派,
12
+ // 认 `data-action-id` 与 `data-t` 两个冻结属性名)+ toast 栈与 HELP 壳增强。
13
+ //
14
+ // ② **补上模板仍在用的页面级全局**(`memoRuntimeJs()`):它们住的层本来不对(一套写进技能包的
15
+ // 窄镜像),但模板调用点一字不改 ⇒ 这几个名字得有人给,**逐条见下表**(不记数:数会过期,
16
+ // 表跟着代码走)。给的**不是**第二套实现:凡是公共层已有
17
+ // 对应物的(转义表、复制激活、toast 通道、空态与错误卡类名、键值行的格)一律走公共层那一条,
18
+ // 只有「备忘录信封怎么投影成一段可粘贴文本」这一件是本域自己的口径。
19
+ import { blocksCss } from 'base-paint/blocks';
20
+ import { buildSharedHelpersJs, buildStyleSheet, pageShapeCss, pageUiCss } from 'base-paint';
21
+ const LF = String.fromCharCode(10);
22
+ /** 页面级配方与页面级形状件的样式(两者恒同去同回:配方给行为、形状件给它指到的类)。 */
23
+ function pageLevelCss() {
24
+ return pageUiCss() + LF + pageShapeCss();
25
+ }
26
+ /** **表单控件的尺寸口径**(本包自有,唯一一处)。
27
+ *
28
+ * **为什么单列**:勾选框原先在**七份模板里各写一遍** `input[type=checkbox]{min-height:44px;min-width:44px}` ——
29
+ * 命中区够了,但**视觉**也是一枚 44px 的大方块(负责人 2026-09-22 看墙时点名「太大了」)。
30
+ * 这里把两件事拆开:**命中区仍 ≥44×44px**(#870 立的线、`t849` §2 硬线;`t835-计算样式面` 的
31
+ * 「触摸<44=0」把 `input` 一并算可点元素),**视觉**只画一枚 20px 的小方框。
32
+ *
33
+ * 实现:`appearance:none` 去掉原生外观,容器留 44×44 并把内部那枚小框交给 `::before`(勾中态由
34
+ * 同一个伪元素换底色 + 一枚内联 SVG 对勾,零字符、不新增元素)。 */
35
+ function memoFormCss() {
36
+ const TICK = "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.5 10.6l3.6 3.6 7.4-7.4' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")";
37
+ return [
38
+ '/* 表单控件:命中区 ≥44×44px;勾选框的视觉尺寸另算(20px,见 memoFormCss 的头注) */',
39
+ 'input[type=text],input[type=date],input[type=search],input:not([type]),select{min-height:44px;box-sizing:border-box}',
40
+ 'input[type=checkbox]{appearance:none;-webkit-appearance:none;min-height:44px;min-width:44px;box-sizing:border-box;',
41
+ 'margin:0;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer}',
42
+ 'input[type=checkbox]::before{content:"";display:block;width:20px;height:20px;box-sizing:border-box;',
43
+ 'border:2px solid var(--line);border-radius:6px;background:var(--card)}',
44
+ 'input[type=checkbox]:checked::before{border-color:var(--blue);',
45
+ 'background:var(--blue) ' + TICK + ' center/14px 14px no-repeat}',
46
+ ].join(LF);
47
+ }
48
+ /** 备忘录七个数据页的唯一资产产出者。
49
+ *
50
+ * **两处一起给**:只换 CSS 不换运行时=按钮点了没反应(按钮只带 `data-action-id`,激活靠
51
+ * `buildSharedHelpersJs()` 的委派);只换运行时不换 CSS=公共层那条委派产出的 toast 与回执卡无样式。 */
52
+ export function memoPageAssets() {
53
+ return {
54
+ sharedCssText: buildStyleSheet().css + LF + blocksCss() + LF + pageLevelCss() + LF + memoFormCss(),
55
+ sharedHelpersJs: buildSharedHelpersJs() + LF + memoRuntimeJs(),
56
+ };
57
+ }
58
+ /** 模板仍在用的页面级全局的源码(裸 JS 文本,`fillTemplate` 按 `ASSET_WRAPPERS` 自己包
59
+ * `<script>`;与 `buildSharedHelpersJs()` 同一条约约定)。**下表是这套全局的全部**——加一个名字就补一行。
60
+ *
61
+ * | 全局 | 谁给的 |
62
+ * |---|---|
63
+ * | `esc` | 五字符转义表与公共层 `esc` 逐值同(`&<>"'` 的映射与序照抄,不自造第二份形状) |
64
+ * | `copyText` / `toast` | 公共层的激活通道:把文案写进 `data-t`,交给已注入的公共层委派(`data-action-id` + `data-t` 两个冻结属性名同源)。**成功提示归公共层**(「已复制/粘贴给 AI」) |
65
+ * | `memoAttachCopyArea` | 页尾接线:把「复制数据/复制日志」两枚按钮的载荷写进 `data-t`(模板末尾调一次;页面自己已写好的载荷让路) |
66
+ * | 空态卡 | 公共层的 `ilife-empty-*` 三件(样式住 `buildStyleSheet()` 的 `emptyState` 区) |
67
+ * | 错误回执卡 | 公共层的 `ilife-error` / `ilife-error-title` / `ilife-error-actions` + `ilife-copy-btn` 家族(样式住 `errorReceipt` 区);三颗按钮各带 `data-action-id` + `data-t`,激活走同一条委派 |
68
+ * | 键值行 | 公共层的 `ilife-block-fact-strip` 三件(一格「标签 + 值」;类名、字号与间距全吃 `pageShapeCss()` 的形状①)——**#878 追加** |
69
+ * | `buildDataText` / `buildLogText` | **本域口径**:`scene.snapshot` 与 `copy_log` 怎么投影成一段可粘贴文本 |
70
+ * | `__hmToastFlush` | 截图与测试清屏用的一次性收尾(不参与页面行为) |
71
+ *
72
+ * **记账(与旧镜像的差异)**:旧镜像自带一套剪贴板降级与自己的 toast 栈、关闭按钮写死
73
+ * `min-height:40px`(改前基线「触摸档 <44px 共 82 处」里的一份);本件不产样式,尺寸一律吃公共层
74
+ * (`ACTION_BAR_DEFAULTS.minHeightPx` = 44)。复制成功的提示文案由公共层给,与旧镜像的
75
+ * 「已复制/粘贴给 AI」同句同字,失败提示走公共层同一条(`复制失败/长按选择文本手动复制`)。
76
+ * **#878 追加**:键值行的页面侧产出者 `factStrip`(只拼公共层类名,不产样式)—— 同步报告页状态卡
77
+ * 与两份向导页页头那三处「生成时间 · 场景」的串,由它落成键值行。 */
78
+ export function memoRuntimeJs() {
79
+ const src = [
80
+ '(function () {',
81
+ " 'use strict';",
82
+ ' var LF = String.fromCharCode(10);',
83
+ ' var ESC_MAP = { "&": "&amp;", "<": "&lt;", ">": "&gt;", \'"\': "&quot;", "\'": "&#39;" };',
84
+ ' function esc(s) {',
85
+ ' return String(s == null ? "" : s).replace(/[&<>"\']/g, function (c) { return ESC_MAP[c]; });',
86
+ ' }',
87
+ // ── 复制激活:一律交给已注入的公共层委派(认 data-action-id + data-t)────────────────────
88
+ ' var TEXT_ATTR = "data-t";',
89
+ ' var INLINE_ID = "memo-copy-inline";',
90
+ ' function copyViaLayer(text, opts) {',
91
+ ' if (!text) return;',
92
+ ' var given = opts && opts.btn && opts.btn.closest && opts.btn.closest("[data-action-id]") ? opts.btn : null;',
93
+ ' var host = given;',
94
+ ' if (!host) {',
95
+ ' host = document.createElement("button");',
96
+ ' host.type = "button";',
97
+ ' host.setAttribute("data-action-id", INLINE_ID);',
98
+ ' host.style.cssText = "position:fixed;left:-9999px;top:0;opacity:0";',
99
+ ' document.body.appendChild(host);',
100
+ ' }',
101
+ ' var prev = host.getAttribute(TEXT_ATTR);',
102
+ ' host.setAttribute(TEXT_ATTR, String(text));',
103
+ ' host.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true }));',
104
+ ' if (!given) { host.remove(); }',
105
+ ' else if (prev === null) { host.removeAttribute(TEXT_ATTR); }',
106
+ ' else { host.setAttribute(TEXT_ATTR, prev); }',
107
+ ' }',
108
+ // ── 信封投影(本域口径:snapshot + copy_log 怎么变成一段可粘贴文本)────────────────────
109
+ ' function payloadOf(p) { return (p && p.data) || {}; }',
110
+ ' function rowText(r) {',
111
+ ' if (r && typeof r === "object" && !Array.isArray(r)) {',
112
+ ' if (r.sensitive) return "****";',
113
+ ' return String(r.text == null ? "" : r.text);',
114
+ ' }',
115
+ ' return String(r == null ? "" : r);',
116
+ ' }',
117
+ ' function snapOf(p) {',
118
+ ' var d = payloadOf(p);',
119
+ ' var s = d.scene || {};',
120
+ ' var snap = s.snapshot;',
121
+ ' if (!snap || typeof snap !== "object") throw new Error("snapshot 违规");',
122
+ ' if (typeof snap.title !== "string" || !snap.title.trim()) throw new Error("snapshot 违规");',
123
+ ' if (!Array.isArray(snap.summary) || !Array.isArray(snap.sections)) throw new Error("snapshot 违规");',
124
+ ' return { meta: d.meta || {}, scene: s, snap: snap };',
125
+ ' }',
126
+ ' /* 三格式(#247 口径,与卡路里同形):同一份 snapshot 出三种合法表示 ——',
127
+ ' 纯文本(粘贴给 AI/自己看)/JSON(结构化存档)/CSV(表格导入)。',
128
+ ' `window.buildDataText(p)` 一字不改地保留=纯文本那一路(老调用点与错误卡都还走它)。 */',
129
+ ' function dataProjection(p) {',
130
+ ' var v = snapOf(p);',
131
+ ' return {',
132
+ ' command: v.meta.command_cn || "",',
133
+ ' skill: v.meta.skill_name || "",',
134
+ ' scene_id: v.scene.scene_id || "",',
135
+ ' wake_word: v.meta.wake_word || "",',
136
+ ' time: v.meta.occurred_at || "",',
137
+ ' title: v.snap.title,',
138
+ ' summary: v.snap.summary.map(rowText),',
139
+ ' sections: v.snap.sections.map(function (sec) {',
140
+ ' return { heading: sec.heading, rows: sec.rows.map(rowText) };',
141
+ ' }),',
142
+ ' };',
143
+ ' }',
144
+ ' /* CSV:一行一件事实(区块/标签/值)。「标签:值」的行拆成两列,不带冒号的整行只填「值」。 */',
145
+ ' function csvCell(x) {',
146
+ ' var s = String(x == null ? "" : x);',
147
+ ' return /[",\\n]/.test(s) ? \'"\' + s.replace(/"/g, \'""\') + \'"\' : s;',
148
+ ' }',
149
+ ' function csvRows(proj) {',
150
+ ' var out = [["区块", "标签", "值"].join(",")];',
151
+ ' proj.summary.forEach(function (t) { out.push(csvPair("摘要", t)); });',
152
+ ' proj.sections.forEach(function (sec) {',
153
+ ' sec.rows.forEach(function (t) { out.push(csvPair(sec.heading, t)); });',
154
+ ' });',
155
+ ' return out.join(LF);',
156
+ ' }',
157
+ ' function csvPair(zone, line) {',
158
+ ' var i = line.indexOf(":");',
159
+ ' var k = i < 0 ? "" : line.slice(0, i);',
160
+ ' var v = i < 0 ? line : line.slice(i + 1);',
161
+ ' return [csvCell(zone), csvCell(k), csvCell(v)].join(",");',
162
+ ' }',
163
+ ' window.buildDataTextWithFormat = function (p, fmt) {',
164
+ ' var proj = dataProjection(p);',
165
+ ' if (fmt === "json") return JSON.stringify(proj, null, 2);',
166
+ ' if (fmt === "csv") return csvRows(proj);',
167
+ ' var v = snapOf(p); var me = v.meta, s = v.scene, snap = v.snap;',
168
+ ' var out = ["【" + (me.skill_name || me.command_cn || "") + " · " + (me.command_cn || "") + "】"];',
169
+ ' out.push("场景: " + (me.command_cn || "") + (s.scene_id ? "(" + s.scene_id + ")" : "")',
170
+ ' + (me.wake_word ? " · 唤醒词「" + me.wake_word + "」" : ""));',
171
+ ' out.push("时间: " + (me.occurred_at || ""));',
172
+ ' snap.summary.forEach(function (x) { out.push(rowText(x)); });',
173
+ ' snap.sections.forEach(function (sec) {',
174
+ ' if (!sec.rows.length) return;',
175
+ ' out.push("▍" + sec.heading);',
176
+ ' sec.rows.forEach(function (r) { out.push(" · " + rowText(r)); });',
177
+ ' });',
178
+ ' return out.join(LF);',
179
+ ' };',
180
+ ' window.buildDataText = function (p) { return window.buildDataTextWithFormat(p, "text"); };',
181
+ ' window.buildLogText = function (p) {',
182
+ ' var v = snapOf(p); var me = v.meta, s = v.scene;',
183
+ ' var d = payloadOf(p); var cl = d.copy_log || s.copy_log || {};',
184
+ ' var out = ["① 场景标识"];',
185
+ ' out.push(" 命 令: " + (me.command_cn || ""));',
186
+ ' out.push(" 唤醒词: " + (me.wake_word || "(未知)"));',
187
+ ' out.push(" 场景名: " + (me.command_cn || "") + (s.scene_id ? "(" + s.scene_id + ")" : ""));',
188
+ ' out.push("");',
189
+ ' out.push("② AI 思考链");',
190
+ ' out.push(" " + (cl.thinking || "(本地渲染 · 无 AI 链)"));',
191
+ ' out.push("");',
192
+ ' out.push("③ 底层数据结构");',
193
+ ' out.push(" " + (cl.data_structure || "(只读查询)"));',
194
+ ' out.push("");',
195
+ ' out.push("④ 调用链");',
196
+ ' out.push(" " + (cl.call_chain || "(未知)"));',
197
+ ' out.push("");',
198
+ ' out.push("⑤ 时间戳 + 版本");',
199
+ ' out.push(" 本地时间: " + (cl.timestamp || me.occurred_at || "(未知)"));',
200
+ ' out.push(" 版 本: " + (me.skill_version || "(未知)"));',
201
+ ' out.push("");',
202
+ ' out.push("⑥ 异常信息");',
203
+ ' out.push(" " + (cl.exception || "无"));',
204
+ ' return out.join(LF);',
205
+ ' };',
206
+ // ── 公共层类名与冻结属性名上的两个卡片(不产样式,尺寸与配色全吃公共层)──────────────────
207
+ ' window.emptyState = function (cfg) {',
208
+ ' cfg = cfg || {};',
209
+ ' return \'<div class="ilife-empty">\'',
210
+ ' + (cfg.icon ? \'<div class="ilife-empty-icon">\' + esc(cfg.icon) + "</div>" : "")',
211
+ ' + \'<div class="ilife-empty-text">\' + esc(cfg.text || "暂无数据") + "</div>"',
212
+ ' + (cfg.hint ? \'<div class="ilife-empty-hint">\' + esc(cfg.hint) + "</div>" : "")',
213
+ ' + (cfg.action ? \'<div class="ilife-empty-action">\' + cfg.action + "</div>" : "")',
214
+ ' + "</div>";',
215
+ ' };',
216
+ ' function errorCopyBtn(actionId, cls, label, text) {',
217
+ ' return \'<button type="button" class="ilife-copy-btn \' + cls + \'" data-action-id="\' + actionId',
218
+ ' + \'" data-t="\' + esc(text) + \'">\' + esc(label) + "</button>";',
219
+ ' }',
220
+ ' window.errorReceipt = function (cfg) {',
221
+ ' cfg = cfg || {};',
222
+ ' var payload = cfg.payload || window.__hmPayload || null;',
223
+ ' var dataText = cfg.data != null ? String(cfg.data) : "";',
224
+ ' var logText = cfg.log != null ? String(cfg.log) : "";',
225
+ ' var ok = !!(payload && payload.data && payload.data.scene && payload.data.scene.snapshot);',
226
+ ' if (!dataText && ok) { try { dataText = window.buildDataText(payload); } catch (e) { dataText = ""; } }',
227
+ ' if (!logText && ok) { try { logText = window.buildLogText(payload); } catch (e) { logText = ""; } }',
228
+ ' var retry = typeof cfg.retryPrompt === "string" && cfg.retryPrompt !== "" ? cfg.retryPrompt : "";',
229
+ ' var btns = "";',
230
+ ' if (retry) btns += errorCopyBtn("memo-error-retry", "ilife-copy-btn-primary ilife-copy-btn-wide", "修正重试", retry);',
231
+ ' var pairs = "";',
232
+ ' if (dataText) pairs += errorCopyBtn("memo-error-copy-data", "ilife-copy-btn-ghost", "复制数据", dataText);',
233
+ ' if (logText) pairs += errorCopyBtn("memo-error-copy-log", "ilife-copy-btn-ghost", "复制日志", logText);',
234
+ ' var html = \'<div class="ilife-error"><div class="ilife-error-title">\' + esc("❌ " + (cfg.message || "操作失败")) + "</div>";',
235
+ ' if (btns || pairs) {',
236
+ ' html += \'<div class="ilife-error-actions">\' + btns + "</div>";',
237
+ ' if (pairs) html += \'<div class="ilife-error-actions">\' + pairs + "</div>";',
238
+ ' }',
239
+ ' return html + "</div>";',
240
+ ' };',
241
+ // ── 键值行(#878):公共层 `ilife-block-fact-strip` 的形状①——一格「标签 + 值」,格与格靠版式
242
+ // 分开,文本里一个分隔符都不留。存的理由:`生成时刻 · 场景` 那种串不许再拿 `·` 顶版式
243
+ // (`t849-视觉基准.md` §3:`·` 串单实体的多字段 → 键值行),而三份模板各拼一遍拼装就是
244
+ // 「同一件事各写一遍」的病(同 §3 点名的那一族)。本件**不产样式**:类名、字号与间距全吃
245
+ // `pageShapeCss()` 的形状①,与上面两张卡同一条口径。
246
+ ' window.factStrip = function (facts) {',
247
+ ' var cells = [];',
248
+ ' (facts || []).forEach(function (f) {',
249
+ ' var v = String(f && f.value == null ? "" : f.value);',
250
+ ' if (v === "") return;', // 值空着的格子不出(与公共层「空段丢弃」同口径)
251
+ ' var label = String(f && f.label == null ? "" : f.label);',
252
+ ' cells.push(\'<div class="ilife-block-fact-strip-item">\'',
253
+ ' + \'<span class="ilife-block-fact-strip-label">\' + esc(label) + "</span>"',
254
+ ' + \'<span class="ilife-block-fact-strip-value">\' + esc(v) + "</span>"',
255
+ ' + "</div>");',
256
+ ' });',
257
+ ' return cells.length ? \'<div class="ilife-block-fact-strip">\' + cells.join("") + "</div>" : "";',
258
+ ' };',
259
+ ' window.esc = esc;',
260
+ ' window.copyText = function (text, opts) { copyViaLayer(text, opts || {}); };',
261
+ // 页内提示:本页按钮的复制提示由公共层委派自己出(同句同字),这里只处理模板显式要说的那一句。
262
+ ' var COPY_MSG_PREFIX = "已复制";',
263
+ ' window.toast = function (msg, detail, opts) {',
264
+ ' var head = String(msg == null ? "" : msg);',
265
+ ' if (head.indexOf(COPY_MSG_PREFIX) === 0) return;',
266
+ ' var text = head + (detail ? LF + String(detail) : "")',
267
+ ' + (opts && opts.badge && opts.badge.text ? LF + String(opts.badge.text) : "");',
268
+ ' copyViaLayer(text, {});',
269
+ ' };',
270
+ ' window.__hmToastFlush = function () {',
271
+ ' document.querySelectorAll(".ilife-toast").forEach(function (t) { t.remove(); });',
272
+ ' };',
273
+ ' /* 页面级配方的开关标记(**由版面根类驱动**):helpers 注入的 toast 栈挂在 document.body 下',
274
+ ' (不在版面根之内),而 pageUiCss 的规则都挂在 `.ilife-page-ui` 之下 ⇒ 模板根类那一颗罩不到它。',
275
+ ' 故这里读**版面根有没有那一颗类**,有才把标记补到 body 上——带标记 = 这一页声明自己是',
276
+ ' pageUi 页(与 `renderDocShell` 的 `pageUi` 位同一语义)。版面根不写那一颗 ⇒ 本配方一条不生效',
277
+ ' (两处判据独立、各管一层:根类管页内,标记管 helpers 注入的那些)。 */',
278
+ ' if (document.querySelector(".ilife-page-ui")) document.body.classList.add("ilife-page-ui");',
279
+ // ── 页尾接线:把「复制数据/复制日志」两枚按钮的载荷挂上(模板末尾调一次,DOM 已就绪)────
280
+ // **不覆盖页自己写好的载荷**:`receipt` 那一页的 dataText 是回执自己的文本(不是 `buildDataText`
281
+ // 的信封投影),页面已写进 `data-t` 时本函数让路(只补空着的那几枚)。
282
+ ' window.memoAttachCopyArea = function () {',
283
+ ' var block = document.querySelector(".ilife-block-copy-block");',
284
+ ' if (!block) return;',
285
+ // #247 三格式:复制数据是一颗**菜单**(开合器 + 纯文本/JSON/CSV 三项),三项各带自己的 `data-t`。
286
+ // 与卡路里同形(公共层 `copyMenuHtml` 的标记),开合与复制交公共层委派(`data-fmt-open` / `data-fmt`)。
287
+ // 已写好的载荷让路:回执页自己写「纯文本」那一项,本函数只补空着的。
288
+ ' var wrap = block.querySelector(".ilife-copy-menu-wrap");',
289
+ ' if (wrap) {',
290
+ ' var items = wrap.querySelectorAll("[data-fmt]");',
291
+ ' Array.prototype.forEach.call(items, function (it) {',
292
+ ' var already = it.getAttribute(TEXT_ATTR);',
293
+ ' if (already !== null && already !== "") return;',
294
+ ' var fmt = it.getAttribute("data-fmt");',
295
+ ' try { it.setAttribute(TEXT_ATTR, String(window.buildDataTextWithFormat(window.__hmPayload || null, fmt))); }',
296
+ ' catch (e) { it.setAttribute(TEXT_ATTR, ""); }',
297
+ ' });',
298
+ ' }',
299
+ ' var pairs = [["memo-copy-log", "buildLogText"]];',
300
+ ' pairs.forEach(function (pair) {',
301
+ ' var btn = block.querySelector(\'[data-action-id="\' + pair[0] + \'"]\');',
302
+ ' if (!btn) return;',
303
+ ' var already = btn.getAttribute(TEXT_ATTR);',
304
+ ' if (already !== null && already !== "") return;',
305
+ ' var fn = window[pair[1]];',
306
+ ' if (typeof fn !== "function") return;',
307
+ ' try { btn.setAttribute(TEXT_ATTR, String(fn(window.__hmPayload || null))); }',
308
+ ' catch (e) { btn.setAttribute(TEXT_ATTR, ""); }',
309
+ ' });',
310
+ ' };',
311
+ ' if (document.readyState === "loading") {',
312
+ ' document.addEventListener("DOMContentLoaded", window.memoAttachCopyArea);',
313
+ ' } else {',
314
+ ' window.memoAttachCopyArea();',
315
+ ' }',
316
+ '})();',
317
+ ].join(LF);
318
+ return src;
319
+ }
320
+ //# sourceMappingURL=memoPageAssets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoPageAssets.js","sourceRoot":"","sources":["../../src/render/memoPageAssets.ts"],"names":[],"mappings":"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"}
@@ -31,12 +31,12 @@ export const MEMO_PAGE_CSS = [
31
31
  '.hm-toast-body{flex:1;min-width:0}',
32
32
  '.hm-toast-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}',
33
33
  '.hm-toast-title{font-weight:600;font-size:12.5px;line-height:1.4;color:#fff;margin-bottom:2px}',
34
- '.hm-toast-detail{font-size:11px;line-height:1.5;color:#c8c8cc}',
35
- '.hm-toast-chip{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;flex-shrink:0}',
34
+ '.hm-toast-detail{font-size:12px;line-height:1.5;color:#c8c8cc}',
35
+ '.hm-toast-chip{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;flex-shrink:0}',
36
36
  '.hm-toast-chip.ok{background:rgba(52,199,89,.18);color:#4dd96b}',
37
37
  '.hm-toast-chip.warn{background:rgba(255,149,0,.18);color:#ffb340}',
38
38
  '.hm-toast-chip.danger{background:rgba(255,59,48,.18);color:#ff6961}',
39
- '.hm-toast-close{background:rgba(255,255,255,.10);color:#34c759;border:0;border-radius:8px;padding:5px 9px;font-size:10.5px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;margin-left:6px;flex-shrink:0}',
39
+ '.hm-toast-close{background:rgba(255,255,255,.10);color:#34c759;border:0;border-radius:8px;padding:5px 9px;min-height:44px;min-width:44px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;margin-left:6px;flex-shrink:0}',
40
40
  '@media(max-width:820px){.hm-toast-stack{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0));transform:none;align-items:stretch}.hm-toast{min-width:0}.hm-toast.show{transform:scale(1)}}',
41
41
  ].join('\n');
42
42
  /** 六全局的窄行为镜像(经典脚本:顶层函数直挂全局,模板以 `window.*` 取用)。
@@ -1 +1 @@
1
- {"version":3,"file":"pageAssets.js","sourceRoot":"","sources":["../../src/render/pageAssets.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,yBAAyB;AACzB,yEAAyE;AACzE,kDAAkD;AAClD,gEAAgE;AAChE,yFAAyF;AACzF,qDAAqD;AACrD,qDAAqD;AACrD,8CAA8C;AAC9C,+CAA+C;AAE/C,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sNAAsN;IACtN,0JAA0J;IAC1J,wFAAwF;IACxF,sKAAsK;IACtK,kDAAkD;IAClD,iDAAiD;IACjD,kEAAkE;IAClE,mCAAmC;IACnC,6GAA6G;IAC7G,kFAAkF;IAClF,qCAAqC;IACrC,oDAAoD;IACpD,0FAA0F;IAC1F,sNAAsN;IACtN,+UAA+U;IAC/U,kEAAkE;IAClE,4EAA4E;IAC5E,oCAAoC;IACpC,6EAA6E;IAC7E,gGAAgG;IAChG,gEAAgE;IAChE,kGAAkG;IAClG,iEAAiE;IACjE,mEAAmE;IACnE,qEAAqE;IACrE,iOAAiO;IACjO,6MAA6M;CAC9M,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;6GAI6G;AAC7G,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,4JAA4J;IAC5J,sSAAsS;IACtS,ocAAoc;IACpc,6JAA6J;IAC7J,qEAAqE;IACrE,sJAAsJ;IACtJ,6GAA6G;IAC7G,oGAAoG;IACpG,2JAA2J;IAC3J,wHAAwH;IACxH,+KAA+K;IAC/K,0IAA0I;IAC1I,oLAAoL;IACpL,wIAAwI;IACxI,uFAAuF;IACvF,+HAA+H;IAC/H,+EAA+E;IAC/E,uKAAuK;IACvK,sKAAsK;IACtK,+WAA+W;IAC/W,snBAAsnB;IACtnB,8lCAA8lC;IAC9lC,sYAAsY;IACtY,guCAAguC;CACjuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"pageAssets.js","sourceRoot":"","sources":["../../src/render/pageAssets.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,yBAAyB;AACzB,yEAAyE;AACzE,kDAAkD;AAClD,gEAAgE;AAChE,yFAAyF;AACzF,qDAAqD;AACrD,qDAAqD;AACrD,8CAA8C;AAC9C,+CAA+C;AAE/C,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sNAAsN;IACtN,0JAA0J;IAC1J,wFAAwF;IACxF,sKAAsK;IACtK,kDAAkD;IAClD,iDAAiD;IACjD,kEAAkE;IAClE,mCAAmC;IACnC,6GAA6G;IAC7G,kFAAkF;IAClF,qCAAqC;IACrC,oDAAoD;IACpD,0FAA0F;IAC1F,sNAAsN;IACtN,+UAA+U;IAC/U,kEAAkE;IAClE,4EAA4E;IAC5E,oCAAoC;IACpC,6EAA6E;IAC7E,gGAAgG;IAChG,gEAAgE;IAChE,kGAAkG;IAClG,iEAAiE;IACjE,mEAAmE;IACnE,qEAAqE;IACrE,8PAA8P;IAC9P,6MAA6M;CAC9M,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;6GAI6G;AAC7G,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,4JAA4J;IAC5J,sSAAsS;IACtS,ocAAoc;IACpc,6JAA6J;IAC7J,qEAAqE;IACrE,sJAAsJ;IACtJ,6GAA6G;IAC7G,oGAAoG;IACpG,2JAA2J;IAC3J,wHAAwH;IACxH,+KAA+K;IAC/K,0IAA0I;IAC1I,oLAAoL;IACpL,wIAAwI;IACxI,uFAAuF;IACvF,+HAA+H;IAC/H,+EAA+E;IAC/E,uKAAuK;IACvK,sKAAsK;IACtK,+WAA+W;IAC/W,snBAAsnB;IACtnB,8lCAA8lC;IAC9lC,sYAAsY;IACtY,guCAAguC;CACjuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -1,9 +1,16 @@
1
+ /** 区块里的一行:**要么整行文字,要么带结构的行**(#820 收尾:编号与状态不再拼进同一串 ——
2
+ * 屏上落成「编号徽章 + 正文 + 状态徽章」,`#5 xxx:未排期` 那种两个冒号串三件事的写法退场)。 */
3
+ export interface PageRow {
4
+ readonly text: string;
5
+ readonly id?: string | number;
6
+ readonly status?: string;
7
+ }
1
8
  export interface PageSnapshot {
2
9
  readonly title: string;
3
10
  readonly summary: string[];
4
11
  readonly sections: {
5
12
  readonly heading: string;
6
- readonly rows: string[];
13
+ readonly rows: (string | PageRow)[];
7
14
  }[];
8
15
  }
9
16
  export interface PageCopyLog {
@@ -62,7 +69,7 @@ export declare function initSnapshot(input: {
62
69
  }[];
63
70
  readonly verify: readonly unknown[];
64
71
  }): PageSnapshot;
65
- /** 整页填充:模板 + 共享 filler + 窄兼容资产 + 数据。失败一律转渲染错(出口 exit 5)。 */
72
+ /** 整页填充:模板 + 共享 filler + 公共层资产 + 数据。失败一律转渲染错(出口 exit 5)。 */
66
73
  export declare function fillMemoPage(template: string, payload: Record<string, unknown>): string;
67
74
  /** 快照探针形状 `(templateText, data)`:与别家技能侧 `fillTemplate` 同形(`tooling/skill-html-snapshot.mjs` 直调)。 */
68
75
  export declare function fillTemplate(templateText: string, data: unknown): string;
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/render/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/render/pages.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  // 渲染层·数据页组装(#665):老 `memo_render.py` 的 TS 换皮——信封(meta+scene.snapshot+copy_log)
2
- // +各页 snapshot。模板行为一字不改(老权威),填充走共享 `fillTemplate`,资产走窄兼容对
3
- // (`pageAssets.ts`,D-28)。
2
+ // +各页 snapshot。模板行为一字不改(老权威),填充走共享 `fillTemplate`,资产走公共层产出
3
+ // (`memoPageAssets.ts`,#870 起替掉 #665 那份自持窄镜像)。
4
4
  import { fillTemplate as fillSharedTemplate } from 'base-paint';
5
5
  import { MemoRenderError } from './errors.js';
6
- import { MEMO_PAGE_CSS, MEMO_PAGE_RUNTIME } from './pageAssets.js';
6
+ import { memoPageAssets } from './memoPageAssets.js';
7
7
  import { assertHtmlSize, MEMO_HTML_MAX_BYTES } from './html.js';
8
8
  import { loadTemplate } from './templates.js';
9
9
  function occurred() {
@@ -110,7 +110,7 @@ export function wishPlanSnapshot(items, suggestDue, includeAll) {
110
110
  '心愿 ' + items.length + ' 个',
111
111
  '未排期 ' + unset + ' 个',
112
112
  '已排期 ' + (items.length - unset) + ' 个',
113
- '建议排期 ' + (suggestDue ?? '(未填)'),
113
+ '建议排期 ' + (suggestDue ?? '(未填)'),
114
114
  ],
115
115
  sections: [{ heading: '心愿清单', rows: items.map((w) => wishRow(w, true)) }],
116
116
  };
@@ -132,7 +132,7 @@ export function changeCategorySnapshot(items, from, to) {
132
132
  summary: [
133
133
  '候选笔记 ' + items.length + ' 条',
134
134
  '带子分类 ' + withSub + ' 条',
135
- '原分类 ' + (from ?? '(全部)') + ' → 目标 ' + (to ?? '(待选)'),
135
+ '原分类 ' + (from ?? '(全部)') + ' 改成 ' + (to ?? '(待选)'),
136
136
  ],
137
137
  sections: [
138
138
  {
@@ -187,15 +187,11 @@ export function initSnapshot(input) {
187
187
  sections,
188
188
  };
189
189
  }
190
- /** 整页填充:模板 + 共享 filler + 窄兼容资产 + 数据。失败一律转渲染错(出口 exit 5)。 */
190
+ /** 整页填充:模板 + 共享 filler + 公共层资产 + 数据。失败一律转渲染错(出口 exit 5)。 */
191
191
  export function fillMemoPage(template, payload) {
192
192
  const raw = loadTemplate(template);
193
193
  try {
194
- const out = fillSharedTemplate({
195
- template: raw,
196
- assets: { sharedCssText: MEMO_PAGE_CSS, sharedHelpersJs: MEMO_PAGE_RUNTIME },
197
- data: payload,
198
- });
194
+ const out = fillSharedTemplate({ template: raw, assets: memoPageAssets(), data: payload });
199
195
  assertHtmlSize(out.html, MEMO_HTML_MAX_BYTES);
200
196
  return out.html;
201
197
  }
@@ -206,11 +202,7 @@ export function fillMemoPage(template, payload) {
206
202
  /** 快照探针形状 `(templateText, data)`:与别家技能侧 `fillTemplate` 同形(`tooling/skill-html-snapshot.mjs` 直调)。 */
207
203
  export function fillTemplate(templateText, data) {
208
204
  try {
209
- const out = fillSharedTemplate({
210
- template: templateText,
211
- assets: { sharedCssText: MEMO_PAGE_CSS, sharedHelpersJs: MEMO_PAGE_RUNTIME },
212
- data,
213
- });
205
+ const out = fillSharedTemplate({ template: templateText, assets: memoPageAssets(), data });
214
206
  return out.html;
215
207
  }
216
208
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/render/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/render/pages.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,22 @@
1
1
  import { type PageSnapshot, type PageCopyLog } from './pages.js';
2
- /** 场景 id → 本族页(`mood` 域三条;本族其余 16 格由各自域票照此调用)。 */
3
- export declare const RECEIPT_SCENES: readonly ["memo_add_mood", "memo_delete_mood", "memo_update_mood"];
2
+ /** 场景 id → 本族页。逐域**追加**,不改别人的行(写集互斥):
3
+ * mood 域三条 ← #831;remind 域两条 ← #828;wish 域五条 ← #829;memo 域六条 ← #826;
4
+ * checkin 域三条 ← #830(本族 19 格至此齐)。 */
5
+ export declare const RECEIPT_SCENES: readonly ["memo_add_mood", "memo_delete_mood", "memo_update_mood", "memo_remind_with_note", "memo_remind_existing", "memo_add_wish", "memo_update_wish", "memo_delete_wish", "memo_complete_wish", "memo_wish_schedule", "memo_add_basic", "memo_update_basic", "memo_delete_basic", "memo_change_category_single", "memo_change_subcategory", "memo_batch_change_category", "memo_add_checkin", "memo_delete_checkin", "memo_update_checkin"];
4
6
  export type ReceiptScene = (typeof RECEIPT_SCENES)[number];
5
7
  /** 顶层分类徽章:分类名 + 可选子分类(子分类空即不显示)。 */
6
8
  export interface ReceiptBadges {
7
9
  readonly category: string;
8
10
  readonly sub?: string | null;
9
11
  }
10
- /** 回执三行(取自写命令回执:`src/wish/ensure.ts` 的 `WishReceipt`)。 */
12
+ /** 回执三行(取自写命令回执:`src/wish/ensure.ts` 的 `WishReceipt`)。
13
+ *
14
+ * 「对象」那一格的两半(#882 定形):`entityLabel` 写**对象是什么**(分类名/`批量改分类` 这类),
15
+ * `entityId` 写**对象的后半**,按类型分两种读法——
16
+ * - **数字=记录号**:族里给它加 `#`(`备忘 #18`);口径出处 `t869-机审读数.md` §二 允许清单第 3 条;
17
+ * - **字符串=域侧自述文案**:原样上屏,**不吃 `#`**(批量这类没有单条对象的场景走这一支,如 `1 条`)。
18
+ * 为什么按类型分:记录号在 `notes` 表里就是整数,域侧本来就用它区分「指向某一条」与「自述一条事实」;
19
+ * 族里按同一个区分渲染即可——不另立字段,也不让族去猜文案。 */
11
20
  export interface ReceiptRows {
12
21
  readonly entityLabel: string;
13
22
  readonly entityId: string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../src/render/receipt.ts"],"names":[],"mappings":"AAcA,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F,kDAAkD;AAClD,eAAO,MAAM,cAAc,oEAAqE,CAAC;AACjG,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAoCD;;;8DAG8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBxF"}
1
+ {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../src/render/receipt.ts"],"names":[],"mappings":"AAcA,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F;;sCAEsC;AACtC,eAAO,MAAM,cAAc,gbAoBjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;oCAOoC;AACpC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AA4DD;;;8DAG8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBxF"}