bestax-mcp 1.8.0 → 1.10.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.
@@ -2961,7 +2961,8 @@
2961
2961
  "tag": "img",
2962
2962
  "attributesOn": "element",
2963
2963
  "childProps": ["src", "alt"],
2964
- "modifiers": { "is-rounded": { "writes": [{ "prop": "isRounded" }] } }
2964
+ "modifiers": { "is-rounded": { "writes": [{ "prop": "isRounded" }] } },
2965
+ "elseWraps": true
2965
2966
  },
2966
2967
  "writes": null,
2967
2968
  "countsChildren": null,
@@ -3117,7 +3118,7 @@
3117
3118
  "textColor": null,
3118
3119
  "bgColor": null,
3119
3120
  "part": false,
3120
- "why": "bestax `Modal` renders its own background and content parts, and adds dialog attributes",
3121
+ "why": "bestax `Modal` writes a `data-testid` of its own over the one it's given, and adds dialog attributes and focus handling, so rebuild the root with it by hand; its parts convert on their own",
3121
3122
  "modifiers": {},
3122
3123
  "omits": {},
3123
3124
  "wrapsChildren": null,
@@ -3129,14 +3130,14 @@
3129
3130
  "topLevelOnly": false
3130
3131
  },
3131
3132
  "modal-background": {
3132
- "status": "todo",
3133
- "target": null,
3134
- "tag": null,
3133
+ "status": "mapped",
3134
+ "target": "Modal.Background",
3135
+ "tag": "div",
3135
3136
  "as": null,
3136
3137
  "sizeDrivesTag": false,
3137
3138
  "textColor": null,
3138
3139
  "bgColor": null,
3139
- "part": true,
3140
+ "part": false,
3140
3141
  "why": null,
3141
3142
  "modifiers": {},
3142
3143
  "omits": {},
@@ -3145,18 +3146,18 @@
3145
3146
  "absorbs": null,
3146
3147
  "writes": null,
3147
3148
  "countsChildren": null,
3148
- "noHelpers": false,
3149
+ "noHelpers": true,
3149
3150
  "topLevelOnly": false
3150
3151
  },
3151
3152
  "modal-content": {
3152
- "status": "todo",
3153
- "target": null,
3154
- "tag": null,
3153
+ "status": "mapped",
3154
+ "target": "Modal.Content",
3155
+ "tag": "div",
3155
3156
  "as": null,
3156
3157
  "sizeDrivesTag": false,
3157
3158
  "textColor": null,
3158
3159
  "bgColor": null,
3159
- "part": true,
3160
+ "part": false,
3160
3161
  "why": null,
3161
3162
  "modifiers": {},
3162
3163
  "omits": {},
@@ -3165,18 +3166,18 @@
3165
3166
  "absorbs": null,
3166
3167
  "writes": null,
3167
3168
  "countsChildren": null,
3168
- "noHelpers": false,
3169
+ "noHelpers": true,
3169
3170
  "topLevelOnly": false
3170
3171
  },
3171
3172
  "modal-card": {
3172
- "status": "todo",
3173
- "target": null,
3174
- "tag": null,
3173
+ "status": "mapped",
3174
+ "target": "Modal.Card",
3175
+ "tag": "div",
3175
3176
  "as": null,
3176
3177
  "sizeDrivesTag": false,
3177
3178
  "textColor": null,
3178
3179
  "bgColor": null,
3179
- "part": true,
3180
+ "part": false,
3180
3181
  "why": null,
3181
3182
  "modifiers": {},
3182
3183
  "omits": {},
@@ -3185,18 +3186,18 @@
3185
3186
  "absorbs": null,
3186
3187
  "writes": null,
3187
3188
  "countsChildren": null,
3188
- "noHelpers": false,
3189
+ "noHelpers": true,
3189
3190
  "topLevelOnly": false
3190
3191
  },
3191
3192
  "modal-card-head": {
3192
- "status": "todo",
3193
- "target": null,
3194
- "tag": null,
3193
+ "status": "mapped",
3194
+ "target": "Modal.Card.Head",
3195
+ "tag": "header",
3195
3196
  "as": null,
3196
3197
  "sizeDrivesTag": false,
3197
3198
  "textColor": null,
3198
3199
  "bgColor": null,
3199
- "part": true,
3200
+ "part": false,
3200
3201
  "why": null,
3201
3202
  "modifiers": {},
3202
3203
  "omits": {},
@@ -3205,18 +3206,18 @@
3205
3206
  "absorbs": null,
3206
3207
  "writes": null,
3207
3208
  "countsChildren": null,
3208
- "noHelpers": false,
3209
+ "noHelpers": true,
3209
3210
  "topLevelOnly": false
3210
3211
  },
3211
3212
  "modal-card-title": {
3212
- "status": "todo",
3213
- "target": null,
3214
- "tag": null,
3213
+ "status": "mapped",
3214
+ "target": "Modal.Card.Title",
3215
+ "tag": "p",
3215
3216
  "as": null,
3216
3217
  "sizeDrivesTag": false,
3217
3218
  "textColor": null,
3218
3219
  "bgColor": null,
3219
- "part": true,
3220
+ "part": false,
3220
3221
  "why": null,
3221
3222
  "modifiers": {},
3222
3223
  "omits": {},
@@ -3225,18 +3226,18 @@
3225
3226
  "absorbs": null,
3226
3227
  "writes": null,
3227
3228
  "countsChildren": null,
3228
- "noHelpers": false,
3229
+ "noHelpers": true,
3229
3230
  "topLevelOnly": false
3230
3231
  },
3231
3232
  "modal-card-body": {
3232
- "status": "todo",
3233
- "target": null,
3234
- "tag": null,
3233
+ "status": "mapped",
3234
+ "target": "Modal.Card.Body",
3235
+ "tag": "section",
3235
3236
  "as": null,
3236
3237
  "sizeDrivesTag": false,
3237
3238
  "textColor": null,
3238
3239
  "bgColor": null,
3239
- "part": true,
3240
+ "part": false,
3240
3241
  "why": null,
3241
3242
  "modifiers": {},
3242
3243
  "omits": {},
@@ -3245,18 +3246,18 @@
3245
3246
  "absorbs": null,
3246
3247
  "writes": null,
3247
3248
  "countsChildren": null,
3248
- "noHelpers": false,
3249
+ "noHelpers": true,
3249
3250
  "topLevelOnly": false
3250
3251
  },
3251
3252
  "modal-card-foot": {
3252
- "status": "todo",
3253
- "target": null,
3254
- "tag": null,
3253
+ "status": "mapped",
3254
+ "target": "Modal.Card.Foot",
3255
+ "tag": "footer",
3255
3256
  "as": null,
3256
3257
  "sizeDrivesTag": false,
3257
3258
  "textColor": null,
3258
3259
  "bgColor": null,
3259
- "part": true,
3260
+ "part": false,
3260
3261
  "why": null,
3261
3262
  "modifiers": {},
3262
3263
  "omits": {},
@@ -3265,7 +3266,7 @@
3265
3266
  "absorbs": null,
3266
3267
  "writes": null,
3267
3268
  "countsChildren": null,
3268
- "noHelpers": false,
3269
+ "noHelpers": true,
3269
3270
  "topLevelOnly": false
3270
3271
  },
3271
3272
  "modal-close": {
@@ -83,6 +83,13 @@ a `tag:<Target>` TODO instead of a conversion. A component's own `as` can take m
83
83
  | `.menu` | `Menu` | `<aside>` only |
84
84
  | `.menu-label` | `Menu.Label` | `<p>` only |
85
85
  | `.menu-list` | `Menu.List` | `<ul>` only |
86
+ | `.modal-background` | `Modal.Background` | `<div>` only |
87
+ | `.modal-content` | `Modal.Content` | `<div>` only |
88
+ | `.modal-card` | `Modal.Card` | `<div>` only |
89
+ | `.modal-card-head` | `Modal.Card.Head` | `<header>` only |
90
+ | `.modal-card-title` | `Modal.Card.Title` | `<p>` only |
91
+ | `.modal-card-body` | `Modal.Card.Body` | `<section>` only |
92
+ | `.modal-card-foot` | `Modal.Card.Foot` | `<footer>` only |
86
93
 
87
94
  An element with two of these (`<div className="column box">`) becomes the layout one
88
95
  (`Column`), and the other class stays in `className`.
@@ -177,9 +184,13 @@ go straight inside `Breadcrumb`, and `<figure className="image is-64x64"><img sr
177
184
  one, so the `<ul>` carries nothing and the `.breadcrumb` needs an `aria-label` of its own.
178
185
  - `Image` renders its `<img>` from `src` and `alt`, so the `<img>` carries nothing else, and
179
186
  `is-rounded` on it becomes `isRounded`. The `.image` keeps its own attributes. A ratio
180
- (`is-4by3`) stays a class, since `size` would add `has-ratio` as well.
187
+ (`is-4by3`) stays a class, since `size` would add `has-ratio` as well. Around anything else (an
188
+ `<img>` with more attributes, an `<iframe>`), `Image` renders its children as given, so the
189
+ `.image` converts around them and they stay as written, as long as they're HTML elements written
190
+ out. An empty `.image` stays markup, since `Image` would render an `<img>` of its own, and so does
191
+ one around an expression (`{src && <img />}`), which can come out empty.
181
192
 
182
- Anything else keeps both as markup, with a `children:<Target>`, `attr` or `defaults:<Target>`
193
+ For `SelectBase` and `Breadcrumb`, anything else keeps both as markup, with a `children:<Target>`, `attr` or `defaults:<Target>`
183
194
  TODO.
184
195
 
185
196
  ## Children a component renders from a count
@@ -196,7 +207,8 @@ inside one of them, or anything else beside them, keeps the element as markup wi
196
207
  Their markup doesn't map element by element (the bestax component renders parts of its own, or
197
208
  adds attributes), so the family's outermost class gets a `family:<class>` TODO and the markup
198
209
  stays. [unmappables.md](unmappables.md) has the recipe for each. The families are Checkbox,
199
- Checkboxes, Dropdown, File, Icon and IconText, the menu's items, Message, Modal, the navbar's burger
210
+ Checkboxes, Dropdown, File, Icon and IconText, the menu's items, Message, Modal's root and close
211
+ button, the navbar's burger
200
212
  and dropdown link, Pagination, Panel, Radio, Radios and Tabs.
201
213
 
202
214
  ## Classes left alone
@@ -168,12 +168,15 @@ Colors are `primary`, `link`, `info`, `success`, `warning`, `danger`, `black`, `
168
168
 
169
169
  Where a component renders a color class through no typed prop, the class stays: `has-text-*`
170
170
  on `Breadcrumb`, `Hero`, `Navbar.DropdownMenu`, `Navbar.Divider`, `Field.Label`, `Field.Body`,
171
- `Control`, `InputBase`, `TextAreaBase`, `SelectBase`, `Progress`, `Skeleton`, `Tag` and `Tags`;
172
- `has-background-*` on `Breadcrumb`, `Navbar.Brand`, `Navbar.Menu`, `Navbar.Start`, `Navbar.End`,
173
- `Navbar.DropdownMenu`, `Navbar.Divider`, `Field.Label`, `Field.Body`, `Control`, `Notification`,
174
- `Progress`, `Skeleton`, `Table` and `Tags`. `Navbar.DropdownMenu`, `Navbar.Divider`, `Field.Label`,
175
- `Field.Body`, `Control` and `Skeleton` take no helper props the way the codemod needs, so every
176
- helper class on them stays.
171
+ `Control`, `InputBase`, `TextAreaBase`, `SelectBase`, `Progress`, `Skeleton`, `Tag`, `Tags`,
172
+ `Modal.Background`, `Modal.Content`, `Modal.Card`, `Modal.Card.Head`, `Modal.Card.Title`,
173
+ `Modal.Card.Body` and `Modal.Card.Foot`; `has-background-*` on `Breadcrumb`, `Navbar.Brand`,
174
+ `Navbar.Menu`, `Navbar.Start`, `Navbar.End`, `Navbar.DropdownMenu`, `Navbar.Divider`, `Field.Label`,
175
+ `Field.Body`, `Control`, `Notification`, `Progress`, `Skeleton`, `Table`, `Tags`, `Modal.Background`,
176
+ `Modal.Content`, `Modal.Card`, `Modal.Card.Head`, `Modal.Card.Title`, `Modal.Card.Body` and
177
+ `Modal.Card.Foot`. `Navbar.DropdownMenu`, `Navbar.Divider`, `Field.Label`, `Field.Body`, `Control`,
178
+ `Skeleton` and Modal's parts take no helper props the way the codemod needs, so every helper class
179
+ on them stays.
177
180
 
178
181
  Some classes stay put because of how bestax renders them:
179
182
 
@@ -12,8 +12,8 @@ attribute, never one of your own classes.
12
12
  The element spreads props (`<div className="box" {...rest}>`). A spread can carry anything,
13
13
  and bestax reads some names as its own props: a spread `className` merges with the component's
14
14
  classes, where on the plain element it replaced them. Convert by hand once you know what the
15
- spread carries, or leave it. A spread on the `<select>` inside a `.select`, or the `<img>` inside
16
- an `.image`, counts too, since what it carries becomes the component's.
15
+ spread carries, or leave it. A spread on the `<select>` inside a `.select` counts too, since what it
16
+ carries becomes `SelectBase`'s.
17
17
 
18
18
  ### `ref:<Target>`
19
19
 
@@ -45,8 +45,8 @@ rejects. Keep the element as markup. `attr:children` is too: the codemod reads a
45
45
  children from the JSX inside it, so children passed as an attribute are content it can't see.
46
46
  Move them inside the element, then re-run.
47
47
 
48
- On a `.select`, a `.breadcrumb` or an `.image` it's about the element inside, which the component
49
- renders itself. `SelectBase` gives its `<select>` every attribute it's given and no class but
48
+ On a `.select` or a `.breadcrumb` it's about the element inside, which the component renders
49
+ itself. `SelectBase` gives its `<select>` every attribute it's given and no class but
50
50
  `is-hovered` or `is-focused`, so an attribute on the `.select` (an `attr` TODO) would move onto
51
51
  the `<select>`, and another class on the `<select>` (`attr:className`) would be lost, as would
52
52
  the `class=""` an empty `className` renders. Move the
@@ -54,8 +54,7 @@ attribute onto the `<select>` if that's where you want it, then re-run. A `multi
54
54
  converts only inside a `.select.is-multiple`, with `multiple` written bare, and its `size` only
55
55
  beside it, as a number written out (`size={4}`): `SelectBase` writes it back only when it holds a
56
56
  number, which the codemod can't tell of an expression. `Breadcrumb` renders its `<ul>` bare, so an attribute or class on the `<ul>` keeps
57
- both as markup. `Image` renders its `<img>` from `src` and `alt`, with no class but `is-rounded`, so
58
- any other attribute or class on the `<img>` (`loading`, `width`, a `key`) keeps both as markup.
57
+ both as markup.
59
58
 
60
59
  ### `defaults:<Target>`
61
60
 
@@ -108,8 +107,12 @@ renders the wrapper bare.
108
107
 
109
108
  On a `.select`, a `.breadcrumb` or an `.image` it's the same shape from the other side. `SelectBase`
110
109
  renders the `<select>` inside `.select` itself, `Breadcrumb` the `<ul>` inside `.breadcrumb` and
111
- `Image` the `<img>` inside `.image`, so each converts only around that one element, with nothing
112
- else beside it.
110
+ `Image` the `<img>` inside `.image`. So `SelectBase` and `Breadcrumb` convert only around that one
111
+ element, with nothing else beside it. `Image` renders anything else it's given as it is, so an
112
+ `.image` converts around HTML elements written out either way. It gets this TODO when it's empty,
113
+ or when what's inside is an expression or text, since `Image` renders an `<img>` of its own when
114
+ its children come out empty. Keep it as markup, or write the `Image` by hand if the expression
115
+ never is.
113
116
 
114
117
  On a `.skeleton-lines`, `Skeleton` renders the children itself: `lines` bare, empty `<div>`s. So
115
118
  the element converts only when its children are just that, and a class, an attribute, text or a
@@ -134,6 +137,12 @@ The codemod reads one file at a time, so it can't see a component in another fil
134
137
  a bestax `Field` or form control around this markup. If the app already uses them that way, give
135
138
  its inputs ids before running the codemod, and check its forms afterwards.
136
139
 
140
+ On a `.modal-background`, `.modal-content` or `.modal-card` it's about the `Modal` around it. A
141
+ bestax `Modal` already in the file picks what it renders from its children: with one of those
142
+ parts among them it renders them as given, and without one it adds its own background, wrapper
143
+ and close button. So converting the part would change the `Modal`, and the part stays markup.
144
+ Convert the `Modal` and its children together by hand.
145
+
137
146
  On a `.menu-list` it's about nesting: `Menu.List` renders `.menu-list` only on the outermost list,
138
147
  and drops it on one inside another. So a `.menu-list` inside another `.menu-list` (or a bestax
139
148
  `Menu.List`) stays markup, keeping its class, and so does one around a bestax `Menu.List`, which would
@@ -178,8 +187,8 @@ turning each condition into the prop:
178
187
 
179
188
  The classes in a computed `className` still count for every other rule: a `clsx('box')` on a
180
189
  `<span>` gets `tag:Box`, and a `clsx('dropdown', …)` gets `family:dropdown`. A computed
181
- `className` on the `<select>` inside a `.select`, the `<ul>` inside a `.breadcrumb` or the `<img>`
182
- inside an `.image` gets this TODO too.
190
+ `className` on the `<select>` inside a `.select`, or the `<ul>` inside a `.breadcrumb`, gets this
191
+ TODO too.
183
192
 
184
193
  ## A family it leaves as markup: `family:<class>`
185
194
 
@@ -202,8 +211,11 @@ in the browser:
202
211
  lists the props for the button text, the file name and the icons.
203
212
  - **`family:checkbox`**, **`family:radio`**, **`family:checkboxes`**, **`family:radios`**:
204
213
  bestax renders its own styled checkbox and radio markup, not Bulma's.
205
- - **`family:modal`**: `Modal` renders its own background and content parts, and adds dialog
206
- attributes. Rebuild it with `Modal` and its parts, and drive it with its open prop. When the
214
+ - **`family:modal`**: `Modal` writes a `data-testid` of its own and adds dialog attributes and
215
+ focus handling, so the `.modal` root stays markup while its background, content and card parts
216
+ convert on their own. Rebuild the root with `Modal` around them, and drive it with its open prop.
217
+ A `.modal-close` stays too, since `Modal.Close` renders `.delete` unless it's floating: write
218
+ `<Modal.Close variant="floating" />` in its place. When the
207
219
  page has to look the same, keep `Modal` rather than `Dialog` or `Toast`: those render
208
220
  bestax's own `.dialog` and `.toast` markup, which Bulma's stylesheet doesn't style.
209
221
  - **`family:dropdown`**: `Dropdown` renders its own trigger and menu from props.
package/data/skills.json CHANGED
@@ -103,17 +103,17 @@
103
103
  {
104
104
  "id": "bulma-classes-component-map",
105
105
  "file": "references/bulma-classes/component-map.md",
106
- "bytes": 15655
106
+ "bytes": 16906
107
107
  },
108
108
  {
109
109
  "id": "bulma-classes-prop-map",
110
110
  "file": "references/bulma-classes/prop-map.md",
111
- "bytes": 28378
111
+ "bytes": 28649
112
112
  },
113
113
  {
114
114
  "id": "bulma-classes-unmappables",
115
115
  "file": "references/bulma-classes/unmappables.md",
116
- "bytes": 17159
116
+ "bytes": 17977
117
117
  },
118
118
  {
119
119
  "id": "css-migration",
@@ -81,6 +81,11 @@ export interface Absorbs {
81
81
  * props and writes back on the child.
82
82
  */
83
83
  childProps?: string[];
84
+ /**
85
+ * When the child can't be absorbed, the component renders the element's
86
+ * children as given, so the element converts around them instead.
87
+ */
88
+ elseWraps?: boolean;
84
89
  /** The child's classes, as the component's props. */
85
90
  modifiers?: Record<string, Modifier>;
86
91
  /** A bare child attribute one of the element's modifiers writes. */
@@ -1 +1 @@
1
- {"version":3,"file":"bulma-classes.d.ts","sourceRoot":"","sources":["../src/bulma-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulma-classes.d.ts","sourceRoot":"","sources":["../src/bulma-classes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,6DAA6D;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED,MAAM,MAAM,OAAO;AACjB,6CAA6C;AAC3C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC,oDAAoD;GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,OAAO,GACf;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACH,4CAA4C;GAC1C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACjC,kEAAkE;GAChE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE;AACvD,uEAAuE;GACrE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpB,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7C;AAwCD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAYnD;AAkDD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAwTR;AA4ED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA8FnD"}
@@ -403,7 +403,14 @@ function absorbsText(target, absorbs) {
403
403
  : taken[0];
404
404
  return (` It renders the ${child} inside it itself, from its own ${names} ` +
405
405
  `props: write the ${child}'s ${names} on \`${target}\` in its place, ` +
406
- `which converts only around ${aChild} with no other attribute.${on}`);
406
+ `which converts that way only around ${aChild} with no other ` +
407
+ `attribute.${on}` +
408
+ (absorbs.elseWraps
409
+ ? ` Around other HTML elements written out it renders them as given, ` +
410
+ `in place of its own ${child}, so put them inside \`${target}\` as ` +
411
+ `they are; around an expression, which can come out empty, it ` +
412
+ `would render its own.`
413
+ : ''));
407
414
  }
408
415
  return (` It renders the ${child} inside it itself, and puts the attributes it ` +
409
416
  `is given on that ${child}: write the ${child}'s attributes and children ` +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bestax-mcp",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "MCP server for @allxsmith/bestax-bulma — component props, examples, CSS variables and agent skills, served offline from a version-pinned index",
5
5
  "type": "module",
6
6
  "bin": {