@mistriwork/engine 0.0.0-stage → 1.0.0-rc.10

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 (546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -2
  3. package/dist/adapters/adapter.d.ts +693 -0
  4. package/dist/adapters/adapter.js +444 -0
  5. package/dist/adapters/cache/cacheStore.d.ts +75 -0
  6. package/dist/adapters/cache/cacheStore.js +160 -0
  7. package/dist/adapters/cache/resp.d.ts +52 -0
  8. package/dist/adapters/cache/resp.js +237 -0
  9. package/dist/adapters/commands/canonicalJson.d.ts +19 -0
  10. package/dist/adapters/commands/canonicalJson.js +154 -0
  11. package/dist/adapters/connect.d.ts +29 -0
  12. package/dist/adapters/connect.js +40 -0
  13. package/dist/adapters/connectionBudget.d.ts +101 -0
  14. package/dist/adapters/connectionBudget.js +128 -0
  15. package/dist/adapters/dbLatency.d.ts +35 -0
  16. package/dist/adapters/dbLatency.js +79 -0
  17. package/dist/adapters/epochCache.d.ts +50 -0
  18. package/dist/adapters/epochCache.js +85 -0
  19. package/dist/adapters/http/egress.d.ts +48 -0
  20. package/dist/adapters/http/egress.js +175 -0
  21. package/dist/adapters/http/httpAdapter.d.ts +71 -0
  22. package/dist/adapters/http/httpAdapter.js +512 -0
  23. package/dist/adapters/http/httpDescription.d.ts +32 -0
  24. package/dist/adapters/http/httpDescription.js +246 -0
  25. package/dist/adapters/http/openapi.d.ts +98 -0
  26. package/dist/adapters/http/openapi.js +487 -0
  27. package/dist/adapters/layoutRefusal.d.ts +24 -0
  28. package/dist/adapters/layoutRefusal.js +35 -0
  29. package/dist/adapters/net/networkPolicy.d.ts +44 -0
  30. package/dist/adapters/net/networkPolicy.js +123 -0
  31. package/dist/adapters/net/untrustedDatabase.d.ts +18 -0
  32. package/dist/adapters/net/untrustedDatabase.js +120 -0
  33. package/dist/adapters/poolAdmission.d.ts +43 -0
  34. package/dist/adapters/poolAdmission.js +184 -0
  35. package/dist/adapters/poolMetrics.d.ts +121 -0
  36. package/dist/adapters/poolMetrics.js +185 -0
  37. package/dist/adapters/postgres.d.ts +436 -0
  38. package/dist/adapters/postgres.js +1890 -0
  39. package/dist/adapters/postgresCatalog.d.ts +96 -0
  40. package/dist/adapters/postgresCatalog.js +387 -0
  41. package/dist/adapters/postgresCatalogDigest.d.ts +30 -0
  42. package/dist/adapters/postgresCatalogDigest.js +87 -0
  43. package/dist/adapters/postgresCatalogRows.d.ts +62 -0
  44. package/dist/adapters/postgresCatalogRows.js +37 -0
  45. package/dist/adapters/postgresDates.d.ts +1 -0
  46. package/dist/adapters/postgresDates.js +39 -0
  47. package/dist/adapters/postgresMaintenance.d.ts +33 -0
  48. package/dist/adapters/postgresMaintenance.js +179 -0
  49. package/dist/adapters/postgresPool.d.ts +255 -0
  50. package/dist/adapters/postgresPool.js +838 -0
  51. package/dist/adapters/postgresPooler.d.ts +28 -0
  52. package/dist/adapters/postgresPooler.js +267 -0
  53. package/dist/adapters/postgresReadCatalog.d.ts +31 -0
  54. package/dist/adapters/postgresReadCatalog.js +226 -0
  55. package/dist/adapters/postgresReadSnapshot.d.ts +46 -0
  56. package/dist/adapters/postgresReadSnapshot.js +133 -0
  57. package/dist/adapters/postgresSchemaEpoch.d.ts +24 -0
  58. package/dist/adapters/postgresSchemaEpoch.js +149 -0
  59. package/dist/adapters/postgresTransactionHandle.d.ts +173 -0
  60. package/dist/adapters/postgresTransactionHandle.js +524 -0
  61. package/dist/adapters/postgresValues.d.ts +30 -0
  62. package/dist/adapters/postgresValues.js +75 -0
  63. package/dist/adapters/replicas.d.ts +70 -0
  64. package/dist/adapters/replicas.js +208 -0
  65. package/dist/adapters/reservedSql.d.ts +38 -0
  66. package/dist/adapters/reservedSql.js +264 -0
  67. package/dist/adapters/rolePrivileges.d.ts +17 -0
  68. package/dist/adapters/rolePrivileges.js +22 -0
  69. package/dist/adapters/scoped/keyRows.d.ts +65 -0
  70. package/dist/adapters/scoped/keyRows.js +173 -0
  71. package/dist/adapters/scoped/postgresScopeCatalog.d.ts +16 -0
  72. package/dist/adapters/scoped/postgresScopeCatalog.js +117 -0
  73. package/dist/adapters/scoped/scopedCommandOperations.d.ts +5 -0
  74. package/dist/adapters/scoped/scopedCommandOperations.js +48 -0
  75. package/dist/adapters/scoped/scopedReads.d.ts +20 -0
  76. package/dist/adapters/scoped/scopedReads.js +174 -0
  77. package/dist/adapters/scoped/scopedTransaction.d.ts +89 -0
  78. package/dist/adapters/scoped/scopedTransaction.js +303 -0
  79. package/dist/adapters/scoped/sqliteScopeCatalog.d.ts +16 -0
  80. package/dist/adapters/scoped/sqliteScopeCatalog.js +241 -0
  81. package/dist/adapters/scoped/updateGuard.d.ts +3 -0
  82. package/dist/adapters/scoped/updateGuard.js +40 -0
  83. package/dist/adapters/serverSettings.d.ts +45 -0
  84. package/dist/adapters/serverSettings.js +46 -0
  85. package/dist/adapters/sqlite.d.ts +262 -0
  86. package/dist/adapters/sqlite.js +1434 -0
  87. package/dist/adapters/sqliteCostlyReads.d.ts +33 -0
  88. package/dist/adapters/sqliteCostlyReads.js +49 -0
  89. package/dist/adapters/sqliteDecimals.d.ts +22 -0
  90. package/dist/adapters/sqliteDecimals.js +57 -0
  91. package/dist/adapters/sqliteHandles.d.ts +43 -0
  92. package/dist/adapters/sqliteHandles.js +143 -0
  93. package/dist/adapters/sqliteStatementProcess.d.ts +29 -0
  94. package/dist/adapters/sqliteStatementProcess.js +131 -0
  95. package/dist/adapters/statementControl.d.ts +34 -0
  96. package/dist/adapters/statementControl.js +90 -0
  97. package/dist/adapters/storeHost.d.ts +130 -0
  98. package/dist/adapters/storeHost.js +13 -0
  99. package/dist/adapters/telemetry/drivers.d.ts +21 -0
  100. package/dist/adapters/telemetry/drivers.js +321 -0
  101. package/dist/adapters/telemetry/metrics.d.ts +63 -0
  102. package/dist/adapters/telemetry/metrics.js +122 -0
  103. package/dist/adapters/telemetry/otlp.d.ts +12 -0
  104. package/dist/adapters/telemetry/otlp.js +320 -0
  105. package/dist/adapters/telemetry/otlpEncode.d.ts +48 -0
  106. package/dist/adapters/telemetry/otlpEncode.js +366 -0
  107. package/dist/adapters/telemetry/otlpEnv.d.ts +1 -0
  108. package/dist/adapters/telemetry/otlpEnv.js +12 -0
  109. package/dist/adapters/telemetry/serverTiming.d.ts +83 -0
  110. package/dist/adapters/telemetry/serverTiming.js +503 -0
  111. package/dist/adapters/telemetry/start.d.ts +10 -0
  112. package/dist/adapters/telemetry/start.js +25 -0
  113. package/dist/adapters/telemetry/statement.d.ts +16 -0
  114. package/dist/adapters/telemetry/statement.js +134 -0
  115. package/dist/adapters/telemetry/trace.d.ts +127 -0
  116. package/dist/adapters/telemetry/trace.js +295 -0
  117. package/dist/adapters/writeAhead.d.ts +27 -0
  118. package/dist/adapters/writeAhead.js +46 -0
  119. package/dist/adapters/writeAttribution.d.ts +18 -0
  120. package/dist/adapters/writeAttribution.js +23 -0
  121. package/dist/adapters/writeCapture.d.ts +73 -0
  122. package/dist/adapters/writeCapture.js +20 -0
  123. package/dist/adapters/writeLanes.d.ts +94 -0
  124. package/dist/adapters/writeLanes.js +232 -0
  125. package/dist/engine.d.ts +15 -0
  126. package/dist/engine.js +13 -0
  127. package/dist/server/auth/credentials.d.ts +61 -0
  128. package/dist/server/auth/credentials.js +260 -0
  129. package/dist/server/cacheService.d.ts +50 -0
  130. package/dist/server/cacheService.js +110 -0
  131. package/dist/server/cli/args.d.ts +176 -0
  132. package/dist/server/cli/args.js +342 -0
  133. package/dist/server/cli/bin.d.ts +5 -0
  134. package/dist/server/cli/bin.js +66 -0
  135. package/dist/server/cli/browser.d.ts +15 -0
  136. package/dist/server/cli/browser.js +37 -0
  137. package/dist/server/cli/config.d.ts +50 -0
  138. package/dist/server/cli/config.js +206 -0
  139. package/dist/server/cli/startup.d.ts +36 -0
  140. package/dist/server/cli/startup.js +128 -0
  141. package/dist/server/cli/startupOptions.d.ts +63 -0
  142. package/dist/server/cli/startupOptions.js +143 -0
  143. package/dist/server/cli/subcommand.d.ts +28 -0
  144. package/dist/server/cli/subcommand.js +32 -0
  145. package/dist/server/cli/usage.d.ts +13 -0
  146. package/dist/server/cli/usage.js +31 -0
  147. package/dist/server/clientHttp.d.ts +184 -0
  148. package/dist/server/clientHttp.js +700 -0
  149. package/dist/server/clientSurface.d.ts +128 -0
  150. package/dist/server/clientSurface.js +182 -0
  151. package/dist/server/columnGrants.d.ts +103 -0
  152. package/dist/server/columnGrants.js +730 -0
  153. package/dist/server/compileCache.d.ts +1 -0
  154. package/dist/server/compileCache.js +30 -0
  155. package/dist/server/config/locations.d.ts +1 -0
  156. package/dist/server/config/locations.js +15 -0
  157. package/dist/server/configPaths.d.ts +7 -0
  158. package/dist/server/configPaths.js +34 -0
  159. package/dist/server/configSections.d.ts +64 -0
  160. package/dist/server/configSections.js +72 -0
  161. package/dist/server/connectionRedaction.d.ts +30 -0
  162. package/dist/server/connectionRedaction.js +77 -0
  163. package/dist/server/connections.d.ts +353 -0
  164. package/dist/server/connections.js +978 -0
  165. package/dist/server/constraints.d.ts +82 -0
  166. package/dist/server/constraints.js +169 -0
  167. package/dist/server/demo.d.ts +9 -0
  168. package/dist/server/demo.js +554 -0
  169. package/dist/server/devclient.d.ts +108 -0
  170. package/dist/server/devclient.js +361 -0
  171. package/dist/server/evidence.d.ts +55 -0
  172. package/dist/server/evidence.js +323 -0
  173. package/dist/server/hiddenColumns.d.ts +32 -0
  174. package/dist/server/hiddenColumns.js +238 -0
  175. package/dist/server/http/baselineHeaders.d.ts +24 -0
  176. package/dist/server/http/baselineHeaders.js +12 -0
  177. package/dist/server/http/captured.d.ts +35 -0
  178. package/dist/server/http/captured.js +73 -0
  179. package/dist/server/http/clock.d.ts +1 -0
  180. package/dist/server/http/clock.js +14 -0
  181. package/dist/server/http/connectionSource.d.ts +4 -0
  182. package/dist/server/http/connectionSource.js +48 -0
  183. package/dist/server/http/context.d.ts +189 -0
  184. package/dist/server/http/context.js +11 -0
  185. package/dist/server/http/crawlerText.d.ts +15 -0
  186. package/dist/server/http/crawlerText.js +32 -0
  187. package/dist/server/http/dataRoutes.d.ts +88 -0
  188. package/dist/server/http/dataRoutes.js +137 -0
  189. package/dist/server/http/door.d.ts +57 -0
  190. package/dist/server/http/door.js +39 -0
  191. package/dist/server/http/exportRoute.d.ts +15 -0
  192. package/dist/server/http/exportRoute.js +320 -0
  193. package/dist/server/http/firstPaint.d.ts +108 -0
  194. package/dist/server/http/firstPaint.js +262 -0
  195. package/dist/server/http/httpOperationRoutes.d.ts +11 -0
  196. package/dist/server/http/httpOperationRoutes.js +50 -0
  197. package/dist/server/http/pageReads.d.ts +20 -0
  198. package/dist/server/http/pageReads.js +205 -0
  199. package/dist/server/http/pageRoutes.d.ts +39 -0
  200. package/dist/server/http/pageRoutes.js +291 -0
  201. package/dist/server/http/probes.d.ts +22 -0
  202. package/dist/server/http/probes.js +27 -0
  203. package/dist/server/http/rateLimit.d.ts +131 -0
  204. package/dist/server/http/rateLimit.js +351 -0
  205. package/dist/server/http/readRoutes.d.ts +9 -0
  206. package/dist/server/http/readRoutes.js +131 -0
  207. package/dist/server/http/readRouting.d.ts +20 -0
  208. package/dist/server/http/readRouting.js +80 -0
  209. package/dist/server/http/recordCompose.d.ts +67 -0
  210. package/dist/server/http/recordCompose.js +167 -0
  211. package/dist/server/http/recordWrites.d.ts +89 -0
  212. package/dist/server/http/recordWrites.js +298 -0
  213. package/dist/server/http/refusalReport.d.ts +38 -0
  214. package/dist/server/http/refusalReport.js +63 -0
  215. package/dist/server/http/reply.d.ts +130 -0
  216. package/dist/server/http/reply.js +394 -0
  217. package/dist/server/http/requestOrigin.d.ts +11 -0
  218. package/dist/server/http/requestOrigin.js +8 -0
  219. package/dist/server/http/router.d.ts +45 -0
  220. package/dist/server/http/router.js +22 -0
  221. package/dist/server/http/serverCore.d.ts +68 -0
  222. package/dist/server/http/serverCore.js +177 -0
  223. package/dist/server/http/traceRequest.d.ts +30 -0
  224. package/dist/server/http/traceRequest.js +224 -0
  225. package/dist/server/http/trust.d.ts +261 -0
  226. package/dist/server/http/trust.js +472 -0
  227. package/dist/server/http/writeRefusal.d.ts +33 -0
  228. package/dist/server/http/writeRefusal.js +24 -0
  229. package/dist/server/httpConnection.d.ts +49 -0
  230. package/dist/server/httpConnection.js +170 -0
  231. package/dist/server/impact.d.ts +55 -0
  232. package/dist/server/impact.js +47 -0
  233. package/dist/server/journal.d.ts +134 -0
  234. package/dist/server/journal.js +398 -0
  235. package/dist/server/keysetReadHttp.d.ts +52 -0
  236. package/dist/server/keysetReadHttp.js +85 -0
  237. package/dist/server/layouts.d.ts +49 -0
  238. package/dist/server/layouts.js +192 -0
  239. package/dist/server/migrate/cli.d.ts +55 -0
  240. package/dist/server/migrate/cli.js +517 -0
  241. package/dist/server/migrate/database.d.ts +37 -0
  242. package/dist/server/migrate/database.js +247 -0
  243. package/dist/server/migrate/desired.d.ts +76 -0
  244. package/dist/server/migrate/desired.js +292 -0
  245. package/dist/server/migrate/files.d.ts +34 -0
  246. package/dist/server/migrate/files.js +141 -0
  247. package/dist/server/migrate/flyway.d.ts +7 -0
  248. package/dist/server/migrate/flyway.js +69 -0
  249. package/dist/server/migrate/history.d.ts +70 -0
  250. package/dist/server/migrate/history.js +211 -0
  251. package/dist/server/migrate/runner.d.ts +100 -0
  252. package/dist/server/migrate/runner.js +409 -0
  253. package/dist/server/migrate/snapshot.d.ts +30 -0
  254. package/dist/server/migrate/snapshot.js +239 -0
  255. package/dist/server/migrate/target.d.ts +33 -0
  256. package/dist/server/migrate/target.js +82 -0
  257. package/dist/server/openapiDraft.d.ts +25 -0
  258. package/dist/server/openapiDraft.js +171 -0
  259. package/dist/server/operations/diagnostics.d.ts +101 -0
  260. package/dist/server/operations/diagnostics.js +284 -0
  261. package/dist/server/operations/requestMetrics.d.ts +33 -0
  262. package/dist/server/operations/requestMetrics.js +94 -0
  263. package/dist/server/packageVersion.d.ts +1 -0
  264. package/dist/server/packageVersion.js +11 -0
  265. package/dist/server/poolConfig.d.ts +34 -0
  266. package/dist/server/poolConfig.js +114 -0
  267. package/dist/server/product.d.ts +20 -0
  268. package/dist/server/product.js +12 -0
  269. package/dist/server/recordHistoryOperations.d.ts +39 -0
  270. package/dist/server/recordHistoryOperations.js +43 -0
  271. package/dist/server/recordWriteOperations.d.ts +111 -0
  272. package/dist/server/recordWriteOperations.js +329 -0
  273. package/dist/server/resourceReadHttp.d.ts +81 -0
  274. package/dist/server/resourceReadHttp.js +606 -0
  275. package/dist/server/resourceReadOperations.d.ts +147 -0
  276. package/dist/server/resourceReadOperations.js +452 -0
  277. package/dist/server/scaffoldMachine.d.ts +54 -0
  278. package/dist/server/scaffoldMachine.js +184 -0
  279. package/dist/server/seed/cli.d.ts +20 -0
  280. package/dist/server/seed/cli.js +164 -0
  281. package/dist/server/seed/lexicon.d.ts +26 -0
  282. package/dist/server/seed/lexicon.js +585 -0
  283. package/dist/server/seed/seed.d.ts +70 -0
  284. package/dist/server/seed/seed.js +779 -0
  285. package/dist/server/seed/words.d.ts +21 -0
  286. package/dist/server/seed/words.js +164 -0
  287. package/dist/server/serverRequests.d.ts +6 -0
  288. package/dist/server/serverRequests.js +33 -0
  289. package/dist/server/serverTimeouts.d.ts +33 -0
  290. package/dist/server/serverTimeouts.js +32 -0
  291. package/dist/server/shapeonly.d.ts +32 -0
  292. package/dist/server/shapeonly.js +110 -0
  293. package/dist/server/startupWarnings.d.ts +32 -0
  294. package/dist/server/startupWarnings.js +92 -0
  295. package/dist/shared/addressParams.d.ts +28 -0
  296. package/dist/shared/addressParams.js +47 -0
  297. package/dist/shared/appCards.d.ts +123 -0
  298. package/dist/shared/appCards.js +385 -0
  299. package/dist/shared/appComponents.d.ts +177 -0
  300. package/dist/shared/appComponents.js +422 -0
  301. package/dist/shared/appDocuments.d.ts +43 -0
  302. package/dist/shared/appDocuments.js +131 -0
  303. package/dist/shared/appEmbeds.d.ts +21 -0
  304. package/dist/shared/appEmbeds.js +24 -0
  305. package/dist/shared/appIcons.d.ts +28 -0
  306. package/dist/shared/appIcons.js +223 -0
  307. package/dist/shared/appLinks.d.ts +17 -0
  308. package/dist/shared/appLinks.js +124 -0
  309. package/dist/shared/appListColumns.d.ts +3 -0
  310. package/dist/shared/appListColumns.js +66 -0
  311. package/dist/shared/appLocale.d.ts +36 -0
  312. package/dist/shared/appLocale.js +86 -0
  313. package/dist/shared/appMessages.d.ts +44 -0
  314. package/dist/shared/appMessages.js +78 -0
  315. package/dist/shared/appNoun.d.ts +21 -0
  316. package/dist/shared/appNoun.js +32 -0
  317. package/dist/shared/autoBucket.d.ts +98 -0
  318. package/dist/shared/autoBucket.js +305 -0
  319. package/dist/shared/autoValues.d.ts +25 -0
  320. package/dist/shared/autoValues.js +25 -0
  321. package/dist/shared/breakdown.d.ts +228 -0
  322. package/dist/shared/breakdown.js +557 -0
  323. package/dist/shared/breakdowntext.d.ts +41 -0
  324. package/dist/shared/breakdowntext.js +400 -0
  325. package/dist/shared/builtInThemes.d.ts +2 -0
  326. package/dist/shared/builtInThemes.js +771 -0
  327. package/dist/shared/chartSeparation.d.ts +11 -0
  328. package/dist/shared/chartSeparation.js +58 -0
  329. package/dist/shared/clauses.d.ts +22 -0
  330. package/dist/shared/clauses.js +97 -0
  331. package/dist/shared/columnCaption.d.ts +16 -0
  332. package/dist/shared/columnCaption.js +90 -0
  333. package/dist/shared/commandFieldPath.d.ts +2 -0
  334. package/dist/shared/commandFieldPath.js +7 -0
  335. package/dist/shared/commandWire.d.ts +26 -0
  336. package/dist/shared/commandWire.js +41 -0
  337. package/dist/shared/computed.d.ts +161 -0
  338. package/dist/shared/computed.js +378 -0
  339. package/dist/shared/computedParse.d.ts +13 -0
  340. package/dist/shared/computedParse.js +278 -0
  341. package/dist/shared/computedValue.d.ts +47 -0
  342. package/dist/shared/computedValue.js +191 -0
  343. package/dist/shared/connection.d.ts +30 -0
  344. package/dist/shared/connection.js +1 -0
  345. package/dist/shared/csv.d.ts +20 -0
  346. package/dist/shared/csv.js +63 -0
  347. package/dist/shared/dashLayout.d.ts +30 -0
  348. package/dist/shared/dashLayout.js +132 -0
  349. package/dist/shared/dashboardAsks.d.ts +93 -0
  350. package/dist/shared/dashboardAsks.js +129 -0
  351. package/dist/shared/dashboardTrend.d.ts +20 -0
  352. package/dist/shared/dashboardTrend.js +50 -0
  353. package/dist/shared/declaredReferences.d.ts +50 -0
  354. package/dist/shared/declaredReferences.js +202 -0
  355. package/dist/shared/definedFields.d.ts +63 -0
  356. package/dist/shared/definedFields.js +103 -0
  357. package/dist/shared/definedValues.d.ts +63 -0
  358. package/dist/shared/definedValues.js +184 -0
  359. package/dist/shared/displayDefaults.d.ts +135 -0
  360. package/dist/shared/displayDefaults.js +529 -0
  361. package/dist/shared/dueDate.d.ts +6 -0
  362. package/dist/shared/dueDate.js +6 -0
  363. package/dist/shared/duration.d.ts +4 -0
  364. package/dist/shared/duration.js +23 -0
  365. package/dist/shared/fileBounds.d.ts +9 -0
  366. package/dist/shared/fileBounds.js +9 -0
  367. package/dist/shared/filter.d.ts +217 -0
  368. package/dist/shared/filter.js +305 -0
  369. package/dist/shared/firstPaint.d.ts +24 -0
  370. package/dist/shared/firstPaint.js +33 -0
  371. package/dist/shared/form.d.ts +21 -0
  372. package/dist/shared/form.js +25 -0
  373. package/dist/shared/formValues.d.ts +104 -0
  374. package/dist/shared/formValues.js +352 -0
  375. package/dist/shared/funnel.d.ts +45 -0
  376. package/dist/shared/funnel.js +108 -0
  377. package/dist/shared/httpOperations.d.ts +48 -0
  378. package/dist/shared/httpOperations.js +9 -0
  379. package/dist/shared/iconGlyphs.d.ts +4 -0
  380. package/dist/shared/iconGlyphs.js +151 -0
  381. package/dist/shared/iconWeights.d.ts +3 -0
  382. package/dist/shared/iconWeights.js +162 -0
  383. package/dist/shared/imageWidths.d.ts +32 -0
  384. package/dist/shared/imageWidths.js +38 -0
  385. package/dist/shared/keysetPage.d.ts +64 -0
  386. package/dist/shared/keysetPage.js +161 -0
  387. package/dist/shared/like.d.ts +20 -0
  388. package/dist/shared/like.js +29 -0
  389. package/dist/shared/listEmpty.d.ts +12 -0
  390. package/dist/shared/listEmpty.js +36 -0
  391. package/dist/shared/listFilters.d.ts +28 -0
  392. package/dist/shared/listFilters.js +84 -0
  393. package/dist/shared/listPresentations.d.ts +199 -0
  394. package/dist/shared/listPresentations.js +7 -0
  395. package/dist/shared/listQuestion.d.ts +52 -0
  396. package/dist/shared/listQuestion.js +137 -0
  397. package/dist/shared/lookPalettes.d.ts +62 -0
  398. package/dist/shared/lookPalettes.js +306 -0
  399. package/dist/shared/maskQuoted.d.ts +24 -0
  400. package/dist/shared/maskQuoted.js +48 -0
  401. package/dist/shared/mentionLabel.d.ts +19 -0
  402. package/dist/shared/mentionLabel.js +38 -0
  403. package/dist/shared/mentionLookup.d.ts +17 -0
  404. package/dist/shared/mentionLookup.js +64 -0
  405. package/dist/shared/menuCounts.d.ts +16 -0
  406. package/dist/shared/menuCounts.js +74 -0
  407. package/dist/shared/model.d.ts +79 -0
  408. package/dist/shared/model.js +153 -0
  409. package/dist/shared/money.d.ts +44 -0
  410. package/dist/shared/money.js +81 -0
  411. package/dist/shared/moneyEntry.d.ts +7 -0
  412. package/dist/shared/moneyEntry.js +27 -0
  413. package/dist/shared/mount.d.ts +118 -0
  414. package/dist/shared/mount.js +248 -0
  415. package/dist/shared/niceTicks.d.ts +26 -0
  416. package/dist/shared/niceTicks.js +50 -0
  417. package/dist/shared/order.d.ts +59 -0
  418. package/dist/shared/order.js +133 -0
  419. package/dist/shared/page.d.ts +135 -0
  420. package/dist/shared/page.js +1187 -0
  421. package/dist/shared/pageAnatomy.d.ts +99 -0
  422. package/dist/shared/pageAnatomy.js +370 -0
  423. package/dist/shared/pageConfig.d.ts +25 -0
  424. package/dist/shared/pageConfig.js +1308 -0
  425. package/dist/shared/pageEmptyActions.d.ts +12 -0
  426. package/dist/shared/pageEmptyActions.js +20 -0
  427. package/dist/shared/pageLayouts.d.ts +72 -0
  428. package/dist/shared/pageLayouts.js +205 -0
  429. package/dist/shared/pageModel.d.ts +785 -0
  430. package/dist/shared/pageModel.js +121 -0
  431. package/dist/shared/pagePaths.d.ts +180 -0
  432. package/dist/shared/pagePaths.js +869 -0
  433. package/dist/shared/pagePlans.d.ts +52 -0
  434. package/dist/shared/pagePlans.js +108 -0
  435. package/dist/shared/pageRoutes.d.ts +9 -0
  436. package/dist/shared/pageRoutes.js +9 -0
  437. package/dist/shared/query.d.ts +166 -0
  438. package/dist/shared/query.js +1302 -0
  439. package/dist/shared/queryDates.d.ts +12 -0
  440. package/dist/shared/queryDates.js +101 -0
  441. package/dist/shared/queryOperands.d.ts +99 -0
  442. package/dist/shared/queryOperands.js +131 -0
  443. package/dist/shared/reads.d.ts +103 -0
  444. package/dist/shared/reads.js +154 -0
  445. package/dist/shared/recordLabel.d.ts +51 -0
  446. package/dist/shared/recordLabel.js +123 -0
  447. package/dist/shared/recordReadKeys.d.ts +30 -0
  448. package/dist/shared/recordReadKeys.js +51 -0
  449. package/dist/shared/recordReads.d.ts +268 -0
  450. package/dist/shared/recordReads.js +368 -0
  451. package/dist/shared/recordview.d.ts +198 -0
  452. package/dist/shared/recordview.js +356 -0
  453. package/dist/shared/referenceModel.d.ts +58 -0
  454. package/dist/shared/referenceModel.js +194 -0
  455. package/dist/shared/refusal.d.ts +64 -0
  456. package/dist/shared/refusal.js +144 -0
  457. package/dist/shared/relatedCreate.d.ts +30 -0
  458. package/dist/shared/relatedCreate.js +162 -0
  459. package/dist/shared/resourceHttp.d.ts +464 -0
  460. package/dist/shared/resourceHttp.js +1 -0
  461. package/dist/shared/richText.d.ts +85 -0
  462. package/dist/shared/richText.js +305 -0
  463. package/dist/shared/rollups.d.ts +143 -0
  464. package/dist/shared/rollups.js +64 -0
  465. package/dist/shared/rowScope.d.ts +72 -0
  466. package/dist/shared/rowScope.js +376 -0
  467. package/dist/shared/runtimeTables.d.ts +44 -0
  468. package/dist/shared/runtimeTables.js +79 -0
  469. package/dist/shared/schema.d.ts +523 -0
  470. package/dist/shared/schema.js +627 -0
  471. package/dist/shared/schematext.d.ts +38 -0
  472. package/dist/shared/schematext.js +101 -0
  473. package/dist/shared/scopeCatalog.d.ts +29 -0
  474. package/dist/shared/scopeCatalog.js +468 -0
  475. package/dist/shared/servedApp.d.ts +681 -0
  476. package/dist/shared/servedApp.js +45 -0
  477. package/dist/shared/sessionLease.d.ts +34 -0
  478. package/dist/shared/sessionLease.js +3 -0
  479. package/dist/shared/shape.d.ts +55 -0
  480. package/dist/shared/shape.js +168 -0
  481. package/dist/shared/slug.d.ts +1 -0
  482. package/dist/shared/slug.js +12 -0
  483. package/dist/shared/sortText.d.ts +14 -0
  484. package/dist/shared/sortText.js +26 -0
  485. package/dist/shared/sqlRelation.d.ts +4 -0
  486. package/dist/shared/sqlRelation.js +8 -0
  487. package/dist/shared/sqlsaved.d.ts +44 -0
  488. package/dist/shared/sqlsaved.js +63 -0
  489. package/dist/shared/stitchedPaths.d.ts +27 -0
  490. package/dist/shared/stitchedPaths.js +38 -0
  491. package/dist/shared/structuredFilter.d.ts +22 -0
  492. package/dist/shared/structuredFilter.js +1 -0
  493. package/dist/shared/subtitlePath.d.ts +20 -0
  494. package/dist/shared/subtitlePath.js +24 -0
  495. package/dist/shared/suggest.d.ts +18 -0
  496. package/dist/shared/suggest.js +59 -0
  497. package/dist/shared/tableSizing.d.ts +4 -0
  498. package/dist/shared/tableSizing.js +9 -0
  499. package/dist/shared/tagLists.d.ts +57 -0
  500. package/dist/shared/tagLists.js +34 -0
  501. package/dist/shared/textRules.d.ts +54 -0
  502. package/dist/shared/textRules.js +133 -0
  503. package/dist/shared/theme.d.ts +94 -0
  504. package/dist/shared/theme.js +800 -0
  505. package/dist/shared/themeColor.d.ts +34 -0
  506. package/dist/shared/themeColor.js +109 -0
  507. package/dist/shared/themeFaces.d.ts +30 -0
  508. package/dist/shared/themeFaces.js +42 -0
  509. package/dist/shared/themeInk.d.ts +20 -0
  510. package/dist/shared/themeInk.js +52 -0
  511. package/dist/shared/themeLooks.d.ts +9 -0
  512. package/dist/shared/themeLooks.js +572 -0
  513. package/dist/shared/themeParts.d.ts +26 -0
  514. package/dist/shared/themeParts.js +71 -0
  515. package/dist/shared/themePartsCheck.d.ts +21 -0
  516. package/dist/shared/themePartsCheck.js +91 -0
  517. package/dist/shared/themePresets.d.ts +85 -0
  518. package/dist/shared/themePresets.js +139 -0
  519. package/dist/shared/themeRecipeWords.d.ts +156 -0
  520. package/dist/shared/themeRecipeWords.js +156 -0
  521. package/dist/shared/themeRecipes.d.ts +213 -0
  522. package/dist/shared/themeRecipes.js +234 -0
  523. package/dist/shared/themeResolve.d.ts +55 -0
  524. package/dist/shared/themeResolve.js +52 -0
  525. package/dist/shared/themeTokens.d.ts +107 -0
  526. package/dist/shared/themeTokens.js +116 -0
  527. package/dist/shared/themeType.d.ts +38 -0
  528. package/dist/shared/themeType.js +205 -0
  529. package/dist/shared/unitWord.d.ts +4 -0
  530. package/dist/shared/unitWord.js +37 -0
  531. package/dist/shared/view.d.ts +195 -0
  532. package/dist/shared/view.js +987 -0
  533. package/dist/shared/viewLabels.d.ts +47 -0
  534. package/dist/shared/viewLabels.js +459 -0
  535. package/dist/shared/viewPaths.d.ts +248 -0
  536. package/dist/shared/viewPaths.js +294 -0
  537. package/dist/shared/viewtext.d.ts +57 -0
  538. package/dist/shared/viewtext.js +282 -0
  539. package/dist/shared/vocabulary.d.ts +71 -0
  540. package/dist/shared/vocabulary.js +249 -0
  541. package/dist/shared/weekStart.d.ts +7 -0
  542. package/dist/shared/weekStart.js +36 -0
  543. package/mark.svg +1 -0
  544. package/package.json +261 -4
  545. package/schema/model.d.ts +298 -0
  546. package/schema/theme.d.ts +587 -0
@@ -0,0 +1,572 @@
1
+ import { LOOK_PALETTES, paletteColors } from './lookPalettes.js';
2
+ /** The system's own interface face on every machine; nothing is fetched and
3
+ nothing is bundled. A look's identity is its type roles: size, weight and tracking. */
4
+ const SANS = 'ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif';
5
+ const HELVETICA = '"Helvetica Neue", Helvetica, Arial, ui-sans-serif, sans-serif';
6
+ /** Lumen's face: Inter, shipped with Lumen's sheet (lumenLook.css) and so
7
+ fetched only by a page wearing it, never in the first paint; then Arial
8
+ cut to Inter's measure while it arrives (docs/design.md, Faces). */
9
+ const INTER = `Inter, "Inter Fallback", ${SANS}`;
10
+ /** Workshop's faces: Barlow for the interface and data, its semi-condensed bold for titles and labels, shipped with
11
+ Workshop's sheet (workshopLook.css) and fetched only by a page wearing it; each with Arial cut to its measure
12
+ while it arrives. */
13
+ const BARLOW = `Barlow, "Barlow Fallback", "Helvetica Neue", Arial, sans-serif`;
14
+ const BARLOW_CONDENSED = `"Barlow Semi Condensed", "Barlow Semi Condensed Fallback", Barlow, "Arial Narrow", sans-serif`;
15
+ /** Ledger's figures and labels: IBM Plex Mono, shipped with Ledger's sheet (ledgerLook.css) and fetched only by a page
16
+ wearing it; the platform's monospace stands in until it arrives. */
17
+ const PLEX_MONO = `'IBM Plex Mono', ui-monospace, Menlo, monospace`;
18
+ /** Spec colors over spec colors: a group (`nav`, `status`, `rules`) role by role, a series whole. */
19
+ function overColors(base, top) {
20
+ return {
21
+ ...base,
22
+ ...top,
23
+ ...(base.nav || top.nav ? { nav: { ...base.nav, ...top.nav } } : {}),
24
+ ...(base.status || top.status ? { status: { ...base.status, ...top.status } } : {}),
25
+ ...(base.rules || top.rules ? { rules: { ...base.rules, ...top.rules } } : {}),
26
+ };
27
+ }
28
+ /** A look with every palette: its own colors are its default palette's, and each palette is the same hue as it is in
29
+ every other look (scripts/theme-presets.mjs keeps only what a palette changes). */
30
+ function withPalettes(look) {
31
+ const series = (mode) => (look.colors[mode].chart ?? []).filter((color) => typeof color === 'string');
32
+ const worn = (id, mode) => overColors(look.colors[mode], paletteColors(look.id, LOOK_PALETTES.find((palette) => palette.id === id), mode, series(mode)));
33
+ return {
34
+ ...look,
35
+ colors: { light: worn(look.defaultPalette, 'light'), dark: worn(look.defaultPalette, 'dark') },
36
+ palettes: LOOK_PALETTES.map((palette) => ({
37
+ id: palette.id,
38
+ label: palette.label,
39
+ light: worn(palette.id, 'light'),
40
+ dark: worn(palette.id, 'dark'),
41
+ })),
42
+ };
43
+ }
44
+ /** The built-in looks: Workshop, the default an App wears, then Lumen, Mono, Sage and Ledger.
45
+ Each is written as an App would write its own (`defineTheme`,
46
+ packages/engine/schema/theme.d.ts): colours by purpose, a shape, a type and a pick from the
47
+ recipe menu (themeBuild.ts), and built by the same `buildTheme` an App's
48
+ theme goes through once `compileTheme` has checked it. A look the menu
49
+ could not say would extend the menu, never be special-cased. An App's
50
+ theme `extends` one of them, or none (docs/theming.md shows a few that
51
+ extend none). Every look draws its content on a white or near-white
52
+ ground (Sage's white panels on cream are the warm page) and keeps its
53
+ colour for the bar, the accent and the current item; captions take an ink
54
+ darker than the hairlines and still quieter than the text. `lineControl`
55
+ is a form control's edge, at 3:1 on surface, ground and raised (WCAG
56
+ 1.4.11): the look's lineStrong where that already clears it, else one step
57
+ toward the ink.
58
+
59
+ The title weight (`type.roles.title.weight`) is never past 700: a heavier
60
+ ask resolved a book face to its Black cut, a masthead where a title was
61
+ meant, and broke the record's head. Mono titles at 700; Lumen's and Sage's
62
+ softer titles at 600; Workshop's condensed capitals at 700.
63
+
64
+ Each wears every palette in lookPalettes.ts; its own colors are its
65
+ default palette's (Workshop's Safety orange, Lumen's Cobalt, Mono's and
66
+ Sage's Ink, which is each one's own ink, Ledger's Emerald, drawn in the
67
+ book's own deep green). */
68
+ const HOUSE = [
69
+ {
70
+ // The desk as a workbench, ported from a field report's theme: warm paper,
71
+ // ink-black type and fills, and one restrained hue — Safety orange unless
72
+ // a palette says another. The hue reaches only the marks a reader takes
73
+ // for the brand color: the primary verb (the ink's words on it, as a
74
+ // hazard tag prints them), links and the current tab's rule, a 3px marker
75
+ // beside the menu's ink block (like a tool's slot on a pegboard), the
76
+ // focus ring, a checked box and the first chart series. Fills, rules and
77
+ // selection stay the ink, and nothing is tinted. Titles, section heads
78
+ // and labels are Barlow's semi-condensed bold in capitals, the rest
79
+ // Barlow; heavy 2px ink rules part the sections and stand under a
80
+ // table's heads, corners are near-square and nothing floats; the menu
81
+ // sits on a faint grain (workshopLook.css; docs/design.md, Workshop).
82
+ id: 'workshop',
83
+ label: 'Workshop',
84
+ defaultPalette: 'safety',
85
+ colors: {
86
+ light: {
87
+ ground: '#f2ede3',
88
+ surface: '#faf8f3',
89
+ raised: '#ece6da',
90
+ ink: '#1b1813',
91
+ inkMuted: '#4f483d',
92
+ inkSubtle: '#5f574b',
93
+ line: '#ddd5c6',
94
+ lineStrong: '#8b8274',
95
+ lineControl: '#7d7466',
96
+ accentInk: '#1b1813',
97
+ accentSoft: '#e7dfd0',
98
+ primary: '#1b1813',
99
+ link: '#1b1813',
100
+ shadow: '#3a3020',
101
+ status: { good: '#106b38', warning: '#934a06', critical: '#c52a2a', info: '#2f5578' },
102
+ nav: {
103
+ ground: '#ebe5d9',
104
+ ink: '#1b1813',
105
+ muted: '#4f483d',
106
+ line: '#d8cfbe',
107
+ accent: '#1b1813',
108
+ },
109
+ rules: { section: '#1b1813', head: '#1b1813' },
110
+ chart: ['#2b2620', '#9a6cf7', '#0e9a6c', '#d97706', '#e0428a', '#0e8fb0', '#a3510b', '#94a3b8'],
111
+ },
112
+ dark: {
113
+ ground: '#15130f',
114
+ surface: '#1d1a15',
115
+ raised: '#26221c',
116
+ ink: '#efe9de',
117
+ inkMuted: '#c2b9aa',
118
+ inkSubtle: '#a59c8d',
119
+ line: '#2f2a22',
120
+ lineStrong: '#6d6555',
121
+ lineControl: '#7a7262',
122
+ accentInk: '#efe9de',
123
+ accentSoft: '#2c261e',
124
+ primary: '#efe9de',
125
+ link: '#efe9de',
126
+ status: { good: '#4ade80', warning: '#fbbf24', critical: '#f87171', info: '#91a8ff' },
127
+ nav: {
128
+ ground: '#110f0c',
129
+ ink: '#efe9de',
130
+ muted: '#b3aa9b',
131
+ line: '#26221c',
132
+ accent: '#efe9de',
133
+ },
134
+ rules: { section: '#8a8170', head: '#8a8170' },
135
+ chart: ['#d9d0c0', '#9a78ec', '#12a678', '#c88317', '#e0559b', '#1597b9', '#d26b3b', '#6b7694'],
136
+ },
137
+ },
138
+ shape: {
139
+ radius: { control: '2px', field: '2px', pill: '2px', panel: '2px' },
140
+ elevation: 'flat',
141
+ border: { panel: '1px', rule: '2px' },
142
+ },
143
+ type: {
144
+ font: { ui: BARLOW, data: BARLOW, heading: BARLOW_CONDENSED },
145
+ base: '14px',
146
+ roles: {
147
+ title: { face: 'heading', size: '30px', weight: 700, case: 'upper', tracking: '0.01em', leading: 1.1 },
148
+ heading: { face: 'heading', size: '22px', weight: 700, case: 'upper', tracking: '0.01em' },
149
+ section: { face: 'heading', size: '15px', weight: 700, case: 'upper', tracking: '0.04em' },
150
+ label: { face: 'heading', weight: 700, case: 'upper', tracking: '0.06em' },
151
+ data: { features: ['tnum'] },
152
+ figure: { face: 'heading', size: '38px', weight: 700, features: ['tnum'] },
153
+ nav: { weight: 500 },
154
+ },
155
+ },
156
+ surface: { nav: { kind: 'grain' } },
157
+ // Compact, as the other looks: see Mono's density.
158
+ density: 'compact',
159
+ rhythm: 'house',
160
+ recipes: {
161
+ nav: 'slot',
162
+ bar: 'ruled',
163
+ tabs: 'rule',
164
+ windows: 'segmented',
165
+ stat: 'ruled',
166
+ section: 'open',
167
+ fields: 'open',
168
+ table: 'open',
169
+ status: 'dot',
170
+ board: 'ruled',
171
+ chart: 'plain',
172
+ buttons: 'keyed',
173
+ links: 'plain',
174
+ rules: 'ink',
175
+ avatar: 'plain',
176
+ workflow: 'markers',
177
+ banner: 'plain',
178
+ steps: 'strip',
179
+ lanes: 'tag',
180
+ header: 'plain',
181
+ },
182
+ },
183
+ {
184
+ // Flat, calm and modern, with character in its details: a warm, faintly
185
+ // tinted shell around white working surfaces, elevation only on what
186
+ // floats, one confident accent for the primary action, the current room,
187
+ // selection, focus, the main chart series and the current step; metrics
188
+ // in a divided strip, fields in a property rail, tables on hairlines
189
+ // anchored on the record's name, statuses as a dot and their word, a
190
+ // workflow as a track of segments, charts as a line in one hue's steps
191
+ // (lumenLook.css; docs/design.md, Lumen, for its exceptions). The chart
192
+ // palette keeps blue, violet, green, amber and pink at steps the dataviz
193
+ // checks pass, light and dark. Inter, shipped with the look. Its own
194
+ // blue is Cobalt; every other palette changes the accent family only —
195
+ // grounds, ink and structure stay Lumen's.
196
+ id: 'lumen',
197
+ label: 'Lumen',
198
+ defaultPalette: 'cobalt',
199
+ colors: {
200
+ light: {
201
+ ground: '#ffffff',
202
+ surface: '#ffffff',
203
+ raised: '#f5f4f2',
204
+ ink: '#1c1a17',
205
+ inkMuted: '#5c5852',
206
+ inkSubtle: '#726c64',
207
+ line: '#ebe8e4',
208
+ lineStrong: '#8f8a83',
209
+ lineControl: '#8f8a83',
210
+ primary: '#1c1a17',
211
+ onPrimary: '#ffffff',
212
+ status: {
213
+ good: '#127a40',
214
+ warning: '#a65308',
215
+ critical: '#c52a2a',
216
+ info: '#2d4fd6',
217
+ },
218
+ nav: {
219
+ ground: '#fbfaf9',
220
+ ink: '#1c1a17',
221
+ muted: '#5c5852',
222
+ line: '#ebe8e4',
223
+ },
224
+ rules: {
225
+ section: '#ebe8e4',
226
+ head: '#ebe8e4',
227
+ },
228
+ chart: ['#2557e0', '#9a6cf7', '#0e9a6c', '#d97706', '#e0428a', '#0e8fb0', '#a3510b', '#94a3b8'],
229
+ },
230
+ dark: {
231
+ ground: '#121110',
232
+ surface: '#161514',
233
+ raised: '#201f1d',
234
+ ink: '#eeece8',
235
+ inkMuted: '#b8b3ab',
236
+ inkSubtle: '#9f9a92',
237
+ line: '#2d2b27',
238
+ lineStrong: '#726d65',
239
+ lineControl: '#726d65',
240
+ primary: '#eeece8',
241
+ onPrimary: '#121110',
242
+ status: {
243
+ good: '#4ade80',
244
+ warning: '#fbbf24',
245
+ critical: '#f87171',
246
+ info: '#91a8ff',
247
+ },
248
+ nav: {
249
+ ground: '#141312',
250
+ ink: '#eeece8',
251
+ muted: '#aaa59d',
252
+ line: '#262422',
253
+ },
254
+ rules: {
255
+ section: '#2d2b27',
256
+ head: '#2d2b27',
257
+ },
258
+ chart: ['#3559e6', '#9a78ec', '#12a678', '#c88317', '#e0559b', '#1597b9', '#d26b3b', '#6b7694'],
259
+ },
260
+ },
261
+ shape: { radius: { control: '8px', field: '8px' }, elevation: 'raised', border: { rule: '1px' } },
262
+ /* The page's name anchors it: 28px, tight; a list's name a step under, and a section's heading 16px, so the
263
+ page reads title, section, row at a glance. On a flat page the type is the hierarchy the boxes used to be. */
264
+ type: {
265
+ font: { ui: INTER, data: INTER, heading: INTER },
266
+ roles: {
267
+ title: { size: '28px', weight: 600, tracking: '-0.02em' },
268
+ heading: { size: '24px', tracking: '-0.018em' },
269
+ section: { size: '16px', weight: 600, tracking: '-0.01em' },
270
+ },
271
+ },
272
+ density: 'compact',
273
+ recipes: {
274
+ nav: 'pill',
275
+ bar: 'airy',
276
+ tabs: 'underline',
277
+ windows: 'lifted',
278
+ stat: 'divided',
279
+ section: 'open',
280
+ fields: 'rail',
281
+ table: 'quiet',
282
+ status: 'quiet',
283
+ board: 'strip',
284
+ chart: 'line',
285
+ buttons: 'raised',
286
+ rules: 'hairline',
287
+ avatar: 'round',
288
+ workflow: 'markers',
289
+ banner: 'plain',
290
+ steps: 'strip',
291
+ },
292
+ },
293
+ {
294
+ // Black and white, and structure: square corners, rules in the ink over
295
+ // grey hairlines, stat figures and labels in a monospace
296
+ // (themeFamilies.css), the current tab inverted, colour left to status.
297
+ // Data stays in the sans, as in every look.
298
+ id: 'mono',
299
+ label: 'Mono',
300
+ defaultPalette: 'ink',
301
+ colors: {
302
+ light: {
303
+ ground: '#ffffff',
304
+ surface: '#ffffff',
305
+ raised: '#f2f2f2',
306
+ ink: '#000000',
307
+ inkMuted: '#333333',
308
+ inkSubtle: '#555555',
309
+ line: '#d4d4d4',
310
+ lineStrong: '#000000',
311
+ lineControl: '#000000',
312
+ accentSoft: '#ebebeb',
313
+ status: {
314
+ good: '#0a6b3a',
315
+ warning: '#7a5200',
316
+ critical: '#b3261e',
317
+ info: '#0a4fc2',
318
+ },
319
+ nav: {
320
+ ground: '#ffffff',
321
+ ink: '#000000',
322
+ muted: '#333333',
323
+ line: '#000000',
324
+ },
325
+ chart: ['#000000', '#6b6b6b', '#333333', '#8e8e8e', '#505050', '#a8a8a8', '#1c1c1c', '#c8c8c8'],
326
+ },
327
+ dark: {
328
+ ground: '#000000',
329
+ surface: '#0a0a0a',
330
+ raised: '#161616',
331
+ ink: '#ffffff',
332
+ inkMuted: '#d0d0d0',
333
+ inkSubtle: '#a8a8a8',
334
+ line: '#3a3a3a',
335
+ lineStrong: '#ffffff',
336
+ lineControl: '#ffffff',
337
+ accentSoft: '#262626',
338
+ status: {
339
+ good: '#6fdc9c',
340
+ warning: '#f2c94c',
341
+ critical: '#ff8a80',
342
+ info: '#8fb8ff',
343
+ },
344
+ nav: {
345
+ ground: '#000000',
346
+ ink: '#ffffff',
347
+ muted: '#bdbdbd',
348
+ line: '#ffffff',
349
+ },
350
+ chart: ['#ffffff', '#8a8a8a', '#cccccc', '#6a6a6a', '#a8a8a8', '#4a4a4a', '#e6e6e6', '#333333'],
351
+ },
352
+ },
353
+ shape: { radius: { control: '0px', field: '0px' }, elevation: 'flat' },
354
+ /* Figures and the labels that make the look in the platform's monospace, the labels and the bar's entries in
355
+ capitals: not data, which a reader who wants monospace picks in Preferences. */
356
+ type: {
357
+ font: { ui: HELVETICA, data: HELVETICA, heading: HELVETICA },
358
+ roles: {
359
+ title: { size: '30px', weight: 700 },
360
+ label: { face: 'code', case: 'upper' },
361
+ nav: { face: 'code', case: 'upper' },
362
+ figure: { face: 'code', weight: 700 },
363
+ },
364
+ },
365
+ /* Compact, as Lumen: these looks' comfortable cut zooms by 1.12, and a wide list (Lintel's rent roll at a 1280px
366
+ desk) then overflowed sideways. A reader's own density still wins. */
367
+ density: 'compact',
368
+ recipes: { nav: 'inverted', bar: 'ruled', tabs: 'inverted', stat: 'framed', links: 'underline' },
369
+ },
370
+ {
371
+ // A soft workspace, recreated as it is from a reference the maintainer
372
+ // chose: warm cream grounds with the content on white panels (a soft
373
+ // shadow, a larger radius), near-black ink for text and calls to action,
374
+ // sage green for the charts and good news, a warm tint for what is chosen
375
+ // and meaning in soft tinted pills (sageLook.css; docs/design.md,
376
+ // Sage, for its exceptions). The one look whose content ground is warm.
377
+ id: 'sage',
378
+ label: 'Sage',
379
+ defaultPalette: 'ink',
380
+ colors: {
381
+ light: {
382
+ ground: '#f4f2ec',
383
+ surface: '#fdfcf9',
384
+ raised: '#efece5',
385
+ ink: '#1f2320',
386
+ inkMuted: '#484d48',
387
+ inkSubtle: '#5d625c',
388
+ line: '#e6e2d8',
389
+ lineStrong: '#837e72',
390
+ lineControl: '#837e72',
391
+ accentSoft: '#ebe8df',
392
+ status: {
393
+ good: '#23784a',
394
+ warning: '#8f5800',
395
+ critical: '#b83a2c',
396
+ info: '#2f5fa3',
397
+ },
398
+ /* The menu is a panel on the cream page, as a section is: white beside the
399
+ page, and a bar that holds the menu (placement top) white above it. */
400
+ nav: {
401
+ ground: '#fdfcf9',
402
+ ink: '#1f2320',
403
+ muted: '#565b55',
404
+ line: '#e6e2d8',
405
+ },
406
+ // Ordered so neighbors differ for a red-green reader too (themeCheck.ts), and with one green among the
407
+ // first four: a second green and a teal there made a five-way breakdown read as three. The dark series
408
+ // are the same hues in the same order, so a series keeps its color across modes.
409
+ chart: ['#3a8560', '#7b61c4', '#c4573f', '#b25c8c', '#a8781f', '#2f8f89', '#3f76c2', '#8a8578'],
410
+ },
411
+ dark: {
412
+ ground: '#141613',
413
+ surface: '#1b1e1a',
414
+ raised: '#242822',
415
+ ink: '#f1f0ea',
416
+ inkMuted: '#cdcbc2',
417
+ inkSubtle: '#aaa89f',
418
+ line: '#323630',
419
+ lineStrong: '#7d8277',
420
+ lineControl: '#7d8277',
421
+ accentSoft: '#2a2d27',
422
+ status: {
423
+ good: '#72d59c',
424
+ warning: '#efc26a',
425
+ critical: '#f28d7f',
426
+ info: '#92b8f2',
427
+ },
428
+ nav: {
429
+ ground: '#1b1e1a',
430
+ ink: '#f1f0ea',
431
+ muted: '#aaa89f',
432
+ line: '#2a2e28',
433
+ },
434
+ chart: ['#7fd1a0', '#c4b1f2', '#f2a08a', '#f08cc4', '#ecc36e', '#6fd1c8', '#92b8f2', '#8c887f'],
435
+ },
436
+ },
437
+ shape: { radius: { control: '8px', field: '8px' }, elevation: 'soft' },
438
+ type: { font: { ui: SANS, data: SANS, heading: SANS }, roles: { title: { weight: 600 } } },
439
+ // Compact, as Mono and Lumen: see Mono's density.
440
+ density: 'compact',
441
+ recipes: {
442
+ nav: 'quiet',
443
+ bar: 'soft',
444
+ tabs: 'chosen',
445
+ windows: 'chosen',
446
+ stat: 'panel',
447
+ section: 'panel',
448
+ fields: 'panel',
449
+ table: 'hairline',
450
+ status: 'pill',
451
+ board: 'soft',
452
+ chart: 'wash',
453
+ rules: 'hairline',
454
+ avatar: 'large',
455
+ // The head stands on one band of the surface, as its cards do on the warm ground.
456
+ header: 'band',
457
+ },
458
+ },
459
+ {
460
+ // A bookkeeper's desk, ported from a field report's theme (it extended
461
+ // Lumen; here it stands alone): every figure, id, date and label in a
462
+ // monospace (IBM Plex Mono) so numbers line up down a page, with prose and
463
+ // titles left in Inter. Green-tinted paper under a faint graph-paper
464
+ // ground, field groups and dashboard sections as square ruled boxes in the
465
+ // strong line, a table's column heads closed with a double rule as a
466
+ // ledger closes a total (ledgerLook.css), and one deep ledger green for
467
+ // the book's cover (the menu), the primary verb and links, with a gilt
468
+ // mark for the current entry. By night the cover goes near-black green and
469
+ // the same green is lifted to a mint that reads on it. A palette moves the
470
+ // hue the reader's marks are drawn in (accent, links, the ring, the rules,
471
+ // the first series) and leaves the paper and the cover the book's own.
472
+ id: 'ledger',
473
+ label: 'Ledger',
474
+ defaultPalette: 'emerald',
475
+ colors: {
476
+ light: {
477
+ ground: '#eef2ec',
478
+ surface: '#fcfdfb',
479
+ raised: '#eaf0ea',
480
+ ink: '#0f1a14',
481
+ inkMuted: '#44524a',
482
+ inkSubtle: '#52605a',
483
+ line: '#d3ddd5',
484
+ lineStrong: '#7f8f85',
485
+ lineControl: '#748479',
486
+ onAccent: '#ffffff',
487
+ accentInk: '#0f4d36',
488
+ primary: '#0f4d36',
489
+ status: { good: '#127a40', warning: '#a65308', critical: '#c52a2a', info: '#2d4fd6' },
490
+ nav: {
491
+ ground: '#103d2c',
492
+ ink: '#e6efe9',
493
+ muted: '#a9c2b4',
494
+ line: '#1d4d3b',
495
+ accent: '#e4cf8f',
496
+ current: '#1c5640',
497
+ onCurrent: '#ffffff',
498
+ },
499
+ rules: { section: '#0f4d36', head: '#0f4d36' },
500
+ chart: ['#0f6b4a', '#9a6cf7', '#0e9a6c', '#d97706', '#e0428a', '#0e8fb0', '#a3510b', '#94a3b8'],
501
+ },
502
+ dark: {
503
+ ground: '#0b1310',
504
+ surface: '#111c17',
505
+ raised: '#18251f',
506
+ ink: '#e3ece6',
507
+ inkMuted: '#afc0b6',
508
+ inkSubtle: '#93a59a',
509
+ line: '#1c2a23',
510
+ lineStrong: '#587064',
511
+ lineControl: '#66806f',
512
+ onAccent: '#0b1310',
513
+ accentInk: '#8fd1ae',
514
+ primary: '#7cc4a0',
515
+ status: { good: '#4ade80', warning: '#fbbf24', critical: '#f87171', info: '#91a8ff' },
516
+ nav: {
517
+ ground: '#08100c',
518
+ ink: '#dfe9e3',
519
+ muted: '#9fb3a7',
520
+ line: '#18261f',
521
+ accent: '#e0cd94',
522
+ current: '#163a2b',
523
+ onCurrent: '#ffffff',
524
+ },
525
+ rules: { section: '#6fb592', head: '#6fb592' },
526
+ chart: ['#5fbf92', '#9a78ec', '#12a678', '#c88317', '#e0559b', '#1597b9', '#d26b3b', '#6b7694'],
527
+ },
528
+ },
529
+ shape: {
530
+ radius: { control: '2px', field: '0px', pill: '2px', panel: '0px' },
531
+ elevation: 'flat',
532
+ border: { panel: '1px', rule: '1px' },
533
+ },
534
+ type: {
535
+ font: { ui: INTER, data: PLEX_MONO, heading: INTER },
536
+ roles: {
537
+ title: { size: '26px', weight: 600, tracking: '-0.01em' },
538
+ heading: { size: '20px', weight: 600, tracking: '-0.018em' },
539
+ section: { face: 'data', size: '12px', weight: 500, case: 'upper', tracking: '0.08em' },
540
+ label: { face: 'data', weight: 500, case: 'upper', tracking: '0.04em' },
541
+ data: { features: ['tnum', 'zero'] },
542
+ figure: { face: 'data', size: '30px', weight: 500, tracking: '-0.02em', features: ['tnum', 'zero'] },
543
+ nav: { face: 'ui', weight: 400 },
544
+ },
545
+ },
546
+ surface: { ground: { kind: 'grid' } },
547
+ density: 'compact',
548
+ recipes: {
549
+ nav: 'wash',
550
+ bar: 'dark',
551
+ tabs: 'rule',
552
+ windows: 'segmented',
553
+ stat: 'divided',
554
+ section: 'panel',
555
+ fields: 'panel',
556
+ table: 'hairline',
557
+ status: 'quiet',
558
+ board: 'ruled',
559
+ chart: 'plain',
560
+ buttons: 'accent',
561
+ links: 'plain',
562
+ rules: 'double',
563
+ avatar: 'plain',
564
+ workflow: 'markers',
565
+ banner: 'plain',
566
+ steps: 'strip',
567
+ lanes: 'plain',
568
+ header: 'plain',
569
+ },
570
+ },
571
+ ];
572
+ export const LOOKS = HOUSE.map(withPalettes);
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Part styles (`parts` in a theme, docs/theming.md): the published parts of an App's page a theme may dress one by
3
+ * one, and what it may say of each — its ground, ink and edge as a color role (`nav.ground`, `chart[2]`), never a
4
+ * hex, so `check` measures every pair in every mode and palette; a corner, a lift, a face, a weight and a case from
5
+ * the menus the rest of the theme speaks. Nothing that moves a box: no size, spacing, order or visibility.
6
+ *
7
+ * A part is worn as two things, as a type role is: custom properties, `--part-<part>-<property>`, and one word per
8
+ * property said in the root's `data-parts` (`stat:ground`), which turns on the one rule in partsLook.css that
9
+ * reads it. A part that says nothing turns nothing on, so a theme without parts draws as its look does, and the
10
+ * sheet is fetched only when a worn theme says one (visualTheme.ts). The names are a contract (contract 1): a 1.x
11
+ * release may publish another, none is withdrawn before contract 2. Which elements each one names is the
12
+ * platform's (themePartSelectors.ts), so a part stays where it is drawn when the markup under it changes.
13
+ */
14
+ import type { ThemeLift, ThemePart, ThemePartStyle } from '../../schema/theme.js';
15
+ export { partAttribute, PART_PROPERTIES, THEME_PARTS } from './themeRecipes.js';
16
+ export declare const PART_RADII: readonly ['control', 'field', 'pill', 'panel', 'square'];
17
+ export declare const PART_FACES: readonly ['ui', 'heading', 'data'];
18
+ export declare const PART_WEIGHTS: readonly [400, 500, 600, 700];
19
+ export declare const PART_CASES: readonly ['none', 'upper', 'small-caps'];
20
+ export declare const PART_LIFTS: readonly ThemeLift[];
21
+ type Parts = Partial<Record<ThemePart, ThemePartStyle>> | undefined;
22
+ /**
23
+ * The custom properties the parts are worn as. Written where the App's accent is (body, appTheme.js), so a part in
24
+ * `accent` is the App's own accent: a color resolves where its property is declared.
25
+ */
26
+ export declare function partTokens(parts: Parts): Record<string, string>;
@@ -0,0 +1,71 @@
1
+ import { THEME_PARTS } from './themeRecipes.js';
2
+ /* The names and the root's words are the first paint's (themeRecipes.ts), as the recipes' are. */
3
+ export { partAttribute, PART_PROPERTIES, THEME_PARTS } from './themeRecipes.js';
4
+ export const PART_RADII = ['control', 'field', 'pill', 'panel', 'square'];
5
+ export const PART_FACES = ['ui', 'heading', 'data'];
6
+ export const PART_WEIGHTS = [400, 500, 600, 700];
7
+ export const PART_CASES = ['none', 'upper', 'small-caps'];
8
+ export const PART_LIFTS = ['none', 'hairline', 'low', 'mid', 'high'];
9
+ /** A part's name as a custom property's piece: `button.secondary` is `button-secondary`. */
10
+ const partSlug = (part) => part.replace(/\./g, '-');
11
+ /** A color role's path (`nav.ground`, `status.good`, `chart[2]`, `inkMuted`) as the custom property it is worn as. */
12
+ function roleToken(path) {
13
+ const series = /^chart\[(\d)\]$/.exec(path);
14
+ if (series)
15
+ return `--chart-${Number(series[1]) + 1}`;
16
+ const flat = path.replace('.', '-').replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
17
+ return path === 'shadow' ? '--shadow-ink' : `--${flat}`;
18
+ }
19
+ /** Each corner as the token the sheets already draw it with: a round control stays a pill only on a control. */
20
+ const RADIUS = {
21
+ control: 'var(--control-radius, var(--radius))',
22
+ field: 'var(--field-radius, var(--radius))',
23
+ pill: 'var(--pill-radius, 999px)',
24
+ panel: 'var(--radius-lg)',
25
+ square: '0',
26
+ };
27
+ const FACE = {
28
+ ui: 'var(--sans)',
29
+ heading: 'var(--heading-font, var(--sans))',
30
+ data: 'var(--mono)',
31
+ };
32
+ /** Each lift as the card steps draw it (themeFamilies.css), mixed from the theme's shadow ink. */
33
+ const LIFT = {
34
+ none: 'none',
35
+ hairline: '0 1px 2px color-mix(in srgb, var(--shadow-ink) 5%, transparent)',
36
+ low: '0 1px 2px color-mix(in srgb, var(--shadow-ink) 4%, transparent), 0 6px 16px -4px color-mix(in srgb, var(--shadow-ink) 7%, transparent)',
37
+ mid: '0 1px 2px color-mix(in srgb, var(--shadow-ink) 5%, transparent), 0 10px 28px -16px color-mix(in srgb, var(--shadow-ink) 20%, transparent)',
38
+ high: '0 1px 3px color-mix(in srgb, var(--shadow-ink) 6%, transparent), 0 16px 36px -14px color-mix(in srgb, var(--shadow-ink) 26%, transparent)',
39
+ };
40
+ /**
41
+ * The custom properties the parts are worn as. Written where the App's accent is (body, appTheme.js), so a part in
42
+ * `accent` is the App's own accent: a color resolves where its property is declared.
43
+ */
44
+ export function partTokens(parts) {
45
+ const out = {};
46
+ for (const part of THEME_PARTS) {
47
+ const style = parts?.[part];
48
+ if (!style)
49
+ continue;
50
+ const token = (property) => `--part-${partSlug(part)}-${property}`;
51
+ for (const property of ['ground', 'ink', 'edge']) {
52
+ const path = style[property];
53
+ if (path !== undefined)
54
+ out[token(property)] = `var(${roleToken(path)})`;
55
+ }
56
+ if (style.radius)
57
+ out[token('radius')] = RADIUS[style.radius];
58
+ if (style.lift)
59
+ out[token('lift')] = LIFT[style.lift];
60
+ if (style.face)
61
+ out[token('face')] = FACE[style.face];
62
+ if (style.weight !== undefined)
63
+ out[token('weight')] = String(style.weight);
64
+ if (style.case) {
65
+ out[token('transform')] = style.case === 'upper' ? 'uppercase' : 'none';
66
+ out[token('caps')] = style.case === 'small-caps' ? 'all-small-caps' : 'normal';
67
+ out[token('tracking')] = style.case === 'none' ? 'normal' : 'var(--track-caps)';
68
+ }
69
+ }
70
+ return out;
71
+ }