mnfst 0.5.187 → 0.5.189

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.
@@ -75,6 +75,14 @@
75
75
  "description": "Component HTML files registered as <x-name> tags.",
76
76
  "items": { "type": "string" }
77
77
  },
78
+ "version": {
79
+ "type": ["string", "number"],
80
+ "description": "Optional author-set release stamp. Appended as ?v= to component HTML fetches so browser caches bust on change. mnfst-publish injects a content-derived `deployment` stamp automatically, which takes precedence."
81
+ },
82
+ "deployment": {
83
+ "type": "string",
84
+ "description": "Publish-injected content hash of the component files (set by mnfst-publish; not hand-authored). Appended as ?v= to component HTML fetches."
85
+ },
78
86
  "preloadedComponents": {
79
87
  "type": "array",
80
88
  "description": "Components loaded eagerly on initial page load (header, logo, etc.).",
@@ -261,6 +269,35 @@
261
269
  ]
262
270
  }
263
271
  },
272
+ "payments": {
273
+ "type": "object",
274
+ "description": "Payments plugin config. Presence of this block auto-loads the payments plugin ($pay / x-pay).",
275
+ "properties": {
276
+ "provider": {
277
+ "type": "string",
278
+ "description": "Payment adapter name (built-in or registered)."
279
+ },
280
+ "endpoint": {
281
+ "type": "string",
282
+ "description": "Backend endpoint for checkout/portal/state calls. Supports env() references."
283
+ }
284
+ },
285
+ "additionalProperties": true
286
+ },
287
+ "ai": {
288
+ "description": "Chat plugin config. Presence (object or bare true) auto-loads the chat plugin ($chat). Custom-adapter projects can use true with no config.",
289
+ "oneOf": [
290
+ { "type": "boolean" },
291
+ { "type": "object", "additionalProperties": true }
292
+ ]
293
+ },
294
+ "chat": {
295
+ "description": "Alias of ai — presence auto-loads the chat plugin ($chat).",
296
+ "oneOf": [
297
+ { "type": "boolean" },
298
+ { "type": "object", "additionalProperties": true }
299
+ ]
300
+ },
264
301
  "render": {
265
302
  "type": "object",
266
303
  "description": "Static rendering configuration consumed by mnfst-render.",
@@ -21,14 +21,14 @@
21
21
  width: calc(var(--spacing-field-height, 2.25rem) * 0.65 - 0.125rem * 2);
22
22
  height: calc(var(--spacing-field-height, 2.25rem) * 0.65 - 0.125rem * 2);
23
23
  border-radius: 50%;
24
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
24
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
25
25
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
26
26
  transition: var(--transition, all .05s ease-in-out)
27
27
  }
28
28
 
29
29
  /* Checked */
30
30
  &:checked {
31
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
31
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
32
32
 
33
33
  /* Marker */
34
34
  &::before {
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  &:hover {
40
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
40
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
41
41
  }
42
42
  }
43
43
  }
@@ -23,7 +23,7 @@
23
23
  /* Header row */
24
24
  :where(thead, .grid-header > *) {
25
25
  background-color: var(--color-surface-1, oklch(97% 0 0));
26
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
26
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
27
27
  }
28
28
 
29
29
  /* Header cell */
@@ -33,7 +33,7 @@
33
33
 
34
34
  /* Row */
35
35
  :where(tr, .grid-row > *) {
36
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
36
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
37
37
  }
38
38
 
39
39
  /* Cell */
@@ -114,7 +114,7 @@
114
114
 
115
115
  /* Text selection */
116
116
  ::selection {
117
- background-color: color-mix(currentColor 25%, transparent)
117
+ background-color: color-mix(in oklch, currentColor 25%, transparent)
118
118
  }
119
119
 
120
120
  /* Focus state */
@@ -22,7 +22,7 @@
22
22
  pointer-events: auto;
23
23
  max-width: 90vw;
24
24
  background-color: var(--color-popover-surface, oklch(98.5% 0 0));
25
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
25
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
26
26
  border-radius: calc(var(--radius, 0.5rem) * 2);
27
27
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
28
28
  overflow: hidden;
@@ -75,7 +75,7 @@
75
75
  /* Brand, accent, positive, negative utility class overrides (see Utilities) */
76
76
  :where(.toast.brand, .toast.accent, .toast.positive, .toast.negative) {
77
77
  color: var(--color-field-inverse, oklch(43.9% 0 0));
78
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
78
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
79
79
 
80
80
  :where(.toast-dismiss-button) {
81
81
  border-inline-start: 1px solid color-mix(in oklch, var(--color-field-inverse, oklch(43.9% 0 0)) 20%, transparent);
@@ -117,7 +117,7 @@
117
117
  /* Asides */
118
118
  :where(aside):not(.unstyle) {
119
119
  padding: calc(var(--spacing, 0.25rem) * 4);
120
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
120
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
121
121
  border-radius: var(--radius, 0.5rem)
122
122
  }
123
123
 
@@ -134,7 +134,7 @@
134
134
  font-size: 0.75rem;
135
135
  line-height: 1;
136
136
  color: var(--color-field-inverse, oklch(43.9% 0 0));
137
- background-color: var(--color-field-surface, color-mix(oklch(97% 0 0) 10%, transparent));
137
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(97% 0 0) 10%, transparent));
138
138
  border-radius: 100px;
139
139
 
140
140
  /* Solo icons */
@@ -377,7 +377,7 @@
377
377
  font-size: 0.8125rem;
378
378
  line-height: 1.7;
379
379
  background-color: var(--color-page, oklch(98.5% 0 0));
380
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
380
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
381
381
  border-radius: var(--radius, 0.5rem);
382
382
  overflow: hidden;
383
383
  tab-size: 4;
@@ -63,12 +63,12 @@
63
63
  :where(.outlined) {
64
64
  border-width: 1px;
65
65
  border-style: solid;
66
- border-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 90%, var(--color-field-inverse, oklch(43.9% 0 0)))
66
+ border-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 90%, var(--color-field-inverse, oklch(43.9% 0 0)))
67
67
  }
68
68
 
69
69
  /* Dark theme override */
70
70
  .dark :where(.outlined) {
71
- border-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
71
+ border-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
72
72
  }
73
73
 
74
74
  /* Transparent */
@@ -226,8 +226,8 @@
226
226
  padding: calc(var(--spacing, 0.25rem) * 4);
227
227
  border-radius: calc(var(--radius, 0.5rem) * 2);
228
228
  color: var(--color-content-stark, oklch(43.9% 0 0));
229
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 20%, transparent);
230
- border: 1px solid color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 15%, transparent);
229
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 20%, transparent);
230
+ border: 1px solid color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 15%, transparent);
231
231
 
232
232
  /* Auto format asides with icons */
233
233
  &:has([x-icon]):not([x-code-group] aside, aside.frame) {
@@ -398,7 +398,7 @@
398
398
  /* Accent colors */
399
399
  :where(.accent) {
400
400
  --color-field-surface: var(--color-accent-surface, oklch(43.9% 0 0));
401
- --color-field-surface-hover: var(--color-accent-surface-hover, color-mix(oklch(20.5% 0 0) 90%, oklch(98.5% 0 0)));
401
+ --color-field-surface-hover: var(--color-accent-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 90%, oklch(98.5% 0 0)));
402
402
  --color-field-inverse: var(--color-accent-inverse, oklch(98.5% 0 0));
403
403
  --color-content-stark: var(--color-accent-content, oklch(43.9% 0 0));
404
404
  --color-content-neutral: color-mix(in oklch, var(--color-accent-content, oklch(43.9% 0 0)) 85%, transparent);
package/package.json CHANGED
@@ -1,13 +1,16 @@
1
1
  {
2
2
  "name": "mnfst",
3
- "version": "0.5.187",
3
+ "version": "0.5.189",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "templates/starter",
7
7
  "packages/render",
8
8
  "packages/types",
9
9
  "packages/test",
10
- "packages/export"
10
+ "packages/export",
11
+ "packages/run",
12
+ "packages/publish",
13
+ "packages/create-starter"
11
14
  ],
12
15
  "main": "lib/manifest.js",
13
16
  "style": "lib/manifest.css",
@@ -19,13 +22,10 @@
19
22
  "scripts": {
20
23
  "clean": "rimraf src/styles/manifest.css src/styles/manifest.min.css src/styles/manifest.theme.css src/styles/manifest.code.css src/styles/manifest.code.min.css lib",
21
24
  "build": "cd src && node scripts/build.mjs",
22
- "build:docs": "echo 'Docs is a static website - no build needed'",
23
25
  "start:src": "node packages/run/serve.mjs src",
24
- "start:docs": "node packages/run/serve.mjs docs",
25
26
  "start:starter": "node packages/run/serve.mjs templates/starter --port 3001",
26
27
  "start:dist": "node packages/run/serve.mjs src/test-prerender --port 5003",
27
28
  "render": "node src/scripts/manifest.render.mjs --root src",
28
- "prerender:docs": "node src/scripts/manifest.render.mjs --root docs",
29
29
  "prerender:starter": "node src/scripts/manifest.render.mjs --root templates/starter",
30
30
  "release": "node scripts/release-bump.mjs . && npm publish && node scripts/cdn-warm.mjs --detach",
31
31
  "release:run": "node scripts/release-bump.mjs packages/run && cd packages/run && npm publish --auth-type=web",