bestax-mcp 1.18.39 → 1.18.40

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.67.1"
5
+ "version": "5.67.2"
6
6
  },
7
7
  "docsBase": "https://bestax.io/docs",
8
8
  "categories": [
@@ -178,7 +178,7 @@
178
178
  "code": "function example() {\n return (\n <Field\n horizontal\n label=\"Date\"\n labelProps={{ htmlFor: 'date-field-control' }}\n >\n <Field.Body>\n <Field>\n <Control iconLeftName=\"calendar-alt\">\n <DateInput id=\"date-field-control\" placeholder=\"YYYY-MM-DD\" />\n </Control>\n </Field>\n </Field.Body>\n </Field>\n );\n}"
179
179
  }
180
180
  ],
181
- "accessibility": "- Trigger uses `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`.\n- Popover panel has `role=\"dialog\"` with an accessible name. Opening it puts focus on the focused date, month or year.\n- Closing the popover with `Escape` or a pick returns focus to the input, whether the input or the launcher opened it. Under `openOnFocus` that returning focus leaves the popover closed; focusing or clicking the input again opens it. Dismissing without a pick commits nothing: an empty field stays empty, and leaving afterwards commits only what you typed.\n- Calendar uses `role=\"grid\"` with cells as `role=\"gridcell\"`.\n- Cells expose `aria-selected`, `aria-disabled`, and `aria-current=\"date\"` for today. On a server-rendered page, today's day, month and year get it once the page hydrates, so the reader's clock decides which.\n- Roving `tabindex` keeps a single grid cell focusable at a time, and focus moves with it, inline as in the popover. When the focused date is disabled, that cell is the nearest enabled day of the month.\n- The month grid is a `role=\"grid\"` of `role=\"row\"`s, labelled by the year in its header. Each month cell carries the full month name as its accessible name, `aria-current=\"date\"` for this month and `aria-disabled` for a month with no selectable day.\n- The year list is a `role=\"listbox\"` named by the `chooseYear` label. As the selection surface its options take `aria-selected` from the value's year rather than from focus, which roves through the list. When the focused year is disabled, the nearest enabled year takes the tab stop, so `Tab` still reaches the list.\n- The launcher and popover are named \"Choose month\" or \"Choose year\" to match the granularity; override them, and the month grid's \"Previous year\" / \"Next year\" buttons, through `labels` (`chooseMonth`, `chooseYear`, `prevYear`, `nextYear`).\n- Honors `prefers-reduced-motion` (skip popover fade-in).\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start, and the previous-month chevron points right. The month names follow the page.",
181
+ "accessibility": "- Trigger uses `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`.\n- Popover panel has `role=\"dialog\"` with an accessible name. Opening it puts focus on the focused date, month or year.\n- Closing the popover with `Escape` or a pick returns focus to the input, whether the input or the launcher opened it. Under `openOnFocus` that returning focus leaves the popover closed; focusing or clicking the input again opens it. Dismissing without a pick commits nothing: an empty field stays empty, and leaving afterwards commits only what you typed.\n- Calendar uses `role=\"grid\"` with cells as `role=\"gridcell\"`.\n- Cells expose `aria-selected`, `aria-disabled`, and `aria-current=\"date\"` for today. On a server-rendered page, today's day, month and year get it once the page hydrates, so the reader's clock decides which.\n- A `disabled` inline calendar puts `aria-disabled=\"true\"` on its grid or year list and disables every button in it. A `readOnly` one puts `aria-readonly=\"true\"` on the grid or year list it picks from, and keeps its tab stop and keys.\n- Roving `tabindex` keeps a single grid cell focusable at a time, and focus moves with it, inline as in the popover. When the focused date is disabled, that cell is the nearest enabled day of the month.\n- The month grid is a `role=\"grid\"` of `role=\"row\"`s, labelled by the year in its header. Each month cell carries the full month name as its accessible name, `aria-current=\"date\"` for this month and `aria-disabled` for a month with no selectable day.\n- The year list is a `role=\"listbox\"` named by the `chooseYear` label. As the selection surface its options take `aria-selected` from the value's year rather than from focus, which roves through the list. When the focused year is disabled, the nearest enabled year takes the tab stop, so `Tab` still reaches the list.\n- The launcher and popover are named \"Choose month\" or \"Choose year\" to match the granularity; override them, and the month grid's \"Previous year\" / \"Next year\" buttons, through `labels` (`chooseMonth`, `chooseYear`, `prevYear`, `nextYear`).\n- Honors `prefers-reduced-motion` (skip popover fade-in).\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start, and the previous-month chevron points right. The month names follow the page.",
182
182
  "related": ["DateTimeInput", "Input", "TimeInput"],
183
183
  "storybook": "https://bestax.io/storybook/?path=/story/form-dateinput",
184
184
  "summary": "The `DateInput` component is a form input that opens a popover calendar for date selection.",
@@ -429,7 +429,7 @@
429
429
  "name": "disabled",
430
430
  "type": "boolean",
431
431
  "default": "false",
432
- "description": "Disable the input.",
432
+ "description": "Disable the input. An `inline` calendar disables its days and header buttons, but its hidden input still submits the value, where a disabled input submits nothing.",
433
433
  "required": false,
434
434
  "inherited": true,
435
435
  "deprecated": false
@@ -438,7 +438,7 @@
438
438
  "name": "readOnly",
439
439
  "type": "boolean",
440
440
  "default": "false",
441
- "description": "Make the input read-only.",
441
+ "description": "Make the input read-only. An `inline` calendar still moves through the dates by key and by its header, but a click, Enter or Space picks nothing.",
442
442
  "required": false,
443
443
  "inherited": true,
444
444
  "deprecated": false
@@ -791,7 +791,7 @@
791
791
  "name": "disabled",
792
792
  "type": "boolean",
793
793
  "default": "false",
794
- "description": "Disable the input.",
794
+ "description": "Disable the input. An `inline` calendar disables its days and header buttons, but its hidden input still submits the value, where a disabled input submits nothing.",
795
795
  "required": false,
796
796
  "inherited": false,
797
797
  "deprecated": false
@@ -800,7 +800,7 @@
800
800
  "name": "readOnly",
801
801
  "type": "boolean",
802
802
  "default": "false",
803
- "description": "Make the input read-only.",
803
+ "description": "Make the input read-only. An `inline` calendar still moves through the dates by key and by its header, but a click, Enter or Space picks nothing.",
804
804
  "required": false,
805
805
  "inherited": false,
806
806
  "deprecated": false
@@ -46,7 +46,7 @@
46
46
  "code": "<Field label=\"Leave\">\n <Control iconLeftName=\"calendar-alt\">\n <DateRangeInput />\n </Control>\n</Field>"
47
47
  }
48
48
  ],
49
- "accessibility": "- The root is a `role=\"group\"` named by `label` through `aria-labelledby`, since the label names two inputs rather than one. Inside a labeled `Field`, that `Field`'s label names the group the same way, whether the `Field` holds `DateRangeInput` or a `DateRangeInputBase` you composed in a `Control` yourself, `inline` or not. An `aria-label` or `aria-labelledby` you give the group wins over either label.\n- Each input is a `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded` and `aria-controls`, and its own name: \"Start date\" or \"End date\", from the `labels` keys `rangeStart` and `rangeEnd`. The separator between them is hidden from assistive technology.\n- The popover is a `role=\"dialog\"` named \"Choose date range\" (`labels.chooseDateRange`). Opening it puts focus on the calendar's focused day, and closing it returns focus to the input you were last in, or to the start input.\n- The day grid is `aria-multiselectable`, and its days sit in a `role=\"row\"` per week. Every day of the range is `aria-selected`, both ends included. While the end is still being picked, only the start is: the preview is not a selection.\n- The start and end days are described as \"Start date\" and \"End date\", so moving onto either says which it is. While the end is still being picked, the day the range would end on is described as \"Choose as end date\" (`labels.rangePreviewEnd`).\n- A polite live region in the calendar states the range in words, such as \"Start date: June 10, 2024, End date: June 13, 2024\", and announces each pick. The grid points at it too, so moving into the grid reads the current range.\n- Everything else is the calendar `DateInput` uses: a roving `tabindex`, `aria-disabled` on disabled days and `aria-current=\"date\"` on today.\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start, and the previous-month chevron points right.",
49
+ "accessibility": "- The root is a `role=\"group\"` named by `label` through `aria-labelledby`, since the label names two inputs rather than one. Inside a labeled `Field`, that `Field`'s label names the group the same way, whether the `Field` holds `DateRangeInput` or a `DateRangeInputBase` you composed in a `Control` yourself, `inline` or not. An `aria-label` or `aria-labelledby` you give the group wins over either label.\n- Each input is a `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded` and `aria-controls`, and its own name: \"Start date\" or \"End date\", from the `labels` keys `rangeStart` and `rangeEnd`. The separator between them is hidden from assistive technology.\n- The popover is a `role=\"dialog\"` named \"Choose date range\" (`labels.chooseDateRange`). Opening it puts focus on the calendar's focused day, and closing it returns focus to the input you were last in, or to the start input.\n- The day grid is `aria-multiselectable`, and its days sit in a `role=\"row\"` per week. Every day of the range is `aria-selected`, both ends included. While the end is still being picked, only the start is: the preview is not a selection.\n- A `disabled` inline calendar puts `aria-disabled=\"true\"` on its grid and disables every button in it. A `readOnly` one puts `aria-readonly=\"true\"` there instead, keeps its tab stop and keys, and picks nothing.\n- The start and end days are described as \"Start date\" and \"End date\", so moving onto either says which it is. While the end is still being picked, the day the range would end on is described as \"Choose as end date\" (`labels.rangePreviewEnd`).\n- A polite live region in the calendar states the range in words, such as \"Start date: June 10, 2024, End date: June 13, 2024\", and announces each pick. The grid points at it too, so moving into the grid reads the current range.\n- Everything else is the calendar `DateInput` uses: a roving `tabindex`, `aria-disabled` on disabled days and `aria-current=\"date\"` on today.\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start, and the previous-month chevron points right.",
50
50
  "related": ["DateInput", "DateTimeInput", "Field"],
51
51
  "storybook": "https://bestax.io/storybook/?path=/story/form-daterangeinput",
52
52
  "summary": "The `DateRangeInput` component is a form input for a start and end date, picked from one popover calendar or typed into two segmented inputs.",
@@ -297,7 +297,7 @@
297
297
  "name": "disabled",
298
298
  "type": "boolean",
299
299
  "default": "false",
300
- "description": "Disable both inputs and the launcher.",
300
+ "description": "Disable both inputs and the launcher, or an `inline` calendar's days and header buttons. The hidden inputs still submit the range, in every mode, where a disabled input submits nothing.",
301
301
  "required": false,
302
302
  "inherited": true,
303
303
  "deprecated": false
@@ -306,7 +306,7 @@
306
306
  "name": "readOnly",
307
307
  "type": "boolean",
308
308
  "default": "false",
309
- "description": "Make both inputs read-only and keep the popover closed.",
309
+ "description": "Make both inputs read-only and keep the popover closed. An `inline` calendar still moves through the dates by key and by its header, but a click, Enter or Space picks nothing.",
310
310
  "required": false,
311
311
  "inherited": true,
312
312
  "deprecated": false
@@ -686,7 +686,7 @@
686
686
  "name": "disabled",
687
687
  "type": "boolean",
688
688
  "default": "false",
689
- "description": "Disable both inputs and the launcher.",
689
+ "description": "Disable both inputs and the launcher, or an `inline` calendar's days and header buttons. The hidden inputs still submit the range, in every mode, where a disabled input submits nothing.",
690
690
  "required": false,
691
691
  "inherited": false,
692
692
  "deprecated": false
@@ -695,7 +695,7 @@
695
695
  "name": "readOnly",
696
696
  "type": "boolean",
697
697
  "default": "false",
698
- "description": "Make both inputs read-only and keep the popover closed.",
698
+ "description": "Make both inputs read-only and keep the popover closed. An `inline` calendar still moves through the dates by key and by its header, but a click, Enter or Space picks nothing.",
699
699
  "required": false,
700
700
  "inherited": false,
701
701
  "deprecated": false
@@ -170,7 +170,7 @@
170
170
  "code": "<DateTimeInput label=\"Input only\" popover={false} defaultValue={new Date()} />"
171
171
  }
172
172
  ],
173
- "accessibility": "- Trigger uses `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`.\n- Popover panel has `role=\"dialog\"` with an accessible name. Opening it puts focus on the focused date.\n- Closing the popover with `Escape`, the ✓ button or `Enter` on a time wheel returns focus to the input, whether the input or the launcher opened it. Under `openOnFocus` that returning focus leaves the popover closed; focusing or clicking the input again opens it. Closing it commits nothing by itself: an empty field stays empty, and leaving afterwards commits only what you typed, so seconds the display leaves out are kept.\n- Calendar uses `role=\"grid\"`; cells expose `aria-selected`, `aria-disabled`, and `aria-current=\"date\"` for today. On a server-rendered page, today gets it once the page hydrates, so the reader's clock decides which day.\n- Roving `tabindex` keeps a single day focusable at a time, and focus moves with it, inline as in the popover. When the focused date is disabled, that cell is the nearest enabled day of the month.\n- Each time wheel uses `role=\"spinbutton\"` with `aria-valuemin`, `aria-valuemax`, `aria-valuenow`, and `aria-valuetext`. The values drawn above and below are click targets hidden from assistive technology, which reads the value from the spinbutton.\n- In a 12-hour picker, AM/PM is one of those wheels, reading `AM` or `PM`. Its accessible name is `AM/PM` unless `labels.ampm` sets another.\n- The footer's confirm button exposes an accessible label (`Done`); the Reset button reverts your edits to the value the popover opened with.\n- Tab order walks from the calendar to the footer (Reset / ✓), and from the time wheels to the footer while they are open.\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start. The time wheels keep `dir=\"ltr\"`.",
173
+ "accessibility": "- Trigger uses `role=\"combobox\"` with `aria-haspopup=\"dialog\"`, `aria-expanded`, and `aria-controls`.\n- Popover panel has `role=\"dialog\"` with an accessible name. Opening it puts focus on the focused date.\n- Closing the popover with `Escape`, the ✓ button or `Enter` on a time wheel returns focus to the input, whether the input or the launcher opened it. Under `openOnFocus` that returning focus leaves the popover closed; focusing or clicking the input again opens it. Closing it commits nothing by itself: an empty field stays empty, and leaving afterwards commits only what you typed, so seconds the display leaves out are kept.\n- Calendar uses `role=\"grid\"`; cells expose `aria-selected`, `aria-disabled`, and `aria-current=\"date\"` for today. On a server-rendered page, today gets it once the page hydrates, so the reader's clock decides which day.\n- Roving `tabindex` keeps a single day focusable at a time, and focus moves with it, inline as in the popover. When the focused date is disabled, that cell is the nearest enabled day of the month.\n- A `disabled` inline panel puts `aria-disabled=\"true\"` on its grid and disables every button in it. A `readOnly` one puts `aria-readonly=\"true\"` there instead, and keeps its tab stop and keys.\n- Each time wheel uses `role=\"spinbutton\"` with `aria-valuemin`, `aria-valuemax`, `aria-valuenow`, and `aria-valuetext`. The values drawn above and below are click targets hidden from assistive technology, which reads the value from the spinbutton.\n- In a 12-hour picker, AM/PM is one of those wheels, reading `AM` or `PM`. Its accessible name is `AM/PM` unless `labels.ampm` sets another.\n- The footer's confirm button exposes an accessible label (`Done`); the Reset button reverts your edits to the value the popover opened with.\n- Tab order walks from the calendar to the footer (Reset / ✓), and from the time wheels to the footer while they are open.\n- On a right-to-left page the launcher sits at the end of the line and the calendar icon at the start. The time wheels keep `dir=\"ltr\"`.",
174
174
  "related": ["DateInput", "Input", "TimeInput"],
175
175
  "storybook": "https://bestax.io/storybook/?path=/story/form-datetimeinput",
176
176
  "summary": "The `DateTimeInput` combines a calendar and a time **wheel spinner** in a single popover — an iOS-style layout.",
@@ -421,7 +421,7 @@
421
421
  "name": "disabled",
422
422
  "type": "boolean",
423
423
  "default": "false",
424
- "description": "Disable the input.",
424
+ "description": "Disable the input. An `inline` panel disables its days, header buttons, Time, Reset and ✓, but its hidden input still submits the value, where a disabled input submits nothing.",
425
425
  "required": false,
426
426
  "inherited": true,
427
427
  "deprecated": false
@@ -430,7 +430,7 @@
430
430
  "name": "readOnly",
431
431
  "type": "boolean",
432
432
  "default": "false",
433
- "description": "Read-only input.",
433
+ "description": "Read-only input. An `inline` panel still moves through the dates by key and by its header, but a click, Enter or Space picks nothing, and Time and Reset are disabled, so the time can't change either.",
434
434
  "required": false,
435
435
  "inherited": true,
436
436
  "deprecated": false
@@ -846,7 +846,7 @@
846
846
  "name": "disabled",
847
847
  "type": "boolean",
848
848
  "default": "false",
849
- "description": "Disable the input.",
849
+ "description": "Disable the input. An `inline` panel disables its days, header buttons, Time, Reset and ✓, but its hidden input still submits the value, where a disabled input submits nothing.",
850
850
  "required": false,
851
851
  "inherited": false,
852
852
  "deprecated": false
@@ -855,7 +855,7 @@
855
855
  "name": "readOnly",
856
856
  "type": "boolean",
857
857
  "default": "false",
858
- "description": "Read-only input.",
858
+ "description": "Read-only input. An `inline` panel still moves through the dates by key and by its header, but a click, Enter or Space picks nothing, and Time and Reset are disabled, so the time can't change either.",
859
859
  "required": false,
860
860
  "inherited": false,
861
861
  "deprecated": false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bestax-mcp",
3
- "version": "1.18.39",
3
+ "version": "1.18.40",
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.32.2",
44
44
  "zod": "^4.6.7",
45
- "@allxsmith/bestax-bulma": "^5.67.1"
45
+ "@allxsmith/bestax-bulma": "^5.67.2"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^26.6.6",