@bettercms-ai/mcp 0.66.2 → 0.66.3

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.
@@ -61,9 +61,9 @@ value over everything else inside it, so:
61
61
  - **A link or button label beside an icon.** In `<a href="…"><svg/> Sign up</a>`, put the label
62
62
  in its own `<span>` with the field, and the `href` on the anchor through `data-bcms-props`
63
63
  (`cta.href|url|href`). A binding on the anchor's text deletes the icon.
64
- - **SVG text is never bound.** The platform does not read inside an `<svg>`: no field is derived
65
- from its text and no binding there is measured. An icon is media: upload it with
66
- `create_media_upload` and bind the `<img>` as an `image`, or leave it in code.
64
+ - **SVG text is never bound; the icon is.** No field is derived from the text inside an `<svg>`,
65
+ and no binding there is measured. Each inline icon IS an editable `image` field (`config.media:
66
+ "icon"`, an svg value): an editor swaps it. Never remove one to tidy a form; group it.
67
67
  - **Icon-only links in the nav and footer** take their field name from the anchor's
68
68
  `aria-label`, then the SVG `<title>`. Give each one an `aria-label`, or every social link is
69
69
  named `link` and an editor cannot tell them apart.
@@ -56,7 +56,8 @@ Name the layer every time you say "folder". The answer to "where does X live" di
56
56
  re-apply. It refuses duplicate folder ids, a parent not in the doc, a cycle, and nesting deeper
57
57
  than 4. The standard pins the home page and each list page at the top, gives each content
58
58
  family one folder named for its detail type (the list page and its collection are two items),
59
- keeps other standalone pages in Other pages, taxonomies used by two or more families in
59
+ keeps other standalone pages in Pages (Pages › <language> on a multilingual site),
60
+ taxonomies used by two or more families in
60
61
  Shared, and Settings last. Components are not sidebar items. Whether folders show depends on a
61
62
  dashboard feature flag, so an empty sidebar is not proof the structure is missing.
62
63
  2. **URL page folders** are part of a page's path unless set not to be included in it. Renaming
@@ -31,10 +31,10 @@ Two things are called a "language" here, and they are separate:
31
31
  | Layout locale variants | A Global Layout Section can have a variant per locale (`navigation--fr`). A page renders the variant whose locale is its route's first segment, else the base |
32
32
  | `locale-unvarianted` | A `get_binding_report` unmatched reason: the route resolved in a locale, the Section has no variant for it, and the base still renders there. Named, never written |
33
33
 
34
- Import does not derive deeper locale routes (`/fr/about`) into foldered pages or collections: a
35
- language prefix is a whole site, not a URL folder, so those routes keep serving from the build.
36
- Why it matters: an edit to `/about` never reaches `/fr/about`, and nothing edits `/fr/about`
37
- until it is a page. Say so in the coverage report.
34
+ Import derives deeper locale routes (`/fr/about`, `/fr/blog/post-1`) as pages in a URL folder
35
+ (`fr`), each recording the language its `<html lang>` declares, and the Content sidebar files them
36
+ under Pages › <language>. A locale prefix is never a collection: `/fr/blog/*` are pages, not
37
+ entries of the `blog` collection. An edit to `/about` never reaches `/fr/about`; edit each page.
38
38
 
39
39
  ## 2. Never model
40
40
 
@@ -78,4 +78,4 @@ For a multilingual import:
78
78
  Sections still showing the default language there. `update_layout` takes no locale, so name
79
79
  those Sections to the user rather than writing translated copy onto the base.
80
80
  4. Translate with `write_content`, apply, publish, and fetch each prefixed URL.
81
- 5. Report the routes that stay build-only (deeper locale routes) with their count.
81
+ 5. Report the routes that stay build-only (the editor setup's `pages` note names any) with their count.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bettercms-ai/mcp",
3
- "version": "0.66.2",
3
+ "version": "0.66.3",
4
4
  "type": "module",
5
5
  "description": "BetterCMS MCP server — schema, content, forms + components authoring tools over the Management API, authed via OAuth device-code.",
6
6
  "bin": {