@ultimat3/admin 28.0.0 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -95,7 +95,8 @@ Every route is `ssr`, `hydrate: 'never'` (unless an app file claimed it — Cust
95
95
  is `<Pagination hrefFor>`, a sort header is a link, scope tabs are links, the filter bar is one
96
96
  GET form, a form posts at the URL that rendered it and a refused one comes back 422 with what was
97
97
  typed. A write that worked is a 303. Every admin document is `noindex, nofollow`, and carries no
98
- `og:*` or `twitter:*` tag (`@ultimat3/seo` withdraws them from every `noindex` document).
98
+ `og:*` or `twitter:*` tag (`@ultimat3/seo` withdraws them from a `noindex` document unless the
99
+ route declares `socialCard: true`; no admin route declares it).
99
100
 
100
101
  ### The list an operator works in
101
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultimat3/admin",
3
- "version": "28.0.0",
3
+ "version": "29.0.0",
4
4
  "description": "Two dashboards: the /_x framework dev panels and the generated, AI-first app admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,28 +27,28 @@
27
27
  "LICENSE"
28
28
  ],
29
29
  "engines": {
30
- "bun": ">=1.4.3"
30
+ "bun": ">=1.4.4"
31
31
  },
32
32
  "scripts": {
33
33
  "typecheck": "tsc --noEmit -p tsconfig.json",
34
34
  "test": "bun test"
35
35
  },
36
36
  "dependencies": {
37
- "@ultimat3/action": "28.0.0",
38
- "@ultimat3/ai": "28.0.0",
39
- "@ultimat3/cache": "28.0.0",
40
- "@ultimat3/core": "28.0.0",
41
- "@ultimat3/db": "28.0.0",
42
- "@ultimat3/entity": "28.0.0",
43
- "@ultimat3/http": "28.0.0",
44
- "@ultimat3/i18n": "28.0.0",
45
- "@ultimat3/jobs": "28.0.0",
46
- "@ultimat3/mcp": "28.0.0",
47
- "@ultimat3/money": "28.0.0",
48
- "@ultimat3/policy": "28.0.0",
49
- "@ultimat3/query": "28.0.0",
50
- "@ultimat3/render": "28.0.0",
51
- "@ultimat3/schema": "28.0.0",
52
- "@ultimat3/ui": "28.0.0"
37
+ "@ultimat3/action": "29.0.0",
38
+ "@ultimat3/ai": "29.0.0",
39
+ "@ultimat3/cache": "29.0.0",
40
+ "@ultimat3/core": "29.0.0",
41
+ "@ultimat3/db": "29.0.0",
42
+ "@ultimat3/entity": "29.0.0",
43
+ "@ultimat3/http": "29.0.0",
44
+ "@ultimat3/i18n": "29.0.0",
45
+ "@ultimat3/jobs": "29.0.0",
46
+ "@ultimat3/mcp": "29.0.0",
47
+ "@ultimat3/money": "29.0.0",
48
+ "@ultimat3/policy": "29.0.0",
49
+ "@ultimat3/query": "29.0.0",
50
+ "@ultimat3/render": "29.0.0",
51
+ "@ultimat3/schema": "29.0.0",
52
+ "@ultimat3/ui": "29.0.0"
53
53
  }
54
54
  }
package/src/dev/server.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // SQL, policy traces, and caught mail. The refusal is a throw at construction, not a 404 at
3
3
  // request time: an app that boots with /_x mounted in prod has already lost.
4
4
 
5
- // Type-only, so it is erased and the 46-component barrel stays out of the mount graph — the
5
+ // Type-only, so it is erased and the `@ultimat3/ui` barrel stays out of the mount graph — the
6
6
  // values arrive through the dynamic `import()` in `devShellStyle()`, same reason as `data.ts`.
7
7
  import { DEFAULT_ENVIRONMENT, escapeHtml, tryResolveEnvironment } from '@ultimat3/core';
8
8
  import type { ColorRole } from '@ultimat3/ui';
@@ -135,7 +135,7 @@ let stylePromise: Promise<string> | undefined;
135
135
  * VALUES are read from `@ultimat3/ui` rather than copied, because the copy that used to live
136
136
  * here went stale through a WCAG retune and shipped `line` on `surface-raised` at 1.16:1.
137
137
  * Reached by dynamic `import()` for the same reason `data.ts` is: /_x stays out of the
138
- * production graph, and the 46-component barrel loads only once a panel is actually drawn.
138
+ * production graph, and the `@ultimat3/ui` barrel loads only once a panel is actually drawn.
139
139
  *
140
140
  * Exported because the host that mounts /_x is the one that configures the CSP the panels are
141
141
  * served under, and the `style-src` hash it needs is of THIS text — a host that hashed its own
@@ -160,7 +160,7 @@ export function devShellStyle(): Promise<string> {
160
160
  return stylePromise;
161
161
  }
162
162
 
163
- /** The read itself. Dynamic, so the 46-component barrel stays out of the production graph. */
163
+ /** The read itself. Dynamic, so the `@ultimat3/ui` barrel stays out of the production graph. */
164
164
  async function loadShellStyle(): Promise<string> {
165
165
  const { colorTokens } = await import('@ultimat3/ui');
166
166
  const block = (theme: 'light' | 'dark'): string =>