@graview/core 0.1.27 → 0.1.29

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 (505) hide show
  1. package/README.md +17 -0
  2. package/dist/amount-input.d.ts +21 -0
  3. package/dist/amount-input.d.ts.map +1 -0
  4. package/dist/amount-input.js +96 -0
  5. package/dist/amount-input.js.map +1 -0
  6. package/dist/answer-seen.d.ts +38 -0
  7. package/dist/answer-seen.d.ts.map +1 -0
  8. package/dist/answer-seen.js +122 -0
  9. package/dist/answer-seen.js.map +1 -0
  10. package/dist/app-places.d.ts +56 -0
  11. package/dist/app-places.d.ts.map +1 -0
  12. package/dist/app-places.js +153 -0
  13. package/dist/app-places.js.map +1 -0
  14. package/dist/arrange.d.ts +2 -2
  15. package/dist/arrange.d.ts.map +1 -1
  16. package/dist/arrange.js +2 -2
  17. package/dist/arrange.js.map +1 -1
  18. package/dist/arrangement-words.d.ts +3 -0
  19. package/dist/arrangement-words.d.ts.map +1 -0
  20. package/dist/arrangement-words.js +50 -0
  21. package/dist/arrangement-words.js.map +1 -0
  22. package/dist/arrangement.d.ts +25 -3
  23. package/dist/arrangement.d.ts.map +1 -1
  24. package/dist/arrangement.js +36 -32
  25. package/dist/arrangement.js.map +1 -1
  26. package/dist/arranging.d.ts.map +1 -1
  27. package/dist/arranging.js +19 -8
  28. package/dist/arranging.js.map +1 -1
  29. package/dist/bind.d.ts +3 -0
  30. package/dist/bind.d.ts.map +1 -1
  31. package/dist/bind.js.map +1 -1
  32. package/dist/capabilities.js +1 -1
  33. package/dist/capabilities.js.map +1 -1
  34. package/dist/capital.d.ts +2 -0
  35. package/dist/capital.d.ts.map +1 -1
  36. package/dist/capital.js +2 -0
  37. package/dist/capital.js.map +1 -1
  38. package/dist/check.d.ts +3 -0
  39. package/dist/check.d.ts.map +1 -1
  40. package/dist/check.js +3 -0
  41. package/dist/check.js.map +1 -1
  42. package/dist/city.d.ts +58 -50
  43. package/dist/city.d.ts.map +1 -1
  44. package/dist/city.js +160 -147
  45. package/dist/city.js.map +1 -1
  46. package/dist/cli/check/brand.js +1 -1
  47. package/dist/cli/check/brand.js.map +1 -1
  48. package/dist/cli/check/clock-rules.d.ts +4 -0
  49. package/dist/cli/check/clock-rules.d.ts.map +1 -0
  50. package/dist/cli/check/clock-rules.js +26 -0
  51. package/dist/cli/check/clock-rules.js.map +1 -0
  52. package/dist/cli/check/field-sight.d.ts +11 -0
  53. package/dist/cli/check/field-sight.d.ts.map +1 -0
  54. package/dist/cli/check/field-sight.js +113 -0
  55. package/dist/cli/check/field-sight.js.map +1 -0
  56. package/dist/cli/check/index.d.ts +2 -0
  57. package/dist/cli/check/index.d.ts.map +1 -1
  58. package/dist/cli/check/index.js +2 -0
  59. package/dist/cli/check/index.js.map +1 -1
  60. package/dist/cli/check/lenses.d.ts +1 -1
  61. package/dist/cli/check/lenses.d.ts.map +1 -1
  62. package/dist/cli/check/lenses.js +43 -2
  63. package/dist/cli/check/lenses.js.map +1 -1
  64. package/dist/cli/check/relations.d.ts.map +1 -1
  65. package/dist/cli/check/relations.js +2 -1
  66. package/dist/cli/check/relations.js.map +1 -1
  67. package/dist/cli/check.d.ts.map +1 -1
  68. package/dist/cli/check.js +7 -4
  69. package/dist/cli/check.js.map +1 -1
  70. package/dist/cli/describe.d.ts.map +1 -1
  71. package/dist/cli/describe.js +44 -3
  72. package/dist/cli/describe.js.map +1 -1
  73. package/dist/cli/docs.d.ts.map +1 -1
  74. package/dist/cli/docs.js +4 -3
  75. package/dist/cli/docs.js.map +1 -1
  76. package/dist/cli/types.d.ts.map +1 -1
  77. package/dist/cli/types.js +10 -1
  78. package/dist/cli/types.js.map +1 -1
  79. package/dist/clock-readers.d.ts +18 -0
  80. package/dist/clock-readers.d.ts.map +1 -0
  81. package/dist/clock-readers.js +70 -0
  82. package/dist/clock-readers.js.map +1 -0
  83. package/dist/clock.d.ts +30 -0
  84. package/dist/clock.d.ts.map +1 -0
  85. package/dist/clock.js +41 -0
  86. package/dist/clock.js.map +1 -0
  87. package/dist/columns.d.ts.map +1 -1
  88. package/dist/columns.js +2 -1
  89. package/dist/columns.js.map +1 -1
  90. package/dist/conformance/fixtures.d.ts.map +1 -1
  91. package/dist/conformance/fixtures.js +326 -43
  92. package/dist/conformance/fixtures.js.map +1 -1
  93. package/dist/days.d.ts +53 -4
  94. package/dist/days.d.ts.map +1 -1
  95. package/dist/days.js +136 -16
  96. package/dist/days.js.map +1 -1
  97. package/dist/describe.d.ts +1 -0
  98. package/dist/describe.d.ts.map +1 -1
  99. package/dist/describe.js +1 -0
  100. package/dist/describe.js.map +1 -1
  101. package/dist/document/act-findings.d.ts.map +1 -1
  102. package/dist/document/act-findings.js +13 -3
  103. package/dist/document/act-findings.js.map +1 -1
  104. package/dist/document/amount.d.ts +4 -0
  105. package/dist/document/amount.d.ts.map +1 -0
  106. package/dist/document/amount.js +22 -0
  107. package/dist/document/amount.js.map +1 -0
  108. package/dist/document/block-context.d.ts.map +1 -1
  109. package/dist/document/block-context.js +1 -0
  110. package/dist/document/block-context.js.map +1 -1
  111. package/dist/document/blocks.d.ts +13 -3
  112. package/dist/document/blocks.d.ts.map +1 -1
  113. package/dist/document/blocks.js +56 -12
  114. package/dist/document/blocks.js.map +1 -1
  115. package/dist/document/compile-checked.d.ts.map +1 -1
  116. package/dist/document/compile-checked.js +3 -2
  117. package/dist/document/compile-checked.js.map +1 -1
  118. package/dist/document/compile.d.ts.map +1 -1
  119. package/dist/document/compile.js +30 -7
  120. package/dist/document/compile.js.map +1 -1
  121. package/dist/document/compiled.d.ts +4 -2
  122. package/dist/document/compiled.d.ts.map +1 -1
  123. package/dist/document/compiled.js +52 -21
  124. package/dist/document/compiled.js.map +1 -1
  125. package/dist/document/describe-coverage.d.ts.map +1 -1
  126. package/dist/document/describe-coverage.js +2 -1
  127. package/dist/document/describe-coverage.js.map +1 -1
  128. package/dist/document/describe-place.d.ts +6 -2
  129. package/dist/document/describe-place.d.ts.map +1 -1
  130. package/dist/document/describe-place.js +14 -8
  131. package/dist/document/describe-place.js.map +1 -1
  132. package/dist/document/diff.d.ts +2 -0
  133. package/dist/document/diff.d.ts.map +1 -1
  134. package/dist/document/diff.js +78 -7
  135. package/dist/document/diff.js.map +1 -1
  136. package/dist/document/durations.d.ts +8 -0
  137. package/dist/document/durations.d.ts.map +1 -0
  138. package/dist/document/durations.js +82 -0
  139. package/dist/document/durations.js.map +1 -0
  140. package/dist/document/edit.d.ts +1 -1
  141. package/dist/document/edit.d.ts.map +1 -1
  142. package/dist/document/edit.js +434 -34
  143. package/dist/document/edit.js.map +1 -1
  144. package/dist/document/expr/evaluate.d.ts +1 -1
  145. package/dist/document/expr/evaluate.d.ts.map +1 -1
  146. package/dist/document/expr/evaluate.js +17 -4
  147. package/dist/document/expr/evaluate.js.map +1 -1
  148. package/dist/document/field-spec.d.ts.map +1 -1
  149. package/dist/document/field-spec.js +15 -1
  150. package/dist/document/field-spec.js.map +1 -1
  151. package/dist/document/format-findings.d.ts +4 -0
  152. package/dist/document/format-findings.d.ts.map +1 -0
  153. package/dist/document/format-findings.js +39 -0
  154. package/dist/document/format-findings.js.map +1 -0
  155. package/dist/document/format-rules.d.ts +8 -0
  156. package/dist/document/format-rules.d.ts.map +1 -0
  157. package/dist/document/format-rules.js +19 -0
  158. package/dist/document/format-rules.js.map +1 -0
  159. package/dist/document/format-words.d.ts +9 -0
  160. package/dist/document/format-words.d.ts.map +1 -0
  161. package/dist/document/format-words.js +29 -0
  162. package/dist/document/format-words.js.map +1 -0
  163. package/dist/document/graview-template.d.ts +2 -2
  164. package/dist/document/migrate.d.ts +1 -0
  165. package/dist/document/migrate.d.ts.map +1 -1
  166. package/dist/document/migrate.js +45 -1
  167. package/dist/document/migrate.js.map +1 -1
  168. package/dist/document/money.d.ts +14 -0
  169. package/dist/document/money.d.ts.map +1 -0
  170. package/dist/document/money.js +14 -0
  171. package/dist/document/money.js.map +1 -0
  172. package/dist/document/policy-words.d.ts +33 -0
  173. package/dist/document/policy-words.d.ts.map +1 -0
  174. package/dist/document/policy-words.js +69 -0
  175. package/dist/document/policy-words.js.map +1 -0
  176. package/dist/document/rule-line.d.ts.map +1 -1
  177. package/dist/document/rule-line.js +16 -12
  178. package/dist/document/rule-line.js.map +1 -1
  179. package/dist/document/rules.d.ts.map +1 -1
  180. package/dist/document/rules.js +6 -5
  181. package/dist/document/rules.js.map +1 -1
  182. package/dist/document/schema.d.ts +62 -19
  183. package/dist/document/schema.d.ts.map +1 -1
  184. package/dist/document/schema.js +30 -4
  185. package/dist/document/schema.js.map +1 -1
  186. package/dist/document/template-parse.d.ts.map +1 -1
  187. package/dist/document/template-parse.js +9 -2
  188. package/dist/document/template-parse.js.map +1 -1
  189. package/dist/document/template.d.ts +3 -13
  190. package/dist/document/template.d.ts.map +1 -1
  191. package/dist/document/template.js +27 -28
  192. package/dist/document/template.js.map +1 -1
  193. package/dist/document/thumbnail.d.ts.map +1 -1
  194. package/dist/document/thumbnail.js +4 -3
  195. package/dist/document/thumbnail.js.map +1 -1
  196. package/dist/document/to-document.d.ts +0 -1
  197. package/dist/document/to-document.d.ts.map +1 -1
  198. package/dist/document/to-document.js +19 -2
  199. package/dist/document/to-document.js.map +1 -1
  200. package/dist/document/view-specs.d.ts.map +1 -1
  201. package/dist/document/view-specs.js +3 -0
  202. package/dist/document/view-specs.js.map +1 -1
  203. package/dist/document/views.d.ts +2 -0
  204. package/dist/document/views.d.ts.map +1 -1
  205. package/dist/document/views.js +18 -6
  206. package/dist/document/views.js.map +1 -1
  207. package/dist/document.schema.json +63 -6
  208. package/dist/excerpt-of.d.ts +14 -0
  209. package/dist/excerpt-of.d.ts.map +1 -0
  210. package/dist/excerpt-of.js +120 -0
  211. package/dist/excerpt-of.js.map +1 -0
  212. package/dist/excerpt.d.ts +9 -0
  213. package/dist/excerpt.d.ts.map +1 -0
  214. package/dist/excerpt.js +43 -0
  215. package/dist/excerpt.js.map +1 -0
  216. package/dist/field-sight.d.ts +33 -0
  217. package/dist/field-sight.d.ts.map +1 -0
  218. package/dist/field-sight.js +313 -0
  219. package/dist/field-sight.js.map +1 -0
  220. package/dist/forms.d.ts +1 -0
  221. package/dist/forms.d.ts.map +1 -1
  222. package/dist/forms.js +1 -0
  223. package/dist/forms.js.map +1 -1
  224. package/dist/graph/archived.d.ts +25 -0
  225. package/dist/graph/archived.d.ts.map +1 -0
  226. package/dist/graph/archived.js +16 -0
  227. package/dist/graph/archived.js.map +1 -0
  228. package/dist/graph/diff.d.ts.map +1 -1
  229. package/dist/graph/diff.js +2 -1
  230. package/dist/graph/diff.js.map +1 -1
  231. package/dist/graph/graph.d.ts +37 -13
  232. package/dist/graph/graph.d.ts.map +1 -1
  233. package/dist/graph/graph.js +86 -40
  234. package/dist/graph/graph.js.map +1 -1
  235. package/dist/graph/tracked.d.ts +8 -8
  236. package/dist/graph/tracked.d.ts.map +1 -1
  237. package/dist/graph/tracked.js +15 -20
  238. package/dist/graph/tracked.js.map +1 -1
  239. package/dist/graph/types.d.ts +16 -8
  240. package/dist/graph/types.d.ts.map +1 -1
  241. package/dist/graph/types.js.map +1 -1
  242. package/dist/import/coerce.d.ts +45 -0
  243. package/dist/import/coerce.d.ts.map +1 -0
  244. package/dist/import/coerce.js +252 -0
  245. package/dist/import/coerce.js.map +1 -0
  246. package/dist/import/csv.d.ts +16 -0
  247. package/dist/import/csv.d.ts.map +1 -0
  248. package/dist/import/csv.js +77 -0
  249. package/dist/import/csv.js.map +1 -0
  250. package/dist/import/index.d.ts +17 -0
  251. package/dist/import/index.d.ts.map +1 -0
  252. package/dist/import/index.js +13 -0
  253. package/dist/import/index.js.map +1 -0
  254. package/dist/import/mapping.d.ts +99 -0
  255. package/dist/import/mapping.d.ts.map +1 -0
  256. package/dist/import/mapping.js +182 -0
  257. package/dist/import/mapping.js.map +1 -0
  258. package/dist/import/rows.d.ts +116 -0
  259. package/dist/import/rows.d.ts.map +1 -0
  260. package/dist/import/rows.js +584 -0
  261. package/dist/import/rows.js.map +1 -0
  262. package/dist/index.d.ts +38 -21
  263. package/dist/index.d.ts.map +1 -1
  264. package/dist/index.js +27 -16
  265. package/dist/index.js.map +1 -1
  266. package/dist/invariants/engine.d.ts +5 -1
  267. package/dist/invariants/engine.d.ts.map +1 -1
  268. package/dist/invariants/engine.js +4 -3
  269. package/dist/invariants/engine.js.map +1 -1
  270. package/dist/invariants/types.d.ts +18 -3
  271. package/dist/invariants/types.d.ts.map +1 -1
  272. package/dist/json-schema.d.ts +1 -0
  273. package/dist/json-schema.d.ts.map +1 -1
  274. package/dist/json-schema.js +2 -0
  275. package/dist/json-schema.js.map +1 -1
  276. package/dist/labels.d.ts.map +1 -1
  277. package/dist/labels.js +2 -1
  278. package/dist/labels.js.map +1 -1
  279. package/dist/lines.d.ts +1 -0
  280. package/dist/lines.d.ts.map +1 -1
  281. package/dist/lines.js +5 -3
  282. package/dist/lines.js.map +1 -1
  283. package/dist/markdown.d.ts +102 -0
  284. package/dist/markdown.d.ts.map +1 -0
  285. package/dist/markdown.js +460 -0
  286. package/dist/markdown.js.map +1 -0
  287. package/dist/mutations/arg-shape.d.ts +95 -0
  288. package/dist/mutations/arg-shape.d.ts.map +1 -0
  289. package/dist/mutations/arg-shape.js +101 -0
  290. package/dist/mutations/arg-shape.js.map +1 -0
  291. package/dist/mutations/define-mutation.d.ts +48 -2
  292. package/dist/mutations/define-mutation.d.ts.map +1 -1
  293. package/dist/mutations/define-mutation.js +103 -36
  294. package/dist/mutations/define-mutation.js.map +1 -1
  295. package/dist/mutations/derive-edits.d.ts +16 -1
  296. package/dist/mutations/derive-edits.d.ts.map +1 -1
  297. package/dist/mutations/derive-edits.js +67 -28
  298. package/dist/mutations/derive-edits.js.map +1 -1
  299. package/dist/mutations/derive-repeats.d.ts +8 -0
  300. package/dist/mutations/derive-repeats.d.ts.map +1 -0
  301. package/dist/mutations/derive-repeats.js +118 -0
  302. package/dist/mutations/derive-repeats.js.map +1 -0
  303. package/dist/mutations/derived-names.d.ts +20 -0
  304. package/dist/mutations/derived-names.d.ts.map +1 -0
  305. package/dist/mutations/derived-names.js +19 -0
  306. package/dist/mutations/derived-names.js.map +1 -0
  307. package/dist/mutations/form.d.ts +21 -1
  308. package/dist/mutations/form.d.ts.map +1 -1
  309. package/dist/mutations/form.js +19 -2
  310. package/dist/mutations/form.js.map +1 -1
  311. package/dist/mutations/invalid-arguments.d.ts +14 -0
  312. package/dist/mutations/invalid-arguments.d.ts.map +1 -0
  313. package/dist/mutations/invalid-arguments.js +18 -0
  314. package/dist/mutations/invalid-arguments.js.map +1 -0
  315. package/dist/mutations/keep-link.d.ts +27 -0
  316. package/dist/mutations/keep-link.d.ts.map +1 -0
  317. package/dist/mutations/keep-link.js +56 -0
  318. package/dist/mutations/keep-link.js.map +1 -0
  319. package/dist/mutations/kept-arguments.d.ts +26 -0
  320. package/dist/mutations/kept-arguments.d.ts.map +1 -0
  321. package/dist/mutations/kept-arguments.js +77 -0
  322. package/dist/mutations/kept-arguments.js.map +1 -0
  323. package/dist/mutations/node-ref.d.ts +0 -80
  324. package/dist/mutations/node-ref.d.ts.map +1 -1
  325. package/dist/mutations/node-ref.js +0 -93
  326. package/dist/mutations/node-ref.js.map +1 -1
  327. package/dist/mutations/types.d.ts +17 -1
  328. package/dist/mutations/types.d.ts.map +1 -1
  329. package/dist/mutations/words.d.ts +0 -13
  330. package/dist/mutations/words.d.ts.map +1 -1
  331. package/dist/mutations/words.js +1 -12
  332. package/dist/mutations/words.js.map +1 -1
  333. package/dist/ops/kept-fields.d.ts +7 -0
  334. package/dist/ops/kept-fields.d.ts.map +1 -0
  335. package/dist/ops/kept-fields.js +24 -0
  336. package/dist/ops/kept-fields.js.map +1 -0
  337. package/dist/ops/lineage.d.ts +37 -0
  338. package/dist/ops/lineage.d.ts.map +1 -0
  339. package/dist/ops/lineage.js +26 -0
  340. package/dist/ops/lineage.js.map +1 -0
  341. package/dist/ops/log.d.ts.map +1 -1
  342. package/dist/ops/log.js +1 -0
  343. package/dist/ops/log.js.map +1 -1
  344. package/dist/ops/provenance.d.ts +68 -0
  345. package/dist/ops/provenance.d.ts.map +1 -0
  346. package/dist/ops/provenance.js +83 -0
  347. package/dist/ops/provenance.js.map +1 -0
  348. package/dist/ops/types.d.ts +25 -0
  349. package/dist/ops/types.d.ts.map +1 -1
  350. package/dist/ops/withheld.d.ts +25 -2
  351. package/dist/ops/withheld.d.ts.map +1 -1
  352. package/dist/ops/withheld.js +6 -15
  353. package/dist/ops/withheld.js.map +1 -1
  354. package/dist/permissions/policy.d.ts +6 -1
  355. package/dist/permissions/policy.d.ts.map +1 -1
  356. package/dist/permissions/policy.js +31 -11
  357. package/dist/permissions/policy.js.map +1 -1
  358. package/dist/permissions/sight.d.ts +40 -2
  359. package/dist/permissions/sight.d.ts.map +1 -1
  360. package/dist/permissions/sight.js +25 -2
  361. package/dist/permissions/sight.js.map +1 -1
  362. package/dist/permissions/types.d.ts +21 -0
  363. package/dist/permissions/types.d.ts.map +1 -1
  364. package/dist/permissions/types.js.map +1 -1
  365. package/dist/places.d.ts +0 -49
  366. package/dist/places.d.ts.map +1 -1
  367. package/dist/places.js +2 -141
  368. package/dist/places.js.map +1 -1
  369. package/dist/provenance.d.ts +14 -0
  370. package/dist/provenance.d.ts.map +1 -0
  371. package/dist/provenance.js +13 -0
  372. package/dist/provenance.js.map +1 -0
  373. package/dist/repeat-words.d.ts +13 -0
  374. package/dist/repeat-words.d.ts.map +1 -0
  375. package/dist/repeat-words.js +56 -0
  376. package/dist/repeat-words.js.map +1 -0
  377. package/dist/repeat.d.ts +59 -0
  378. package/dist/repeat.d.ts.map +1 -0
  379. package/dist/repeat.js +155 -0
  380. package/dist/repeat.js.map +1 -0
  381. package/dist/scaffold/project.d.ts.map +1 -1
  382. package/dist/scaffold/project.js +13 -0
  383. package/dist/scaffold/project.js.map +1 -1
  384. package/dist/scaffold/ui.js +2 -2
  385. package/dist/scene-districts.d.ts +2 -1
  386. package/dist/scene-districts.d.ts.map +1 -1
  387. package/dist/scene-districts.js +2 -1
  388. package/dist/scene-districts.js.map +1 -1
  389. package/dist/scene.d.ts +4 -2
  390. package/dist/scene.d.ts.map +1 -1
  391. package/dist/scene.js +2 -1
  392. package/dist/scene.js.map +1 -1
  393. package/dist/schema/amount-mark.d.ts +13 -0
  394. package/dist/schema/amount-mark.d.ts.map +1 -0
  395. package/dist/schema/amount-mark.js +20 -0
  396. package/dist/schema/amount-mark.js.map +1 -0
  397. package/dist/schema/amount-words.d.ts +12 -0
  398. package/dist/schema/amount-words.d.ts.map +1 -0
  399. package/dist/schema/amount-words.js +31 -0
  400. package/dist/schema/amount-words.js.map +1 -0
  401. package/dist/schema/app-link-field.d.ts +4 -0
  402. package/dist/schema/app-link-field.d.ts.map +1 -0
  403. package/dist/schema/app-link-field.js +19 -0
  404. package/dist/schema/app-link-field.js.map +1 -0
  405. package/dist/schema/app-link.d.ts +41 -0
  406. package/dist/schema/app-link.d.ts.map +1 -0
  407. package/dist/schema/app-link.js +40 -0
  408. package/dist/schema/app-link.js.map +1 -0
  409. package/dist/schema/define-node.d.ts +25 -94
  410. package/dist/schema/define-node.d.ts.map +1 -1
  411. package/dist/schema/define-node.js +3 -247
  412. package/dist/schema/define-node.js.map +1 -1
  413. package/dist/schema/field-words.d.ts +45 -0
  414. package/dist/schema/field-words.d.ts.map +1 -0
  415. package/dist/schema/field-words.js +124 -0
  416. package/dist/schema/field-words.js.map +1 -0
  417. package/dist/schema/json-schema.d.ts +6 -1
  418. package/dist/schema/json-schema.d.ts.map +1 -1
  419. package/dist/schema/json-schema.js +83 -2
  420. package/dist/schema/json-schema.js.map +1 -1
  421. package/dist/schema/markdown-field.d.ts +4 -0
  422. package/dist/schema/markdown-field.d.ts.map +1 -0
  423. package/dist/schema/markdown-field.js +20 -0
  424. package/dist/schema/markdown-field.js.map +1 -0
  425. package/dist/schema/markdown.d.ts +6 -0
  426. package/dist/schema/markdown.d.ts.map +1 -0
  427. package/dist/schema/markdown.js +27 -0
  428. package/dist/schema/markdown.js.map +1 -0
  429. package/dist/schema/reading.d.ts +86 -0
  430. package/dist/schema/reading.d.ts.map +1 -0
  431. package/dist/schema/reading.js +270 -0
  432. package/dist/schema/reading.js.map +1 -0
  433. package/dist/schema/repeat-field.d.ts +5 -0
  434. package/dist/schema/repeat-field.d.ts.map +1 -0
  435. package/dist/schema/repeat-field.js +20 -0
  436. package/dist/schema/repeat-field.js.map +1 -0
  437. package/dist/schema/schema.d.ts.map +1 -1
  438. package/dist/schema/schema.js +5 -1
  439. package/dist/schema/schema.js.map +1 -1
  440. package/dist/schema/to-json-schema.d.ts +14 -0
  441. package/dist/schema/to-json-schema.d.ts.map +1 -0
  442. package/dist/schema/to-json-schema.js +616 -0
  443. package/dist/schema/to-json-schema.js.map +1 -0
  444. package/dist/schema/typed-field-builders.d.ts +8 -0
  445. package/dist/schema/typed-field-builders.d.ts.map +1 -0
  446. package/dist/schema/typed-field-builders.js +30 -0
  447. package/dist/schema/typed-field-builders.js.map +1 -0
  448. package/dist/schema/typed-field-of.d.ts +4 -0
  449. package/dist/schema/typed-field-of.d.ts.map +1 -0
  450. package/dist/schema/typed-field-of.js +14 -0
  451. package/dist/schema/typed-field-of.js.map +1 -0
  452. package/dist/schema/typed-fields.d.ts +11 -0
  453. package/dist/schema/typed-fields.d.ts.map +1 -0
  454. package/dist/schema/typed-fields.js +16 -0
  455. package/dist/schema/typed-fields.js.map +1 -0
  456. package/dist/schema/types.d.ts +14 -0
  457. package/dist/schema/types.d.ts.map +1 -1
  458. package/dist/schema/value-words.d.ts +21 -0
  459. package/dist/schema/value-words.d.ts.map +1 -0
  460. package/dist/schema/value-words.js +32 -0
  461. package/dist/schema/value-words.js.map +1 -0
  462. package/dist/search.d.ts +91 -4
  463. package/dist/search.d.ts.map +1 -1
  464. package/dist/search.js +290 -59
  465. package/dist/search.js.map +1 -1
  466. package/dist/seat.d.ts +19 -0
  467. package/dist/seat.d.ts.map +1 -0
  468. package/dist/seat.js +19 -0
  469. package/dist/seat.js.map +1 -0
  470. package/dist/seen.d.ts +15 -33
  471. package/dist/seen.d.ts.map +1 -1
  472. package/dist/seen.js +44 -135
  473. package/dist/seen.js.map +1 -1
  474. package/dist/store.d.ts +46 -1
  475. package/dist/store.d.ts.map +1 -1
  476. package/dist/store.js +121 -22
  477. package/dist/store.js.map +1 -1
  478. package/dist/theme/types.d.ts +7 -1
  479. package/dist/theme/types.d.ts.map +1 -1
  480. package/dist/theme/types.js.map +1 -1
  481. package/dist/typed.d.ts +12 -3
  482. package/dist/typed.d.ts.map +1 -1
  483. package/dist/typed.js.map +1 -1
  484. package/dist/validate-graph.d.ts.map +1 -1
  485. package/dist/validate-graph.js +3 -10
  486. package/dist/validate-graph.js.map +1 -1
  487. package/dist/version.d.ts +1 -1
  488. package/dist/version.js +1 -1
  489. package/dist/views/types.d.ts +57 -8
  490. package/dist/views/types.d.ts.map +1 -1
  491. package/dist/views/types.js +22 -3
  492. package/dist/views/types.js.map +1 -1
  493. package/dist/village.d.ts +63 -0
  494. package/dist/village.d.ts.map +1 -0
  495. package/dist/village.js +143 -0
  496. package/dist/village.js.map +1 -0
  497. package/dist/watched.d.ts +12 -45
  498. package/dist/watched.d.ts.map +1 -1
  499. package/dist/watched.js +7 -119
  500. package/dist/watched.js.map +1 -1
  501. package/dist/words.d.ts +33 -0
  502. package/dist/words.d.ts.map +1 -0
  503. package/dist/words.js +36 -0
  504. package/dist/words.js.map +1 -0
  505. package/package.json +37 -2
package/dist/days.d.ts CHANGED
@@ -1,14 +1,63 @@
1
+ /** What days, times and numbers are said in when neither the reader nor the app says. */
2
+ export declare const DEFAULT_LOCALE = "en-US";
1
3
  /** A day as the record holds it: `YYYY-MM-DD`, nothing before or after. */
2
4
  export declare const ISO_DAY: RegExp;
5
+ /** A moment as the record holds it: a day, a `T` or a space, and a time of day, with or without seconds and a zone. */
6
+ export declare const ISO_MOMENT: RegExp;
7
+ /**
8
+ * A document's date and time: any moment `Date` reads. A compiled field
9
+ * checks with this one function, so it reads back as a `datetime` where a
10
+ * face asks which fields are dates (`fieldOf`): a kind's stop, its calendar.
11
+ */
12
+ export declare const isMoment: (s: string) => boolean;
3
13
  /** Today as a record keeps a day, by the clock's UTC date: what a rule, a template and a label read as today(). */
4
14
  export declare const isoToday: () => string;
5
- /** A `YYYY-MM-DD` day as a person reads it: "28 Aug 2026". Anything else is said as it is. */
6
- export declare function dayAsRead(day: string): string;
15
+ /**
16
+ * Say days, times and numbers on this page in a reader's locale and an
17
+ * app's (FR-178). Either may be left out. Every provider says it as it
18
+ * draws, before anything under it does, so the page says what the app
19
+ * drawn last says.
20
+ */
21
+ export declare function sayIn(locales: {
22
+ readonly reader?: string | undefined;
23
+ readonly app?: string | undefined;
24
+ }): void;
25
+ /** The locale a value is said in: the reader's when a host passed one, else the app's (`app`, else the page's), else en-US. */
26
+ export declare const localeFor: (app?: string) => string;
27
+ /** A `YYYY-MM-DD` day as a person reads it: "Aug 28, 2026" in en-US, "28 Aug 2026" in en-GB. Anything else is said as it is. */
28
+ export declare function dayAsRead(day: string, locale?: string): string;
29
+ /** A moment as a person reads it: "Sep 10, 2023, 3:30 PM" (en-US), "10 Sep 2023, 15:30" (en-GB). Anything else is said as it is. */
30
+ export declare const momentAsRead: (at: string, locale?: string) => string;
31
+ /** A moment's time of day: "3:30 PM" (en-US), "15:30" (en-GB). Anything that is not a moment is said as it is. */
32
+ export declare const timeAsRead: (at: string, locale?: string) => string;
33
+ /** A number as a person reads it: "1,250" (en-US), "1.250" (de-DE), at most two places after the point unless told. */
34
+ export declare function numberAsRead(value: number, locale?: string, options?: Intl.NumberFormatOptions): string;
35
+ /** A day or a moment as it is read; anything else as it is. */
36
+ export declare const whenAsRead: (value: string, locale?: string) => string;
37
+ /**
38
+ * A day with its weekday: "Thursday, Sep 17" (en-US), "Thursday 17 Sep"
39
+ * (en-GB); with its year when asked, and the weekday short when asked.
40
+ */
41
+ export declare function weekdayAsRead(day: string, options?: {
42
+ readonly year?: boolean;
43
+ readonly weekday?: "long" | "short";
44
+ }, locale?: string): string;
45
+ /** A day of a month without its year or weekday: "Sep 17" (en-US), "17 Sep" (en-GB). */
46
+ export declare function dayOfMonthAsRead(day: string, locale?: string): string;
47
+ /** A month: "September 2026"; with `short`, "Sep" and, with `year`, "Sep 26". */
48
+ export declare function monthAsRead(day: string, options?: {
49
+ readonly short?: boolean;
50
+ readonly year?: boolean;
51
+ }, locale?: string): string;
52
+ /** A weekday alone, from 0 for Sunday: "Mon" short, "Monday" long. */
53
+ export declare const weekdayName: (weekday: number, width?: "short" | "long", locale?: string) => string;
54
+ /** A time of day from minutes after midnight: "3:30 PM" (en-US), "15:30" (en-GB). */
55
+ export declare const minutesAsRead: (minutes: number, locale?: string) => string;
7
56
  /**
8
57
  * Every day in a sentence as a person reads it: `"Pay the deposit" was due
9
- * 2026-08-28` is said `"Pay the deposit" was due 28 Aug 2026`. For the
58
+ * 2026-08-28` is said `"Pay the deposit" was due Aug 28, 2026`. For the
10
59
  * sentences an app writes in code — a rule's message — which the framework
11
60
  * says to people without having written them.
12
61
  */
13
- export declare function daysAsRead(text: string): string;
62
+ export declare function daysAsRead(text: string, locale?: string): string;
14
63
  //# sourceMappingURL=days.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../src/days.ts"],"names":[],"mappings":"AAaA,2EAA2E;AAC3E,eAAO,MAAM,OAAO,QAAwB,CAAC;AAE7C,mHAAmH;AACnH,eAAO,MAAM,QAAQ,QAAO,MAA+C,CAAC;AAE5E,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../src/days.ts"],"names":[],"mappings":"AAsBA,yFAAyF;AACzF,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,OAAO,QAAwB,CAAC;AAE7C,uHAAuH;AACvH,eAAO,MAAM,UAAU,QAA4D,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,OAAuC,CAAC;AAE7E,mHAAmH;AACnH,eAAO,MAAM,QAAQ,QAAO,MAA+C,CAAC;AAc5E;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,IAAI,CAGhH;AAED,+HAA+H;AAC/H,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAA2D,CAAC;AAoCrG,gIAAgI;AAChI,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAcD,oIAAoI;AACpI,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,SAAS,MAAM,KAAG,MAAiF,CAAC;AAE7I,kHAAkH;AAClH,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,EAAE,SAAS,MAAM,KAAG,MAAgC,CAAC;AAE1F,uHAAuH;AACvH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAkD,GAAG,MAAM,CAErI;AAED,+DAA+D;AAC/D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,KAAG,MAAwF,CAAC;AAErJ;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElJ;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrI;AAED,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,QAAO,OAAO,GAAG,MAAgB,EAAE,SAAS,MAAM,KAAG,MAEjB,CAAC;AAElF,qFAAqF;AACrF,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,MACkD,CAAC;AAQpH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE"}
package/dist/days.js CHANGED
@@ -1,23 +1,143 @@
1
1
  /*
2
- * A DAY AS A PERSON READS IT.
2
+ * A DAY, A TIME AND A NUMBER AS A PERSON READS THEM (FR-178).
3
3
  *
4
- * A record keeps a day as `YYYY-MM-DD`, which sorts and compares and is
5
- * what an edit control holds. A person reads "28 Aug 2026". Every surface
6
- * that says a day in words — a card's glance, a record's facts, a rule's
7
- * sentence, a template's `{due}` — says it here, so one problem never reads
8
- * "was due 2026-08-28" on the bar while its card says "28 Aug 2026".
9
- */
10
- /** The months' words, three letters each, in order. */
11
- const MONTH_WORDS = "JanFebMarAprMayJunJulAugSepOctNovDec";
4
+ * A record keeps a day as `YYYY-MM-DD` and a moment as `YYYY-MM-DDTHH:MM`,
5
+ * which sort and compare and are what an edit control holds. A person reads
6
+ * them the way their own country writes them: in the United States "Sep 10,
7
+ * 2023", "3:30 PM" and "1,250"; in Britain "10 Sep 2023", "15:30" and
8
+ * "1,250"; in Germany "10. Sept. 2023", "15:30" and "1.250". Every surface
9
+ * that says a day, a time or a number in words — a card's glance, a record's
10
+ * facts, a rule's sentence, a template's `{due}`, the calendar, the seat —
11
+ * says it here, through `Intl` with the locale it is said for, so one problem
12
+ * never reads "was due 2026-08-28" on the bar while its card says "Aug 28,
13
+ * 2026", and no surface puts the day first in an app written for the US.
14
+ *
15
+ * WHICH LOCALE. The reader's, when the host that mounted the app passed one
16
+ * (`locale` on the provider, the embed, the pages face); else the app's own,
17
+ * `brand.locale` beside the currency its sums are said in; else "en-US".
18
+ * The framework's own words are English whatever the locale: what changes
19
+ * is the order and the punctuation of days, times and figures, not the
20
+ * sentences around them.
21
+ */
22
+ /** What days, times and numbers are said in when neither the reader nor the app says. */
23
+ export const DEFAULT_LOCALE = "en-US";
12
24
  /** A day as the record holds it: `YYYY-MM-DD`, nothing before or after. */
13
25
  export const ISO_DAY = /^\d{4}-\d{2}-\d{2}$/;
26
+ /** A moment as the record holds it: a day, a `T` or a space, and a time of day, with or without seconds and a zone. */
27
+ export const ISO_MOMENT = /^\d{4}(-\d\d){2}[T ]\d\d:\d\d(:[\d.]+)?(Z|[+-][\d:]+)?$/;
28
+ /**
29
+ * A document's date and time: any moment `Date` reads. A compiled field
30
+ * checks with this one function, so it reads back as a `datetime` where a
31
+ * face asks which fields are dates (`fieldOf`): a kind's stop, its calendar.
32
+ */
33
+ export const isMoment = (s) => !Number.isNaN(Date.parse(s));
14
34
  /** Today as a record keeps a day, by the clock's UTC date: what a rule, a template and a label read as today(). */
15
35
  export const isoToday = () => new Date().toISOString().slice(0, 10);
16
- /** A `YYYY-MM-DD` day as a person reads it: "28 Aug 2026". Anything else is said as it is. */
17
- export function dayAsRead(day) {
18
- const month = ISO_DAY.test(day) ? MONTH_WORDS.slice(+day.slice(5, 7) * 3 - 3, +day.slice(5, 7) * 3) : "";
19
- return month ? `${+day.slice(8)} ${month} ${day.slice(0, 4)}` : day;
36
+ /*
37
+ * THE PAGE'S LOCALES. A label is a function of a node and nothing else, and
38
+ * the Scene, a glance and an invariant's message are said far from any
39
+ * context a locale could ride on, so the two locales a page draws in are
40
+ * held here: the reader's, which a host passes and which wins, and the
41
+ * app's, which the provider sets from the brand it draws. A function handed
42
+ * a locale of its own (a compiled document's labels, a block, a template)
43
+ * passes it as the app's: the reader's still wins over it.
44
+ */
45
+ let readers;
46
+ let drawn;
47
+ /**
48
+ * Say days, times and numbers on this page in a reader's locale and an
49
+ * app's (FR-178). Either may be left out. Every provider says it as it
50
+ * draws, before anything under it does, so the page says what the app
51
+ * drawn last says.
52
+ */
53
+ export function sayIn(locales) {
54
+ readers = usable(locales.reader);
55
+ drawn = usable(locales.app);
56
+ }
57
+ /** The locale a value is said in: the reader's when a host passed one, else the app's (`app`, else the page's), else en-US. */
58
+ export const localeFor = (app) => readers ?? usable(app) ?? drawn ?? DEFAULT_LOCALE;
59
+ /*
60
+ * A formatter is costly to make and cheap to use, and a page says thousands
61
+ * of days: each is made once per locale and shape, and whether the runtime
62
+ * can say anything in a locale is asked once — a tag `Intl` refuses is said
63
+ * in en-US, never a thrown page.
64
+ */
65
+ const made = new Map();
66
+ function usable(locale) {
67
+ if (locale && !made.has(locale)) {
68
+ let ok = false;
69
+ try {
70
+ ok = Intl.DateTimeFormat.supportedLocalesOf(locale).length > 0;
71
+ }
72
+ catch { }
73
+ made.set(locale, ok);
74
+ }
75
+ return locale && made.get(locale) ? locale : undefined;
76
+ }
77
+ /*
78
+ * Said through `Intl`. Some runtimes' ICU put a narrow no-break space before
79
+ * "PM" and others a plain one; the words are the same in every browser, in
80
+ * Node and to a model, so the space is a space.
81
+ */
82
+ function said(at, options, locale, number) {
83
+ const key = `${(locale = localeFor(locale))}${number ? "#" : "@"}${JSON.stringify(options)}`;
84
+ let format = made.get(key);
85
+ if (!format)
86
+ made.set(key, (format = number ? new Intl.NumberFormat(locale, options) : new Intl.DateTimeFormat(locale, options)));
87
+ return format.format(at).replace(/ /g, " ");
88
+ }
89
+ const UTC = "UTC";
90
+ const stampOf = (day) => Date.UTC(+day.slice(0, 4), +day.slice(5, 7) - 1, +day.slice(8, 10));
91
+ /** A `YYYY-MM-DD` day as a person reads it: "Aug 28, 2026" in en-US, "28 Aug 2026" in en-GB. Anything else is said as it is. */
92
+ export function dayAsRead(day, locale) {
93
+ return ISO_DAY.test(day) ? said(stampOf(day), { year: "numeric", month: "short", day: "numeric", timeZone: UTC }, locale) : day;
94
+ }
95
+ /*
96
+ * A moment written with a zone ("…Z", "…+02:00") names an instant, said on
97
+ * the reader's clock; written without one, it is the time on the wall it
98
+ * was written for, said as written.
99
+ */
100
+ function moment(at, options, locale) {
101
+ if (!ISO_MOMENT.test(at))
102
+ return at;
103
+ const zoned = /[Z+-][\d:]*$/.test(at.slice(16));
104
+ const stamp = Date.parse(at.replace(" ", "T") + (zoned ? "" : "Z"));
105
+ return Number.isNaN(stamp) ? at : said(stamp, { ...options, hour: "numeric", minute: "2-digit", ...(zoned ? {} : { timeZone: UTC }) }, locale);
106
+ }
107
+ /** A moment as a person reads it: "Sep 10, 2023, 3:30 PM" (en-US), "10 Sep 2023, 15:30" (en-GB). Anything else is said as it is. */
108
+ export const momentAsRead = (at, locale) => moment(at, { year: "numeric", month: "short", day: "numeric" }, locale);
109
+ /** A moment's time of day: "3:30 PM" (en-US), "15:30" (en-GB). Anything that is not a moment is said as it is. */
110
+ export const timeAsRead = (at, locale) => moment(at, {}, locale);
111
+ /** A number as a person reads it: "1,250" (en-US), "1.250" (de-DE), at most two places after the point unless told. */
112
+ export function numberAsRead(value, locale, options = { maximumFractionDigits: 2 }) {
113
+ return Number.isFinite(value) ? said(value, options, locale, true) : String(value);
114
+ }
115
+ /** A day or a moment as it is read; anything else as it is. */
116
+ export const whenAsRead = (value, locale) => (ISO_DAY.test(value) ? dayAsRead(value, locale) : momentAsRead(value, locale));
117
+ /**
118
+ * A day with its weekday: "Thursday, Sep 17" (en-US), "Thursday 17 Sep"
119
+ * (en-GB); with its year when asked, and the weekday short when asked.
120
+ */
121
+ export function weekdayAsRead(day, options = {}, locale) {
122
+ return ISO_DAY.test(day) ? said(stampOf(day), { weekday: options.weekday ?? "long", month: "short", day: "numeric", ...(options.year ? { year: "numeric" } : {}), timeZone: UTC }, locale) : day;
123
+ }
124
+ /** A day of a month without its year or weekday: "Sep 17" (en-US), "17 Sep" (en-GB). */
125
+ export function dayOfMonthAsRead(day, locale) {
126
+ return ISO_DAY.test(day) ? said(stampOf(day), { month: "short", day: "numeric", timeZone: UTC }, locale) : day;
127
+ }
128
+ /** A month: "September 2026"; with `short`, "Sep" and, with `year`, "Sep 26". */
129
+ export function monthAsRead(day, options = {}, locale) {
130
+ if (!/^\d{4}-\d{2}/.test(day))
131
+ return day;
132
+ const year = options.year ?? !options.short;
133
+ return said(stampOf(`${day.slice(0, 7)}-01`), { month: options.short ? "short" : "long", ...(year ? { year: options.short ? "2-digit" : "numeric" } : {}), timeZone: UTC }, locale);
20
134
  }
135
+ /** A weekday alone, from 0 for Sunday: "Mon" short, "Monday" long. */
136
+ export const weekdayName = (weekday, width = "short", locale) =>
137
+ // 4 January 1970 was a Sunday.
138
+ said(Date.UTC(1970, 0, 4 + weekday), { weekday: width, timeZone: UTC }, locale);
139
+ /** A time of day from minutes after midnight: "3:30 PM" (en-US), "15:30" (en-GB). */
140
+ export const minutesAsRead = (minutes, locale) => said(Date.UTC(1970, 0, 1, 0, Math.round(minutes)), { hour: "numeric", minute: "2-digit", timeZone: UTC }, locale);
21
141
  /*
22
142
  * A day standing alone in a sentence: not part of an id ("task-2026-08-28"),
23
143
  * a longer number, or a moment ("2026-08-28T09:00").
@@ -25,11 +145,11 @@ export function dayAsRead(day) {
25
145
  const DAY_IN_TEXT = /(?<![\w-])(\d{4}-\d{2}-\d{2})(?![\w-]|:)/g;
26
146
  /**
27
147
  * Every day in a sentence as a person reads it: `"Pay the deposit" was due
28
- * 2026-08-28` is said `"Pay the deposit" was due 28 Aug 2026`. For the
148
+ * 2026-08-28` is said `"Pay the deposit" was due Aug 28, 2026`. For the
29
149
  * sentences an app writes in code — a rule's message — which the framework
30
150
  * says to people without having written them.
31
151
  */
32
- export function daysAsRead(text) {
33
- return text.includes("-") ? text.replace(DAY_IN_TEXT, (day) => dayAsRead(day)) : text;
152
+ export function daysAsRead(text, locale) {
153
+ return text.includes("-") ? text.replace(DAY_IN_TEXT, (day) => dayAsRead(day, locale)) : text;
34
154
  }
35
155
  //# sourceMappingURL=days.js.map
package/dist/days.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"days.js","sourceRoot":"","sources":["../src/days.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,uDAAuD;AACvD,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAE7C,mHAAmH;AACnH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5E,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"days.js","sourceRoot":"","sources":["../src/days.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export type { ColumnMove, ColumnReach, StatusColumn } from "./columns.js";
4
4
  export type { DescribedFact, DescribedItem, DescribedMasthead, DescribedPart, DescribedProblem, DescribePlaceOptions, DescribePlaceResult, PlaceDescription } from "./document/describe-place.js";
5
5
  export { resolveFor } from "./document/resolve-for.js";
6
6
  export type { DeclaredBlocks, ResolveForOptions } from "./document/resolve-for.js";
7
+ import "./index.js";
7
8
  //# sourceMappingURL=describe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAOxE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AASlM,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAOxE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AASlM,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,YAAY,CAAC"}
package/dist/describe.js CHANGED
@@ -25,4 +25,5 @@ export { columnActs, columnMoves, columnOf, columnReach, columnSteps, statusColu
25
25
  * context, and need no lookup of a declaration's views.
26
26
  */
27
27
  export { resolveFor } from "./document/resolve-for.js";
28
+ import "./index.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
28
29
  //# sourceMappingURL=describe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1G;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1G;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,YAAY,CAAC,CAAC,2FAA2F"}
@@ -1 +1 @@
1
- {"version":3,"file":"act-findings.d.ts","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AAmG5D,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,EAAE,CAEhE"}
1
+ {"version":3,"file":"act-findings.d.ts","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AAmG5D,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,EAAE,CAEhE"}
@@ -1,3 +1,4 @@
1
+ import { derivedActOf, givenWhenNeverArchived } from "../mutations/derived-names.js";
1
2
  import { withArticle } from "../schema/define-node.js";
2
3
  import { farEnd } from "./far-end.js";
3
4
  import { error } from "./findings.js";
@@ -16,10 +17,10 @@ function rangeFindings(document) {
16
17
  for (const [kind, spec] of Object.entries(document.kinds)) {
17
18
  for (const [field, f] of Object.entries(spec.fields)) {
18
19
  const at = `kinds.${kind}.fields.${field}`;
19
- const numeric = f.type === "number" || f.type === "integer";
20
+ const numeric = f.type === "number" || f.type === "integer" || f.type === "duration";
20
21
  for (const key of ["min", "max", "step"])
21
22
  if (!numeric && f[key] !== undefined)
22
- out.push(error("field-range", `${at}.${key}`, `"${key}" belongs only on a number or integer field`));
23
+ out.push(error("field-range", `${at}.${key}`, `"${key}" belongs only on a number, integer or duration field`));
23
24
  if (numeric && f.min !== undefined && f.max !== undefined && f.min > f.max)
24
25
  out.push(error("field-range", `${at}.max`, `"max" (${f.max}) is below "min" (${f.min})`));
25
26
  if (numeric && f.step !== undefined && !(f.step > 0))
@@ -111,6 +112,15 @@ function meFindings(name, act, document) {
111
112
  }
112
113
  /** Every range, other-end and `$me` finding of a document, in its order: fields, then acts. */
113
114
  export function actFindings(document) {
114
- return [...rangeFindings(document), ...Object.entries(document.acts ?? {}).flatMap(([name, act]) => [...otherEndFindings(name, act, document), ...meFindings(name, act, document)])];
115
+ return [...rangeFindings(document), ...neverArchivedFindings(document), ...Object.entries(document.acts ?? {}).flatMap(([name, act]) => [...otherEndFindings(name, act, document), ...meFindings(name, act, document)])];
116
+ }
117
+ /** A grant naming the archive, unarchive or merge of a kind that says `"archives": false` (FR-173): an act the app does not have. */
118
+ function neverArchivedFindings(document) {
119
+ return (document.policy?.grants ?? []).flatMap((grant, i) => asArray(grant.mutations === "*" ? [] : grant.mutations).flatMap((name) => {
120
+ const derived = derivedActOf(name);
121
+ if (!derived || document.acts?.[name] || document.kinds[derived.kind]?.archives !== false || givenWhenNeverArchived(derived.act))
122
+ return [];
123
+ return [error("grant-act", `policy.grants.${i}.mutations`, `"${name}" is not an act this document has: ${derived.kind} says "archives": false, so it is kept or removed, never archived`, `name edit-${derived.kind} or remove-${derived.kind} instead`)];
124
+ }));
115
125
  }
116
126
  //# sourceMappingURL=act-findings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"act-findings.js","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"act-findings.js","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;GAMG;AAEH,MAAM,OAAO,GAAG,CAAI,CAA+B,EAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAkB,CAAC;AAEvG,mEAAmE;AACnE,SAAS,aAAa,CAAC,QAAyB;IAC9C,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,GAAG,SAAS,IAAI,WAAW,KAAK,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YACrF,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAU;gBAAE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,uDAAuD,CAAC,CAAC,CAAC;YACxM,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACtK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,yCAAyC,CAAC,CAAC,CAAC;YAC9I,2EAA2E;YAC3E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,GAAY,EAAE,QAAyB;IAC7E,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,IAAI,8EAA8E,EAAE,sEAAsE,CAAC,CAAC,CAAC;aAC/N,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS;wBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,cAAc,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,KAAK,gDAAgD,EAAE,6CAA6C,CAAC,CAAC,CAAC;;wBACxN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,KAAK,EAAE,EAAE,GAAG,IAAI,kBAAkB,KAAK,GAAG,CAAC,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,IAAI,gEAAgE,EAAE,gDAAgD,CAAC,CAAC,CAAC;aAC5L,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,KAAK,uCAAuC,CAAC,CAAC,CAAC;qBACvG,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,KAAK,mBAAmB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,IAAI,gCAAgC,CAAC,CAAC,CAAC;YAChR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,GAAY,EAAE,QAAyB;IACvE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,4EAA4E,EAAE,wGAAwG,CAAC,CAAC,CAAC;IAC9N,CAAC;IACD,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;YAAE,SAAS;QAC7D,MAAM,QAAQ,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAU,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,SAAS;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,IAAI,wBAAwB,GAAG,WAAW,QAAQ,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,WAAW,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,oBAAoB,QAAQ,UAAU,WAAW,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChP,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3N,CAAC;AAED,qIAAqI;AACrI,SAAS,qBAAqB,CAAC,QAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAC1D,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,KAAK,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5I,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,YAAY,EAAE,IAAI,IAAI,sCAAsC,OAAO,CAAC,IAAI,mEAAmE,EAAE,aAAa,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IAC5P,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AmountMark } from "../schema/amount-mark.js";
2
+ /** A number in the words its field declares: "$10,000", "13%", "12 kg". A unit that is a currency ("EUR") makes it money in that currency. */
3
+ export declare function sayAmount(value: number, { format, unit, currency, locale }: AmountMark): string;
4
+ //# sourceMappingURL=amount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../src/document/amount.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAc3D,8IAA8I;AAC9I,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,MAAM,CAK/F"}
@@ -0,0 +1,22 @@
1
+ import { numberAsRead } from "../days.js";
2
+ import { formatMoney } from "./money.js";
3
+ /*
4
+ * A NUMBER SAID AS ITS FIELD DECLARES IT: money in the app's currency, a
5
+ * fraction as a percent, a measure with its unit (a number shown as a
6
+ * duration is the duration type's, `field-words.ts`). A field marked `"format": "money"` read as a bare 10000 on the
7
+ * record page, the list, the table and the form — only a `{price | money}`
8
+ * template and a lens block said it as money. The field's schema carries
9
+ * what it is said as (`markAmount`), and every face that reads a record
10
+ * says it here, in the app's currency and the reader's locale (FR-178).
11
+ * Small, because a change's line says it as a hosted page applies the change.
12
+ */
13
+ /** A number in the words its field declares: "$10,000", "13%", "12 kg". A unit that is a currency ("EUR") makes it money in that currency. */
14
+ export function sayAmount(value, { format, unit, currency, locale }) {
15
+ const code = /^[A-Z]{3}$/.test(unit ?? "");
16
+ if (format === "money" || (!format && code))
17
+ return formatMoney(value, { ...(locale ? { locale } : {}), ...((code ? unit : currency) ? { currency: code ? unit : currency } : {}) });
18
+ if (format === "percent")
19
+ return numberAsRead(value, locale, { style: "percent", maximumFractionDigits: 0 });
20
+ return numberAsRead(value, locale) + (unit ? ` ${unit}` : "");
21
+ }
22
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/document/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;GASG;AAEH,8IAA8I;AAC9I,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAc;IACrF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,QAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvL,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7G,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"block-context.d.ts","sourceRoot":"","sources":["../../src/document/block-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoB3C,mGAAmG;AACnG,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAS,CAAC;AAElC,0HAA0H;AAC1H,MAAM,WAAW,mBAAmB;IAClC,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAED,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,KAAK,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;CAC9B;AAaD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAwB/L"}
1
+ {"version":3,"file":"block-context.d.ts","sourceRoot":"","sources":["../../src/document/block-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoB3C,mGAAmG;AACnG,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAS,CAAC;AAElC,0HAA0H;AAC1H,MAAM,WAAW,mBAAmB;IAClC,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAED,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,KAAK,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;CAC9B;AAaD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAyB/L"}
@@ -65,6 +65,7 @@ export function blockContextFor(source, principal, given, options = {}) {
65
65
  heading: options.heading ?? (once ? 2 : 3),
66
66
  firstHeading,
67
67
  budget: options.budget ?? (once ? PAGE_BUDGET : CARD_BUDGET),
68
+ ...(once ? {} : { glance: true }),
68
69
  };
69
70
  }
70
71
  //# sourceMappingURL=block-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block-context.js","sourceRoot":"","sources":["../../src/document/block-context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AAEH,mGAAmG;AACnG,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AA6BlC,MAAM,MAAM,GAAG,IAAI,OAAO,EAA4D,CAAC;AAEvF,qEAAqE;AACrE,SAAS,SAAS,CAAC,MAAiB,EAAE,IAAY;IAChD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB,EAAE,SAA2B,EAAE,KAA4D,EAAE,UAA+B,EAAE;IAC/K,IAAI,SAAS,IAAI,OAAQ,MAAoC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACpF,MAAM,IAAI,SAAS,CAAC,kIAAkI,CAAC,CAAC;IAC1J,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,MAA2B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjF,gJAAgJ;IAChJ,MAAM,IAAI,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAG,IAAI,CAAC,KAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAgE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClK,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,IAA2B;QACjC,KAAK,EAAE,IAAI,CAAC,KAAoB;QAChC,MAAM;QACN,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAChD,UAAU,EAAE,CAAC,UAAU,IAAI,SAAS,CAA+B;QACnE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,QAAQ,EAAE;QACpD,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,YAAY;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;KAC7D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"block-context.js","sourceRoot":"","sources":["../../src/document/block-context.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AnyGraphNode, GraphReader } from "../graph/types.js";
2
2
  import type { AnySchema } from "../schema/schema.js";
3
- import { valueWords } from "../schema/define-node.js";
3
+ import { valueWords } from "../schema/value-words.js";
4
4
  import { type KindShape } from "./expr/evaluate.js";
5
5
  import { type Expr } from "./expr/parse.js";
6
6
  import type { FieldSpec } from "./schema.js";
@@ -112,6 +112,8 @@ export interface BlockContext {
112
112
  readonly today: string;
113
113
  /** The app's currency and locale (`brand.currency`, `brand.locale`): what money is said in where a block names no currency (FR-100). */
114
114
  readonly money?: Money | undefined;
115
+ /** A card or a row: a Markdown field is said by its start, the syntax taken out (FR-180). */
116
+ readonly glance?: boolean;
115
117
  }
116
118
  /** A block worked out: what a face draws and a describer says, under its block's key (`SpecBlock`). `problem` is what could not be worked out, in words. */
117
119
  export type ResolvedBlock = (Unkeyed | ResolvedList) & {
@@ -121,22 +123,28 @@ type Unkeyed = {
121
123
  readonly t: "title";
122
124
  readonly text: string;
123
125
  readonly problem?: string;
124
- } | {
126
+ }
127
+ /** `markdown`: the text is a Markdown field as written (FR-180), drawn as prose; said by a describer as its words. */
128
+ | {
125
129
  readonly t: "text";
126
130
  readonly text: string;
127
131
  readonly tone?: ViewTone;
132
+ readonly markdown?: true;
128
133
  readonly problem?: string;
129
134
  } | {
130
135
  readonly t: "badge";
131
136
  readonly text: string;
132
137
  readonly tone: ViewTone;
133
138
  readonly problem?: string;
134
- } | {
139
+ }
140
+ /** `app`: another app's address (FR-171), drawn as the app the host's `resolveApp` names. */
141
+ | {
135
142
  readonly t: "field";
136
143
  readonly field: string;
137
144
  readonly label: string;
138
145
  readonly text: string;
139
146
  readonly href?: string;
147
+ readonly app?: string;
140
148
  readonly problem?: string;
141
149
  }
142
150
  /** A record's files, as the block shows them: `text` names them, for whoever cannot see them. */
@@ -203,6 +211,8 @@ export interface ResolvedList {
203
211
  readonly empty?: string;
204
212
  /** How many more there were, said "and N more" when no limit was asked for. */
205
213
  readonly more: number;
214
+ /** How many records the list's source named before the limit: a face that can go to them says "See all N". */
215
+ readonly total?: number;
206
216
  readonly problem?: string;
207
217
  }
208
218
  /** Only http(s) is ever a link; anything else — `javascript:`, `data:`, a typo — is shown as words. */
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/document/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/document/blocks.ts"],"names":[],"mappings":"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"}