@heycys/gallery 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/THIRD-PARTY-NOTICES.md +2 -2
  2. package/browser/editor/components/align.mjs +58 -0
  3. package/browser/editor/components/code/index.mjs +1 -1
  4. package/browser/editor/components/columns/page.mjs +4 -4
  5. package/browser/editor/components/embed/index.mjs +2 -2
  6. package/browser/editor/components/embed/page.mjs +1 -1
  7. package/browser/editor/components/file/page.mjs +4 -4
  8. package/browser/editor/components/flowchart/add.mjs +7 -6
  9. package/browser/editor/components/flowchart/page.mjs +1 -1
  10. package/browser/editor/components/heading/index.mjs +7 -6
  11. package/browser/editor/components/icons.mjs +11 -0
  12. package/browser/editor/components/image/crop.mjs +6 -9
  13. package/browser/editor/components/image/index.mjs +2 -0
  14. package/browser/editor/components/image/page.mjs +172 -90
  15. package/browser/editor/components/installed/index.mjs +15 -4
  16. package/browser/editor/components/installed/page.mjs +103 -25
  17. package/browser/editor/components/installed/served.mjs +6 -5
  18. package/browser/editor/components/instances.mjs +18 -0
  19. package/browser/editor/components/list/page.mjs +3 -6
  20. package/browser/editor/components/media/icons.mjs +13 -8
  21. package/browser/editor/components/media/page.mjs +5 -3
  22. package/browser/editor/components/media/toolbar.mjs +12 -3
  23. package/browser/editor/components/paragraph/index.mjs +4 -3
  24. package/browser/editor/components/registry.mjs +30 -9
  25. package/browser/editor/components/table/index.mjs +61 -2
  26. package/browser/editor/components/table/page.mjs +1 -1
  27. package/browser/editor/page/after/index.mjs +288 -0
  28. package/browser/editor/page/align.mjs +91 -0
  29. package/browser/editor/page/annotate/card.mjs +3 -6
  30. package/browser/editor/page/autosave.mjs +310 -37
  31. package/browser/editor/page/beside.mjs +5 -6
  32. package/browser/editor/page/block-menu/index.mjs +6 -3
  33. package/browser/editor/page/blocks.mjs +3 -1
  34. package/browser/editor/page/board/client.mjs +57 -0
  35. package/browser/editor/page/board/hint.mjs +182 -0
  36. package/browser/editor/page/board/history.mjs +119 -0
  37. package/browser/editor/page/board/index.mjs +1059 -0
  38. package/browser/editor/page/board/motion.mjs +177 -0
  39. package/browser/editor/page/board/settings.mjs +210 -0
  40. package/browser/editor/page/caret.mjs +1 -1
  41. package/browser/editor/page/changes/bar.mjs +6 -14
  42. package/browser/editor/page/changes/index.mjs +2 -2
  43. package/browser/editor/page/clipboard/import/html.mjs +29 -6
  44. package/browser/editor/page/clipboard/import/inline.mjs +32 -0
  45. package/browser/editor/page/clipboard/import/markdown.mjs +58 -13
  46. package/browser/editor/page/clipboard/import/read.mjs +6 -1
  47. package/browser/editor/page/clipboard/import/to-blocks.mjs +44 -12
  48. package/browser/editor/page/clipboard/import/yuque.mjs +622 -0
  49. package/browser/editor/page/clipboard/index.mjs +133 -15
  50. package/browser/editor/page/clipboard/own/blocks.mjs +13 -14
  51. package/browser/editor/page/clipboard/own/chart-keys.mjs +41 -28
  52. package/browser/editor/page/clipboard/own/describe.mjs +6 -2
  53. package/browser/editor/page/clipboard/own/selection.mjs +1 -1
  54. package/browser/editor/page/columns/index.mjs +48 -46
  55. package/browser/editor/page/commit.mjs +80 -22
  56. package/browser/editor/page/conflicts.mjs +7 -7
  57. package/browser/editor/page/core.mjs +34 -16
  58. package/browser/editor/page/custom-page.mjs +110 -0
  59. package/browser/editor/page/editor.mjs +71 -17
  60. package/browser/editor/page/emoji-picker/styles.mjs +7 -12
  61. package/browser/editor/page/emoji-picker/upload.mjs +2 -2
  62. package/browser/editor/page/handle/index.mjs +5 -8
  63. package/browser/editor/page/history.mjs +41 -6
  64. package/browser/editor/page/insert/index.mjs +20 -22
  65. package/browser/editor/page/links/index.mjs +5 -3
  66. package/browser/editor/page/links/pages.mjs +27 -9
  67. package/browser/editor/page/look.mjs +54 -3
  68. package/browser/editor/page/margin.mjs +18 -3
  69. package/browser/editor/page/media-menu/index.mjs +6 -7
  70. package/browser/editor/page/menu.mjs +33 -14
  71. package/browser/editor/page/notices.mjs +2 -2
  72. package/browser/editor/page/page-objects.mjs +9 -2
  73. package/browser/editor/page/panel.mjs +4 -9
  74. package/browser/editor/page/present-links.mjs +15 -5
  75. package/browser/editor/page/present-shell.mjs +63 -0
  76. package/browser/editor/page/resize/index.mjs +42 -29
  77. package/browser/editor/page/selection/index.mjs +10 -2
  78. package/browser/editor/page/served.mjs +14 -0
  79. package/browser/editor/page/session.mjs +48 -4
  80. package/browser/editor/page/slash-menu/index.mjs +3 -3
  81. package/browser/editor/page/table/binding.mjs +87 -0
  82. package/browser/editor/page/table/cells.mjs +102 -46
  83. package/browser/editor/page/table/index.mjs +24 -9
  84. package/browser/editor/page/table/pictures.mjs +299 -0
  85. package/browser/editor/page/table/views.mjs +103 -0
  86. package/browser/editor/page/table/widths.mjs +82 -10
  87. package/browser/editor/page/text-select/index.mjs +26 -12
  88. package/browser/editor/page/todo-writes.mjs +75 -0
  89. package/browser/editor/page/typing/index.mjs +97 -15
  90. package/browser/editor/page/typing/leave.mjs +19 -5
  91. package/browser/editor/page/ui.mjs +13 -0
  92. package/browser/shared/block-packs.mjs +419 -0
  93. package/browser/shared/board-places.mjs +224 -0
  94. package/browser/shared/card-size.mjs +59 -0
  95. package/browser/shared/colors.mjs +3 -2
  96. package/browser/shared/component-catalog.mjs +330 -46
  97. package/browser/shared/component-source.mjs +39 -0
  98. package/browser/shared/components/heading.mjs +2 -1
  99. package/browser/shared/components/index.mjs +12 -3
  100. package/browser/shared/components/installed.mjs +35 -3
  101. package/browser/shared/components/page.mjs +20 -8
  102. package/browser/shared/components/paragraph.mjs +8 -1
  103. package/browser/shared/components/state.mjs +5 -1
  104. package/browser/shared/components/table.mjs +1 -0
  105. package/browser/shared/document-look.mjs +10 -5
  106. package/browser/shared/drafts.mjs +432 -0
  107. package/browser/shared/emoji/line-icons.mjs +37 -0
  108. package/browser/shared/extension-sidebar.mjs +126 -0
  109. package/browser/shared/extensions.mjs +79 -0
  110. package/browser/shared/file-table.mjs +101 -0
  111. package/browser/shared/http.mjs +9 -0
  112. package/browser/shared/i18n/en.mjs +330 -27
  113. package/browser/shared/json-layout.mjs +47 -0
  114. package/browser/shared/net-cache.mjs +133 -0
  115. package/browser/shared/net-keys.mjs +32 -0
  116. package/browser/shared/net-policy.mjs +177 -0
  117. package/browser/shared/outline-shape.mjs +128 -0
  118. package/browser/shared/outline.mjs +359 -67
  119. package/browser/shared/pack-manifest.mjs +88 -0
  120. package/browser/shared/page-address.mjs +6 -3
  121. package/browser/shared/page-cards.mjs +308 -0
  122. package/browser/shared/page-links.mjs +69 -6
  123. package/browser/shared/pages.mjs +500 -0
  124. package/browser/shared/paths.mjs +6 -0
  125. package/browser/shared/pinyin.mjs +92 -0
  126. package/browser/shared/present-step.mjs +17 -0
  127. package/browser/shared/preview-server.mjs +3 -7
  128. package/browser/shared/session.mjs +8 -1
  129. package/browser/shared/shipped-blocks.mjs +299 -0
  130. package/browser/shared/sidebar-head.mjs +70 -0
  131. package/browser/shared/table-chart.mjs +33 -1
  132. package/browser/shared/todos.mjs +83 -0
  133. package/browser/shared/user-directory.mjs +24 -0
  134. package/browser/shared/versions.mjs +14 -0
  135. package/browser/shared/web-links.mjs +139 -0
  136. package/browser/shared/workspace-columns.mjs +120 -0
  137. package/browser/shared/workspace-name.mjs +154 -0
  138. package/browser/shared/workspace-query.mjs +125 -0
  139. package/browser/shared/workspace-registry.mjs +272 -0
  140. package/browser/shared/workspace.mjs +171 -20
  141. package/dist/chunk-2OHANJ6Q.mjs +2 -0
  142. package/dist/chunk-3MBRL2PM.mjs +16 -0
  143. package/dist/chunk-4OKWZY5E.mjs +2 -0
  144. package/dist/chunk-4OZWXZE5.mjs +5 -0
  145. package/dist/chunk-5K44HLTZ.mjs +2 -0
  146. package/dist/{chunk-5ZKJ3H4P.mjs → chunk-5XA2ZBAE.mjs} +3 -3
  147. package/dist/{chunk-4FS7Z7WR.mjs → chunk-67N2QJYT.mjs} +1 -1
  148. package/dist/chunk-6KBYRA2C.mjs +2 -0
  149. package/dist/chunk-6N3PX4XX.mjs +8 -0
  150. package/dist/{chunk-V5JTW2LH.mjs → chunk-6QBHU4DF.mjs} +1 -1
  151. package/dist/chunk-7JDX4E65.mjs +13 -0
  152. package/dist/chunk-7M2BQQGZ.mjs +2 -0
  153. package/dist/chunk-7OG26PGF.mjs +2 -0
  154. package/dist/chunk-AHN3NFKJ.mjs +3 -0
  155. package/dist/chunk-ALZ6ZENZ.mjs +3 -0
  156. package/dist/chunk-AR5D57ZD.mjs +170 -0
  157. package/dist/{chunk-W3BGBJQW.mjs → chunk-BFJGHSQN.mjs} +1 -1
  158. package/dist/{chunk-LS4F7JUM.mjs → chunk-BZ5RAF7L.mjs} +1 -1
  159. package/dist/chunk-CMA72MAG.mjs +2 -0
  160. package/dist/{chunk-LCTHTZIL.mjs → chunk-DAZL73VK.mjs} +91 -91
  161. package/dist/{chunk-Y6RLRPG3.mjs → chunk-DJISHPUL.mjs} +1 -1
  162. package/dist/chunk-DR73Y2UJ.mjs +3 -0
  163. package/dist/{chunk-FDLXYYG4.mjs → chunk-EAIFITAV.mjs} +1 -1
  164. package/dist/{chunk-TMYZB6AV.mjs → chunk-EKNHM3P4.mjs} +1 -1
  165. package/dist/chunk-EP25HDAJ.mjs +2 -0
  166. package/dist/{chunk-GB5SOYQJ.mjs → chunk-ERLAIBOA.mjs} +2 -2
  167. package/dist/chunk-EURLTOTZ.mjs +4 -0
  168. package/dist/chunk-F4ZA6JRZ.mjs +3 -0
  169. package/dist/chunk-F6HVDZR4.mjs +2 -0
  170. package/dist/chunk-FDMAXMQA.mjs +2 -0
  171. package/dist/chunk-FETSREUN.mjs +5 -0
  172. package/dist/chunk-GHOYKMQ3.mjs +4 -0
  173. package/dist/{chunk-2B5E4CDJ.mjs → chunk-GPIWQ4X4.mjs} +1 -1
  174. package/dist/chunk-HDWTZ763.mjs +12 -0
  175. package/dist/chunk-HPOI4ZX7.mjs +6 -0
  176. package/dist/{chunk-BGGDRNYQ.mjs → chunk-HXG7EOPJ.mjs} +1 -1
  177. package/dist/chunk-IA4PSIMD.mjs +2 -0
  178. package/dist/{chunk-E7LWZRXY.mjs → chunk-ITOH5EGO.mjs} +1 -1
  179. package/dist/chunk-IV64FFI4.mjs +2 -0
  180. package/dist/chunk-J43Z6LSS.mjs +2 -0
  181. package/dist/chunk-J5PUIV3Y.mjs +4 -0
  182. package/dist/chunk-JA7G53PC.mjs +2 -0
  183. package/dist/chunk-JEUK3ZO7.mjs +2 -0
  184. package/dist/chunk-JLTZF4LA.mjs +2 -0
  185. package/dist/chunk-JZT7I2OJ.mjs +2 -0
  186. package/dist/chunk-K5XATEOO.mjs +2 -0
  187. package/dist/chunk-L2SUIS5S.mjs +2 -0
  188. package/dist/chunk-L7UP52JO.mjs +2 -0
  189. package/dist/chunk-LM4XFQHZ.mjs +2 -0
  190. package/dist/chunk-MN7BZL4R.mjs +2 -0
  191. package/dist/chunk-MTYYHM2G.mjs +15 -0
  192. package/dist/chunk-MXUBKDRO.mjs +15 -0
  193. package/dist/chunk-NAMN3RAF.mjs +2 -0
  194. package/dist/{chunk-SYGN7GLU.mjs → chunk-OEXWRJME.mjs} +1 -1
  195. package/dist/chunk-OFHXGWOX.mjs +2 -0
  196. package/dist/chunk-ORID3AE7.mjs +166 -0
  197. package/dist/chunk-PAREWQGB.mjs +4 -0
  198. package/dist/chunk-PGDE24N5.mjs +2 -0
  199. package/dist/chunk-POTA2FV4.mjs +2 -0
  200. package/dist/chunk-PUOQ65NC.mjs +2 -0
  201. package/dist/chunk-Q4UEPUWF.mjs +2 -0
  202. package/dist/chunk-QE5RG76S.mjs +549 -0
  203. package/dist/chunk-R2ZDLJYT.mjs +10 -0
  204. package/dist/{chunk-7DTINW6U.mjs → chunk-SQ6Y2ZMA.mjs} +2 -2
  205. package/dist/chunk-SWUTTZCN.mjs +2 -0
  206. package/dist/chunk-TANZRINB.mjs +2 -0
  207. package/dist/chunk-TR7TWGHB.mjs +2 -0
  208. package/dist/chunk-U5XL7D6A.mjs +3 -0
  209. package/dist/{chunk-XNROSH2T.mjs → chunk-U7NZI6N4.mjs} +2 -2
  210. package/dist/chunk-UGWMMEJ5.mjs +15 -0
  211. package/dist/chunk-UJQJKNGK.mjs +2 -0
  212. package/dist/chunk-UYVCQK3H.mjs +22 -0
  213. package/dist/chunk-VFX2KNHP.mjs +4 -0
  214. package/dist/chunk-VS7JIGJW.mjs +24 -0
  215. package/dist/chunk-W7665ZEC.mjs +6 -0
  216. package/dist/chunk-WQDQWCX5.mjs +2 -0
  217. package/dist/chunk-YI43RG4P.mjs +2 -0
  218. package/dist/chunk-YLPSMDIS.mjs +5 -0
  219. package/dist/chunk-YNAWBAYN.mjs +3 -0
  220. package/dist/chunk-YROX2O22.mjs +2 -0
  221. package/dist/chunk-ZDLPUOAG.mjs +6 -0
  222. package/dist/{chunk-IVDLMMBD.mjs → chunk-ZHEHPMBK.mjs} +1 -1
  223. package/dist/chunk-ZQS6H473.mjs +16 -0
  224. package/dist/chunk-ZTHICSSF.mjs +2 -0
  225. package/dist/chunk-ZWWC4KLF.mjs +20 -0
  226. package/dist/cli.mjs +1 -1
  227. package/dist/server.mjs +1 -1
  228. package/dist/{chunk-U6KNPJPR.mjs → update-fetch.mjs} +1 -1
  229. package/dist/worker.mjs +1 -1
  230. package/kit/board.css +95 -0
  231. package/kit/board.js +250 -0
  232. package/kit/charts.js +5 -71
  233. package/kit/code.js +17 -17
  234. package/kit/report.css +335 -18
  235. package/kit/runtime.js +1638 -125
  236. package/kit/state.js +10 -1
  237. package/kit/tables.js +130 -43
  238. package/kit/ui.js +79 -35
  239. package/package.json +2 -1
  240. package/packs/gallery/card/component.json +14 -0
  241. package/packs/gallery/card/example.html +10 -0
  242. package/packs/gallery/card/preview.svg +1 -0
  243. package/packs/gallery/card/style.css +6 -0
  244. package/packs/gallery/card/template.html +6 -0
  245. package/packs/gallery/card/writing.md +14 -0
  246. package/packs/gallery/chart-card/component.json +15 -0
  247. package/packs/gallery/chart-card/example.html +14 -0
  248. package/packs/gallery/chart-card/kit.js +130 -0
  249. package/packs/gallery/chart-card/preview.svg +1 -0
  250. package/packs/gallery/chart-card/style.css +42 -0
  251. package/packs/gallery/chart-card/template.html +13 -0
  252. package/packs/gallery/chart-card/writing.md +20 -0
  253. package/packs/gallery/chart-view/component.json +20 -0
  254. package/packs/gallery/chart-view/example.html +13 -0
  255. package/packs/gallery/chart-view/kit.js +355 -0
  256. package/packs/gallery/chart-view/preview.svg +1 -0
  257. package/packs/gallery/chart-view/style.css +94 -0
  258. package/packs/gallery/chart-view/template.html +3 -0
  259. package/packs/gallery/chart-view/writing.md +22 -0
  260. package/packs/gallery/countdown/component.json +18 -0
  261. package/packs/gallery/countdown/example.html +3 -0
  262. package/packs/gallery/countdown/kit.js +216 -0
  263. package/packs/gallery/countdown/preview.svg +1 -0
  264. package/packs/gallery/countdown/style.css +118 -0
  265. package/packs/gallery/countdown/template.html +3 -0
  266. package/packs/gallery/countdown/writing.md +22 -0
  267. package/packs/gallery/habit/component.json +14 -0
  268. package/packs/gallery/habit/example.html +3 -0
  269. package/packs/gallery/habit/kit.js +334 -0
  270. package/packs/gallery/habit/preview.svg +1 -0
  271. package/packs/gallery/habit/style.css +174 -0
  272. package/packs/gallery/habit/template.html +3 -0
  273. package/packs/gallery/habit/writing.md +21 -0
  274. package/packs/gallery/heatmap/component.json +18 -0
  275. package/packs/gallery/heatmap/example.html +3 -0
  276. package/packs/gallery/heatmap/kit.js +513 -0
  277. package/packs/gallery/heatmap/preview.svg +1 -0
  278. package/packs/gallery/heatmap/style.css +189 -0
  279. package/packs/gallery/heatmap/template.html +3 -0
  280. package/packs/gallery/heatmap/writing.md +21 -0
  281. package/packs/gallery/kanban/component.json +18 -0
  282. package/packs/gallery/kanban/example.html +12 -0
  283. package/packs/gallery/kanban/kit.js +540 -0
  284. package/packs/gallery/kanban/preview.svg +1 -0
  285. package/packs/gallery/kanban/style.css +212 -0
  286. package/packs/gallery/kanban/template.html +3 -0
  287. package/packs/gallery/kanban/writing.md +20 -0
  288. package/packs/gallery/metric/component.json +22 -0
  289. package/packs/gallery/metric/example.html +15 -0
  290. package/packs/gallery/metric/kit.js +248 -0
  291. package/packs/gallery/metric/preview.svg +1 -0
  292. package/packs/gallery/metric/style.css +92 -0
  293. package/packs/gallery/metric/template.html +3 -0
  294. package/packs/gallery/metric/writing.md +23 -0
  295. package/packs/gallery/note/component.json +14 -0
  296. package/packs/gallery/note/example.html +3 -0
  297. package/packs/gallery/note/kit.js +129 -0
  298. package/packs/gallery/note/preview.svg +1 -0
  299. package/packs/gallery/note/style.css +97 -0
  300. package/packs/gallery/note/template.html +3 -0
  301. package/packs/gallery/note/writing.md +18 -0
  302. package/packs/gallery/pack.json +8 -0
  303. package/packs/gallery/recent/component.json +13 -0
  304. package/packs/gallery/recent/example.html +1 -0
  305. package/packs/gallery/recent/kit.js +293 -0
  306. package/packs/gallery/recent/preview.svg +1 -0
  307. package/packs/gallery/recent/style.css +85 -0
  308. package/packs/gallery/recent/template.html +1 -0
  309. package/packs/gallery/recent/writing.md +15 -0
  310. package/packs/gallery/static/component.json +13 -0
  311. package/packs/gallery/static/example.html +11 -0
  312. package/packs/gallery/static/preview.svg +1 -0
  313. package/packs/gallery/static/style.css +171 -0
  314. package/packs/gallery/static/template.html +1 -0
  315. package/packs/gallery/static/writing.md +18 -0
  316. package/packs/gallery/stats/component.json +13 -0
  317. package/packs/gallery/stats/example.html +1 -0
  318. package/packs/gallery/stats/kit.js +347 -0
  319. package/packs/gallery/stats/preview.svg +1 -0
  320. package/packs/gallery/stats/style.css +73 -0
  321. package/packs/gallery/stats/template.html +1 -0
  322. package/packs/gallery/stats/writing.md +11 -0
  323. package/packs/gallery/today/component.json +12 -0
  324. package/packs/gallery/today/example.html +1 -0
  325. package/packs/gallery/today/kit.js +220 -0
  326. package/packs/gallery/today/preview.svg +1 -0
  327. package/packs/gallery/today/style.css +149 -0
  328. package/packs/gallery/today/template.html +1 -0
  329. package/packs/gallery/today/writing.md +14 -0
  330. package/packs/gallery/todos/component.json +19 -0
  331. package/packs/gallery/todos/example.html +3 -0
  332. package/packs/gallery/todos/kit.js +489 -0
  333. package/packs/gallery/todos/preview.svg +1 -0
  334. package/packs/gallery/todos/style.css +214 -0
  335. package/packs/gallery/todos/template.html +3 -0
  336. package/packs/gallery/todos/writing.md +30 -0
  337. package/packs/gallery/weather/component.json +19 -0
  338. package/packs/gallery/weather/example.html +3 -0
  339. package/packs/gallery/weather/kit.js +387 -0
  340. package/packs/gallery/weather/preview.svg +1 -0
  341. package/packs/gallery/weather/style.css +140 -0
  342. package/packs/gallery/weather/template.html +3 -0
  343. package/packs/gallery/weather/writing.md +26 -0
  344. package/packs/gallery-soft/countdown/component.json +18 -0
  345. package/packs/gallery-soft/countdown/example.html +3 -0
  346. package/packs/gallery-soft/countdown/kit.js +206 -0
  347. package/packs/gallery-soft/countdown/preview.svg +1 -0
  348. package/packs/gallery-soft/countdown/style.css +211 -0
  349. package/packs/gallery-soft/countdown/template.html +3 -0
  350. package/packs/gallery-soft/countdown/writing.md +24 -0
  351. package/packs/gallery-soft/habit/component.json +14 -0
  352. package/packs/gallery-soft/habit/example.html +3 -0
  353. package/packs/gallery-soft/habit/kit.js +366 -0
  354. package/packs/gallery-soft/habit/preview.svg +1 -0
  355. package/packs/gallery-soft/habit/style.css +251 -0
  356. package/packs/gallery-soft/habit/template.html +3 -0
  357. package/packs/gallery-soft/habit/writing.md +23 -0
  358. package/packs/gallery-soft/heatmap/component.json +18 -0
  359. package/packs/gallery-soft/heatmap/example.html +3 -0
  360. package/packs/gallery-soft/heatmap/kit.js +498 -0
  361. package/packs/gallery-soft/heatmap/preview.svg +1 -0
  362. package/packs/gallery-soft/heatmap/style.css +181 -0
  363. package/packs/gallery-soft/heatmap/template.html +3 -0
  364. package/packs/gallery-soft/heatmap/writing.md +23 -0
  365. package/packs/gallery-soft/note/component.json +14 -0
  366. package/packs/gallery-soft/note/example.html +3 -0
  367. package/packs/gallery-soft/note/kit.js +162 -0
  368. package/packs/gallery-soft/note/preview.svg +1 -0
  369. package/packs/gallery-soft/note/style.css +148 -0
  370. package/packs/gallery-soft/note/template.html +3 -0
  371. package/packs/gallery-soft/note/writing.md +20 -0
  372. package/packs/gallery-soft/pack.json +8 -0
  373. package/packs/gallery-soft/recent/component.json +13 -0
  374. package/packs/gallery-soft/recent/example.html +1 -0
  375. package/packs/gallery-soft/recent/kit.js +335 -0
  376. package/packs/gallery-soft/recent/preview.svg +1 -0
  377. package/packs/gallery-soft/recent/style.css +160 -0
  378. package/packs/gallery-soft/recent/template.html +1 -0
  379. package/packs/gallery-soft/recent/writing.md +17 -0
  380. package/packs/gallery-soft/static/component.json +13 -0
  381. package/packs/gallery-soft/static/example.html +12 -0
  382. package/packs/gallery-soft/static/preview.svg +1 -0
  383. package/packs/gallery-soft/static/style.css +186 -0
  384. package/packs/gallery-soft/static/template.html +1 -0
  385. package/packs/gallery-soft/static/writing.md +20 -0
  386. package/packs/gallery-soft/stats/component.json +13 -0
  387. package/packs/gallery-soft/stats/example.html +1 -0
  388. package/packs/gallery-soft/stats/kit.js +341 -0
  389. package/packs/gallery-soft/stats/preview.svg +1 -0
  390. package/packs/gallery-soft/stats/style.css +119 -0
  391. package/packs/gallery-soft/stats/template.html +1 -0
  392. package/packs/gallery-soft/stats/writing.md +13 -0
  393. package/packs/gallery-soft/today/component.json +12 -0
  394. package/packs/gallery-soft/today/example.html +1 -0
  395. package/packs/gallery-soft/today/kit.js +222 -0
  396. package/packs/gallery-soft/today/preview.svg +1 -0
  397. package/packs/gallery-soft/today/style.css +178 -0
  398. package/packs/gallery-soft/today/template.html +1 -0
  399. package/packs/gallery-soft/today/writing.md +16 -0
  400. package/packs/gallery-soft/todos/component.json +19 -0
  401. package/packs/gallery-soft/todos/example.html +3 -0
  402. package/packs/gallery-soft/todos/kit.js +527 -0
  403. package/packs/gallery-soft/todos/preview.svg +1 -0
  404. package/packs/gallery-soft/todos/style.css +212 -0
  405. package/packs/gallery-soft/todos/template.html +3 -0
  406. package/packs/gallery-soft/todos/writing.md +32 -0
  407. package/packs/gallery-soft/weather/component.json +19 -0
  408. package/packs/gallery-soft/weather/example.html +3 -0
  409. package/packs/gallery-soft/weather/kit.js +411 -0
  410. package/packs/gallery-soft/weather/preview.svg +1 -0
  411. package/packs/gallery-soft/weather/style.css +185 -0
  412. package/packs/gallery-soft/weather/template.html +3 -0
  413. package/packs/gallery-soft/weather/writing.md +28 -0
  414. package/release.json +12 -10
  415. package/sdk/doc-kit.d.ts +396 -5
  416. package/sdk/doc-state.d.ts +2 -0
  417. package/skill/SKILL.md +56 -23
  418. package/skill/references/block-script.md +140 -0
  419. package/skill/references/building-blocks.md +257 -0
  420. package/skill/references/extensions.md +59 -0
  421. package/skill/references/pages-and-data.md +225 -0
  422. package/skill/references/writing-html.md +8 -4
  423. package/skill/sdk/doc-kit.d.ts +396 -5
  424. package/skill/sdk/doc-state.d.ts +2 -0
  425. package/web/assets/index-BM_K-Auu.css +1 -0
  426. package/web/assets/index-DRslOBiv.js +15 -0
  427. package/web/index.html +2 -2
  428. package/dist/chunk-3HIRPVLU.mjs +0 -2
  429. package/dist/chunk-5MHMDLZD.mjs +0 -4
  430. package/dist/chunk-64K7IPLO.mjs +0 -255
  431. package/dist/chunk-6QXGZM36.mjs +0 -8
  432. package/dist/chunk-6RGJOMJP.mjs +0 -16
  433. package/dist/chunk-AJ73XJF3.mjs +0 -2
  434. package/dist/chunk-AUZGSZJH.mjs +0 -13
  435. package/dist/chunk-BFE45AKL.mjs +0 -2
  436. package/dist/chunk-BXO2ZY5P.mjs +0 -2
  437. package/dist/chunk-CEH4MRCC.mjs +0 -2
  438. package/dist/chunk-CY2FNNAB.mjs +0 -16
  439. package/dist/chunk-DFUDV4LX.mjs +0 -2
  440. package/dist/chunk-DKXG4XDG.mjs +0 -2
  441. package/dist/chunk-EZQ34M3F.mjs +0 -124
  442. package/dist/chunk-EZY3WC6Z.mjs +0 -15
  443. package/dist/chunk-FUKQNOQS.mjs +0 -9
  444. package/dist/chunk-JPOSLGOC.mjs +0 -6
  445. package/dist/chunk-JVHHHGEA.mjs +0 -3
  446. package/dist/chunk-L3QKH4OK.mjs +0 -26
  447. package/dist/chunk-LAE5NQ4B.mjs +0 -2
  448. package/dist/chunk-LEF6DRCK.mjs +0 -59
  449. package/dist/chunk-NO5NJCHO.mjs +0 -2
  450. package/dist/chunk-NQPVAU63.mjs +0 -2
  451. package/dist/chunk-NSKUTQ5J.mjs +0 -5
  452. package/dist/chunk-O35FIXRB.mjs +0 -2
  453. package/dist/chunk-P2CAZPDP.mjs +0 -3
  454. package/dist/chunk-PL6GHLGD.mjs +0 -15
  455. package/dist/chunk-QJIR2BLP.mjs +0 -6
  456. package/dist/chunk-QUPLVPB2.mjs +0 -7
  457. package/dist/chunk-R7BNENLY.mjs +0 -4
  458. package/dist/chunk-S6O4UHLC.mjs +0 -2
  459. package/dist/chunk-SGJWQKEI.mjs +0 -2
  460. package/dist/chunk-TX6JH7TR.mjs +0 -2
  461. package/dist/chunk-TYK6VNAB.mjs +0 -10
  462. package/dist/chunk-UALRNVSE.mjs +0 -4
  463. package/dist/chunk-V3HXVQEM.mjs +0 -2
  464. package/dist/chunk-V5VXUJKG.mjs +0 -2
  465. package/dist/chunk-VBXMADMP.mjs +0 -2
  466. package/dist/chunk-VNV55RUA.mjs +0 -2
  467. package/dist/chunk-VPD2PS35.mjs +0 -2
  468. package/dist/chunk-W4VKN3GF.mjs +0 -7
  469. package/dist/chunk-W5BXXPDJ.mjs +0 -3
  470. package/dist/chunk-XUNHRCOG.mjs +0 -6
  471. package/skill/references/building-components.md +0 -367
  472. package/web/assets/index-Bh74DfsV.css +0 -1
  473. package/web/assets/index-UW0RyFFt.js +0 -13
@@ -0,0 +1,214 @@
1
+ /* Every selector starts at the instance and goes down a step at a time (>), so that nothing here
2
+ reaches the rest of the page. The pack's design B, in the kit's card tokens, a grid laid out by the
3
+ card's cells (the face's data-layout): the head (the chip, a checked list, 我的待办 and its quiet meta),
4
+ its end clear of the card's grip; how many are done (on a 4 × 4 card a line, 已完成 19 / 27 and the
5
+ percent at its end, over a row of ticks, one an item, done in the accent; on a 4 × 6 a ring of 64px, its
6
+ percent in the middle, beside the open count large and 已完成 under it; on an 8 × 4 a ring of 96px at the
7
+ left over a key of three rows); and the list, scrolling, faded at its foot while there is more: the
8
+ groups small and gray (the document's icon, its title, its open count fainter), each item a box of 15px
9
+ (the accent's, ticked, once done), its words (struck through and faint once done) and, under them (at
10
+ their right on a wide card), the headings it stands under, faint. A card with no item to show is the
11
+ cards' empty face in the middle: a soft square with the list's picture (or, all of them done, a full
12
+ green ring with a tick), a line and what to do. Light and dark. */
13
+ [data-doc-component="gallery/todos"] {
14
+ --gallery-todos-box: light-dark(rgb(55 53 47 / 30%), rgb(255 255 255 / 30%));
15
+ font-family: var(--gallery-font);
16
+ font-size: 13px;
17
+ line-height: 1.5;
18
+ color: var(--gallery-text);
19
+ > .gallery-todos-face {
20
+ position: relative;
21
+ display: grid;
22
+ grid-template-columns: minmax(0, 1fr);
23
+ grid-template-rows: 20px auto minmax(0, 1fr);
24
+ grid-template-areas: "head" "summary" "list";
25
+ box-sizing: border-box;
26
+ min-height: 0;
27
+ }
28
+ > .gallery-todos-face > .gallery-todos-head {
29
+ grid-area: head;
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 8px;
33
+ min-width: 0;
34
+ padding-inline-end: var(--gallery-grip-room, 0px);
35
+ }
36
+ > .gallery-todos-face > .gallery-todos-head > .gallery-todos-chip {
37
+ flex: none;
38
+ display: grid;
39
+ place-items: center;
40
+ width: var(--gallery-chip-size);
41
+ height: var(--gallery-chip-size);
42
+ border-radius: var(--gallery-chip-radius);
43
+ background: var(--gallery-fill);
44
+ color: var(--gallery-muted);
45
+ }
46
+ > .gallery-todos-face > .gallery-todos-head > .gallery-todos-chip > svg { display: block; width: var(--gallery-chip-icon); height: var(--gallery-chip-icon); }
47
+ > .gallery-todos-face > .gallery-todos-head > .gallery-todos-title { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--gallery-title-size); line-height: var(--gallery-title-line); font-weight: 600; color: var(--gallery-text); }
48
+ > .gallery-todos-face > .gallery-todos-head > .gallery-todos-count { flex: none; font-size: var(--gallery-meta-size); color: var(--gallery-faint); white-space: nowrap; font-variant-numeric: tabular-nums; }
49
+
50
+ /* How many are done: the parts each layout shows. */
51
+ > .gallery-todos-face > .gallery-todos-summary { grid-area: summary; margin-top: 12px; min-width: 0; }
52
+ > .gallery-todos-face > .gallery-todos-summary[hidden] { display: none; }
53
+ > .gallery-todos-face > .gallery-todos-summary > :is(.gallery-todos-ring, .gallery-todos-big, .gallery-todos-key) { display: none; }
54
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-progress { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 6px; font-size: 12px; line-height: 16px; color: var(--gallery-muted); }
55
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-progress b { font-weight: 600; color: var(--gallery-text); }
56
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-progress > .gallery-todos-share { font-size: 11.5px; color: var(--gallery-faint); font-variant-numeric: tabular-nums; }
57
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ticks { display: flex; gap: 2px; height: 6px; }
58
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ticks > .gallery-todos-tick { flex: 1; border-radius: 2px; background: var(--gallery-track); }
59
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ticks > .gallery-todos-on { background: var(--gallery-accent); }
60
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring { position: relative; flex: none; }
61
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > svg { display: block; transform: rotate(-90deg); }
62
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > svg > circle { fill: none; }
63
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > svg > .gallery-todos-track { stroke: var(--gallery-track); }
64
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > svg > .gallery-todos-arc { stroke: var(--gallery-accent); stroke-linecap: round; }
65
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > .gallery-todos-percent {
66
+ position: absolute;
67
+ inset: 0;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ font-size: 17px;
72
+ line-height: 1;
73
+ font-weight: var(--gallery-numeral-weight);
74
+ letter-spacing: var(--gallery-numeral-tracking);
75
+ font-variant-numeric: lining-nums;
76
+ color: var(--gallery-text-strong);
77
+ }
78
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-ring > .gallery-todos-percent > .gallery-todos-percent-value > .gallery-todos-percent-sign { margin-left: 1px; font-size: 11px; font-weight: 500; letter-spacing: 0; color: var(--gallery-muted); }
79
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-big > p { margin: 0; }
80
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-big > .gallery-todos-big-line { display: flex; align-items: baseline; }
81
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-big > .gallery-todos-big-line > .gallery-todos-open {
82
+ font-size: 30px;
83
+ line-height: 1;
84
+ font-weight: var(--gallery-numeral-weight);
85
+ letter-spacing: var(--gallery-numeral-tracking);
86
+ font-variant-numeric: lining-nums;
87
+ color: var(--gallery-text-strong);
88
+ }
89
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-big > .gallery-todos-big-line > .gallery-todos-open-unit { margin-left: 3px; font-size: var(--gallery-unit); font-weight: 500; color: var(--gallery-muted); }
90
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-big > .gallery-todos-big-done { margin-top: 6px; font-size: 12px; line-height: 16px; color: var(--gallery-muted); }
91
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key { flex-direction: column; gap: 6px; margin: 16px 0 0; }
92
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row { display: flex; align-items: center; gap: 8px; font-size: 12px; line-height: 16px; color: var(--gallery-muted); }
93
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--gallery-accent); }
94
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row[data-kind="left"]::before { background: var(--gallery-track); }
95
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row[data-kind="from"]::before { background: transparent; box-shadow: inset 0 0 0 1.5px var(--gallery-faintest); }
96
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row > dt { margin: 0; }
97
+ > .gallery-todos-face > .gallery-todos-summary > .gallery-todos-key > .gallery-todos-key-row > dd { margin: 0 0 0 auto; font-weight: 600; color: var(--gallery-text); font-variant-numeric: tabular-nums; }
98
+
99
+ /* The list: groups and items, scrolling, faded at its foot while there is more. */
100
+ > .gallery-todos-face > .gallery-todos-list { grid-area: list; min-height: 0; margin-top: 8px; overflow: auto; scrollbar-width: none; }
101
+ > .gallery-todos-face > .gallery-todos-list[hidden] { display: none; }
102
+ > .gallery-todos-face > .gallery-todos-list[data-more] {
103
+ -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent);
104
+ mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent);
105
+ }
106
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head { display: flex; align-items: center; gap: 4px; min-width: 0; margin: 10px 0 2px; font-size: 11.5px; line-height: 18px; font-weight: 600; color: var(--gallery-muted); }
107
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc {
108
+ display: inline-flex;
109
+ align-items: center;
110
+ gap: 4px;
111
+ min-width: 0;
112
+ padding: 0;
113
+ border: 0;
114
+ border-radius: 4px;
115
+ background: none;
116
+ font: inherit;
117
+ color: inherit;
118
+ white-space: nowrap;
119
+ overflow: hidden;
120
+ text-overflow: ellipsis;
121
+ cursor: pointer;
122
+ }
123
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc:hover { color: var(--gallery-text); }
124
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-group-count { flex: none; margin-left: 2px; font-weight: 400; color: var(--gallery-faint); }
125
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc > .gallery-todos-icon { flex: none; display: grid; place-items: center; width: 13px; height: 13px; margin-right: 2px; }
126
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc > .gallery-todos-icon > img { display: block; width: 12px; height: 12px; }
127
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc > .gallery-todos-glyph::before { content: ""; width: 12px; height: 12px; background: var(--gallery-faint); -webkit-mask: var(--gallery-todos-icon) center / contain no-repeat; mask: var(--gallery-todos-icon) center / contain no-repeat; }
128
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-group-head > .gallery-todos-doc > .gallery-todos-icon:empty::before {
129
+ content: "";
130
+ width: 12px;
131
+ height: 12px;
132
+ background: var(--gallery-faint);
133
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h6.5L18 8v11a1.5 1.5 0 0 1-1.5 1.5h-9.5A1.5 1.5 0 0 1 5.5 19V5A1.5 1.5 0 0 1 7 3.5z'/%3E%3Cpath d='M13.5 3.5V8H18'/%3E%3C/svg%3E") center / contain no-repeat;
134
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h6.5L18 8v11a1.5 1.5 0 0 1-1.5 1.5h-9.5A1.5 1.5 0 0 1 5.5 19V5A1.5 1.5 0 0 1 7 3.5z'/%3E%3Cpath d='M13.5 3.5V8H18'/%3E%3C/svg%3E") center / contain no-repeat;
135
+ }
136
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items { margin: 0; padding: 0; list-style: none; }
137
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item { display: flex; align-items: flex-start; gap: 9px; padding: 4px 0; }
138
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-check { flex: none; margin: 2px 0 0; padding: 0; border: 0; background: none; cursor: pointer; }
139
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item .gallery-todos-box {
140
+ display: grid;
141
+ place-items: center;
142
+ flex: none;
143
+ box-sizing: border-box;
144
+ width: 15px;
145
+ height: 15px;
146
+ border-radius: 4px;
147
+ box-shadow: inset 0 0 0 1.5px var(--gallery-todos-box);
148
+ color: #fff;
149
+ }
150
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-box { margin-top: 2px; }
151
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-check:hover > .gallery-todos-box { box-shadow: inset 0 0 0 1.5px var(--gallery-accent); }
152
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item .gallery-todos-box > svg { display: block; width: 11px; height: 11px; }
153
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-done .gallery-todos-box { background: var(--gallery-accent); box-shadow: none; }
154
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo {
155
+ display: flex;
156
+ flex-direction: column;
157
+ flex: 1;
158
+ min-width: 0;
159
+ padding: 0;
160
+ border: 0;
161
+ border-radius: 4px;
162
+ background: none;
163
+ font: inherit;
164
+ color: inherit;
165
+ text-align: start;
166
+ cursor: pointer;
167
+ }
168
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo:hover { background: var(--gallery-hover); box-shadow: 0 0 0 3px var(--gallery-hover); }
169
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo > .gallery-todos-text { font-size: 13px; line-height: 19px; color: var(--gallery-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
170
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo > .gallery-todos-path { font-size: 11.5px; line-height: 15px; color: var(--gallery-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
171
+ > .gallery-todos-face > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-done > .gallery-todos-todo > .gallery-todos-text { color: var(--gallery-faint); text-decoration: line-through; text-decoration-color: var(--gallery-faintest); }
172
+
173
+ /* Nothing to list: the cards' empty face in the middle. */
174
+ > .gallery-todos-face > .gallery-todos-empty { grid-area: list; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 0; text-align: center; }
175
+ > .gallery-todos-face > .gallery-todos-empty[hidden] { display: none; }
176
+ > .gallery-todos-face > .gallery-todos-empty > p { margin: 0; }
177
+ > .gallery-todos-face > .gallery-todos-empty > .gallery-todos-line { font-size: 13.5px; line-height: 20px; font-weight: 600; color: var(--gallery-text); }
178
+ > .gallery-todos-face > .gallery-todos-empty > .gallery-todos-hint { font-size: 12px; line-height: 18px; color: var(--gallery-faint); }
179
+ > .gallery-todos-face > .gallery-todos-empty > .gallery-todos-empty-picture { display: grid; place-items: center; width: 28px; height: 28px; margin-bottom: 6px; border-radius: 8px; background: var(--gallery-fill); color: var(--gallery-faint); }
180
+ > .gallery-todos-face > .gallery-todos-empty > .gallery-todos-empty-picture > svg { width: 16px; height: 16px; }
181
+ > .gallery-todos-face > .gallery-todos-empty[data-picture="done"] > .gallery-todos-empty-picture { position: relative; width: 72px; height: 72px; margin-bottom: 10px; border-radius: 0; background: none; color: var(--gallery-good); }
182
+ > .gallery-todos-face > .gallery-todos-empty[data-picture="done"] > .gallery-todos-empty-picture > svg:first-child { position: absolute; inset: 0; width: 72px; height: 72px; }
183
+ > .gallery-todos-face > .gallery-todos-empty[data-picture="done"] > .gallery-todos-empty-picture > svg:first-child > circle { fill: none; stroke: var(--gallery-good); stroke-width: 7; }
184
+ > .gallery-todos-face > .gallery-todos-empty[data-picture="done"] > .gallery-todos-empty-picture > svg:last-child { width: 26px; height: 26px; stroke-width: 2.4; }
185
+ > .gallery-todos-face[data-state="done"],
186
+ > .gallery-todos-face[data-state="none"],
187
+ > .gallery-todos-face[data-state="unread"] { grid-template-rows: 20px 0 minmax(0, 1fr); }
188
+ /* A refused check: a line at the foot, over the list, for a few seconds. */
189
+ > .gallery-todos-face > .gallery-todos-note { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 6px 10px; border-radius: 8px; background: var(--gallery-card-fill); box-shadow: 0 0 0 1px var(--gallery-hair), 0 4px 12px -6px rgb(0 0 0 / 20%); font-size: 12px; line-height: 16px; color: var(--gallery-muted); }
190
+ > .gallery-todos-face > .gallery-todos-note[hidden] { display: none; }
191
+
192
+ /* A tall card: the ring beside the open count. */
193
+ > .gallery-todos-face[data-layout="tall"] > .gallery-todos-summary { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
194
+ > .gallery-todos-face[data-layout="tall"] > .gallery-todos-summary[hidden] { display: none; }
195
+ > .gallery-todos-face[data-layout="tall"] > .gallery-todos-summary > :is(.gallery-todos-progress, .gallery-todos-ticks) { display: none; }
196
+ > .gallery-todos-face[data-layout="tall"] > .gallery-todos-summary > :is(.gallery-todos-ring, .gallery-todos-big) { display: block; }
197
+ > .gallery-todos-face[data-layout="tall"] > .gallery-todos-list { margin-top: 10px; }
198
+ /* A wide card: the ring and the key at the left, the list at the right, each item's headings at its right. */
199
+ > .gallery-todos-face[data-layout="wide"] { grid-template-columns: 150px minmax(0, 1fr); grid-template-rows: 20px minmax(0, 1fr); grid-template-areas: "head head" "summary list"; column-gap: 28px; }
200
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary { display: flex; flex-direction: column; margin-top: 4px; padding-top: 4px; }
201
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary[hidden] { display: none; }
202
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary > :is(.gallery-todos-progress, .gallery-todos-ticks) { display: none; }
203
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary > .gallery-todos-ring { display: block; align-self: flex-start; }
204
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary > .gallery-todos-ring > .gallery-todos-percent { font-size: 22px; }
205
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-summary > .gallery-todos-key { display: flex; }
206
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-list { margin-top: 4px; }
207
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 16px; }
208
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-list > .gallery-todos-group > .gallery-todos-items > .gallery-todos-item > .gallery-todos-todo > .gallery-todos-path { flex: none; max-width: 45%; }
209
+ > .gallery-todos-face[data-layout="wide"] > .gallery-todos-empty { grid-column: 1 / -1; }
210
+ > .gallery-todos-face[data-layout="wide"]:is([data-state="done"], [data-state="none"], [data-state="unread"]) { grid-template-areas: "head head" "list list"; }
211
+ }
212
+ /* On a custom page the face fills the card the board frames. */
213
+ .gallery-card > [data-doc-component="gallery/todos"] { height: 100%; }
214
+ .gallery-card > [data-doc-component="gallery/todos"] > .gallery-todos-face { height: 100%; }
@@ -0,0 +1,3 @@
1
+ <div data-doc-component="gallery/todos">
2
+ <script type="application/json">{}</script>
3
+ </div>
@@ -0,0 +1,30 @@
1
+ # 我的待办 (gallery/todos)
2
+
3
+ A card for a custom page (its places are `page`, its needs `workspace`): the to-dos of every document of the workspace that are not done yet, an item of a to-do list each (`<ul class="doc-todo">`), grouped by document, the one edited last first, each with the headings it stands under. Use it on the home page, or on a page about the user's work.
4
+
5
+ ## Settings
6
+
7
+ Its two settings are the card's form, which the user opens from the grip at the card's top right › 设置…:
8
+
9
+ | Key | Label | Type | What it is |
10
+ | --- | --- | --- | --- |
11
+ | `document` | 只看这篇文档 | document | a document's slug: its to-dos alone; left out, every document's |
12
+ | `done` | 也显示已完成的 | switch | the done ones too, checked and struck through |
13
+
14
+ They are kept in its data part `settings`, a `<script type="application/json">`: `{}` (template.html, what a menu adds) shows the open to-dos of every document. Write `document` when the user asks for one document's to-dos. The block reads them and writes nothing.
15
+
16
+ ## How to write it
17
+
18
+ Put it on a custom page as a card of its board, `<section class="gallery-card" data-card-id="…" data-x data-y data-w data-h>`, holding one instance, after `gallery block add todos`, the instance as template.html has it. Sizes: 4 × 4 (the default), 4 × 6 and 8 × 4; the list scrolls inside the card.
19
+
20
+ ## What the user does
21
+
22
+ - clicks an item's box: the item is checked (or cleared) in its document, which Gallery writes as the user's own edit; the home page's undo (Ctrl+Z) checks it back. An item checked on the card stays there, struck through, until the page is shown again. Where the item changed meanwhile (its words), the card says so and reads again;
23
+ - clicks an item's words: its document opens, at the item where it has a block id;
24
+ - clicks a document's title: the document opens.
25
+
26
+ The card follows by itself: a to-do added, checked or taken out in any document shows at once.
27
+
28
+ ## How it looks
29
+
30
+ In Gallery 风格's look (the kit's card tokens, light and dark): a head of a small gray chip and a title, its end clear of the card's grip; one hero; the rest small and gray; the accent on the data and on today alone. Its head is a checked list's chip, 我的待办 and how many are open. A 4 × 4 card shows how many are done as a line (已完成 19 / 27 and the percent) over a row of ticks, one an item, done in the accent (a bar past 48); a 4 × 6 card a ring of the share beside the open count large (8 项没完成), its head saying how many documents they come from; an 8 × 4 card a ring at the left over a key (已完成, 未完成, 来自文档), each item's headings at its right. The list is grouped by document, small and gray (its icon, its title, its open count), each item a box, its words and the headings it stands under; it fades at its foot while there is more under it. An item checked on the card stays, struck through, until the page is opened again. With none, or all done (a full green ring with a tick), it says so in the middle.
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "gallery/weather",
3
+ "apiVersion": 1,
4
+ "version": "2.0.0",
5
+ "name": { "zh": "天气", "en": "Weather" },
6
+ "description": { "zh": "一个城市现在的天气和接下来几天的预报,数据来自 Open-Meteo,要先允许联网", "en": "A city's weather now and for the days ahead, from Open-Meteo, once the reader lets it online" },
7
+ "words": "tianqi qiwen yubao weather forecast temperature 天气 气温 预报 温度 下雨",
8
+ "parts": {
9
+ "settings": { "at": ":scope > script", "edit": "data" }
10
+ },
11
+ "runtime": { "generated": [":scope > .gallery-weather-face"] },
12
+ "places": ["page"],
13
+ "card": { "sizes": [[4, 2], [2, 2], [4, 4]], "resize": true, "consent": { "zh": "允许联网之后显示天气", "en": "Allow internet access to show the weather" } },
14
+ "settings": [
15
+ { "key": "city", "label": { "zh": "城市", "en": "City" }, "type": "text", "default": "", "required": true },
16
+ { "key": "unit", "label": { "zh": "单位", "en": "Unit" }, "type": "select", "options": ["℃", "℉"], "default": "℃" }
17
+ ],
18
+ "needs": ["net:api.open-meteo.com", "net:geocoding-api.open-meteo.com"]
19
+ }
@@ -0,0 +1,3 @@
1
+ <div data-doc-component="gallery/weather">
2
+ <script type="application/json">{"city":"上海","unit":"℃"}</script>
3
+ </div>