@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.
- package/app/spa-loading-template.html +32 -0
- package/nuxt.config.ts +8 -0
- package/package.json +2 -2
|
@@ -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.
|
|
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.
|
|
37
|
+
"@cat-factory/contracts": "0.59.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@toad-contracts/testing": "0.3.2",
|