bestax-mcp 1.18.1 → 1.18.2

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/catalog.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 2,
3
3
  "generatedFrom": {
4
4
  "package": "@allxsmith/bestax-bulma",
5
- "version": "5.42.0"
5
+ "version": "5.42.1"
6
6
  },
7
7
  "docsBase": "https://bestax.io/docs",
8
8
  "categories": [
@@ -277,7 +277,7 @@
277
277
  "import": "import { Checkboxes, Checkbox } from '@allxsmith/bestax-bulma';",
278
278
  "compound": false,
279
279
  "propCount": 8,
280
- "exampleCount": 6
280
+ "exampleCount": 7
281
281
  },
282
282
  {
283
283
  "name": "Checkboxes",
@@ -28,9 +28,13 @@
28
28
  {
29
29
  "title": "Valid Colors and Sizes",
30
30
  "code": "import { Checkbox, Checkboxes } from '@allxsmith/bestax-bulma';\nimport { checkboxColors, checkboxSizes } from '@allxsmith/bestax-bulma';\n\nfunction example() {\n return (\n <>\n <Checkboxes>\n {checkboxColors.map(color => (\n <Checkbox key={color} color={color} defaultChecked>\n {color}\n </Checkbox>\n ))}\n </Checkboxes>\n <Checkboxes>\n {checkboxSizes.map(size => (\n <Checkbox key={size} size={size} defaultChecked>\n {size}\n </Checkbox>\n ))}\n </Checkboxes>\n </>\n );\n}"
31
+ },
32
+ {
33
+ "title": "Theming the Box",
34
+ "code": "<Checkbox className=\"ink-checkbox\" defaultChecked>\n Remember me\n</Checkbox>"
31
35
  }
32
36
  ],
33
- "accessibility": "- Each `Checkbox` is rendered as a `<label>` wrapping an `<input type=\"checkbox\">` and the label text, for optimal accessibility.\n- The clickable area includes both box and label by default.\n- Browsers expose a box with `indeterminate` set as mixed, so the component adds no ARIA for it.",
37
+ "accessibility": "- Each `Checkbox` is rendered as a `<label>` wrapping an `<input type=\"checkbox\">` and the label text, for optimal accessibility.\n- The clickable area includes both box and label by default.\n- Browsers expose a box with `indeterminate` set as mixed, so the component adds no ARIA for it.\n- An unchecked box shows only its border, `--bulma-checkbox-border-color`. It defaults to `--bulma-text-weak`, which holds the 3:1 contrast WCAG asks of a control's boundary (non-text contrast) on Bulma's page and card surfaces in light and dark. Hold a replacement border, and a custom check color on its fill, to 3:1 as well.\n- In forced colors (Windows contrast themes), the box, the check mark and the mixed dash take system colors, so they stay visible whatever the variables hold.",
34
38
  "related": ["Checkboxes", "Field", "useBulmaClasses"],
35
39
  "storybook": "https://bestax.io/storybook/?path=/story/form-checkbox--default",
36
40
  "summary": "The `Checkbox` component provides a Bulma-styled checkbox input.",
@@ -93,7 +97,7 @@
93
97
  "name": "className",
94
98
  "type": "string",
95
99
  "default": null,
96
- "description": "Additional CSS classes to apply.",
100
+ "description": "Additional CSS classes, on the outer `<label>`. That's the element that declares the `--bulma-checkbox-*` variables, so a class is how to set one: `style` and the other input attributes go to the `<input>`. Name `.styled-checkbox` beside your class in the selector, so it beats the label's own declaration whatever order the stylesheets load in. A `color` prop declares the fills again on `.styled-checkbox.is-<color>`, which ties that selector, so leave `color` unset when a class sets them.",
97
101
  "required": false,
98
102
  "inherited": false,
99
103
  "deprecated": false
@@ -144,7 +148,7 @@
144
148
  {
145
149
  "css": "--bulma-checkbox-border-color",
146
150
  "sass": "$checkbox-border-color",
147
- "default": "var(--bulma-border)",
151
+ "default": "var(--bulma-text-weak)",
148
152
  "scope": "root"
149
153
  },
150
154
  {
@@ -216,7 +216,7 @@
216
216
  "name": "className",
217
217
  "type": "string",
218
218
  "default": null,
219
- "description": "Additional CSS classes to apply.",
219
+ "description": "Additional CSS classes, on the outer `<label>`. That's the element that declares the `--bulma-checkbox-*` variables, so a class is how to set one: `style` and the other input attributes go to the `<input>`. Name `.styled-checkbox` beside your class in the selector, so it beats the label's own declaration whatever order the stylesheets load in. A `color` prop declares the fills again on `.styled-checkbox.is-<color>`, which ties that selector, so leave `color` unset when a class sets them.",
220
220
  "required": false,
221
221
  "inherited": false,
222
222
  "deprecated": false
@@ -26,7 +26,7 @@
26
26
  "code": "import { Radio, Radios } from '@allxsmith/bestax-bulma';\nimport { radioColors, radioSizes } from '@allxsmith/bestax-bulma';\n\nfunction example() {\n return (\n <>\n <Radios label=\"Accent color\" name=\"accent\" defaultValue=\"primary\">\n {radioColors.map(color => (\n <Radio key={color} value={color} color={color}>\n {color}\n </Radio>\n ))}\n </Radios>\n <Radios label=\"Size\" name=\"accent-size\" defaultValue=\"normal\">\n {radioSizes.map(size => (\n <Radio key={size} value={size} size={size}>\n {size}\n </Radio>\n ))}\n </Radios>\n </>\n );\n}"
27
27
  }
28
28
  ],
29
- "accessibility": "- Each `Radio` is rendered as a `<label>` wrapping an `<input type=\"radio\">` and the label text, for optimal accessibility.\n- Use the same `name` prop for a group of radios to ensure only one can be selected.",
29
+ "accessibility": "- Each `Radio` is rendered as a `<label>` wrapping an `<input type=\"radio\">` and the label text, for optimal accessibility.\n- Use the same `name` prop for a group of radios to ensure only one can be selected.\n- An unchecked radio shows only its ring, `--bulma-radio-border-color`. It defaults to `--bulma-text-weak`, which holds the 3:1 contrast WCAG asks of a control's boundary (non-text contrast) on Bulma's page and card surfaces in light and dark. Set a replacement on a class you pass through `className`, since `style` goes to the `<input>`, naming the label's class too (`.styled-radio.my-radio`) so load order can't undo it, and hold it to 3:1 as well.",
30
30
  "related": ["Field", "Radios", "useBulmaClasses"],
31
31
  "storybook": "https://bestax.io/storybook/?path=/story/form-radio--mutually-exclusive",
32
32
  "summary": "The `Radio` component provides a Bulma-styled radio button input with flexible labels and helper classes.",
@@ -80,7 +80,7 @@
80
80
  "name": "className",
81
81
  "type": "string",
82
82
  "default": null,
83
- "description": "Additional CSS classes to apply.",
83
+ "description": "Additional CSS classes, on the outer `<label>`. That's the element that declares the `--bulma-radio-*` variables, so a class is how to set one: `style` and the other input attributes go to the `<input>`. Name `.styled-radio` beside your class in the selector, so it beats the label's own declaration whatever order the stylesheets load in. A `color` prop declares the active color again on `.styled-radio.is-<color>`, which ties that selector, so leave `color` unset when a class sets it.",
84
84
  "required": false,
85
85
  "inherited": false,
86
86
  "deprecated": false
@@ -125,7 +125,7 @@
125
125
  {
126
126
  "css": "--bulma-radio-border-color",
127
127
  "sass": "$radio-border-color",
128
- "default": "var(--bulma-border)",
128
+ "default": "var(--bulma-text-weak)",
129
129
  "scope": "root"
130
130
  },
131
131
  {
@@ -207,7 +207,7 @@
207
207
  "name": "className",
208
208
  "type": "string",
209
209
  "default": null,
210
- "description": "Additional CSS classes to apply.",
210
+ "description": "Additional CSS classes, on the outer `<label>`. That's the element that declares the `--bulma-radio-*` variables, so a class is how to set one: `style` and the other input attributes go to the `<input>`. Name `.styled-radio` beside your class in the selector, so it beats the label's own declaration whatever order the stylesheets load in. A `color` prop declares the active color again on `.styled-radio.is-<color>`, which ties that selector, so leave `color` unset when a class sets it.",
211
211
  "required": false,
212
212
  "inherited": false,
213
213
  "deprecated": false
@@ -248,6 +248,9 @@ lone class or the `style` prop cannot outrank:
248
248
  its own declaration — target the declaring element in your CSS:
249
249
  `.tooltip-content { --bulma-tooltip-background: … }`.
250
250
 
251
+ The `style` prop also misses on Checkbox and Radio, which put it on their hidden `<input>`; set
252
+ their variables through `className` (see their entries below).
253
+
251
254
  ### Avatar / Avatars / Badge
252
255
 
253
256
  | Variable | Default |
@@ -327,6 +330,17 @@ rather than with these variables.
327
330
  `--bulma-checkbox-label-gap`, `--bulma-checkbox-radius`, `--bulma-checkbox-size`,
328
331
  `--bulma-checkbox-transition-duration`
329
332
 
333
+ The check mark and the mixed dash are both `--bulma-checkbox-check-color`, on the
334
+ `--bulma-checkbox-active-color` (checked) or `--bulma-checkbox-indeterminate-color` (mixed) fill,
335
+ so a dark fill needs a light check color. Set these on a class you pass through `className`, not
336
+ with `style`: Checkbox puts `style` and its other attributes on the hidden `<input>`, not on the
337
+ `.styled-checkbox` label that declares them. Name both classes in the selector
338
+ (`.styled-checkbox.my-box`, mind the class prefix) so it wins whatever order the stylesheets load
339
+ in. A `color` prop declares both fills again on `.styled-checkbox.is-<color>`, which ties with
340
+ that selector, so leave `color` unset when a class sets the fill. The unchecked border, `--bulma-checkbox-border-color`, defaults to `text-weak` so
341
+ the box holds the 3:1 WCAG asks of a control's boundary; keep a replacement at 3:1 against what
342
+ the form sits on.
343
+
330
344
  ### Collapse
331
345
 
332
346
  `--bulma-collapse-border-color`, `--bulma-collapse-group-gap`, `--bulma-collapse-header-weight`,
@@ -525,6 +539,12 @@ them. See the constituent-element exception above.
525
539
  `--bulma-radio-border-width`, `--bulma-radio-dot-color`, `--bulma-radio-focus-shadow-size`,
526
540
  `--bulma-radio-label-gap`, `--bulma-radio-size`, `--bulma-radio-transition-duration`
527
541
 
542
+ As with Checkbox, set these on a class you pass through `className`, with both classes in the
543
+ selector (`.styled-radio.my-radio`): `style` goes to the hidden `<input>`. A `color` prop
544
+ declares `--bulma-radio-active-color` again on `.styled-radio.is-<color>`, which ties that
545
+ selector, so leave `color` unset when a class sets it. The unchecked ring, `--bulma-radio-border-color`, defaults to `text-weak` for the same 3:1 boundary
546
+ contrast.
547
+
528
548
  ### Rate
529
549
 
530
550
  `--bulma-rate-color-active`, `--bulma-rate-color-hover`, `--bulma-rate-color-inactive`,
package/data/skills.json CHANGED
@@ -176,7 +176,7 @@
176
176
  {
177
177
  "id": "css-variables",
178
178
  "file": "references/css-variables.md",
179
- "bytes": 46287
179
+ "bytes": 47797
180
180
  },
181
181
  {
182
182
  "id": "themeable-components",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bestax-mcp",
3
- "version": "1.18.1",
3
+ "version": "1.18.2",
4
4
  "mcpName": "io.github.allxsmith/bestax-mcp",
5
5
  "description": "MCP server for @allxsmith/bestax-bulma — component props, examples, CSS variables and agent skills, served offline from a version-pinned index",
6
6
  "type": "module",
@@ -42,7 +42,7 @@
42
42
  "dependencies": {
43
43
  "@modelcontextprotocol/sdk": "^1.31.0",
44
44
  "zod": "^4.4.3",
45
- "@allxsmith/bestax-bulma": "^5.42.0"
45
+ "@allxsmith/bestax-bulma": "^5.42.1"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@jest/globals": "^30.0.0",