uniweb 0.75.0 → 0.76.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uniweb",
3
- "version": "0.75.0",
3
+ "version": "0.76.1",
4
4
  "description": "Create structured Vite + React sites with content/code separation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,15 +41,15 @@
41
41
  "js-yaml": "^4.1.0",
42
42
  "prompts": "^2.4.2",
43
43
  "tar": "^7.0.0",
44
+ "@uniweb/kit": "^0.19.9",
45
+ "@uniweb/runtime": "^0.28.0",
46
+ "@uniweb/schemas": "^0.9.0",
44
47
  "@uniweb/content-writer": "^0.3.4",
45
- "@uniweb/core": "^0.32.2",
46
- "@uniweb/runtime": "^0.27.10",
47
- "@uniweb/kit": "^0.19.8",
48
- "@uniweb/schemas": "^0.8.3",
48
+ "@uniweb/core": "^0.33.0",
49
49
  "@uniweb/semantic-parser": "^1.4.1"
50
50
  },
51
51
  "peerDependencies": {
52
- "@uniweb/build": "^0.69.0",
52
+ "@uniweb/build": "^0.70.1",
53
53
  "@uniweb/content-reader": "^1.2.7",
54
54
  "@uniweb/semantic-parser": "^1.4.1"
55
55
  },
@@ -641,7 +641,7 @@ background: # Object form for more
641
641
  overlay: { enabled: true, type: dark, opacity: 0.5 }
642
642
  ```
643
643
 
644
- Components that render their own background declare `background: 'self'` in `meta.js`.
644
+ Components that render their own background declare `background: 'self'` in `meta.js`, and the runtime then draws none; to draw the author's background themselves they render kit's `<SectionBackground block={block} />`.
645
645
 
646
646
  ### Page organization
647
647
 
@@ -1037,9 +1037,9 @@ function MyComponent({ content, params, block }) {
1037
1037
  }
1038
1038
  ```
1039
1039
 
1040
- Frontmatter becomes `params`, minus the keys the framework consumes outright: `type`, `preset`, `input`, `props`, `query`, `fetch`, `id` (a `data:` key is refused — it was `query:`'s old name). `props:` is the one that isn't dropped but merged *into* params.
1040
+ Frontmatter becomes `params`, minus the keys the framework takes for itself: `type`, `id`, `hidden`, `query`, `fetch` (a `data:` key is refused — it was `query:`'s old name; `preset:` and `input:` are ignored with a warning). `props:` is the one that isn't dropped but merged *into* params.
1041
1041
 
1042
- **Framework fields you'd expect to be stripped are not.** `background`, `theme`, `source`, `where`, and `vars` are acted on by the runtime *and* passed through — so `params.theme` is readable when a component needs logic beyond CSS tokens (a light vs. dark logo, say). Components ignore the keys they don't use, the same way they ignore unused `content.data` keys.
1042
+ **The section's own settings are not params either.** `theme`, `background`, `grid` and `vars` are framework's: it applies them — the color context and the background around your component, the section's theme and your component's CSS variables in the page stylesheet, the child layout through `ChildGrid` — so your component never receives them in `params`, and the build warns on a param declared with one of those names. When a component needs one for its own logic, it reads it from `block`: `useColorContext(block)` for the context (a light vs. dark logo, say), `<SectionBackground block={block} />` to draw the background itself, `<ChildGrid from={block} />` for the grid. Every other key is a param, declared or not; components ignore the ones they don't use.
1043
1043
 
1044
1044
  ### Rendering content with Kit
1045
1045
 
@@ -1363,7 +1363,7 @@ Components use **semantic CSS tokens** instead of hardcoded colors. The runtime
1363
1363
  >
1364
1364
  > A rule prints → the utility exists, and something at runtime is overriding it. Nothing prints → Tailwind never generated it, and there are only two reasons: your `styles.css` doesn't `@import "@uniweb/kit/theme-tokens.css"` (or declares its own `@theme inline` that omits the token), or your `@source` globs don't cover the file the class is written in. Either way, write the class into a real source file first — a token that's only ever composed at runtime is invisible to the scanner by design.
1365
1365
 
1366
- **Authors control context** via `theme: dark` in frontmatter, alternating `light` (default), `medium`, and `dark` across sections for visual rhythm. **The three presets aren't the limit** — the object form overrides any token per section:
1366
+ **Authors control context** via `theme: dark` in frontmatter, alternating `light` (default), `medium`, and `dark` across sections for visual rhythm. **The three presets aren't the limit** — a section's `theme:` is `theme.yml` for that section: tokens beside `mode`, and `theme.yml`'s own `colors`, `contexts` and `vars`, scoped to it:
1367
1367
 
1368
1368
  ```yaml
1369
1369
  theme:
@@ -1371,6 +1371,9 @@ theme:
1371
1371
  section: neutral-100 # Subtle off-white surface
1372
1372
  card: neutral-50 # Cards lighter than surface
1373
1373
  primary: neutral-900 # Dark buttons instead of brand color
1374
+ colors: { accent: '#e65100' } # A palette for this section only
1375
+ contexts: # Per context, for a section that follows the site's scheme
1376
+ dark: { link: accent-300 }
1374
1377
  ```
1375
1378
 
1376
1379
  `background:` also accepts CSS variables and hex, so authors can alternate `var(--neutral-50)` / `var(--primary-50)` surfaces with no component code. If a source design uses subtle surface variations (`--surface-base` vs `--surface-sunken`), map those to backgrounds or token overrides in frontmatter — not to component code.
@@ -1563,7 +1566,7 @@ Pages are sequences of sections — the obvious layer. The framework also suppor
1563
1566
 
1564
1567
  Does the author write content *inside* the nested element? **Yes** → child sections, or a block inset when the wrapper is presentational and lives mid-page. **No** (self-contained, param-driven) → inset. Repeating same-structure groups → items. These compose: a child section can contain insets; items work inside children; a block inset can contain both.
1565
1568
 
1566
- **Child sections in columns.** A section type that lays its children out in a grid offers layouts in `meta.js` — `children: { grid: [3, 2, '40/60'] }`, the first being its default — and renders them with kit's `<ChildGrid from={block} fallback={3} />`. The author picks one with `grid:` in the parent's frontmatter (`grid: 3`, `grid: '40/60'`), a section key like `type`, not a param. Don't declare a param named `grid`.
1569
+ **Child sections in columns.** A section type that lays its children out in a grid offers layouts in `meta.js` — `children: { grid: [3, 2, '40/60'] }`, the first being its default — and renders them with kit's `<ChildGrid from={block} fallback={3} />`. The author picks one with `grid:` in the parent's frontmatter (`grid: 3`, `grid: '40/60'`), a section key like `type`, not a param. Each child renders as a section, so its own `theme:` and `background:` apply. Don't declare a param named `grid`.
1567
1570
 
1568
1571
  ### Concept blocks — naming *what* content is
1569
1572
 
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-09-28T02:26:09.807Z",
3
+ "generatedAt": "2026-09-28T05:03:45.346Z",
4
4
  "packages": {
5
5
  "@uniweb/api": {
6
- "version": "0.6.5",
6
+ "version": "0.6.6",
7
7
  "path": "framework/api",
8
8
  "deps": [
9
9
  "@uniweb/core"
10
10
  ]
11
11
  },
12
12
  "@uniweb/build": {
13
- "version": "0.69.0",
13
+ "version": "0.70.1",
14
14
  "path": "framework/build",
15
15
  "deps": [
16
16
  "@uniweb/content-reader",
@@ -35,7 +35,7 @@
35
35
  "deps": []
36
36
  },
37
37
  "@uniweb/core": {
38
- "version": "0.32.2",
38
+ "version": "0.33.0",
39
39
  "path": "framework/core",
40
40
  "deps": [
41
41
  "@uniweb/semantic-parser",
@@ -48,14 +48,14 @@
48
48
  "deps": []
49
49
  },
50
50
  "@uniweb/icons": {
51
- "version": "0.4.23",
51
+ "version": "0.4.24",
52
52
  "path": "framework/icons",
53
53
  "deps": [
54
54
  "@uniweb/core"
55
55
  ]
56
56
  },
57
57
  "@uniweb/kit": {
58
- "version": "0.19.8",
58
+ "version": "0.19.9",
59
59
  "path": "framework/kit",
60
60
  "deps": [
61
61
  "@uniweb/core",
@@ -76,7 +76,7 @@
76
76
  "deps": []
77
77
  },
78
78
  "@uniweb/projections": {
79
- "version": "0.7.8",
79
+ "version": "0.7.9",
80
80
  "path": "framework/projections",
81
81
  "deps": [
82
82
  "@uniweb/content-writer",
@@ -84,7 +84,7 @@
84
84
  ]
85
85
  },
86
86
  "@uniweb/runtime": {
87
- "version": "0.27.10",
87
+ "version": "0.28.0",
88
88
  "path": "framework/runtime",
89
89
  "deps": [
90
90
  "@uniweb/core",
@@ -97,7 +97,7 @@
97
97
  "deps": []
98
98
  },
99
99
  "@uniweb/schemas": {
100
- "version": "0.8.3",
100
+ "version": "0.9.0",
101
101
  "path": "framework/schemas",
102
102
  "deps": []
103
103
  },
@@ -117,17 +117,17 @@
117
117
  "deps": []
118
118
  },
119
119
  "@uniweb/templates": {
120
- "version": "0.17.6",
120
+ "version": "0.17.7",
121
121
  "path": "framework/templates",
122
122
  "deps": []
123
123
  },
124
124
  "@uniweb/theming": {
125
- "version": "0.1.15",
125
+ "version": "0.1.16",
126
126
  "path": "framework/theming",
127
127
  "deps": []
128
128
  },
129
129
  "@uniweb/unipress": {
130
- "version": "0.10.12",
130
+ "version": "0.10.13",
131
131
  "path": "framework/unipress",
132
132
  "deps": [
133
133
  "@uniweb/build",