bitboss-ui 3.0.0-beta.66 → 3.0.0-beta.67

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 (799) hide show
  1. package/README.md +3 -2
  2. package/bin/bitboss-ui-mcp.mjs +40 -9
  3. package/dist/_virtual/_plugin-vue_export-helper.js +1 -2
  4. package/dist/ai/BbAlert.md +1 -1
  5. package/dist/ai/BbAvatar.md +1 -1
  6. package/dist/ai/BbBadge.md +1 -1
  7. package/dist/ai/BbBadgeButton.md +2 -2
  8. package/dist/ai/BbBaseButton.md +1 -1
  9. package/dist/ai/BbBreadcrumbs.md +1 -1
  10. package/dist/ai/BbButton.md +7 -1
  11. package/dist/ai/BbCalendar.md +101 -21
  12. package/dist/ai/BbCheckbox.md +4 -0
  13. package/dist/ai/BbCheckboxGroup.md +1 -1
  14. package/dist/ai/BbColorInput.md +3 -2
  15. package/dist/ai/BbConfirm.md +2 -1
  16. package/dist/ai/BbDatePicker.md +30 -18
  17. package/dist/ai/BbDatePickerInput.md +84 -22
  18. package/dist/ai/BbDialog.md +6 -3
  19. package/dist/ai/BbDropdown.md +5 -5
  20. package/dist/ai/BbDropdownButton.md +4 -1
  21. package/dist/ai/BbForm.md +4 -4
  22. package/dist/ai/BbNumberInput.md +16 -12
  23. package/dist/ai/BbOffCanvas.md +5 -5
  24. package/dist/ai/BbPagination.md +1 -1
  25. package/dist/ai/BbRadio.md +4 -0
  26. package/dist/ai/BbRadioGroup.md +1 -1
  27. package/dist/ai/BbRating.md +4 -4
  28. package/dist/ai/BbSelect.md +5 -4
  29. package/dist/ai/BbSelectPopover.md +3 -4
  30. package/dist/ai/BbSlider.md +1 -1
  31. package/dist/ai/BbSwitch.md +4 -0
  32. package/dist/ai/BbTable.md +19 -6
  33. package/dist/ai/BbTabs.md +1 -1
  34. package/dist/ai/BbTabsList.md +1 -1
  35. package/dist/ai/BbTag.md +2 -2
  36. package/dist/ai/BbTextInput.md +4 -4
  37. package/dist/ai/BbTextarea.md +1 -1
  38. package/dist/ai/BbTimePicker.md +3 -2
  39. package/dist/ai/BbTimePickerInput.md +7 -10
  40. package/dist/ai/BbTooltip.md +2 -2
  41. package/dist/ai/BbTree.md +2 -2
  42. package/dist/ai/ChipsBox.md +1 -1
  43. package/dist/ai/CommonField.md +2 -2
  44. package/dist/ai/CommonFieldInput.md +1 -1
  45. package/dist/ai/FlatListBox.md +1 -1
  46. package/dist/ai/GroupedListBox.md +1 -1
  47. package/dist/ai/ListBox.md +1 -1
  48. package/dist/ai/OptionsContainer.md +1 -1
  49. package/dist/ai/changelog.json +245 -537
  50. package/dist/ai/components.json +57 -57
  51. package/dist/ai/composables/useBbConfig.md +2 -2
  52. package/dist/ai/guides/component-picker.md +3 -2
  53. package/dist/ai/guides/design-language.md +25 -2
  54. package/dist/ai/guides/design-tokens.md +27 -13
  55. package/dist/ai/guides/eslint-rules.md +1 -1
  56. package/dist/ai/guides/fetch-items-playbook.md +1 -0
  57. package/dist/ai/guides/icons-policy.md +1 -1
  58. package/dist/ai/guides/inline-edit-playbook.md +1 -1
  59. package/dist/ai/guides/installation-and-plugin-setup.md +16 -16
  60. package/dist/ai/guides/migration/components/bb-select.md +1 -2
  61. package/dist/ai/guides/migration/components/bb-table.md +3 -3
  62. package/dist/ai/guides/migration/v2-to-v3.md +49 -1
  63. package/dist/ai/guides/migration/v3-beta-tooling.md +3 -3
  64. package/dist/ai/guides/passthrough.md +51 -10
  65. package/dist/ai/guides/validated-forms.md +3 -3
  66. package/dist/ai/guides/validation-libraries.md +11 -13
  67. package/dist/ai/helpers/inertia/manifest.json +2 -2
  68. package/dist/ai/manifest/common.json +3 -1
  69. package/dist/ai/manifest/components/BbAvatar.tree.json +1 -1
  70. package/dist/ai/manifest/components/BbBadge.json +2 -2
  71. package/dist/ai/manifest/components/BbBadge.tree.json +1 -1
  72. package/dist/ai/manifest/components/BbBadgeButton.json +2 -2
  73. package/dist/ai/manifest/components/BbBadgeButton.tree.json +1 -1
  74. package/dist/ai/manifest/components/BbBaseButton.json +2 -2
  75. package/dist/ai/manifest/components/BbBaseCheckboxIcon.json +1 -1
  76. package/dist/ai/manifest/components/BbBaseRadioIcon.json +1 -1
  77. package/dist/ai/manifest/components/BbBaseSwitchIcon.json +1 -1
  78. package/dist/ai/manifest/components/BbBreadcrumbs.json +3 -3
  79. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  80. package/dist/ai/manifest/components/BbButton.json +2 -2
  81. package/dist/ai/manifest/components/BbButton.tree.json +5 -0
  82. package/dist/ai/manifest/components/BbCalendar.json +27 -25
  83. package/dist/ai/manifest/components/BbCalendar.tree.json +16 -2
  84. package/dist/ai/manifest/components/BbCheckbox.json +1 -1
  85. package/dist/ai/manifest/components/BbCheckbox.tree.json +4 -1
  86. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  87. package/dist/ai/manifest/components/BbColorInput.json +18 -17
  88. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  89. package/dist/ai/manifest/components/BbConfirm.json +2 -1
  90. package/dist/ai/manifest/components/BbConfirm.tree.json +1 -1
  91. package/dist/ai/manifest/components/BbDatePicker.json +28 -26
  92. package/dist/ai/manifest/components/BbDatePicker.tree.json +1 -1
  93. package/dist/ai/manifest/components/BbDatePickerInput.json +36 -34
  94. package/dist/ai/manifest/components/BbDatePickerInput.tree.json +3 -2
  95. package/dist/ai/manifest/components/BbDialog.json +3 -3
  96. package/dist/ai/manifest/components/BbDialog.tree.json +4 -1
  97. package/dist/ai/manifest/components/BbDropdown.json +9 -9
  98. package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
  99. package/dist/ai/manifest/components/BbDropdownButton.json +3 -3
  100. package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -2
  101. package/dist/ai/manifest/components/BbDropzone.json +1 -1
  102. package/dist/ai/manifest/components/BbHost.tree.json +1 -1
  103. package/dist/ai/manifest/components/BbNumberInput.json +8 -8
  104. package/dist/ai/manifest/components/BbOffCanvas.json +3 -3
  105. package/dist/ai/manifest/components/BbOffCanvas.tree.json +6 -3
  106. package/dist/ai/manifest/components/BbPagination.json +1 -1
  107. package/dist/ai/manifest/components/BbPagination.tree.json +1 -1
  108. package/dist/ai/manifest/components/BbRadio.json +1 -1
  109. package/dist/ai/manifest/components/BbRadio.tree.json +4 -1
  110. package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
  111. package/dist/ai/manifest/components/BbRating.json +7 -7
  112. package/dist/ai/manifest/components/BbRating.tree.json +2 -2
  113. package/dist/ai/manifest/components/BbSelect.json +21 -21
  114. package/dist/ai/manifest/components/BbSelectPopover.json +9 -9
  115. package/dist/ai/manifest/components/BbSelectPopover.tree.json +1 -0
  116. package/dist/ai/manifest/components/BbSlider.json +11 -11
  117. package/dist/ai/manifest/components/BbSwitch.json +1 -1
  118. package/dist/ai/manifest/components/BbSwitch.tree.json +4 -1
  119. package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
  120. package/dist/ai/manifest/components/BbTable.json +22 -22
  121. package/dist/ai/manifest/components/BbTable.tree.json +3 -1
  122. package/dist/ai/manifest/components/BbTabs.json +6 -6
  123. package/dist/ai/manifest/components/BbTabsList.json +4 -4
  124. package/dist/ai/manifest/components/BbTabsPanels.json +2 -2
  125. package/dist/ai/manifest/components/BbTag.json +2 -2
  126. package/dist/ai/manifest/components/BbTextInput.json +4 -4
  127. package/dist/ai/manifest/components/BbTextInput.tree.json +2 -2
  128. package/dist/ai/manifest/components/BbTextarea.json +2 -2
  129. package/dist/ai/manifest/components/BbTimePicker.json +6 -6
  130. package/dist/ai/manifest/components/BbTimePickerInput.json +18 -18
  131. package/dist/ai/manifest/components/BbToast.json +1 -1
  132. package/dist/ai/manifest/components/BbToast.tree.json +1 -1
  133. package/dist/ai/manifest/components/BbTooltip.tree.json +2 -2
  134. package/dist/ai/manifest/components/BbTree.json +3 -3
  135. package/dist/ai/manifest/components/BbTree.tree.json +1 -1
  136. package/dist/ai/manifest/components/CommonField.json +2 -2
  137. package/dist/ai/manifest/components/CommonFieldInput.tree.json +1 -1
  138. package/dist/ai/manifest/components/CommonPopover.tree.json +3 -0
  139. package/dist/ai/manifest/components/FlatListBox.json +1 -1
  140. package/dist/ai/manifest/components/GroupedListBox.json +1 -1
  141. package/dist/ai/manifest/components/ListBox.json +1 -1
  142. package/dist/ai/manifest/components/OptionsContainer.json +1 -1
  143. package/dist/ai/manifest/index.json +2 -2
  144. package/dist/ai/manifest/types.advanced.json +2 -2
  145. package/dist/ai/manifest/types.api.json +1 -1
  146. package/dist/ai/source/BbAvatar.md +1 -1
  147. package/dist/ai/source/BbBadge.md +30 -10
  148. package/dist/ai/source/BbBadgeButton.md +30 -10
  149. package/dist/ai/source/BbBaseButton.md +270 -267
  150. package/dist/ai/source/BbBaseCheckboxIcon.md +55 -51
  151. package/dist/ai/source/BbBaseRadioIcon.md +49 -45
  152. package/dist/ai/source/BbBaseSwitchIcon.md +56 -52
  153. package/dist/ai/source/BbBreadcrumbs.md +62 -47
  154. package/dist/ai/source/BbButton.md +89 -4
  155. package/dist/ai/source/BbCalendar.md +508 -118
  156. package/dist/ai/source/BbCheckbox.md +215 -171
  157. package/dist/ai/source/BbCheckboxGroup.md +20 -16
  158. package/dist/ai/source/BbColorInput.md +74 -18
  159. package/dist/ai/source/BbColorPalette.md +135 -121
  160. package/dist/ai/source/BbConfirm.md +25 -7
  161. package/dist/ai/source/BbConfirmPortal.md +16 -6
  162. package/dist/ai/source/BbDatePicker.md +204 -161
  163. package/dist/ai/source/BbDatePickerInput.md +289 -23
  164. package/dist/ai/source/BbDialog.md +145 -131
  165. package/dist/ai/source/BbDropdown.md +48 -10
  166. package/dist/ai/source/BbDropdownButton.md +56 -13
  167. package/dist/ai/source/BbDropdownGroup.md +48 -10
  168. package/dist/ai/source/BbDropzone.md +86 -78
  169. package/dist/ai/source/BbNumberInput.md +60 -22
  170. package/dist/ai/source/BbOffCanvas.md +155 -140
  171. package/dist/ai/source/BbPagination.md +97 -85
  172. package/dist/ai/source/BbRadio.md +204 -160
  173. package/dist/ai/source/BbRadioGroup.md +17 -15
  174. package/dist/ai/source/BbRating.md +157 -144
  175. package/dist/ai/source/BbSelect.md +77 -8
  176. package/dist/ai/source/BbSelectPopover.md +381 -336
  177. package/dist/ai/source/BbSlider.md +200 -187
  178. package/dist/ai/source/BbSwitch.md +79 -8
  179. package/dist/ai/source/BbSwitchGroup.md +20 -16
  180. package/dist/ai/source/BbTable.md +470 -386
  181. package/dist/ai/source/BbTabs.md +62 -22
  182. package/dist/ai/source/BbTabsList.md +62 -22
  183. package/dist/ai/source/BbTabsPanels.md +62 -22
  184. package/dist/ai/source/BbTabsRoot.md +62 -22
  185. package/dist/ai/source/BbTag.md +41 -21
  186. package/dist/ai/source/BbTextInput.md +45 -11
  187. package/dist/ai/source/BbTextarea.md +39 -7
  188. package/dist/ai/source/BbTimePicker.md +116 -103
  189. package/dist/ai/source/BbTimePickerInput.md +64 -8
  190. package/dist/ai/source/BbToast.md +26 -18
  191. package/dist/ai/source/BbToastPortal.md +26 -18
  192. package/dist/ai/source/BbTooltip.md +2 -2
  193. package/dist/ai/source/BbTree.md +16 -3
  194. package/dist/ai/source/CommonField.md +2 -2
  195. package/dist/ai/source/CommonFieldInput.md +2 -2
  196. package/dist/ai/source/CommonPopover.md +7 -0
  197. package/dist/ai/source/CommonTimeSelector.md +3 -1
  198. package/dist/ai/source/FlatListBox.md +1 -1
  199. package/dist/ai/source/GroupedListBox.md +1 -1
  200. package/dist/ai/source/ListBox.md +1 -1
  201. package/dist/ai/source/OptionsContainer.md +1 -1
  202. package/dist/assets/css/reset.css_inline.js +1 -2
  203. package/dist/assets/svgs/alert.svg_raw.js +1 -2
  204. package/dist/assets/svgs/calendar.svg_raw.js +1 -2
  205. package/dist/assets/svgs/check_stroke.svg_raw.js +1 -2
  206. package/dist/assets/svgs/chevron_down.svg_raw.js +1 -2
  207. package/dist/assets/svgs/chevron_right.svg_raw.js +1 -2
  208. package/dist/assets/svgs/clear.svg_raw.js +1 -2
  209. package/dist/assets/svgs/clock.svg_raw.js +1 -2
  210. package/dist/assets/svgs/error.svg_raw.js +1 -2
  211. package/dist/assets/svgs/search.svg_raw.js +1 -2
  212. package/dist/assets/svgs/spinner.svg_raw.js +1 -2
  213. package/dist/assets/svgs/star.svg_raw.js +1 -2
  214. package/dist/assets/svgs/user.svg_raw.js +1 -2
  215. package/dist/components/BbAccordion/BbAccordion.vue.js +1 -2
  216. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +21 -22
  217. package/dist/components/BbAccordion/types.js +1 -2
  218. package/dist/components/BbAlert/BbAlert.vue.js +1 -2
  219. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +28 -29
  220. package/dist/components/BbAlert/types.js +1 -2
  221. package/dist/components/BbAsterisk/BbAsterisk.vue.js +1 -2
  222. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +1 -2
  223. package/dist/components/BbAsterisk/types.js +1 -2
  224. package/dist/components/BbAvatar/BbAvatar.vue.js +1 -2
  225. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +20 -21
  226. package/dist/components/BbAvatar/types.js +1 -2
  227. package/dist/components/BbBadge/BadgeBodyContent.vue.js +1 -2
  228. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +13 -14
  229. package/dist/components/BbBadge/BbBadge.vue.js +1 -2
  230. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +31 -33
  231. package/dist/components/BbBadge/BbBadgeButton.vue.js +1 -2
  232. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +11 -16
  233. package/dist/components/BbBadge/badgeButtonContext.js +1 -2
  234. package/dist/components/BbBadge/types.d.ts +20 -4
  235. package/dist/components/BbBadge/types.js +7 -2
  236. package/dist/components/BbBaseButton/BbBaseButton.vue.js +1 -2
  237. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +12 -13
  238. package/dist/components/BbBaseButton/RouterComponent.vue.js +1 -2
  239. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +8 -9
  240. package/dist/components/BbBaseButton/types.d.ts +4 -2
  241. package/dist/components/BbBaseButton/types.js +6 -2
  242. package/dist/components/BbBaseButton/useLinkState.js +5 -6
  243. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js +1 -2
  244. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +16 -17
  245. package/dist/components/BbBaseCheckboxIcon/types.d.ts +4 -2
  246. package/dist/components/BbBaseCheckboxIcon/types.js +3 -3
  247. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.js +1 -2
  248. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +13 -14
  249. package/dist/components/BbBaseRadioIcon/types.d.ts +4 -2
  250. package/dist/components/BbBaseRadioIcon/types.js +3 -3
  251. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.js +1 -2
  252. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +15 -16
  253. package/dist/components/BbBaseSwitchIcon/types.d.ts +4 -2
  254. package/dist/components/BbBaseSwitchIcon/types.js +3 -3
  255. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.js +1 -2
  256. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +156 -167
  257. package/dist/components/BbBreadcrumbs/estimateBreadcrumbItemWidth.js +1 -2
  258. package/dist/components/BbBreadcrumbs/types.d.ts +19 -5
  259. package/dist/components/BbBreadcrumbs/types.js +8 -3
  260. package/dist/components/BbButton/BbButton.vue.js +1 -2
  261. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +41 -42
  262. package/dist/components/BbButton/toggleRoving.js +2 -3
  263. package/dist/components/BbButton/types.d.ts +4 -2
  264. package/dist/components/BbButton/types.js +8 -2
  265. package/dist/components/BbCalendar/BbCalendar.vue.d.ts +41 -71
  266. package/dist/components/BbCalendar/BbCalendar.vue.js +1 -2
  267. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +261 -280
  268. package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +1 -2
  269. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -17
  270. package/dist/components/BbCalendar/CalendarYearPanel.vue.js +1 -2
  271. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +55 -57
  272. package/dist/components/BbCalendar/calendarHost.js +1 -2
  273. package/dist/components/BbCalendar/types.d.ts +75 -30
  274. package/dist/components/BbCalendar/types.js +54 -3
  275. package/dist/components/BbCalendar/useCalendarContext.js +1 -2
  276. package/dist/components/BbCalendar/useCalendarGrid.js +180 -193
  277. package/dist/components/BbCalendar/useDayGrid.d.ts +17 -0
  278. package/dist/components/BbCalendar/useDayGrid.js +159 -155
  279. package/dist/components/BbCalendar/useDayjsLocale.d.ts +6 -0
  280. package/dist/components/BbCalendar/useDayjsLocale.js +10 -4
  281. package/dist/components/BbCalendar/useToday.js +1 -2
  282. package/dist/components/BbCheckbox/BbCheckbox.vue.js +1 -2
  283. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +109 -116
  284. package/dist/components/BbCheckbox/types.d.ts +4 -2
  285. package/dist/components/BbCheckbox/types.js +3 -3
  286. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +21 -3
  287. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.js +1 -2
  288. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +126 -132
  289. package/dist/components/BbCheckboxGroup/types.d.ts +12 -6
  290. package/dist/components/BbCheckboxGroup/types.js +8 -9
  291. package/dist/components/BbCollapsible/BbCollapsible.vue.js +1 -2
  292. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +12 -13
  293. package/dist/components/BbCollapsible/types.js +1 -2
  294. package/dist/components/BbColorInput/BbColorInput.vue.js +1 -2
  295. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +171 -151
  296. package/dist/components/BbColorInput/types.d.ts +26 -11
  297. package/dist/components/BbColorInput/types.js +18 -9
  298. package/dist/components/BbColorPalette/BbColorPalette.vue.js +1 -2
  299. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +218 -226
  300. package/dist/components/BbColorPalette/types.d.ts +12 -4
  301. package/dist/components/BbColorPalette/types.js +4 -3
  302. package/dist/components/BbConfirm/BbConfirm.vue.js +1 -2
  303. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +108 -97
  304. package/dist/components/BbConfirm/BbConfirmHost.js +9 -10
  305. package/dist/components/BbConfirm/BbConfirmPortal.vue.js +1 -2
  306. package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +2 -3
  307. package/dist/components/BbConfirm/confirmEntry.js +1 -2
  308. package/dist/components/BbConfirm/types.d.ts +8 -4
  309. package/dist/components/BbConfirm/types.js +3 -3
  310. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +44 -88
  311. package/dist/components/BbDatePicker/BbDatePicker.vue.js +1 -2
  312. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +172 -230
  313. package/dist/components/BbDatePicker/types.d.ts +44 -19
  314. package/dist/components/BbDatePicker/types.js +6 -3
  315. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +70 -194
  316. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.js +1 -2
  317. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +481 -596
  318. package/dist/components/BbDatePickerInput/dateFieldLayout.js +1 -2
  319. package/dist/components/BbDatePickerInput/types.d.ts +62 -14
  320. package/dist/components/BbDatePickerInput/types.js +67 -7
  321. package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
  322. package/dist/components/BbDialog/BbDialog.vue.js +1 -2
  323. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +221 -224
  324. package/dist/components/BbDialog/types.d.ts +5 -3
  325. package/dist/components/BbDialog/types.js +3 -3
  326. package/dist/components/BbDialog/useDialogStack.js +1 -2
  327. package/dist/components/BbDropdown/AdaptiveDropdown.vue.js +1 -2
  328. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +56 -57
  329. package/dist/components/BbDropdown/BbDropdown.vue.js +1 -2
  330. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +259 -294
  331. package/dist/components/BbDropdown/BbDropdownGroup.vue.js +1 -2
  332. package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +19 -22
  333. package/dist/components/BbDropdown/BbDropdownList.vue.js +1 -2
  334. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +337 -354
  335. package/dist/components/BbDropdown/DropdownPipelineResolver.vue.js +1 -2
  336. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +127 -127
  337. package/dist/components/BbDropdown/DropdownRow.vue.js +1 -2
  338. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +21 -22
  339. package/dist/components/BbDropdown/normalizeGroups.js +20 -21
  340. package/dist/components/BbDropdown/types.d.ts +20 -4
  341. package/dist/components/BbDropdown/types.js +28 -2
  342. package/dist/components/BbDropdown/useDropdownContext.js +1 -2
  343. package/dist/components/BbDropdown/useDropdownGroupRegistry.js +1 -2
  344. package/dist/components/BbDropdownButton/BbDropdownButton.vue.js +1 -2
  345. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +61 -62
  346. package/dist/components/BbDropdownButton/types.d.ts +16 -5
  347. package/dist/components/BbDropdownButton/types.js +13 -8
  348. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +9 -1
  349. package/dist/components/BbDropzone/BbDropzone.vue.js +1 -2
  350. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +141 -150
  351. package/dist/components/BbDropzone/types.d.ts +4 -2
  352. package/dist/components/BbDropzone/types.js +8 -2
  353. package/dist/components/BbForm/BbForm.vue.js +1 -2
  354. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +154 -159
  355. package/dist/components/BbForm/BbFormCustomField.js +2 -3
  356. package/dist/components/BbForm/bindFormField.js +2 -3
  357. package/dist/components/BbForm/formFields.js +1 -2
  358. package/dist/components/BbForm/formSchema.js +15 -53
  359. package/dist/components/BbHost/BbHost.vue.js +1 -2
  360. package/dist/components/BbHost/BbHost.vue_vue_type_script_setup_true_lang.js +1 -2
  361. package/dist/components/BbHost/BbHostOpening.js +12 -14
  362. package/dist/components/BbHoverCard/BbHoverCard.vue.js +1 -2
  363. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +147 -152
  364. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.js +1 -2
  365. package/dist/components/BbHoverCard/BbHoverCardPortal.vue_vue_type_script_setup_true_lang.js +1 -2
  366. package/dist/components/BbHoverCard/hoverCardFocus.js +1 -2
  367. package/dist/components/BbHoverCard/types.js +1 -2
  368. package/dist/components/BbIcon/BbIcon.vue.js +1 -2
  369. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +24 -25
  370. package/dist/components/BbIcon/iconCache.js +1 -2
  371. package/dist/components/BbIcon/types.js +1 -2
  372. package/dist/components/BbIndicator/BbIndicator.vue.js +1 -2
  373. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +9 -10
  374. package/dist/components/BbIndicator/types.js +1 -2
  375. package/dist/components/BbNumberInput/BbNumberInput.vue.js +1 -2
  376. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +336 -369
  377. package/dist/components/BbNumberInput/numberDisplay.js +1 -2
  378. package/dist/components/BbNumberInput/platform.js +1 -2
  379. package/dist/components/BbNumberInput/types.d.ts +27 -6
  380. package/dist/components/BbNumberInput/types.js +11 -10
  381. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  382. package/dist/components/BbOffCanvas/BbOffCanvas.vue.js +1 -2
  383. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +388 -411
  384. package/dist/components/BbOffCanvas/hostCloseLabel.js +1 -2
  385. package/dist/components/BbOffCanvas/sheetAttrs.js +1 -2
  386. package/dist/components/BbOffCanvas/sheetSnap.js +3 -8
  387. package/dist/components/BbOffCanvas/types.d.ts +5 -3
  388. package/dist/components/BbOffCanvas/types.js +3 -3
  389. package/dist/components/BbOffCanvas/useOffCanvasStack.js +1 -2
  390. package/dist/components/BbPagination/BbPagination.vue.js +1 -2
  391. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +84 -85
  392. package/dist/components/BbPagination/paginationFit.js +0 -1
  393. package/dist/components/BbPagination/types.d.ts +12 -4
  394. package/dist/components/BbPagination/types.js +4 -3
  395. package/dist/components/BbPopover/BbPopover.vue.js +1 -2
  396. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +141 -160
  397. package/dist/components/BbPopover/BbPopoverPortal.vue.js +1 -2
  398. package/dist/components/BbPopover/BbPopoverPortal.vue_vue_type_script_setup_true_lang.js +1 -2
  399. package/dist/components/BbPopover/types.js +1 -2
  400. package/dist/components/BbProgress/BbProgress.vue.js +1 -2
  401. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +16 -17
  402. package/dist/components/BbProgress/types.js +1 -2
  403. package/dist/components/BbPtScope/BbPtScope.vue.js +1 -2
  404. package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +1 -2
  405. package/dist/components/BbRadio/BbRadio.vue.js +1 -2
  406. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +46 -50
  407. package/dist/components/BbRadio/types.d.ts +4 -2
  408. package/dist/components/BbRadio/types.js +3 -3
  409. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +20 -2
  410. package/dist/components/BbRadioGroup/BbRadioGroup.vue.js +1 -2
  411. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +178 -184
  412. package/dist/components/BbRadioGroup/types.d.ts +12 -6
  413. package/dist/components/BbRadioGroup/types.js +8 -9
  414. package/dist/components/BbRating/BbRating.vue.js +1 -2
  415. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +143 -155
  416. package/dist/components/BbRating/types.d.ts +15 -5
  417. package/dist/components/BbRating/types.js +10 -3
  418. package/dist/components/BbSelect/BbSelect.vue.d.ts +51 -73
  419. package/dist/components/BbSelect/BbSelect.vue.js +1 -2
  420. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +173 -205
  421. package/dist/components/BbSelect/types.d.ts +29 -5
  422. package/dist/components/BbSelect/types.js +17 -2
  423. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +21 -23
  424. package/dist/components/BbSelectPopover/BbSelectPopover.vue.js +1 -2
  425. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +536 -598
  426. package/dist/components/BbSelectPopover/knownItems.js +1 -2
  427. package/dist/components/BbSelectPopover/sheetChipAttrs.js +1 -2
  428. package/dist/components/BbSelectPopover/types.d.ts +20 -6
  429. package/dist/components/BbSelectPopover/types.js +9 -3
  430. package/dist/components/BbSlider/BbSlider.vue.d.ts +18 -17
  431. package/dist/components/BbSlider/BbSlider.vue.js +1 -2
  432. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +213 -235
  433. package/dist/components/BbSlider/types.d.ts +14 -4
  434. package/dist/components/BbSlider/types.js +10 -3
  435. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.js +1 -2
  436. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +14 -21
  437. package/dist/components/BbSmoothHeight/types.js +1 -2
  438. package/dist/components/BbSpinner/BbSpinner.vue.js +1 -2
  439. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +14 -15
  440. package/dist/components/BbSpinner/types.js +1 -2
  441. package/dist/components/BbSwitch/BbSwitch.vue.js +1 -2
  442. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +110 -117
  443. package/dist/components/BbSwitch/types.d.ts +21 -2
  444. package/dist/components/BbSwitch/types.js +8 -5
  445. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +16 -2
  446. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.js +1 -2
  447. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +155 -160
  448. package/dist/components/BbSwitchGroup/types.d.ts +11 -4
  449. package/dist/components/BbSwitchGroup/types.js +4 -5
  450. package/dist/components/BbTable/BbTable.vue.d.ts +1 -1
  451. package/dist/components/BbTable/BbTable.vue.js +1 -2
  452. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1128 -1301
  453. package/dist/components/BbTable/BbTableDataRow.js +1 -2
  454. package/dist/components/BbTable/BbTableEdgeRow.js +1 -2
  455. package/dist/components/BbTable/BbTableExpandRow.js +1 -2
  456. package/dist/components/BbTable/BbTableSelectToggle.js +17 -18
  457. package/dist/components/BbTable/gridWidgets.js +2 -7
  458. package/dist/components/BbTable/measuredFloors.js +67 -65
  459. package/dist/components/BbTable/textRuler.d.ts +3 -1
  460. package/dist/components/BbTable/textRuler.js +40 -39
  461. package/dist/components/BbTable/types.d.ts +40 -8
  462. package/dist/components/BbTable/types.js +45 -3
  463. package/dist/components/BbTable/useRowReorder.js +179 -203
  464. package/dist/components/BbTable/utils.d.ts +7 -1
  465. package/dist/components/BbTable/utils.js +35 -40
  466. package/dist/components/BbTabs/BbTabs.vue.d.ts +23 -16
  467. package/dist/components/BbTabs/BbTabs.vue.js +1 -2
  468. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +24 -30
  469. package/dist/components/BbTabs/BbTabsList.vue.js +1 -2
  470. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +19 -24
  471. package/dist/components/BbTabs/BbTabsPanels.vue.js +1 -2
  472. package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +4 -7
  473. package/dist/components/BbTabs/BbTabsRoot.vue.js +1 -2
  474. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +6 -7
  475. package/dist/components/BbTabs/tablistName.js +1 -2
  476. package/dist/components/BbTabs/types.d.ts +37 -10
  477. package/dist/components/BbTabs/types.js +11 -3
  478. package/dist/components/BbTag/BbTag.vue.js +1 -2
  479. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +218 -243
  480. package/dist/components/BbTag/types.d.ts +20 -12
  481. package/dist/components/BbTag/types.js +19 -9
  482. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +22 -8
  483. package/dist/components/BbTextInput/BbTextInput.vue.js +1 -2
  484. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +136 -142
  485. package/dist/components/BbTextInput/types.d.ts +15 -5
  486. package/dist/components/BbTextInput/types.js +22 -12
  487. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +22 -8
  488. package/dist/components/BbTextarea/BbTextarea.vue.js +1 -2
  489. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +142 -144
  490. package/dist/components/BbTextarea/types.d.ts +15 -5
  491. package/dist/components/BbTextarea/types.js +22 -12
  492. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +15 -9
  493. package/dist/components/BbTimePicker/BbTimePicker.vue.js +1 -2
  494. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +108 -114
  495. package/dist/components/BbTimePicker/types.d.ts +14 -4
  496. package/dist/components/BbTimePicker/types.js +4 -3
  497. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +31 -31
  498. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.js +1 -2
  499. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +295 -327
  500. package/dist/components/BbTimePickerInput/types.d.ts +26 -5
  501. package/dist/components/BbTimePickerInput/types.js +17 -7
  502. package/dist/components/BbToast/BbToast.vue.js +1 -2
  503. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +12 -17
  504. package/dist/components/BbToast/BbToastMessage.vue.js +1 -2
  505. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +72 -74
  506. package/dist/components/BbToast/BbToastPortal.vue.js +1 -2
  507. package/dist/components/BbToast/BbToastPortal.vue_vue_type_script_setup_true_lang.js +2 -3
  508. package/dist/components/BbToast/BbToastRegion.vue.js +1 -2
  509. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +31 -32
  510. package/dist/components/BbToast/types.d.ts +17 -5
  511. package/dist/components/BbToast/types.js +12 -13
  512. package/dist/components/BbTooltip/BbTooltip.vue.js +1 -2
  513. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +120 -121
  514. package/dist/components/BbTooltip/tooltipWarmup.js +0 -1
  515. package/dist/components/BbTooltip/types.js +1 -2
  516. package/dist/components/BbTree/BbTree.vue.d.ts +2 -3
  517. package/dist/components/BbTree/BbTree.vue.js +1 -2
  518. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +28 -27
  519. package/dist/components/BbTree/BbTreeLevel.vue.js +1 -2
  520. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +12 -20
  521. package/dist/components/BbTree/context.js +1 -2
  522. package/dist/components/BbTree/types.d.ts +13 -3
  523. package/dist/components/BbTree/types.js +4 -3
  524. package/dist/components/ChipsBox/ChipsBox.vue.js +1 -2
  525. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +24 -26
  526. package/dist/components/ClearableButton/ClearableButton.vue.js +1 -2
  527. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +1 -2
  528. package/dist/components/CloseIcon/CloseButton.vue.js +1 -2
  529. package/dist/components/CloseIcon/CloseButton.vue_vue_type_script_setup_true_lang.js +3 -4
  530. package/dist/components/CommaBox/CommaBox.vue.js +1 -2
  531. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +20 -22
  532. package/dist/components/CommonField/CommonField.vue.js +1 -2
  533. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +78 -73
  534. package/dist/components/CommonField/types.d.ts +2 -2
  535. package/dist/components/CommonFieldInput/CommonFieldInput.vue.js +1 -2
  536. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +20 -21
  537. package/dist/components/CommonPopover/CommonPopover.vue.js +1 -2
  538. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +92 -91
  539. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue.js +1 -2
  540. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +29 -38
  541. package/dist/components/CommonTimeSelector/useMeridiem.js +1 -2
  542. package/dist/components/ErrorIcon/ErrorIcon.vue.js +1 -2
  543. package/dist/components/ErrorIcon/ErrorIcon.vue_vue_type_script_setup_true_lang.js +1 -2
  544. package/dist/components/FlatListBox/FlatListBox.vue.js +1 -2
  545. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +149 -156
  546. package/dist/components/FlatListBox/types.d.ts +1 -1
  547. package/dist/components/GroupedListBox/GroupedListBox.vue.js +1 -2
  548. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +104 -111
  549. package/dist/components/GroupedListBox/types.d.ts +1 -1
  550. package/dist/components/ListBox/ListBox.vue.js +1 -2
  551. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +21 -22
  552. package/dist/components/ListBox/types.d.ts +1 -1
  553. package/dist/components/OptionsContainer/OptionsContainer.vue.js +1 -2
  554. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +19 -23
  555. package/dist/components/OptionsContainer/types.d.ts +1 -1
  556. package/dist/components/Transitions/ScaleFade.vue.js +1 -2
  557. package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +1 -2
  558. package/dist/components/Transitions/Slide.vue.js +4 -5
  559. package/dist/components/Transitions/Slide.vue_vue_type_script_setup_true_lang.js +4 -5
  560. package/dist/components/WarningIcon/WarningIcon.vue.js +1 -2
  561. package/dist/components/WarningIcon/WarningIcon.vue_vue_type_script_setup_true_lang.js +1 -2
  562. package/dist/composables/autoHost.js +1 -2
  563. package/dist/composables/formSubmitLock.js +1 -2
  564. package/dist/composables/hostOpenings.js +6 -11
  565. package/dist/composables/hostRegistry.js +1 -2
  566. package/dist/composables/overlayRegistry.js +2 -3
  567. package/dist/composables/ssrMarker.js +1 -2
  568. package/dist/composables/useActiveInactiveState.js +1 -2
  569. package/dist/composables/useArray.js +1 -2
  570. package/dist/composables/useBaseOptions.js +19 -20
  571. package/dist/composables/useBbConfig.js +1 -2
  572. package/dist/composables/useBbDialog.js +18 -22
  573. package/dist/composables/useBbDropdown.js +3 -4
  574. package/dist/composables/useBbForm.js +6 -10
  575. package/dist/composables/useBbFormField.js +1 -2
  576. package/dist/composables/useBbOffCanvas.js +4 -5
  577. package/dist/composables/useBbTable.js +2 -3
  578. package/dist/composables/useBbTabs.js +51 -63
  579. package/dist/composables/useBodyScrollLock.js +1 -2
  580. package/dist/composables/useBreakpoint.js +1 -2
  581. package/dist/composables/useCancelableFunction.js +1 -2
  582. package/dist/composables/useCharacterCounter.js +2 -3
  583. package/dist/composables/useChoiceIndicator.js +4 -9
  584. package/dist/composables/useClosingInert.js +3 -8
  585. package/dist/composables/useCoarsePointer.js +1 -2
  586. package/dist/composables/useCoherence.js +1 -2
  587. package/dist/composables/useConfig.js +1 -2
  588. package/dist/composables/useConfirm.d.ts +22 -24
  589. package/dist/composables/useConfirm.js +7 -8
  590. package/dist/composables/useCountdown.js +6 -7
  591. package/dist/composables/useEscapeStackEntry.js +1 -2
  592. package/dist/composables/useFormBinding.js +6 -9
  593. package/dist/composables/useFrameworkDetection.js +1 -2
  594. package/dist/composables/useHashedWatcher.js +1 -2
  595. package/dist/composables/useHydrated.js +1 -2
  596. package/dist/composables/useId.js +1 -2
  597. package/dist/composables/useImeDismissBlur.js +2 -7
  598. package/dist/composables/useIndexById.js +1 -2
  599. package/dist/composables/useInertiaPage.js +1 -2
  600. package/dist/composables/useItemText.js +3 -3
  601. package/dist/composables/useItemValue.js +1 -2
  602. package/dist/composables/useItemsGetter.js +12 -19
  603. package/dist/composables/useKeyboardInset.js +0 -1
  604. package/dist/composables/useListboxFocus.js +1 -2
  605. package/dist/composables/useLocale.js +7 -8
  606. package/dist/composables/useLogger.js +1 -2
  607. package/dist/composables/useMobile.js +1 -2
  608. package/dist/composables/useOnDemandOpener.js +12 -13
  609. package/dist/composables/useOnFalsy.js +1 -2
  610. package/dist/composables/useOnTruthy.js +1 -2
  611. package/dist/composables/useOverlayNavigation.js +6 -11
  612. package/dist/composables/useOverlayYield.js +1 -2
  613. package/dist/composables/usePassthrough.js +207 -123
  614. package/dist/composables/usePrefill.js +11 -16
  615. package/dist/composables/useQuery.js +9 -22
  616. package/dist/composables/useRefusedCloseAnnouncement.js +1 -2
  617. package/dist/composables/useRoute.js +1 -2
  618. package/dist/composables/useRouter.js +1 -2
  619. package/dist/composables/useSafeArea.js +10 -11
  620. package/dist/composables/useSafeAreaInternal.js +4 -5
  621. package/dist/composables/useSegmentedFields.js +5 -17
  622. package/dist/composables/useServerPrefetch.js +1 -2
  623. package/dist/composables/useSheetSurface.js +1 -2
  624. package/dist/composables/useSsrState.js +1 -2
  625. package/dist/composables/useTableWidthContext.js +2 -3
  626. package/dist/composables/useToast.js +3 -4
  627. package/dist/composables/useToggleInput.js +1 -2
  628. package/dist/composables/useTopLayer.js +1 -2
  629. package/dist/composables/useTypeahead.js +0 -1
  630. package/dist/composables/useUntil.js +1 -2
  631. package/dist/composables/useUrlQueryParam.d.ts +1 -1
  632. package/dist/composables/useUrlQueryParam.js +1 -2
  633. package/dist/composables/useViewportWidth.js +2 -3
  634. package/dist/deprecation/ai-deprecations.json.js +1 -2
  635. package/dist/deprecation/removedProps.js +1 -2
  636. package/dist/directives/bbColor.js +7 -8
  637. package/dist/directives/bbDate.js +7 -8
  638. package/dist/directives/bbDialog.js +1 -2
  639. package/dist/directives/bbDropdown.js +14 -15
  640. package/dist/directives/bbHoverCard.js +8 -9
  641. package/dist/directives/bbOffCanvas.js +1 -2
  642. package/dist/directives/bbPopover.js +12 -13
  643. package/dist/directives/bbTime.js +7 -8
  644. package/dist/directives/bbTooltip.js +1 -2
  645. package/dist/directives/createPopoverDirective.js +6 -17
  646. package/dist/directives/directivePortal.js +1 -2
  647. package/dist/directives/overlayTrigger.js +24 -25
  648. package/dist/directives/renderingInstance.js +4 -8
  649. package/dist/i18n/locales/cs.json +8 -1
  650. package/dist/i18n/locales/da.json +8 -1
  651. package/dist/i18n/locales/de-CH.json +8 -1
  652. package/dist/i18n/locales/de.json +8 -1
  653. package/dist/i18n/locales/el.json +8 -1
  654. package/dist/i18n/locales/en-GB.json +8 -1
  655. package/dist/i18n/locales/en.json +8 -1
  656. package/dist/i18n/locales/es-MX.json +8 -1
  657. package/dist/i18n/locales/es.json +8 -1
  658. package/dist/i18n/locales/fi.json +8 -1
  659. package/dist/i18n/locales/fr.json +8 -1
  660. package/dist/i18n/locales/hu.json +8 -1
  661. package/dist/i18n/locales/it.json +8 -1
  662. package/dist/i18n/locales/ja.json +8 -1
  663. package/dist/i18n/locales/ko.json +8 -1
  664. package/dist/i18n/locales/nb.json +8 -1
  665. package/dist/i18n/locales/nl.json +8 -1
  666. package/dist/i18n/locales/pl.json +8 -1
  667. package/dist/i18n/locales/pt-BR.json +8 -1
  668. package/dist/i18n/locales/pt-PT.json +8 -1
  669. package/dist/i18n/locales/ro.json +8 -1
  670. package/dist/i18n/locales/ru.json +8 -1
  671. package/dist/i18n/locales/sv.json +8 -1
  672. package/dist/i18n/locales/tr.json +8 -1
  673. package/dist/i18n/locales/uk.json +8 -1
  674. package/dist/i18n/locales/zh-CN.json +8 -1
  675. package/dist/i18n/locales/zh-HK.json +8 -1
  676. package/dist/i18n/locales/zh-TW.json +8 -1
  677. package/dist/i18n/regionHints.js +1 -2
  678. package/dist/i18n/regions.js +1 -2
  679. package/dist/icon-scan.js +6 -11
  680. package/dist/index.js +87 -87
  681. package/dist/llms-full.txt +550 -230
  682. package/dist/llms-medium.txt +44 -20
  683. package/dist/locale-blueprint.json +8 -1
  684. package/dist/nuxt-auto-imports.js +1 -2
  685. package/dist/nuxt.js +21 -22
  686. package/dist/passthrough-deduper.js +1 -2
  687. package/dist/plugin.js +15 -16
  688. package/dist/project-dts.js +1 -2
  689. package/dist/runtime/nuxt-plugin.js +25 -26
  690. package/dist/styles.css +2 -2
  691. package/dist/types/AlertVariant.js +1 -2
  692. package/dist/types/BadgeVariant.js +1 -2
  693. package/dist/types/ButtonVariant.js +1 -2
  694. package/dist/types/CheckboxVariant.js +1 -2
  695. package/dist/types/ConfirmVariant.js +1 -2
  696. package/dist/types/DatePickerType.d.ts +10 -5
  697. package/dist/types/DatePickerType.js +3 -4
  698. package/dist/types/DropdownItemVariant.js +1 -2
  699. package/dist/types/FieldLayout.js +1 -2
  700. package/dist/types/IndicatorVariant.js +1 -2
  701. package/dist/types/InputVariant.js +1 -2
  702. package/dist/types/RadioVariant.js +1 -2
  703. package/dist/types/TabsVariant.js +1 -2
  704. package/dist/types/ToastVariant.js +1 -2
  705. package/dist/types/TooltipVariant.js +1 -2
  706. package/dist/types/passthrough.d.ts +112 -2
  707. package/dist/types/passthrough.js +19 -13
  708. package/dist/types/ptComponentMap.d.ts +31 -31
  709. package/dist/utilities/functions/animationsSettled.js +1 -2
  710. package/dist/utilities/functions/bytesToUnit.js +1 -2
  711. package/dist/utilities/functions/chunk.js +1 -2
  712. package/dist/utilities/functions/clamp.js +1 -2
  713. package/dist/utilities/functions/clampPrecision.js +1 -2
  714. package/dist/utilities/functions/convertDateValue.d.ts +5 -2
  715. package/dist/utilities/functions/convertDateValue.js +19 -13
  716. package/dist/utilities/functions/curry.js +1 -2
  717. package/dist/utilities/functions/deburr.js +1 -2
  718. package/dist/utilities/functions/elementLabel.js +1 -2
  719. package/dist/utilities/functions/empty.js +1 -2
  720. package/dist/utilities/functions/extractDomContainer.js +1 -2
  721. package/dist/utilities/functions/findInTree.js +1 -2
  722. package/dist/utilities/functions/flattenTree.js +1 -2
  723. package/dist/utilities/functions/get.js +1 -2
  724. package/dist/utilities/functions/hasVnodeListener.js +1 -2
  725. package/dist/utilities/functions/hash.js +1 -2
  726. package/dist/utilities/functions/head.js +1 -2
  727. package/dist/utilities/functions/identity.js +1 -2
  728. package/dist/utilities/functions/indexBy.js +1 -2
  729. package/dist/utilities/functions/isDateDisabled.js +23 -19
  730. package/dist/utilities/functions/isEqual.js +1 -2
  731. package/dist/utilities/functions/isHex.js +1 -2
  732. package/dist/utilities/functions/isImeComposing.js +1 -2
  733. package/dist/utilities/functions/isNil.js +1 -2
  734. package/dist/utilities/functions/isNotEmpty.js +1 -2
  735. package/dist/utilities/functions/isNotNil.js +1 -2
  736. package/dist/utilities/functions/isTextEntry.js +1 -2
  737. package/dist/utilities/functions/isoWeek.d.ts +36 -0
  738. package/dist/utilities/functions/isoWeek.js +21 -0
  739. package/dist/utilities/functions/itemProps.js +1 -2
  740. package/dist/utilities/functions/last.js +1 -2
  741. package/dist/utilities/functions/matchAnyKey.js +1 -2
  742. package/dist/utilities/functions/noop.js +1 -2
  743. package/dist/utilities/functions/normalizeDateBound.d.ts +4 -0
  744. package/dist/utilities/functions/normalizeDateBound.js +11 -10
  745. package/dist/utilities/functions/parsePaginationNumber.js +1 -2
  746. package/dist/utilities/functions/parseSize.js +1 -2
  747. package/dist/utilities/functions/parseWidthString.js +1 -2
  748. package/dist/utilities/functions/percentage.js +1 -2
  749. package/dist/utilities/functions/pickBy.js +1 -2
  750. package/dist/utilities/functions/range.js +1 -2
  751. package/dist/utilities/functions/readableValue.js +1 -2
  752. package/dist/utilities/functions/reject.js +1 -2
  753. package/dist/utilities/functions/resolveEnumProp.js +1 -2
  754. package/dist/utilities/functions/responsiveDefault.js +1 -2
  755. package/dist/utilities/functions/settlesVisible.js +1 -2
  756. package/dist/utilities/functions/slotKey.js +1 -2
  757. package/dist/utilities/functions/snapToStep.js +1 -2
  758. package/dist/utilities/functions/sort.js +1 -2
  759. package/dist/utilities/functions/throttle.js +1 -2
  760. package/dist/utilities/functions/toggleInput.js +1 -2
  761. package/dist/utilities/functions/transpose.js +1 -2
  762. package/dist/utilities/functions/validateDateFormat.js +1 -2
  763. package/dist/utilities/functions/wait.js +1 -2
  764. package/dist/utilities/functions/waitFor.js +2 -7
  765. package/dist/utilities/functions/warnRemovedAttrs.js +2 -5
  766. package/dist/utilities/functions/when.js +1 -2
  767. package/dist/utilities/misc/autofocus.js +1 -2
  768. package/dist/utilities/misc/iconsInjectionKey.js +1 -2
  769. package/dist/utilities/misc/listboxMetrics.js +1 -2
  770. package/dist/utilities/misc/maskaDataOptions.d.ts +12 -0
  771. package/dist/utilities/misc/maskaDataOptions.js +36 -0
  772. package/dist/utilities/misc/pageText.d.ts +16 -0
  773. package/dist/utilities/misc/pageText.js +10 -0
  774. package/dist/utilities/misc/ssrStateInjectionKey.js +1 -2
  775. package/dist/utilities/misc/ssrValue.js +1 -2
  776. package/dist/utilities/misc/transitions.js +1 -2
  777. package/dist/utils/copyData.js +1 -2
  778. package/dist/utils/cssLayers.js +1 -2
  779. package/dist/utils/focusVisibility.js +1 -2
  780. package/dist/utils/injectLibraryStyles.js +3 -12
  781. package/dist/utils/overlayEscapeStack.js +1 -2
  782. package/dist/utils/overlaySurfaceIsolation.js +1 -2
  783. package/dist/utils/passthrough.js +2 -3
  784. package/dist/utils/ptScope.js +1 -2
  785. package/dist/utils/versionCheck.js +2 -3
  786. package/dist/vite-plugin.d.ts +1 -1
  787. package/dist/vite.js +364 -437
  788. package/package.json +14 -10
  789. package/scripts/lib/adoption-checklist.json +1 -1
  790. package/scripts/lib/check-queue.mjs +102 -0
  791. package/scripts/lib/consumer-install.mjs +64 -0
  792. package/scripts/lib/css-comment-text.mjs +16 -0
  793. package/scripts/lib/eslint-plugin.mjs +9 -7
  794. package/scripts/lib/hidden-label-placeholder.mjs +19 -6
  795. package/scripts/lib/mcp-config.mjs +1 -1
  796. package/scripts/lib/pack.mjs +55 -0
  797. package/scripts/lib/quiet-gate.mjs +385 -0
  798. package/scripts/lib/reactive-v-model.mjs +11 -5
  799. package/scripts/lib/validate-bb-markup.mjs +77 -3
package/README.md CHANGED
@@ -631,8 +631,9 @@ library field or select with a static `hide-label` and no `placeholder`:
631
631
 
632
632
  An `aria-labelledby`, a `#prefix` slot and an object `v-bind` count as
633
633
  legible; a field inside a `BbTable` / `BbTree` slot (its column header labels
634
- it) and one at the root of a component's template (the parent lays out its
635
- label) are not judged. `bitboss-ui check` reports the same as
634
+ it), one at the root of a component's template (the parent lays out its
635
+ label), a `variant="ghost"` cell editor and a single select that is neither
636
+ `clearable` nor `multiple` (it always shows its pick) are not judged. `bitboss-ui check` reports the same as
636
637
  `hidden-label-placeholder`, as a warning.
637
638
 
638
639
  #### A dialog opened through a ref: `prefer-v-bb-dialog`
@@ -15,14 +15,13 @@
15
15
  * loaded by nothing else. `bin/bitboss-ui.mjs` catches the resolution failure
16
16
  * and names them; `missingMcpPeers()` warns at registration time.
17
17
  *
18
- * `zod`'s declared range is `^3.25 || ^4.0` — copied verbatim from the SDK's
19
- * own dependency range, NOT invented. Do not "simplify" it to `>=` or to a
20
- * single major: the schemas built here are validated by the SDK's OWN copy of
21
- * zod, so a consumer hoisting a different MAJOR fails the SDK's brand checks
22
- * while npm stays silent (both ranges are independently satisfied). Mirroring
23
- * the range means it moves when the SDK's does. Everything used here
24
- * (`z.string`, `z.enum`, `z.number`, `.describe`, `.int`, `.min`, `.optional`)
25
- * is stable across zod 3 and 4, so the lower bound costs nothing.
18
+ * `zod`'s declared range is `^4.0`: the SDK's own dependency range
19
+ * (`^3.25 || ^4.0`) without zod 3, which carries an unpatched advisory and
20
+ * which nothing here needs. Never `>=`: the schemas
21
+ * built here are validated by the SDK's OWN copy of zod, so a consumer
22
+ * hoisting a different MAJOR fails the SDK's brand checks while npm stays
23
+ * silent (both ranges are independently satisfied). Keep it inside the SDK's
24
+ * range when that moves.
26
25
  *
27
26
  * Run standalone: `npx bitboss-ui mcp` (delegated from bin/bitboss-ui.mjs).
28
27
  * Registered with every MCP-capable harness by `npx bitboss-ui ai-init`
@@ -981,6 +980,38 @@ function historyWithCss(entry, manifest) {
981
980
  ];
982
981
  }
983
982
 
983
+ /**
984
+ * `; states: a, b; c on x, y` — the states every part takes, then each state
985
+ * that reaches some parts only, with them (a group's `checked` is a row's,
986
+ * never the legend's). Read off the declared `pt:*` rows, so it cannot drift
987
+ * from what type-checks.
988
+ */
989
+ function ptStatesLine(entry) {
990
+ const states = (entry.pt.states ?? []).map((x) => x.name);
991
+ if (!states.length) return '';
992
+ const parts = entry.pt.parts.map((x) => x.name);
993
+ const declared = new Set((entry.props ?? []).map((p) => p.name));
994
+ const wide = [];
995
+ const scoped = new Map();
996
+ for (const state of states) {
997
+ const on = parts.filter((part) => declared.has(`pt:${part}:${state}`));
998
+ if (on.length === parts.length) wide.push(state);
999
+ else if (on.length) {
1000
+ // The shorter spelling: the parts it reaches, or the ones it does not.
1001
+ const off = parts.filter((part) => !on.includes(part));
1002
+ const key =
1003
+ off.length < on.length
1004
+ ? `(not ${off.join(', ')})`
1005
+ : `on ${on.join(', ')}`;
1006
+ scoped.set(key, [...(scoped.get(key) ?? []), state]);
1007
+ }
1008
+ }
1009
+ const some = [...scoped].map(
1010
+ ([where, list]) => `${list.join(', ')} ${where}`
1011
+ );
1012
+ return `; states: ${[wide.join(', '), ...some].filter(Boolean).join('; ')}`;
1013
+ }
1014
+
984
1015
  /** The compact `component` of the summary answer. */
985
1016
  function summarizeComponent(entry, manifest) {
986
1017
  const shared = sharedProps(manifest);
@@ -1016,7 +1047,7 @@ function summarizeComponent(entry, manifest) {
1016
1047
  : {}),
1017
1048
  ...(entry.pt?.parts?.length
1018
1049
  ? {
1019
- pt: `parts: ${entry.pt.parts.map((x) => x.name).join(', ')}${entry.pt.states?.length ? `; states: ${entry.pt.states.map((x) => x.name).join(', ')}` : ''}. Each is a \`pt:<part>\` / \`pt:<part>:<state>\` prop; the \`pt\` object takes the same keys WITHOUT the \`pt:\` prefix: { ${ptExample(entry)} }. What a part or state is: members: ['<part>'].`,
1050
+ pt: `parts: ${entry.pt.parts.map((x) => x.name).join(', ')}${ptStatesLine(entry)}. Each a \`pt:<part>[:<state>]\` prop; \`pt\` object: the same keys WITHOUT the \`pt:\` prefix: { ${ptExample(entry)} }. Meanings: members: ['<part>'].`,
1020
1051
  }
1021
1052
  : {}),
1022
1053
  ...(entry.cssProps?.length
@@ -1,8 +1,7 @@
1
- //#region \0plugin-vue:export-helper
1
+ // \0plugin-vue:export-helper
2
2
  var e = (e, t) => {
3
3
  let n = e.__vccOpts || e;
4
4
  for (let [e, r] of t) n[e] = r;
5
5
  return n;
6
6
  };
7
- //#endregion
8
7
  export { e as default };
@@ -99,7 +99,7 @@ The default variant is `outline`. `warning` and `destructive` are treated as
99
99
  high-priority for accessibility (see below).
100
100
 
101
101
  There is no built-in `success` (or `positive`) variant, and none will be added — the
102
- shared status vocabulary is closed to `danger`/`warn` by ruling, see
102
+ shared status vocabulary is closed to `danger`/`warn` by design, see
103
103
  [Design Tokens § Brand knobs](./guides/design-tokens.md#brand-knobs-what-a-theme-builder-sets)
104
104
  ("state colors are project-owned"). Reach for `primary` for a positive
105
105
  confirmation, or register your own project variant (below) if you need a
@@ -626,7 +626,7 @@ Set these on the element, or on a class you put on it, to retune this component
626
626
  | `--fg` | `.bb-avatar` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
627
627
  | `--default-icon-size` | `.bb-avatar` | `clamp(14px, calc(var(--size) * 0.7), 48px)` | Built-in fallback icon: 70% of the avatar, floored at 14px and capped at 48px. `--size` is the avatar's own box, set inline from the `size` prop. |
628
628
  | `--fs` | `.bb-avatar` | `max(8px, calc(var(--size) * 0.4))` | Initials: 40% of the avatar, floored at 8px |
629
- | `--elev` | `.bb-avatar` | `var(--bb-elev-sm)` | The theme's resting lift on small chrome (Q44.15), declared here so an ancestor's `--elev` cannot reach in; `--elev: none` flattens one. |
629
+ | `--elev` | `.bb-avatar` | `var(--bb-elev-sm)` | The theme's resting lift on small chrome, declared here so an ancestor's `--elev` cannot reach in; `--elev: none` flattens one. |
630
630
  | `--size` | `.bb-avatar__default-icon` | `var(--default-icon-size)` | |
631
631
 
632
632
  ## Component tree
@@ -955,7 +955,7 @@ Set these on the element, or on a class you put on it, to retune this component
955
955
  | `--min-size` | `.bb-badge` | `var(--min-size-md)` | pill min height and min width |
956
956
  | `--elev` | `.bb-badge` | `var(--bb-elev-sm)` | Resting lift. Invisible while `--bb-elev` is its default transparent layer. A chip is small enough that a theme wanting a different lift here than on a button sets `--elev` on this class. |
957
957
  | `--r` | `.bb-badge` | `calc(var(--bb-radius) * 0.5)` | Pill corners; the body and trailing wrappers round their outer edges to match |
958
- | `--fs` | `.bb-badge` | `calc(var(--bb-fs) - 2px)` | 12px at the default (Q49.25) |
958
+ | `--fs` | `.bb-badge` | `calc(var(--bb-fs) - 2px)` | 12px at the default |
959
959
  | `--icon-size` | `.bb-badge` | `12px` | leading/append icons (passed to BbIcon as --size) |
960
960
  | `--gap` | `.bb-badge` | `3px` | space between label, icons and the trailing side |
961
961
  | `--px` | `.bb-badge` | `6px` | base side padding; the modifiers below scale it per side |
@@ -50,7 +50,7 @@
50
50
  | `replace` | `boolean \| undefined` | `false` | | Uses history replacement instead of push navigation. - With Vue Router (`to`), calls `router.replace`. - With Inertia (`href`), performs a replace visit. |
51
51
  | `tag` | `'button'` \| `'div'` \| `'span'` \| `'label'` | `'button'` | | Element of the plain (non-link) button: `'button'` (default), `'div'` / `'span'` (a clickable box inside a button or link) or `'label'` (a file-upload trigger). Ignored with `href` / `to`. Off `button`, native `type` / `disabled` drop (disabled stays a class). |
52
52
  | `target` | `string \| undefined` | | | Target browsing context for anchor/Inertia links (e.g. `_self`, `_blank`). Ignored when rendering as a native button. |
53
- | `to` | `string \| wt \| bt \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
53
+ | `to` | `string \| et \| X \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
54
54
  | `type` | `"button" \| "reset" \| "submit" \| undefined` | `'button'` | | Native `type` attribute used when rendering as a button (e.g. `button`, `submit`, `reset`). |
55
55
  | `viewTransition` | `boolean \| undefined` | `false` | | Inertia: run the page swap inside a View Transition, where the browser supports one. |
56
56
 
@@ -94,7 +94,7 @@ Set these on the element, or on a class you put on it, to retune this component
94
94
  | `--min-size` | `.bb-badge` | `var(--min-size-md)` | pill min height and min width |
95
95
  | `--elev` | `.bb-badge` | `var(--bb-elev-sm)` | Resting lift. Invisible while `--bb-elev` is its default transparent layer. A chip is small enough that a theme wanting a different lift here than on a button sets `--elev` on this class. |
96
96
  | `--r` | `.bb-badge` | `calc(var(--bb-radius) * 0.5)` | Pill corners; the body and trailing wrappers round their outer edges to match |
97
- | `--fs` | `.bb-badge` | `calc(var(--bb-fs) - 2px)` | 12px at the default (Q49.25) |
97
+ | `--fs` | `.bb-badge` | `calc(var(--bb-fs) - 2px)` | 12px at the default |
98
98
  | `--icon-size` | `.bb-badge` | `12px` | leading/append icons (passed to BbIcon as --size) |
99
99
  | `--gap` | `.bb-badge` | `3px` | space between label, icons and the trailing side |
100
100
  | `--px` | `.bb-badge` | `6px` | base side padding; the modifiers below scale it per side |
@@ -587,7 +587,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
587
587
  | `tag` | `'button'` \| `'div'` \| `'span'` \| `'label'` | `'button'` | | Element of the plain (non-link) button: `'button'` (default), `'div'` / `'span'` (a clickable box inside a button or link) or `'label'` (a file-upload trigger). Ignored with `href` / `to`. Off `button`, native `type` / `disabled` drop (disabled stays a class). |
588
588
  | `target` | `string \| undefined` | | | Target browsing context for anchor/Inertia links (e.g. `_self`, `_blank`). Ignored when rendering as a native button. |
589
589
  | `text` | `string \| undefined` | | | Fallback text content rendered when no default slot is provided. |
590
- | `to` | `string \| wt \| bt \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
590
+ | `to` | `string \| et \| X \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
591
591
  | `type` | `"button" \| "reset" \| "submit" \| undefined` | `"button"` | | Native `type` attribute used when rendering as a button (e.g. `button`, `submit`, `reset`). |
592
592
  | `viewTransition` | `boolean \| undefined` | `false` | | Inertia: run the page swap inside a View Transition, where the browser supports one. |
593
593
 
@@ -717,7 +717,7 @@ States are listed in precedence order: when two are on at once and their entries
717
717
  | State | When it is on |
718
718
  | --- | --- |
719
719
  | `disabled` | Per node: a crumb that is disabled on its own; component-wide while the whole component is `disabled`. |
720
- | `active` | Per node, on each crumb's `item` / `text`: the current page — the last crumb, when it has no target (`href` / `to` / `onClick`). |
720
+ | `active` | Per node, on each crumb's `item` / `text` / `icon`: the current page — the last crumb, when it has no target (`href` / `to` / `onClick`). |
721
721
 
722
722
  ## Events
723
723
 
@@ -1234,6 +1234,12 @@ Anti-patterns:
1234
1234
 
1235
1235
  ### Accessibility
1236
1236
 
1237
+ - On a touch screen (`pointer: coarse`) an invisible hit area takes a button
1238
+ to 44×44 without moving anything you see. It stops short of a neighbour: the
1239
+ full 44px with no element beside the button, 4px a side when one sits next
1240
+ to it (keep 8px between touch controls and the areas meet in the gap), none
1241
+ across a `group`'s shared edge, a table cell's padding in a table, and none
1242
+ on `variant="link"`. A mouse gets the visual box only.
1237
1243
  - Icon-only buttons still need an accessible name, but it works like any other
1238
1244
  button: put it in the default slot (or `text`) and it renders visually hidden (`bb-sr-only`) when
1239
1245
  `icon` is set — not removed. Use `aria-label` only to override that name, not
@@ -1311,7 +1317,7 @@ Anti-patterns:
1311
1317
  | `tag` | `'button'` \| `'div'` \| `'span'` \| `'label'` | `'button'` | | Element to render for the plain (non-link, non-router) button: `'button'` (default), `'div'`/`'span'` when nesting inside another button or link, or `'label'` for a file-upload trigger. Ignored when `href`/`to` make the button render as a link. |
1312
1318
  | `target` | `string \| undefined` | | | Sets or retrieves the window or frame at which to target content. |
1313
1319
  | `text` | `string \| undefined` | | | Text content of the component. |
1314
- | `to` | `string \| wt \| bt \| undefined` | | | Route Location the link should navigate to when clicked on. |
1320
+ | `to` | `string \| et \| X \| undefined` | | | Route Location the link should navigate to when clicked on. |
1315
1321
  | `trueValue` | `any` | `true` | | Value emitted when the toggle is activated. |
1316
1322
  | `type` | `"button" \| "reset" \| "submit" \| undefined` | | | Gets the classification and default behavior of the button. |
1317
1323
  | `variant` | `'outline'` \| `'primary'` \| `'destructive'` \| `'secondary'` \| `'none'` \| `'ghost'` \| `'link'` | `"primary"` | | Visual variant of the button: colours and surface only, never spacing or size. `'none'` takes no look (you own hover, focus and disabled); register a real one with the plugin's `buttonVariants` and style `.bb-button--<name>` (no CSS ships for it). |
@@ -242,14 +242,73 @@ One prop decides the grid and the shape of the emitted string:
242
242
  | ------------------ | -------------------- | --------------------- | ------------- |
243
243
  | `date` _(default)_ | the day grid | `2026-08-14` | ISO instant |
244
244
  | `datetime` | day grid + time rail | `2026-08-14` + `time` | ISO instant |
245
+ | `week` | day grid, week rows | `2026-W44` | — |
245
246
  | `month` | the 12-month grid | `2026-08` | — |
246
247
  | `year` | the year list | `2026` | — |
247
248
 
248
- `month` and `year` are **calendar labels, not instants**: they force
249
+ `week`, `month` and `year` are **calendar labels, not instants**: they force
249
250
  `floating`, ignore `utc` (with a DEV warning), and take `min` / `max` /
250
251
  `selectable` in their own shape (`min="2026-03"`). A bound finer than the
251
252
  unit is rounded outward, never silently truncated.
252
253
 
254
+ #### Weeks
255
+
256
+ `type="week"` picks ISO 8601 weeks (Monday to Sunday, numbered by the year
257
+ that owns the week's Thursday) and emits `YYYY-Www`: `2026-W44`, and
258
+ `2026-W53` for the week that runs into January 2027. The grid stays the day
259
+ grid, with three differences:
260
+
261
+ - a **week-number column** heads every row (its header names it for screen
262
+ readers only), and the grid always starts on Monday (`first-day-of-week` is
263
+ ignored: a week cannot straddle two rows);
264
+ - **any day picks its week**: the whole row is the selection, one band from
265
+ Monday to Sunday. Hovering a row (or moving the keyboard cursor into it)
266
+ outlines the week a click would pick;
267
+ - `min` / `max` take a week (`min="2026-W44"`) or a date, and a week is
268
+ selectable only when **all seven days** are inside them: `min="2026-10-28"`
269
+ (a Wednesday) leaves that week out. `selectable` receives the week value.
270
+
271
+ `range` gives `['2026-W41', '2026-W43']` (solid ends, a wash between),
272
+ `multiple` a sorted list of weeks. The day buttons and the keyboard are the
273
+ day grid's; each day's accessible name adds its week and the week's dates
274
+ ("…, week 44, October 26 – November 1, 2026"), which are never shown.
275
+
276
+ **A delivery week — type=week**
277
+
278
+ ```vue
279
+ <template>
280
+ <div class="grid w-fit gap-3 rounded-(--bb-radius) border p-4">
281
+ <div>
282
+ <p class="m-0 text-sm font-medium">Delivery week</p>
283
+ <p class="m-0 text-xs text-(--bb-text-muted)">
284
+ {{ week ?? 'Any day picks its week' }}
285
+ </p>
286
+ </div>
287
+ <BbCalendar
288
+ v-model="week"
289
+ aria-label="Delivery week"
290
+ max="2026-W52"
291
+ min="2026-W40"
292
+ type="week"
293
+ />
294
+ </div>
295
+ </template>
296
+
297
+ <script setup lang="ts">
298
+ import { ref } from 'vue';
299
+ import { BbCalendar } from 'bitboss-ui';
300
+
301
+ /**
302
+ * `type="week"`: any day of a row picks its ISO week, and the value is the
303
+ * label `YYYY-Www` — no day, no zone. `min` / `max` take the same shape.
304
+ */
305
+ const week = ref<string | null>('2026-W45');
306
+ </script>
307
+ ```
308
+
309
+ `week` (the row) and `weekNumber` (its number) restyle the rows: see
310
+ [Restyling with passthrough](#restyling-with-passthrough).
311
+
253
312
  **A reporting period — type=month + range**
254
313
 
255
314
  ```vue
@@ -568,7 +627,8 @@ weekday headers follow, and so does a locale switch at runtime. Pass
568
627
  `first-day-of-week` (`0` = Sunday … `6` = Saturday) when the app's week is not
569
628
  its language's — an `en` app for a European audience takes
570
629
  `:first-day-of-week="1"`. `BbDatePicker` and `BbDatePickerInput` take the same
571
- prop and the same default.
630
+ prop and the same default. Under `type="week"` the grid starts on Monday
631
+ whatever the prop says (ISO weeks).
572
632
 
573
633
  ### Keyboard and accessibility
574
634
 
@@ -597,8 +657,9 @@ tokens, so `pt:root="[--px:2px]"` tightens the padding and the grid width
597
657
  follows), `header` (the navigation bar), `arrow` (the previous / next
598
658
  buttons), `month` and `year` (the heading buttons), `cellColumnHeader` (each
599
659
  weekday letter), `day` (one whole day cell) and `dayButton` (the button
600
- inside it), `monthItem` and `yearItem` (one button of the month / year
601
- panel).
660
+ inside it), `week` (one row of seven days with `type="week"`) and
661
+ `weekNumber` (its ISO week number), `monthItem` and `yearItem` (one button of
662
+ the month / year panel).
602
663
 
603
664
  States: `root` is `disabled` while the calendar is; `arrow` is `disabled` at a
604
665
  `min` / `max` bound; `month` and `year` are `active` while their panel is
@@ -606,7 +667,10 @@ open. The cells resolve per node — on `day` and `dayButton`: `selected`,
606
667
  `disabled`, `today`, `outside` (a day of the previous or next month),
607
668
  `rangeStart` / `rangeEnd` / `inRange` (a committed range) and `highlighted`
608
669
  (the keyboard cursor). The panel items carry the same set without `today` and
609
- `outside`.
670
+ `outside`. The week rows resolve per row — on `week` and `weekNumber`:
671
+ `selected` (a chosen week; under `range` its two ends, as on their days),
672
+ `rangeStart` / `rangeEnd` / `inRange`, and `disabled` only while the whole
673
+ calendar is.
610
674
 
611
675
  `day` is the whole cell and `dayButton` the rounded mark inside it: a
612
676
  background on `pt:day` paints the full cell square, so restyle the mark on
@@ -626,6 +690,19 @@ bound's time on the day `min` / `max` falls on), and `header` /
626
690
  />
627
691
  ```
628
692
 
693
+ Under `type="week"` the row and its number take the same grammar:
694
+
695
+ ```vue
696
+ <BbCalendar
697
+ v-model="sprint"
698
+ pt:week-number="text-(--bb-text-muted)"
699
+ pt:week-number:selected="font-semibold"
700
+ pt:week:in-range="italic"
701
+ range
702
+ type="week"
703
+ />
704
+ ```
705
+
629
706
  `BbDatePicker` and `BbDatePickerInput` forward every one of these parts to
630
707
  the calendar they host: `pt:day` written on the picker, on the input or on a
631
708
  calendar in place lands on the same node, with the same states. The full
@@ -655,25 +732,25 @@ the page is `BbDatePicker`.
655
732
 
656
733
  | Prop | Type | Default | Required | Description |
657
734
  | --- | --- | --- | --- | --- |
658
- | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `arrow`, `cellColumnHeader`, `day`, `dayButton`, `header`, `item`, `month`, `monthItem`, `root`, `year`, `yearItem`. States: `active`, `disabled`, `highlighted`, `inRange`, `outside`, `rangeEnd`, `rangeStart`, `selected`, `today`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbCalendarProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
735
+ | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `arrow`, `cellColumnHeader`, `day`, `dayButton`, `header`, `item`, `month`, `monthItem`, `root`, `week`, `weekNumber`, `year`, `yearItem`. States: `disabled`, `highlighted`, `inRange`, `outside`, `rangeEnd`, `rangeStart`, `selected`, `today`, `active`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbCalendarProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
659
736
  | `activeSegment` | `'start'` \| `'end'` | | | Which end the time rail edits in range + `type="datetime"` (`v-model:active-segment`). Standalone use manages this internally; an embedding host (the date input) drives it from its focused field. Ignored outside range + datetime. |
660
737
  | `ampm` | `boolean \| undefined` | `false` | | 12-hour display with an AM/PM column (requires `type="datetime"`); emits stay 24h. |
661
738
  | `disabled` | `boolean \| undefined` | `false` | | Disables every cell, the navigation and the time rail. |
662
- | `firstDayOfWeek` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | `the locale's week start` | | First day of the week (0 = Sunday … 6 = Saturday). Omitted, the active locale's week start: Monday for `it`, `de`, `fr`, `en-gb`…, Sunday for bare `en` (US) and `pt` (Brazil). |
663
- | `floating` | `boolean \| undefined` | `false` | | Emit plain calendar strings instead of zoned ISO instants. Implied (and forced) by `type="month"` and `type="year"`. |
664
- | `max` | `string \| undefined` | | | Maximum selectable value, in this `type`'s shape. A finer bound is accepted and ceiled to the unit, with a warning. With `datetime`, on its own day the time rail disables the times after it. |
665
- | `min` | `string \| undefined` | | | Minimum selectable value in this `type`'s shape (`YYYY-MM-DD`; `YYYY-MM-DDTHH:mm` with `datetime`, `YYYY-MM` with `month`, `YYYY` with `year`). A finer bound is floored to the unit, with a warning. With `datetime` the rail also disables the earlier times on its day. |
666
- | `modelValue` | `string \| string[] \| null` | | yes | v-model: `null` when empty, a string, a `[start, end]` pair with `range`, or a sorted array with `multiple`. The string is `YYYY-MM-DD` when `floating` (`YYYY-MM` / `YYYY` for `month` / `year`), otherwise a zoned ISO instant (carrying the time under `datetime`). |
667
- | `multiple` | `boolean` | `false` | | Multi-selection: each pick toggles a value in a sorted array (days, months or years). Needs an array `modelValue` (`[]` when empty, never `null`). Throws with `range` or `type="datetime"`. |
739
+ | `firstDayOfWeek` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | `the locale's week start` | | First day of the week (0 = Sunday … 6 = Saturday). Omitted, the active locale's week start: Monday for `it`, `de`, `fr`, `en-gb`…, Sunday for bare `en` (US) and `pt` (Brazil). Ignored under `type="week"`: ISO weeks run Monday to Sunday, so a week grid always starts on Monday. |
740
+ | `floating` | `boolean \| undefined` | `false` | | Emit plain calendar strings instead of zoned ISO instants. Implied (and forced) by `type="week"`, `type="month"` and `type="year"`. |
741
+ | `max` | `string \| undefined` | | | Maximum selectable value, in this `type`'s shape (as `min`). A finer bound is ceiled to the unit, with a warning. With `datetime`, on its own day the time rail disables the times after it. |
742
+ | `min` | `string \| undefined` | | | Minimum selectable value in this `type`'s shape (`YYYY-MM-DD`, `…THH:mm` with `datetime`, `YYYY-MM` / `YYYY` with `month` / `year`; a week or a date with `week`, whole weeks only). A finer bound is floored to the unit, with a warning. With `datetime` the rail disables the earlier times on its day. |
743
+ | `modelValue` | `string \| string[] \| null` | | yes | v-model: `null` when empty, a string, a `[start, end]` pair with `range`, or a sorted array with `multiple`. The string is `YYYY-MM-DD` when `floating` (`YYYY-Www` / `YYYY-MM` / `YYYY` for `week` / `month` / `year`), otherwise a zoned ISO instant (carrying the time under `datetime`). |
744
+ | `multiple` | `boolean` | `false` | | Multi-selection: each pick toggles a value in a sorted array (days, weeks, months or years). Needs an array `modelValue` (`[]` when empty, never `null`). Throws with `range` or `type="datetime"`. |
668
745
  | `numberOfMonths` | `number \| undefined` | `1` | | How many months show side by side (day grids only). The keyboard crosses from one month into the next, and the arrows page all of them at once. Too narrow for them all, the months wrap onto the next row. |
669
746
  | `range` | `boolean` | `false` | | Enables range selection (`[start, end]`). |
670
747
  | `readonly` | `boolean \| undefined` | `false` | | Shows the calendar and lets the user page through it, but no pick changes the value. |
671
748
  | `seconds` | `boolean \| undefined` | `false` | | Adds the seconds column (requires `type="datetime"`). |
672
- | `selectable` | `((date: string) => boolean) \| undefined` | | | Predicate invoked per candidate; return `false` to disable it. Receives the value in this `type`'s shape — `YYYY-MM` under `month`, `YYYY` under `year`. |
749
+ | `selectable` | `((date: string) => boolean) \| undefined` | | | Predicate invoked per candidate; return `false` to disable it. Receives the value in this `type`'s shape — `YYYY-Www` under `week` (so a week is enabled or disabled whole), `YYYY-MM` under `month`, `YYYY` under `year`. |
673
750
  | `step` | `number \| undefined` | `1` | | Minute-column granularity and arrow stepping (requires `type="datetime"`). |
674
751
  | `time` | `string \| string[] \| null \| undefined` | | | Companion time model (`v-model:time`), 24-hour `HH:mm` / `HH:mm:ss`. With `floating` it is the only carrier of the time; otherwise it mirrors the time inside `modelValue`. Requires `type="datetime"`. |
675
- | `type` | `'date'` \| `'month'` \| `'year'` \| `'datetime'` | `"date"` | | What the calendar selects and emits: `date` (a day), `datetime` (a day plus a time rail), `month` (`YYYY-MM`) or `year` (`YYYY`). `month` / `year` force `floating`, ignore `utc`, and leave the time props inert. |
676
- | `utc` | `boolean \| undefined` | `false` | | Emit UTC (`...Z`) instead of the local offset. Ignored with `floating`, and therefore with `type="month"`/`type="year"`. |
752
+ | `type` | `'date'` \| `'month'` \| `'year'` \| `'week'` \| `'datetime'` | `"date"` | | What the calendar selects and emits: `date` (a day), `datetime` (a day plus a time rail), `week` (an ISO week, `YYYY-Www`: any day picks its row), `month` (`YYYY-MM`) or `year` (`YYYY`). `week` / `month` / `year` force `floating`, ignore `utc`, and leave the time props inert. |
753
+ | `utc` | `boolean \| undefined` | `false` | | Emit UTC (`...Z`) instead of the local offset. Ignored with `floating`, and therefore with `type="week"`/`type="month"`/`type="year"`. |
677
754
 
678
755
  ## Passthrough parts and states
679
756
 
@@ -687,6 +764,8 @@ the page is `BbDatePicker`.
687
764
  | `month` | The month heading button; it opens the month panel. |
688
765
  | `year` | The year heading button; it opens the year panel. |
689
766
  | `cellColumnHeader` | Each weekday letter above the grid — a broadcast. |
767
+ | `week` | One row of seven days with `type="week"` — the band a picked week paints and the hover outline. A broadcast resolved per row. |
768
+ | `weekNumber` | The ISO week number heading each row with `type="week"` — a broadcast resolved per row. |
690
769
  | `day` | One whole day cell — a broadcast resolved per day. A background here paints the full cell square; restyle the round mark on `dayButton`. |
691
770
  | `dayButton` | The button inside a day cell — the mark that shows selection. A broadcast resolved per day. |
692
771
  | `monthItem` | One month button of the month panel (the home grid of `type="month"`) — a broadcast resolved per month. |
@@ -699,11 +778,11 @@ States are listed in precedence order: when two are on at once and their entries
699
778
  | --- | --- |
700
779
  | `outside` | Per node, on `day` / `dayButton`: a day of the previous or next month, shown to fill the grid. |
701
780
  | `today` | Per node, on `day` / `dayButton`: today. |
702
- | `inRange` | Per node, on the cells (`day`, `dayButton`, `monthItem`, `yearItem`): inside a committed range, between its ends. |
703
- | `selected` | Per node, on the cells: a chosen day, month or year; on `item`, the picked time's entry in each column. |
704
- | `rangeStart` | Per node, on the cells: a committed range's first day, month or year. |
705
- | `rangeEnd` | Per node, on the cells: a committed range's last day, month or year. |
706
- | `disabled` | Component-wide while the calendar is `disabled`. Also per node: on the cells, one outside `min` / `max` or refused by `selectable`; on `arrow`, at a bound or while the month / year panel is open; on `item`, a time entry outside the bound's time on the day `min` / `max` falls on. |
781
+ | `inRange` | Per node, on the cells (`day`, `dayButton`, `monthItem`, `yearItem`) and the week rows (`week`, `weekNumber`): inside a committed range, between its ends. |
782
+ | `selected` | Per node, on the cells: a chosen day, month or year; on `week` / `weekNumber`, a chosen week (a range's ends too, as on its days); on `item`, the picked time's entry in each column. |
783
+ | `rangeStart` | Per node, on the cells and the week rows: a committed range's first day, week, month or year. |
784
+ | `rangeEnd` | Per node, on the cells and the week rows: a committed range's last day, week, month or year. |
785
+ | `disabled` | Component-wide while the calendar is `disabled`. Also per node: on the cells, one outside `min` / `max` or refused by `selectable`; on `arrow`, at a bound or while the month / year panel is open; on `year`, while the year panel cannot open; on `item`, a time entry outside the bound's time on the day `min` / `max` falls on. |
707
786
  | `active` | Per node, on `month` / `year`: its panel is open. |
708
787
  | `highlighted` | Per node, on the cells: the keyboard cursor. |
709
788
 
@@ -736,6 +815,7 @@ Set these on the element, or on a class you put on it, to retune this component
736
815
  | `--unit-row` | `.bb-calendar` | `calc(var(--cell) * 1.25)` | Row pitch for the coarse grids (month/year), where a "row" is one of four month rows rather than a week. Roomier than --cell because twelve months in a 4×3 grid have space the 6×7 day grid does not. |
737
816
  | `--ring-t` | `.bb-calendar__arrow` | `var(--bb-transition-medium)` | |
738
817
  | `--ring-t` | `.bb-calendar__heading-btn` | `var(--bb-transition-medium)` | |
818
+ | `--wk` | `.bb-calendar--week` | `calc(var(--cell) * 0.6)` | Two tabular digits at 11px, with air: the column holds numbers only. |
739
819
 
740
820
  ## Component tree
741
821
 
@@ -746,7 +826,7 @@ Set these on the element, or on a class you put on it, to retune this component
746
826
  - **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbCalendar`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
747
827
  - Listed nodes are the ones `BbCalendar`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is `manifest/components/BbCalendar.tree.json`.
748
828
 
749
- - `BbCalendar` _(this component)_ — its own template binds: `header` → `div.bb-calendar__header`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `day` → `div.bb-calendar__day`, `dayButton` → `button.bb-calendar__day-button`
829
+ - `BbCalendar` _(this component)_ — its own template binds: `header` → `div.bb-calendar__header`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `week` → `div.bb-calendar__week`, `weekNumber` → `div.bb-calendar__week-number`, `day` → `div.bb-calendar__day`, `dayButton` → `button.bb-calendar__day-button`
750
830
  - `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
751
831
  - `CommonTimeSelector` _(internal — not importable, reach it through `BbCalendar`)_ — `BbCalendar`'s pt parts land here: `header` → `div.bb-time-selector__header`, `cellColumnHeader` → `div.bb-time-selector__cell-column-header`, `item` → `BbBaseButton`; documented CSS variables: `--time-mark`; also mounts `BbBaseButton`
752
832
  - Also mounts `ScaleFade`, `Slide`, `CalendarMonthPanel`, `CalendarYearPanel`
@@ -685,6 +685,10 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
685
685
 
686
686
  ### Accessibility
687
687
 
688
+ - On a touch screen a lone checkbox's row gets an invisible hit area up to 44px
689
+ tall, centred, with nothing moving: the full 44px with no element beside the
690
+ field, 4px a side with one (8px apart, the areas meet in the gap). A group
691
+ component spaces its own rows for this.
688
692
  - Always pass a `label` (or `label` slot) — never rely on nearby text alone.
689
693
  - `errors`, `warnings`, `description` and `hint` are all wired to the input through
690
694
  `aria-describedby`, in that order: the reason the field is invalid is spoken
@@ -1116,7 +1116,7 @@ for a preset that fits any row type (never `<any>`), not an imported
1116
1116
  | `selectable` | `boolean \| ((item: T) => boolean) \| undefined` | `true` | | Defines whether options are selectable. Can be a global boolean that affects all options or a function that accepts an item and returns a boolean that only affects that item. Non-selectable options are rendered disabled. |
1117
1117
  | `validationLabel` | `string \| undefined` | | | The field's name in validation messages (`{field}`): "Email is not valid". Defaults to the `label` (or `legend`), then "This field"; never the `name`. Set it when the label is hidden or reads badly in a sentence (icon-only, a question). `BbForm` only. |
1118
1118
  | `validationMode` | `'aggressive'` \| `'balanced'` \| `'lazy'` \| `'submit-only'` \| `'submit-live'` | | | When the field validates: `aggressive` (each change), `balanced` (on leave, then live while in error), `lazy` (on leave), `submit-only`, `submit-live`. Unset: the `BbForm`'s `validation-mode`, then `formControls.validationMode` (`'balanced'`). `BbForm` only. |
1119
- | `variant` | `'pill'` \| `'line'` | | | A tab-strip look (Q76.11 d): `'pill'` (a pill per run of adjacent picks) or `'line'` (a bar under each pick). `list-layout="vertical"` stacks it. Register more with `checkboxVariants`. Unset: the group's own rows. |
1119
+ | `variant` | `'pill'` \| `'line'` | | | A tab-strip look: `'pill'` (a pill per run of adjacent picks) or `'line'` (a bar under each pick). `list-layout="vertical"` stacks it. Register more with `checkboxVariants`. Unset: the group's own rows. |
1120
1120
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages under the field, a string or array: amber, in their own `aria-live` region and in the control's `aria-describedby` after the errors. Non-empty turns on the warning state; errors win when both are set. |
1121
1121
 
1122
1122
  ## Passthrough parts and states
@@ -43,7 +43,7 @@
43
43
  | `--border-focus` | `pt:box` | `CommonFieldInput` | frame while focused, or --active |
44
44
  | `--ring-size` | `pt:box` | `CommonFieldInput` | ring width; 0 is a variant declining the ring |
45
45
  | `--ring-color` | `pt:box` | `CommonFieldInput` | ring colour; state owns it, not variants |
46
- | `--elev` | `pt:box` | `CommonFieldInput` | Resting lift, alone in `box-shadow`: the ring is the box's outline (Q81.6), so a theme's `--elev: none` never takes the ring with it. |
46
+ | `--elev` | `pt:box` | `CommonFieldInput` | Resting lift, alone in `box-shadow`: the ring is the box's outline, so a theme's `--elev: none` never takes the ring with it. |
47
47
  | `--frost` | `pt:box` | `CommonFieldInput` | Plate frost — a full `backdrop-filter` value (see --bb-surface-filter). Routed through a local rather than read from the token directly, so a chrome-less variant can decline it: frosting a ghost field gives it the plate it is contractually not supposed to have. |
48
48
  | `--inside-label-clearance` | `pt:box`, `pt:prefix`, `pt:suffix` | `CommonFieldInput` | Height and top padding added above the text for a label rendered inside the box. Zero here; the `--inside-label` rules at the bottom of this file raise it to one label line, or two with a description. |
49
49
  | `--w` | `pt:icon` | `BbIcon` | `--w` is set inline by BbIcon from the size prop. The `initial` default seals it: without it an ancestor's `--w` (e.g. a dropdown's width bridge) would inherit in and size the icon. The `--size` indirection stays so higher-specificity rules (e.g. `.bb-badge .bb-icon`) can re-point it. |
@@ -682,7 +682,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
682
682
 
683
683
  | Prop | Type | Default | Required | Description |
684
684
  | --- | --- | --- | --- | --- |
685
- | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `description`, `hint`, `icon`, `indicator`, `input`, `label`, `message`, `panel`, `prefix`, `root`, `sheet`, `spinner`, `suffix`, `swatch`. States: `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `outline`, `readonly`, `secondary`, `warnings`, `selected`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbColorInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
685
+ | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `description`, `hint`, `icon`, `indicator`, `input`, `label`, `message`, `panel`, `prefix`, `root`, `sheet`, `spinner`, `suffix`, `swatch`. States: `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `open`, `outline`, `readonly`, `secondary`, `warnings`, `selected`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbColorInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
686
686
  | `adaptive` | `boolean \| undefined` | ``config.adaptive` (`true`)` | | When `true`, the color palette opens as a bottom off-canvas sheet on mobile viewports instead of a floating popover; on desktop it stays a popover. Mirrors the adaptive behaviour of `BbSelect`/`BbDatePickerInput`. When unset, falls back to the global `config.adaptive`. |
687
687
  | `alpha` | `boolean \| undefined` | `false` | | Enable the alpha channel. Shows an opacity slider and uses `#RRGGBBAA` hex8 format. |
688
688
  | `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
@@ -756,6 +756,7 @@ States are listed in precedence order: when two are on at once and their entries
756
756
  | `disabled` | Component-wide: the control is `disabled`. |
757
757
  | `warnings` | Component-wide: the control is in its warning state (`warnings` / `has-warnings`) and not in an error state — errors win, so the two are never on together. |
758
758
  | `errors` | Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red. |
759
+ | `open` | Component-wide: the palette is showing — `pt:indicator:open` styles the swatch button while it is. |
759
760
  | `loading` | Component-wide: `loading` is on; the box shows its `spinner`. |
760
761
  | `ghost` | On the field's parts: `variant: 'ghost'`. Below the real states, like every variant. |
761
762
  | `outline` | On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win. |
@@ -759,7 +759,7 @@ The map is typed where you write it by `definePt`, never with an imported
759
759
 
760
760
  | Prop | Type | Default | Required | Description |
761
761
  | --- | --- | --- | --- | --- |
762
- | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `action`, `close`, `content`, `footer`, `header`, `root`, `sheet`, `text`, `title`. States: `default`, `destructive`, `open`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbConfirmProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
762
+ | `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `action`, `close`, `content`, `footer`, `header`, `root`, `sheet`, `text`, `title`. States: `default`, `destructive`, `fullscreen`, `open`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbConfirmProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
763
763
 
764
764
  ## Passthrough parts and states
765
765
 
@@ -782,6 +782,7 @@ States are listed in precedence order: when two are on at once and their entries
782
782
  | State | When it is on |
783
783
  | --- | --- |
784
784
  | `open` | Component-wide: a confirm is showing. |
785
+ | `fullscreen` | Component-wide: the showing confirm is fullscreen (its `fullscreen` option, or `'mobile'` on a phone). |
785
786
  | `default` | Component-wide, from the message: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win. |
786
787
  | `destructive` | Component-wide, from the message: `variant: 'destructive'`. Below the real states, like every variant. |
787
788