bestax-mcp 1.9.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.
- package/data/bulma-classes.json +36 -36
- package/data/skills/bestax-migrate/references/bulma-classes/component-map.md +9 -1
- package/data/skills/bestax-migrate/references/bulma-classes/prop-map.md +9 -6
- package/data/skills/bestax-migrate/references/bulma-classes/unmappables.md +11 -2
- package/data/skills.json +3 -3
- package/package.json +1 -1
package/data/bulma-classes.json
CHANGED
|
@@ -3118,7 +3118,7 @@
|
|
|
3118
3118
|
"textColor": null,
|
|
3119
3119
|
"bgColor": null,
|
|
3120
3120
|
"part": false,
|
|
3121
|
-
"why": "bestax `Modal`
|
|
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",
|
|
3122
3122
|
"modifiers": {},
|
|
3123
3123
|
"omits": {},
|
|
3124
3124
|
"wrapsChildren": null,
|
|
@@ -3130,14 +3130,14 @@
|
|
|
3130
3130
|
"topLevelOnly": false
|
|
3131
3131
|
},
|
|
3132
3132
|
"modal-background": {
|
|
3133
|
-
"status": "
|
|
3134
|
-
"target":
|
|
3135
|
-
"tag":
|
|
3133
|
+
"status": "mapped",
|
|
3134
|
+
"target": "Modal.Background",
|
|
3135
|
+
"tag": "div",
|
|
3136
3136
|
"as": null,
|
|
3137
3137
|
"sizeDrivesTag": false,
|
|
3138
3138
|
"textColor": null,
|
|
3139
3139
|
"bgColor": null,
|
|
3140
|
-
"part":
|
|
3140
|
+
"part": false,
|
|
3141
3141
|
"why": null,
|
|
3142
3142
|
"modifiers": {},
|
|
3143
3143
|
"omits": {},
|
|
@@ -3146,18 +3146,18 @@
|
|
|
3146
3146
|
"absorbs": null,
|
|
3147
3147
|
"writes": null,
|
|
3148
3148
|
"countsChildren": null,
|
|
3149
|
-
"noHelpers":
|
|
3149
|
+
"noHelpers": true,
|
|
3150
3150
|
"topLevelOnly": false
|
|
3151
3151
|
},
|
|
3152
3152
|
"modal-content": {
|
|
3153
|
-
"status": "
|
|
3154
|
-
"target":
|
|
3155
|
-
"tag":
|
|
3153
|
+
"status": "mapped",
|
|
3154
|
+
"target": "Modal.Content",
|
|
3155
|
+
"tag": "div",
|
|
3156
3156
|
"as": null,
|
|
3157
3157
|
"sizeDrivesTag": false,
|
|
3158
3158
|
"textColor": null,
|
|
3159
3159
|
"bgColor": null,
|
|
3160
|
-
"part":
|
|
3160
|
+
"part": false,
|
|
3161
3161
|
"why": null,
|
|
3162
3162
|
"modifiers": {},
|
|
3163
3163
|
"omits": {},
|
|
@@ -3166,18 +3166,18 @@
|
|
|
3166
3166
|
"absorbs": null,
|
|
3167
3167
|
"writes": null,
|
|
3168
3168
|
"countsChildren": null,
|
|
3169
|
-
"noHelpers":
|
|
3169
|
+
"noHelpers": true,
|
|
3170
3170
|
"topLevelOnly": false
|
|
3171
3171
|
},
|
|
3172
3172
|
"modal-card": {
|
|
3173
|
-
"status": "
|
|
3174
|
-
"target":
|
|
3175
|
-
"tag":
|
|
3173
|
+
"status": "mapped",
|
|
3174
|
+
"target": "Modal.Card",
|
|
3175
|
+
"tag": "div",
|
|
3176
3176
|
"as": null,
|
|
3177
3177
|
"sizeDrivesTag": false,
|
|
3178
3178
|
"textColor": null,
|
|
3179
3179
|
"bgColor": null,
|
|
3180
|
-
"part":
|
|
3180
|
+
"part": false,
|
|
3181
3181
|
"why": null,
|
|
3182
3182
|
"modifiers": {},
|
|
3183
3183
|
"omits": {},
|
|
@@ -3186,18 +3186,18 @@
|
|
|
3186
3186
|
"absorbs": null,
|
|
3187
3187
|
"writes": null,
|
|
3188
3188
|
"countsChildren": null,
|
|
3189
|
-
"noHelpers":
|
|
3189
|
+
"noHelpers": true,
|
|
3190
3190
|
"topLevelOnly": false
|
|
3191
3191
|
},
|
|
3192
3192
|
"modal-card-head": {
|
|
3193
|
-
"status": "
|
|
3194
|
-
"target":
|
|
3195
|
-
"tag":
|
|
3193
|
+
"status": "mapped",
|
|
3194
|
+
"target": "Modal.Card.Head",
|
|
3195
|
+
"tag": "header",
|
|
3196
3196
|
"as": null,
|
|
3197
3197
|
"sizeDrivesTag": false,
|
|
3198
3198
|
"textColor": null,
|
|
3199
3199
|
"bgColor": null,
|
|
3200
|
-
"part":
|
|
3200
|
+
"part": false,
|
|
3201
3201
|
"why": null,
|
|
3202
3202
|
"modifiers": {},
|
|
3203
3203
|
"omits": {},
|
|
@@ -3206,18 +3206,18 @@
|
|
|
3206
3206
|
"absorbs": null,
|
|
3207
3207
|
"writes": null,
|
|
3208
3208
|
"countsChildren": null,
|
|
3209
|
-
"noHelpers":
|
|
3209
|
+
"noHelpers": true,
|
|
3210
3210
|
"topLevelOnly": false
|
|
3211
3211
|
},
|
|
3212
3212
|
"modal-card-title": {
|
|
3213
|
-
"status": "
|
|
3214
|
-
"target":
|
|
3215
|
-
"tag":
|
|
3213
|
+
"status": "mapped",
|
|
3214
|
+
"target": "Modal.Card.Title",
|
|
3215
|
+
"tag": "p",
|
|
3216
3216
|
"as": null,
|
|
3217
3217
|
"sizeDrivesTag": false,
|
|
3218
3218
|
"textColor": null,
|
|
3219
3219
|
"bgColor": null,
|
|
3220
|
-
"part":
|
|
3220
|
+
"part": false,
|
|
3221
3221
|
"why": null,
|
|
3222
3222
|
"modifiers": {},
|
|
3223
3223
|
"omits": {},
|
|
@@ -3226,18 +3226,18 @@
|
|
|
3226
3226
|
"absorbs": null,
|
|
3227
3227
|
"writes": null,
|
|
3228
3228
|
"countsChildren": null,
|
|
3229
|
-
"noHelpers":
|
|
3229
|
+
"noHelpers": true,
|
|
3230
3230
|
"topLevelOnly": false
|
|
3231
3231
|
},
|
|
3232
3232
|
"modal-card-body": {
|
|
3233
|
-
"status": "
|
|
3234
|
-
"target":
|
|
3235
|
-
"tag":
|
|
3233
|
+
"status": "mapped",
|
|
3234
|
+
"target": "Modal.Card.Body",
|
|
3235
|
+
"tag": "section",
|
|
3236
3236
|
"as": null,
|
|
3237
3237
|
"sizeDrivesTag": false,
|
|
3238
3238
|
"textColor": null,
|
|
3239
3239
|
"bgColor": null,
|
|
3240
|
-
"part":
|
|
3240
|
+
"part": false,
|
|
3241
3241
|
"why": null,
|
|
3242
3242
|
"modifiers": {},
|
|
3243
3243
|
"omits": {},
|
|
@@ -3246,18 +3246,18 @@
|
|
|
3246
3246
|
"absorbs": null,
|
|
3247
3247
|
"writes": null,
|
|
3248
3248
|
"countsChildren": null,
|
|
3249
|
-
"noHelpers":
|
|
3249
|
+
"noHelpers": true,
|
|
3250
3250
|
"topLevelOnly": false
|
|
3251
3251
|
},
|
|
3252
3252
|
"modal-card-foot": {
|
|
3253
|
-
"status": "
|
|
3254
|
-
"target":
|
|
3255
|
-
"tag":
|
|
3253
|
+
"status": "mapped",
|
|
3254
|
+
"target": "Modal.Card.Foot",
|
|
3255
|
+
"tag": "footer",
|
|
3256
3256
|
"as": null,
|
|
3257
3257
|
"sizeDrivesTag": false,
|
|
3258
3258
|
"textColor": null,
|
|
3259
3259
|
"bgColor": null,
|
|
3260
|
-
"part":
|
|
3260
|
+
"part": false,
|
|
3261
3261
|
"why": null,
|
|
3262
3262
|
"modifiers": {},
|
|
3263
3263
|
"omits": {},
|
|
@@ -3266,7 +3266,7 @@
|
|
|
3266
3266
|
"absorbs": null,
|
|
3267
3267
|
"writes": null,
|
|
3268
3268
|
"countsChildren": null,
|
|
3269
|
-
"noHelpers":
|
|
3269
|
+
"noHelpers": true,
|
|
3270
3270
|
"topLevelOnly": false
|
|
3271
3271
|
},
|
|
3272
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`.
|
|
@@ -200,7 +207,8 @@ inside one of them, or anything else beside them, keeps the element as markup wi
|
|
|
200
207
|
Their markup doesn't map element by element (the bestax component renders parts of its own, or
|
|
201
208
|
adds attributes), so the family's outermost class gets a `family:<class>` TODO and the markup
|
|
202
209
|
stays. [unmappables.md](unmappables.md) has the recipe for each. The families are Checkbox,
|
|
203
|
-
Checkboxes, Dropdown, File, Icon and IconText, the menu's items, Message, Modal
|
|
210
|
+
Checkboxes, Dropdown, File, Icon and IconText, the menu's items, Message, Modal's root and close
|
|
211
|
+
button, the navbar's burger
|
|
204
212
|
and dropdown link, Pagination, Panel, Radio, Radios and Tabs.
|
|
205
213
|
|
|
206
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
|
|
172
|
-
`
|
|
173
|
-
`
|
|
174
|
-
`
|
|
175
|
-
`Field.Body`, `Control`
|
|
176
|
-
|
|
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
|
|
|
@@ -137,6 +137,12 @@ The codemod reads one file at a time, so it can't see a component in another fil
|
|
|
137
137
|
a bestax `Field` or form control around this markup. If the app already uses them that way, give
|
|
138
138
|
its inputs ids before running the codemod, and check its forms afterwards.
|
|
139
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
|
+
|
|
140
146
|
On a `.menu-list` it's about nesting: `Menu.List` renders `.menu-list` only on the outermost list,
|
|
141
147
|
and drops it on one inside another. So a `.menu-list` inside another `.menu-list` (or a bestax
|
|
142
148
|
`Menu.List`) stays markup, keeping its class, and so does one around a bestax `Menu.List`, which would
|
|
@@ -205,8 +211,11 @@ in the browser:
|
|
|
205
211
|
lists the props for the button text, the file name and the icons.
|
|
206
212
|
- **`family:checkbox`**, **`family:radio`**, **`family:checkboxes`**, **`family:radios`**:
|
|
207
213
|
bestax renders its own styled checkbox and radio markup, not Bulma's.
|
|
208
|
-
- **`family:modal`**: `Modal`
|
|
209
|
-
|
|
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
|
|
210
219
|
page has to look the same, keep `Modal` rather than `Dialog` or `Toast`: those render
|
|
211
220
|
bestax's own `.dialog` and `.toast` markup, which Bulma's stylesheet doesn't style.
|
|
212
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":
|
|
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":
|
|
111
|
+
"bytes": 28649
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
"id": "bulma-classes-unmappables",
|
|
115
115
|
"file": "references/bulma-classes/unmappables.md",
|
|
116
|
-
"bytes":
|
|
116
|
+
"bytes": 17977
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"id": "css-migration",
|
package/package.json
CHANGED