bitboss-ui 3.0.0-beta.41 → 3.0.0-beta.42

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.
Files changed (209) hide show
  1. package/README.md +53 -5
  2. package/bin/bitboss-ui-mcp.mjs +999 -64
  3. package/bin/bitboss-ui.mjs +15 -2
  4. package/dist/ai/BbAccordion.md +3 -3
  5. package/dist/ai/BbAlert.md +3 -3
  6. package/dist/ai/BbAsterisk.md +11 -7
  7. package/dist/ai/BbAvatar.md +1 -1
  8. package/dist/ai/BbBadge.md +6 -3
  9. package/dist/ai/BbBadgeButton.md +3 -0
  10. package/dist/ai/BbBaseButton.md +1 -1
  11. package/dist/ai/BbBreadcrumbs.md +21 -15
  12. package/dist/ai/BbButton.md +2 -2
  13. package/dist/ai/BbCalendar.md +11 -3
  14. package/dist/ai/BbCheckbox.md +10 -2
  15. package/dist/ai/BbCheckboxGroup.md +1 -1
  16. package/dist/ai/BbColorInput.md +3 -2
  17. package/dist/ai/BbColorPalette.md +12 -6
  18. package/dist/ai/BbConfirm.md +1 -1
  19. package/dist/ai/BbDatePicker.md +3 -3
  20. package/dist/ai/BbDatePickerInput.md +12 -6
  21. package/dist/ai/BbDialog.md +1 -1
  22. package/dist/ai/BbDropdown.md +11 -7
  23. package/dist/ai/BbDropdownButton.md +8 -7
  24. package/dist/ai/BbForm.md +59 -37
  25. package/dist/ai/BbIcon.md +3 -1
  26. package/dist/ai/BbNumberInput.md +9 -6
  27. package/dist/ai/BbOffCanvas.md +2 -2
  28. package/dist/ai/BbPagination.md +4 -1
  29. package/dist/ai/BbPopover.md +3 -2
  30. package/dist/ai/BbRadio.md +2 -2
  31. package/dist/ai/BbRadioGroup.md +1 -1
  32. package/dist/ai/BbRating.md +11 -8
  33. package/dist/ai/BbSelect.md +29 -16
  34. package/dist/ai/BbSelectPopover.md +11 -5
  35. package/dist/ai/BbSlider.md +3 -3
  36. package/dist/ai/BbSmoothHeight.md +3 -2
  37. package/dist/ai/BbSwitch.md +9 -3
  38. package/dist/ai/BbSwitchGroup.md +1 -1
  39. package/dist/ai/BbTable.md +143 -57
  40. package/dist/ai/BbTabs.md +8 -6
  41. package/dist/ai/BbTabsList.md +2 -2
  42. package/dist/ai/BbTabsPanels.md +1 -1
  43. package/dist/ai/BbTabsRoot.md +1 -1
  44. package/dist/ai/BbTag.md +13 -7
  45. package/dist/ai/BbTextInput.md +6 -2
  46. package/dist/ai/BbTextarea.md +11 -7
  47. package/dist/ai/BbTimePicker.md +6 -3
  48. package/dist/ai/BbTimePickerInput.md +7 -3
  49. package/dist/ai/BbToast.md +1 -1
  50. package/dist/ai/BbTooltip.md +1 -1
  51. package/dist/ai/ChipsBox.md +5 -2
  52. package/dist/ai/CommonField.md +1 -0
  53. package/dist/ai/CommonFieldInput.md +2 -1
  54. package/dist/ai/CommonTimeSelector.md +1 -1
  55. package/dist/ai/FlatListBox.md +2 -2
  56. package/dist/ai/GroupedListBox.md +2 -2
  57. package/dist/ai/ListBox.md +2 -2
  58. package/dist/ai/changelog.json +1059 -8
  59. package/dist/ai/components.json +546 -66
  60. package/dist/ai/composables/useBbFormField.md +14 -3
  61. package/dist/ai/design-tokens.json +22 -15
  62. package/dist/ai/design-tokens.manifest.yaml +5 -5
  63. package/dist/ai/guides/agent-contract.md +10 -0
  64. package/dist/ai/guides/ai-router.md +20 -20
  65. package/dist/ai/guides/design-language.md +13 -10
  66. package/dist/ai/guides/design-tokens.md +44 -34
  67. package/dist/ai/guides/icons-policy.md +3 -5
  68. package/dist/ai/guides/installation-and-plugin-setup.md +9 -5
  69. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +1 -0
  70. package/dist/ai/guides/migration/components/bb-slider.md +5 -0
  71. package/dist/ai/guides/migration/v2-to-v3.md +40 -17
  72. package/dist/ai/guides/migration/v3-beta-tooling.md +35 -5
  73. package/dist/ai/guides/passthrough.md +17 -7
  74. package/dist/ai/guides/preset-components.md +6 -3
  75. package/dist/ai/guides/ssr-prefill.md +27 -4
  76. package/dist/ai/guides/validated-forms.md +21 -16
  77. package/dist/ai/index.md +1 -1
  78. package/dist/ai/recipes/inertia/inline-edit-workspace.md +1 -1
  79. package/dist/ai/recipes/inertia/settings-workspace.md +15 -9
  80. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +1 -1
  81. package/dist/ai/recipes/nuxt/settings-workspace.md +15 -9
  82. package/dist/ai/recipes/vue/inline-edit-workspace.md +1 -1
  83. package/dist/ai/recipes/vue/settings-workspace.md +15 -9
  84. package/dist/ai/source/BbBadge.md +34 -0
  85. package/dist/ai/source/BbBadgeButton.md +34 -0
  86. package/dist/ai/source/BbBaseCheckboxIcon.md +3 -1
  87. package/dist/ai/source/BbBaseRadioIcon.md +2 -1
  88. package/dist/ai/source/BbBaseSwitchIcon.md +7 -5
  89. package/dist/ai/source/BbBreadcrumbs.md +44 -17
  90. package/dist/ai/source/BbButton.md +15 -0
  91. package/dist/ai/source/BbCalendar.md +117 -6
  92. package/dist/ai/source/BbCheckbox.md +24 -5
  93. package/dist/ai/source/BbCheckboxGroup.md +9 -1
  94. package/dist/ai/source/BbColorInput.md +30 -0
  95. package/dist/ai/source/BbColorPalette.md +54 -7
  96. package/dist/ai/source/BbDatePickerInput.md +91 -29
  97. package/dist/ai/source/BbDropdownButton.md +29 -1
  98. package/dist/ai/source/BbForm.md +25 -23
  99. package/dist/ai/source/BbIcon.md +5 -2
  100. package/dist/ai/source/BbNumberInput.md +25 -8
  101. package/dist/ai/source/BbPagination.md +18 -0
  102. package/dist/ai/source/BbPopover.md +12 -0
  103. package/dist/ai/source/BbRadio.md +2 -2
  104. package/dist/ai/source/BbRadioGroup.md +11 -1
  105. package/dist/ai/source/BbRating.md +11 -5
  106. package/dist/ai/source/BbSelect.md +17 -5
  107. package/dist/ai/source/BbSelectPopover.md +72 -2
  108. package/dist/ai/source/BbSlider.md +10 -9
  109. package/dist/ai/source/BbSmoothHeight.md +6 -2
  110. package/dist/ai/source/BbSwitch.md +22 -3
  111. package/dist/ai/source/BbSwitchGroup.md +9 -1
  112. package/dist/ai/source/BbTable.md +181 -2
  113. package/dist/ai/source/BbTag.md +73 -29
  114. package/dist/ai/source/BbTextInput.md +32 -1
  115. package/dist/ai/source/BbTextarea.md +26 -40
  116. package/dist/ai/source/BbTimePickerInput.md +40 -2
  117. package/dist/ai/source/BbTree.md +15 -3
  118. package/dist/ai/source/CommonField.md +29 -0
  119. package/dist/ai/source/CommonFieldInput.md +26 -5
  120. package/dist/ai/source/CommonTimeSelector.md +10 -0
  121. package/dist/ai/source/FlatListBox.md +4 -0
  122. package/dist/ai/source/GroupedListBox.md +4 -0
  123. package/dist/ai/source/ListBox.md +4 -0
  124. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +109 -107
  125. package/dist/components/BbBreadcrumbs/types.d.ts +1 -1
  126. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +151 -149
  127. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +51 -48
  128. package/dist/components/BbCalendar/types.d.ts +5 -1
  129. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +61 -57
  130. package/dist/components/BbCheckbox/types.d.ts +2 -2
  131. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +43 -38
  132. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +53 -51
  133. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +257 -242
  134. package/dist/components/BbColorPalette/types.d.ts +10 -3
  135. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +320 -305
  136. package/dist/components/BbDatePickerInput/types.d.ts +3 -3
  137. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +64 -57
  138. package/dist/components/BbForm/BbForm.vue.d.ts +14 -12
  139. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +139 -142
  140. package/dist/components/BbForm/BbFormCustomField.js +28 -28
  141. package/dist/components/BbForm/bindFormField.d.ts +27 -0
  142. package/dist/components/BbForm/bindFormField.js +8 -7
  143. package/dist/components/BbForm/formFields.d.ts +1 -1
  144. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +24 -23
  145. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +72 -67
  146. package/dist/components/BbNumberInput/types.d.ts +3 -2
  147. package/dist/components/BbRadio/types.d.ts +2 -2
  148. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +36 -29
  149. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +24 -22
  150. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +108 -104
  151. package/dist/components/BbSelect/types.d.ts +9 -3
  152. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +376 -357
  153. package/dist/components/BbSelectPopover/sheetChipAttrs.d.ts +18 -0
  154. package/dist/components/BbSelectPopover/sheetChipAttrs.js +5 -0
  155. package/dist/components/BbSelectPopover/types.d.ts +3 -1
  156. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +99 -102
  157. package/dist/components/BbSlider/types.d.ts +0 -4
  158. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +71 -67
  159. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +75 -70
  160. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +803 -765
  161. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +138 -124
  162. package/dist/components/BbTag/types.d.ts +2 -1
  163. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +88 -80
  164. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +70 -64
  165. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +216 -203
  166. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +2 -4
  167. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +92 -86
  168. package/dist/components/CommonField/types.d.ts +7 -0
  169. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +4 -0
  170. package/dist/components/FlatListBox/types.d.ts +4 -0
  171. package/dist/components/GroupedListBox/types.d.ts +4 -0
  172. package/dist/components/ListBox/types.d.ts +4 -0
  173. package/dist/composables/ssrMarker.d.ts +15 -0
  174. package/dist/composables/ssrMarker.js +19 -0
  175. package/dist/composables/useBaseOptions.js +7 -1
  176. package/dist/composables/useBbFormField.d.ts +13 -2
  177. package/dist/composables/useBbFormField.js +40 -24
  178. package/dist/composables/useFormBinding.d.ts +11 -3
  179. package/dist/composables/useFormBinding.js +31 -21
  180. package/dist/composables/useItemsGetter.d.ts +28 -0
  181. package/dist/composables/useItemsGetter.js +45 -33
  182. package/dist/composables/usePrefill.js +9 -8
  183. package/dist/composables/useServerPrefetch.d.ts +28 -0
  184. package/dist/composables/useServerPrefetch.js +9 -0
  185. package/dist/composables/useSsrState.d.ts +9 -1
  186. package/dist/deprecation/ai-deprecations.json.d.ts +35 -0
  187. package/dist/deprecation/ai-deprecations.json.js +1 -1
  188. package/dist/deprecation/removedProps.js +2 -2
  189. package/dist/llms-full.txt +803 -425
  190. package/dist/llms-medium.txt +53 -36
  191. package/dist/styles.css +2 -2
  192. package/dist/utilities/functions/toggleInput.d.ts +16 -0
  193. package/dist/utilities/functions/toggleInput.js +7 -2
  194. package/dist/utilities/functions/warnRemovedAttrs.d.ts +1 -1
  195. package/dist/utilities/functions/warnRemovedAttrs.js +11 -1
  196. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +8 -3
  197. package/dist/utilities/misc/ssrValue.d.ts +20 -0
  198. package/dist/utilities/misc/ssrValue.js +7 -0
  199. package/dist/utils/versionCheck.js +1 -1
  200. package/dist/vite.js +175 -168
  201. package/package.json +3 -2
  202. package/scripts/lib/doc-sections.mjs +5 -3
  203. package/scripts/lib/eslint-disable.mjs +5 -0
  204. package/scripts/lib/eslint-plugin.d.ts +5 -1
  205. package/scripts/lib/eslint-plugin.mjs +240 -0
  206. package/scripts/lib/form-v-model.mjs +190 -0
  207. package/scripts/lib/project-variant-dts.mjs +25 -3
  208. package/scripts/lib/reactive-v-model.mjs +221 -0
  209. package/scripts/lib/validate-bb-markup.mjs +116 -8
package/README.md CHANGED
@@ -318,10 +318,12 @@ Restart your agent harness once after either path so it picks up the new server.
318
318
 
319
319
  The server's tools: `search_docs` (the section that answers a "how do I…"
320
320
  question, across every guide and component), `search_components` (empty query
321
- = the catalogue), `get_component` (compact: every prop, event, slot and pt
322
- part, plus guide sections on request; also answers for type names and for v2 /
323
- beta names that were renamed), `get_guide`, `get_composable`, `list_recipes` /
324
- `get_recipe`, `list_tokens`, `list_changes` and `validate`.
321
+ = the catalogue), `get_component` (one line per prop, event and slot; whole
322
+ rows with `members`, guide prose with `sections`; also answers for type names
323
+ and for v2 / beta names that were renamed), `get_guide`, `get_composable`,
324
+ `list_recipes` / `get_recipe`, `list_tokens`, `list_changes` (counts, then one
325
+ line per change) and `validate`. Every answer is small by default: ask for the
326
+ part you need.
325
327
 
326
328
  ### CLI commands
327
329
 
@@ -475,13 +477,59 @@ a `BbProgress` with no `label`: all three render with no accessible name. Put th
475
477
  still name the button:
476
478
 
477
479
  ```vue
478
- <BbButton icon="lucide:trash">Elimina</BbButton>
480
+ <BbButton icon="lucide:trash">Delete</BbButton>
479
481
  <BbProgress label="Upload" :model-value="progress" />
480
482
  ```
481
483
 
482
484
  `BbSpinner` is not covered: without `label` it is decorative, which is correct.
483
485
  For raw HTML controls, use `eslint-plugin-vuejs-accessibility`.
484
486
 
487
+ #### v-model on a const reactive(): `no-reactive-v-model`
488
+
489
+ `bitboss-ui/no-reactive-v-model` flags a `v-model` (or `v-model:arg`) bound to
490
+ a `<script setup>` `const x = reactive(…)`. Dev runs it fine; a production
491
+ build compiles the write-back to `x = $event`, an assignment to a `const`, and
492
+ the bundler stops. Hold the object in a `ref()` and read `.value` in script; the
493
+ template does not change:
494
+
495
+ ```vue
496
+ <script setup lang="ts">
497
+ import { ref } from 'vue';
498
+ const values = ref({ name: '' }); // not: const values = reactive({ name: '' })
499
+ </script>
500
+
501
+ <template>
502
+ <ProfileEditor v-model="values" />
503
+ </template>
504
+ ```
505
+
506
+ A `let`, a member expression (`v-model="form.name"`) and Inertia's
507
+ `useForm()` are fine. `<BbForm>` is left to `form-model`: it takes its object
508
+ one way, so `:model` is the fix there, not a `ref()`. `bitboss-ui check`
509
+ reports the same as `reactive-v-model`.
510
+
511
+ #### The object a form fills: `form-model`
512
+
513
+ `<BbForm>` takes the object it fills one way, `:model="draft"`: any reactive
514
+ object — `reactive()`, `ref`, Pinia state, Inertia `useForm()` — written in
515
+ place. `bitboss-ui/form-model` fixes `v-model="…"` and `:model-value="…"` on
516
+ `<BbForm>` to `:model="…"`, and reports an `@update:model-value` listener (the
517
+ form emits none: watch the object deep) and a writable `computed` bound as the
518
+ model (its setter is never called):
519
+
520
+ ```vue
521
+ <script setup lang="ts">
522
+ import { reactive } from 'vue';
523
+ const draft = reactive({ name: '' });
524
+ </script>
525
+
526
+ <template>
527
+ <BbForm :model="draft">…</BbForm>
528
+ </template>
529
+ ```
530
+
531
+ `bitboss-ui check` reports the same as `form-v-model`.
532
+
485
533
  #### Rating star colours: `no-star-color`
486
534
 
487
535
  `bitboss-ui/no-star-color` flags any colour utility in `BbRating`'s `pt:item`,