@fasl-work/caos-app-shell 0.1.2 → 0.2.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/dist/index.d.ts +13 -0
- package/dist/index.js +23 -19
- package/package.json +54 -54
package/dist/index.d.ts
CHANGED
|
@@ -47,6 +47,19 @@ interface ShellConfig {
|
|
|
47
47
|
version: string;
|
|
48
48
|
/** In-app Architecture / "How it works" modal (ADR-0058). When present, an ⓘ button appears in the header. */
|
|
49
49
|
architecture?: ArchitectureConfig;
|
|
50
|
+
/** Footer provenance + honesty (ADR-0016 §2): the real data/engine source with citation +
|
|
51
|
+
* license (e.g. "Engine: lingbot-map (arXiv:2604.14141, Apache-2.0)") and the one-line honest
|
|
52
|
+
* disclaimer of how the app runs. Both optional, both bilingual. */
|
|
53
|
+
footer?: {
|
|
54
|
+
provenance?: {
|
|
55
|
+
en: string;
|
|
56
|
+
es: string;
|
|
57
|
+
};
|
|
58
|
+
disclaimer?: {
|
|
59
|
+
en: string;
|
|
60
|
+
es: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
50
63
|
}
|
|
51
64
|
/** The shared CAOS/Faena app shell: sticky header (brand + nav + icon-links + lang/theme) + footer.
|
|
52
65
|
* Wrap your <Routes> (or single landing) in it, inside a Router. */
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createContext, useState, useRef, useEffect, useId, useContext } from 'r
|
|
|
2
2
|
import { NavLink } from 'react-router-dom';
|
|
3
3
|
import { Sun, Moon, Languages, Boxes, Github, Globe, Briefcase, Info } from 'lucide-react';
|
|
4
4
|
import { create } from 'zustand';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import katex from 'katex';
|
|
7
7
|
|
|
8
8
|
// src/shell/AppShell.tsx
|
|
@@ -45,7 +45,7 @@ var CHROME = {
|
|
|
45
45
|
toggleLanguage: "Switch language",
|
|
46
46
|
light: "Light",
|
|
47
47
|
dark: "Dark",
|
|
48
|
-
attribution: "
|
|
48
|
+
attribution: "Developed by Felipe Santib\xE1\xF1ez-Leal",
|
|
49
49
|
complement: "A CAOS research project",
|
|
50
50
|
license: "MIT licensed \xB7 open source",
|
|
51
51
|
version: "v"
|
|
@@ -58,7 +58,7 @@ var CHROME = {
|
|
|
58
58
|
toggleLanguage: "Cambiar idioma",
|
|
59
59
|
light: "Claro",
|
|
60
60
|
dark: "Oscuro",
|
|
61
|
-
attribution: "
|
|
61
|
+
attribution: "Desarrollado por Felipe Santib\xE1\xF1ez-Leal",
|
|
62
62
|
complement: "Un proyecto de investigaci\xF3n CAOS",
|
|
63
63
|
license: "Licencia MIT \xB7 c\xF3digo abierto",
|
|
64
64
|
version: "v"
|
|
@@ -282,26 +282,30 @@ function AppShell({ config, children }) {
|
|
|
282
282
|
] }) }),
|
|
283
283
|
config.architecture && archOpen && /* @__PURE__ */ jsx(ArchitectureModal, { config: config.architecture, onClose: () => setArchOpen(false) }),
|
|
284
284
|
/* @__PURE__ */ jsx("main", { className: "page", children }),
|
|
285
|
-
/* @__PURE__ */ jsx("footer", { className: "site-footer", children: /* @__PURE__ */
|
|
286
|
-
/* @__PURE__ */
|
|
287
|
-
|
|
285
|
+
/* @__PURE__ */ jsx("footer", { className: "site-footer", children: /* @__PURE__ */ jsx("div", { className: "footer-inner", children: /* @__PURE__ */ jsxs("div", { className: "footer-meta", children: [
|
|
286
|
+
/* @__PURE__ */ jsx("span", { children: config.product.name }),
|
|
287
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
288
|
+
/* @__PURE__ */ jsx("span", { children: c.complement }),
|
|
289
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
290
|
+
/* @__PURE__ */ jsx("span", { className: "footer-build", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
291
|
+
c.version,
|
|
292
|
+
config.version
|
|
293
|
+
] }) }),
|
|
294
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
295
|
+
/* @__PURE__ */ jsx("span", { children: c.attribution }),
|
|
296
|
+
config.footer?.provenance && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
288
297
|
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
289
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
298
|
+
/* @__PURE__ */ jsx("span", { children: config.footer.provenance[lang] })
|
|
290
299
|
] }),
|
|
291
|
-
/* @__PURE__ */
|
|
292
|
-
|
|
300
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
301
|
+
/* @__PURE__ */ jsx("a", { href: config.links.github, target: "_blank", rel: "noreferrer noopener", children: c.github }),
|
|
302
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
303
|
+
/* @__PURE__ */ jsx("span", { className: "faint", children: c.license }),
|
|
304
|
+
config.footer?.disclaimer && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
293
305
|
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
294
|
-
/* @__PURE__ */ jsx("
|
|
295
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
296
|
-
/* @__PURE__ */ jsx("a", { href: portfolio, target: "_blank", rel: "noreferrer noopener", children: c.portfolio }),
|
|
297
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
298
|
-
/* @__PURE__ */ jsx("span", { className: "faint", children: c.license }),
|
|
299
|
-
/* @__PURE__ */ jsx("span", { className: "footer-build", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
300
|
-
c.version,
|
|
301
|
-
config.version
|
|
302
|
-
] }) })
|
|
306
|
+
/* @__PURE__ */ jsx("span", { className: "faint", children: config.footer.disclaimer[lang] })
|
|
303
307
|
] })
|
|
304
|
-
] }) })
|
|
308
|
+
] }) }) })
|
|
305
309
|
] });
|
|
306
310
|
}
|
|
307
311
|
function Tabs({ tabs, initial, ariaLabel }) {
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@fasl-work/caos-app-shell",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Shared web-app shell + content primitives + design system for the CAOS / Faena public apps (ADR-0016).",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"author": "Felipe Santibáñez-Leal",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/fsantibanezleal/CAOS_APP_SHELL.git"
|
|
10
|
-
},
|
|
11
|
-
"type": "module",
|
|
12
|
-
"publishConfig": {
|
|
13
|
-
"access": "public"
|
|
14
|
-
},
|
|
15
|
-
"sideEffects": [
|
|
16
|
-
"*.css"
|
|
17
|
-
],
|
|
18
|
-
"exports": {
|
|
19
|
-
".": {
|
|
20
|
-
"types": "./dist/index.d.ts",
|
|
21
|
-
"import": "./dist/index.js"
|
|
22
|
-
},
|
|
23
|
-
"./styles.css": "./styles.css"
|
|
24
|
-
},
|
|
25
|
-
"files": [
|
|
26
|
-
"dist",
|
|
27
|
-
"styles.css"
|
|
28
|
-
],
|
|
29
|
-
"scripts": {
|
|
30
|
-
"build": "tsup",
|
|
31
|
-
"prepublishOnly": "npm run build"
|
|
32
|
-
},
|
|
33
|
-
"peerDependencies": {
|
|
34
|
-
"katex": "^0.16.0",
|
|
35
|
-
"lucide-react": ">=0.400.0",
|
|
36
|
-
"react": "^18 || ^19",
|
|
37
|
-
"react-dom": "^18 || ^19",
|
|
38
|
-
"react-router-dom": "^6 || ^7",
|
|
39
|
-
"zustand": "^4 || ^5"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/katex": "^0.16.7",
|
|
43
|
-
"@types/react": "^19.0.0",
|
|
44
|
-
"@types/react-dom": "^19.0.0",
|
|
45
|
-
"katex": "^0.16.11",
|
|
46
|
-
"lucide-react": "^0.469.0",
|
|
47
|
-
"react": "^19.0.0",
|
|
48
|
-
"react-dom": "^19.0.0",
|
|
49
|
-
"react-router-dom": "^7.1.1",
|
|
50
|
-
"tsup": "^8.3.5",
|
|
51
|
-
"typescript": "^5.7.3",
|
|
52
|
-
"zustand": "^5.0.2"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@fasl-work/caos-app-shell",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Shared web-app shell + content primitives + design system for the CAOS / Faena public apps (ADR-0016).",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Felipe Santibáñez-Leal",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/fsantibanezleal/CAOS_APP_SHELL.git"
|
|
10
|
+
},
|
|
11
|
+
"type": "module",
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": [
|
|
16
|
+
"*.css"
|
|
17
|
+
],
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./styles.css": "./styles.css"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"styles.css"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsup",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"katex": "^0.16.0",
|
|
35
|
+
"lucide-react": ">=0.400.0",
|
|
36
|
+
"react": "^18 || ^19",
|
|
37
|
+
"react-dom": "^18 || ^19",
|
|
38
|
+
"react-router-dom": "^6 || ^7",
|
|
39
|
+
"zustand": "^4 || ^5"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/katex": "^0.16.7",
|
|
43
|
+
"@types/react": "^19.0.0",
|
|
44
|
+
"@types/react-dom": "^19.0.0",
|
|
45
|
+
"katex": "^0.16.11",
|
|
46
|
+
"lucide-react": "^0.469.0",
|
|
47
|
+
"react": "^19.0.0",
|
|
48
|
+
"react-dom": "^19.0.0",
|
|
49
|
+
"react-router-dom": "^7.1.1",
|
|
50
|
+
"tsup": "^8.3.5",
|
|
51
|
+
"typescript": "^5.7.3",
|
|
52
|
+
"zustand": "^5.0.2"
|
|
53
|
+
}
|
|
54
|
+
}
|