@tokenoftrust/cli 1.3.4-rc.3 → 1.3.4-rc.5
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/bin/tot.cjs +44 -16
- package/bin/tot.mjs +8 -0
- package/package.json +2 -1
- package/src/app-scaffold.mjs +84 -0
- package/src/banner.mjs +46 -0
- package/src/commands/app/dev.mjs +268 -0
- package/src/commands/app/index.mjs +35 -0
- package/src/commands/app/scaffold.mjs +57 -0
- package/src/commands/checkout.mjs +5 -0
- package/src/commands/dev.mjs +61 -14
- package/src/commands/start.mjs +76 -17
- package/src/commands/validate.mjs +4 -0
- package/src/dev-logs.mjs +34 -7
- package/src/obstacle-beacon.cjs +111 -0
- package/src/obstacle.mjs +35 -0
- package/src/validate.mjs +77 -8
- package/src/vendor/private-apps-devkit.mjs +490 -0
- package/template/private-app/.env.example +10 -0
- package/template/private-app/Dockerfile +12 -0
- package/template/private-app/README.md +45 -0
- package/template/private-app/fixtures/order.created.cloudevent.json +36 -0
- package/template/private-app/server.js +81 -0
- package/template/private-app/tot-app.json +29 -0
- package/template/sample-store/content/chrome.html +140 -0
- package/template/sample-store/content/chrome.json +86 -0
- package/template/sample-store/content/home.html +121 -0
- package/template/sample-store/content/home.json +50 -0
- package/template/sample-store/content/pages/about.json +10 -0
- package/template/sample-store/content/pages/privacy.json +10 -0
- package/template/sample-store/content/pages/shipping-returns.json +10 -0
- package/template/sample-store/content/pages-html/blogs/news.html +26 -0
- package/template/sample-store/content/pages-html/pages/about-us.html +44 -0
- package/template/sample-store/content/pages-html/pages/contact-us.html +48 -0
- package/template/sample-store/content/pages-html/pages/privacy-policy.html +27 -0
- package/template/sample-store/content/pages-html/pages/shipping-returns.html +25 -0
- package/template/sample-store/public/logo.svg +6 -0
- package/template/sample-store/public/pages/home.css +120 -0
- package/template/sample-store/public/pages/mkt.css +185 -0
- package/template/sample-store/public/pages/page.css +155 -0
- package/template/sample-store/public/themes/sample.css +76 -0
- package/template/sample-store/theme.json +38 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
Sample Vapor Co. — "sample" theme (swappable token + base layer)
|
|
3
|
+
A fictional store used only to demo the local dev loop. Deep navy on white
|
|
4
|
+
with a warm gold accent. This file is the reskinnable layer: design tokens,
|
|
5
|
+
reset, and base element styles. Shared components live in pages/mkt.css;
|
|
6
|
+
home-only in pages/home.css. Token values mirror theme.json.
|
|
7
|
+
========================================================================== */
|
|
8
|
+
|
|
9
|
+
/* --- Design tokens -------------------------------------------------------- */
|
|
10
|
+
:root {
|
|
11
|
+
--navy: #1b3b64;
|
|
12
|
+
--navy-dark: #142d4d;
|
|
13
|
+
--navy-ink: #0f2138;
|
|
14
|
+
--ink: #16243d;
|
|
15
|
+
--muted: #5b6a82;
|
|
16
|
+
--bg: #ffffff;
|
|
17
|
+
--surface: #f5f7fa;
|
|
18
|
+
--surface-2: #eaeef4;
|
|
19
|
+
--border: #e3e8ef;
|
|
20
|
+
--gold: #e0a83a;
|
|
21
|
+
--gold-dark: #c8901f;
|
|
22
|
+
--sale: #8a5d10;
|
|
23
|
+
--ok: #2f8a5b;
|
|
24
|
+
|
|
25
|
+
--radius-sm: 6px;
|
|
26
|
+
--radius: 10px;
|
|
27
|
+
--radius-lg: 16px;
|
|
28
|
+
--shadow-sm: 0 1px 2px rgba(15, 33, 56, .06), 0 1px 3px rgba(15, 33, 56, .08);
|
|
29
|
+
--shadow-md: 0 6px 18px rgba(15, 33, 56, .10);
|
|
30
|
+
--shadow-lg: 0 18px 48px rgba(15, 33, 56, .16);
|
|
31
|
+
|
|
32
|
+
--container: 1240px;
|
|
33
|
+
--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
34
|
+
--font-display: "Montserrat", var(--font-body);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* --- Reset ---------------------------------------------------------------- */
|
|
38
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
39
|
+
* { margin: 0; }
|
|
40
|
+
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
|
|
41
|
+
body {
|
|
42
|
+
font-family: var(--font-body);
|
|
43
|
+
color: var(--ink);
|
|
44
|
+
background: var(--bg);
|
|
45
|
+
line-height: 1.55;
|
|
46
|
+
-webkit-font-smoothing: antialiased;
|
|
47
|
+
text-rendering: optimizeLegibility;
|
|
48
|
+
}
|
|
49
|
+
img, svg, video { display: block; max-width: 100%; height: auto; }
|
|
50
|
+
a { color: inherit; text-decoration: none; }
|
|
51
|
+
button { font: inherit; cursor: pointer; }
|
|
52
|
+
ul { list-style: none; padding: 0; }
|
|
53
|
+
|
|
54
|
+
/* --- Base typography ------------------------------------------------------ */
|
|
55
|
+
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.12; color: var(--ink); letter-spacing: -.01em; }
|
|
56
|
+
h1 { font-size: clamp(2rem, 4.6vw, 3.15rem); }
|
|
57
|
+
h2 { font-size: clamp(1.6rem, 3.2vw, 2.35rem); }
|
|
58
|
+
h3 { font-size: 1.2rem; }
|
|
59
|
+
p { color: var(--muted); }
|
|
60
|
+
|
|
61
|
+
/* --- Accessibility -------------------------------------------------------- */
|
|
62
|
+
:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; border-radius: 4px; }
|
|
63
|
+
.skip-link {
|
|
64
|
+
position: absolute; left: 8px; top: -48px; z-index: 200;
|
|
65
|
+
background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 8px;
|
|
66
|
+
transition: top .15s ease;
|
|
67
|
+
}
|
|
68
|
+
.skip-link:focus { top: 0; }
|
|
69
|
+
.sr-only {
|
|
70
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
71
|
+
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
|
|
72
|
+
}
|
|
73
|
+
@media (prefers-reduced-motion: reduce) {
|
|
74
|
+
html { scroll-behavior: auto; }
|
|
75
|
+
*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
|
|
76
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_vendor": "Sample Vapor Co.",
|
|
3
|
+
"_note": "Per-vendor theme override (DeepPartial<ThemeTokens>) for the FICTIONAL sample store shipped with the local dev loop. Matched from sample-store.example. Not a real merchant — neutral demo values only.",
|
|
4
|
+
"color": {
|
|
5
|
+
"bg": "#ffffff",
|
|
6
|
+
"surface": "#f5f7fa",
|
|
7
|
+
"text": "#16243d",
|
|
8
|
+
"muted": "#5b6a82",
|
|
9
|
+
"primary": "#1b3b64",
|
|
10
|
+
"primary-contrast": "#ffffff",
|
|
11
|
+
"accent": "#e0a83a",
|
|
12
|
+
"border": "#e3e8ef",
|
|
13
|
+
"success": "#2f8a5b",
|
|
14
|
+
"sale": "#8a5d10"
|
|
15
|
+
},
|
|
16
|
+
"type": {
|
|
17
|
+
"display": {
|
|
18
|
+
"family": "Montserrat",
|
|
19
|
+
"weights": [
|
|
20
|
+
600,
|
|
21
|
+
700,
|
|
22
|
+
800
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"body": {
|
|
26
|
+
"family": "Inter",
|
|
27
|
+
"weights": [
|
|
28
|
+
400,
|
|
29
|
+
500,
|
|
30
|
+
600
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"brand": {
|
|
35
|
+
"logoLight": "/tenants/sample-store.example/logo.svg",
|
|
36
|
+
"headerVariant": "dark"
|
|
37
|
+
}
|
|
38
|
+
}
|