@cat-factory/app 0.58.0 → 0.58.1

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.
@@ -0,0 +1,32 @@
1
+ <!-- Early SPA loading shell painted before the JS bundle parses + Vue mounts
2
+ (Nuxt removes it on mount). Self-contained: main.css/icon fonts aren't loaded
3
+ yet, so styles + spinner are inline pure-CSS. Spinner-only keeps it
4
+ locale-neutral. Wired via app.spaLoadingTemplate in nuxt.config.ts. -->
5
+ <div class="cf-spa-loader" role="status" aria-label="Loading">
6
+ <div class="cf-spa-loader__spinner"></div>
7
+ </div>
8
+ <style>
9
+ .cf-spa-loader {
10
+ position: fixed;
11
+ inset: 0;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ /* --board-bg / slate-950, matching the board surface AuthGate renders on. */
16
+ background-color: #0b1020;
17
+ }
18
+ .cf-spa-loader__spinner {
19
+ width: 2rem;
20
+ height: 2rem;
21
+ border-radius: 9999px;
22
+ /* Track in slate-700, the active arc in indigo-500 (the app's primary). */
23
+ border: 3px solid #334155;
24
+ border-top-color: #6366f1;
25
+ animation: cf-spa-spin 1s linear infinite;
26
+ }
27
+ @keyframes cf-spa-spin {
28
+ to {
29
+ transform: rotate(360deg);
30
+ }
31
+ }
32
+ </style>
package/nuxt.config.ts CHANGED
@@ -102,6 +102,14 @@ export default defineNuxtConfig({
102
102
  },
103
103
  },
104
104
 
105
+ // Static loader shown before the JS bundle parses + Vue mounts, so the very
106
+ // first paint isn't a blank white screen. This is a Nuxt *layer*, and Nuxt's
107
+ // default `spaLoadingTemplate` resolution looks under the CONSUMER's srcDir,
108
+ // so a file dropped in this layer would be silently ignored when a deployment
109
+ // `extends` it — anchor it to this layer's dir (the same `~`/`@` rebinding
110
+ // trap the `css:` block above works around). See the comment at the top.
111
+ spaLoadingTemplate: join(layerDir, 'app/spa-loading-template.html'),
112
+
105
113
  app: {
106
114
  head: {
107
115
  title: 'Agent Architecture Board',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.58.0",
3
+ "version": "0.58.1",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,7 +34,7 @@
34
34
  "valibot": "^1.4.2",
35
35
  "vue": "^3.5.39",
36
36
  "wretch": "^3.0.9",
37
- "@cat-factory/contracts": "0.58.0"
37
+ "@cat-factory/contracts": "0.59.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",