bitboss-ui 3.0.0-beta.25 → 3.0.0-beta.27

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 (611) hide show
  1. package/README.md +68 -4
  2. package/bin/bitboss-ui.mjs +1 -1
  3. package/dist/ai/BbAccordion.md +109 -5
  4. package/dist/ai/BbAlert.md +74 -1
  5. package/dist/ai/BbAsterisk.md +28 -1
  6. package/dist/ai/BbAvatar.md +90 -6
  7. package/dist/ai/BbBadge.md +168 -20
  8. package/dist/ai/BbBadgeButton.md +35 -20
  9. package/dist/ai/BbBaseButton.md +45 -0
  10. package/dist/ai/BbBaseCheckboxIcon.md +47 -8
  11. package/dist/ai/BbBaseRadioIcon.md +46 -7
  12. package/dist/ai/BbBaseSwitchIcon.md +48 -9
  13. package/dist/ai/BbBreadcrumbs.md +149 -7
  14. package/dist/ai/BbButton.md +91 -1
  15. package/dist/ai/BbCheckbox.md +152 -4
  16. package/dist/ai/BbCheckboxGroup.md +107 -6
  17. package/dist/ai/BbCollapsible.md +114 -4
  18. package/dist/ai/BbColorInput.md +203 -7
  19. package/dist/ai/BbColorPalette.md +186 -4
  20. package/dist/ai/BbConfirm.md +126 -1
  21. package/dist/ai/BbDatePicker.md +154 -4
  22. package/dist/ai/BbDatePickerInput.md +177 -12
  23. package/dist/ai/BbDialog.md +169 -9
  24. package/dist/ai/BbDropdown.md +151 -4
  25. package/dist/ai/BbDropdownButton.md +118 -1
  26. package/dist/ai/BbDropdownGroup.md +1 -1
  27. package/dist/ai/BbDropzone.md +91 -2
  28. package/dist/ai/BbIcon.md +28 -1
  29. package/dist/ai/BbIndicator.md +35 -1
  30. package/dist/ai/BbNumberInput.md +138 -15
  31. package/dist/ai/BbOffCanvas.md +159 -16
  32. package/dist/ai/BbPagination.md +107 -1
  33. package/dist/ai/BbPopover.md +132 -0
  34. package/dist/ai/BbProgress.md +33 -1
  35. package/dist/ai/BbRadio.md +156 -4
  36. package/dist/ai/BbRadioGroup.md +138 -15
  37. package/dist/ai/BbRating.md +87 -3
  38. package/dist/ai/BbSelect.md +162 -8
  39. package/dist/ai/BbSelectPopover.md +148 -2
  40. package/dist/ai/BbSlider.md +153 -14
  41. package/dist/ai/BbSmoothHeight.md +111 -0
  42. package/dist/ai/BbSpinner.md +40 -0
  43. package/dist/ai/BbSwitch.md +143 -4
  44. package/dist/ai/BbSwitchGroup.md +122 -4
  45. package/dist/ai/BbTable.md +114 -6
  46. package/dist/ai/BbTabs.md +141 -3
  47. package/dist/ai/BbTabsList.md +21 -1
  48. package/dist/ai/BbTabsPanes.md +1 -1
  49. package/dist/ai/BbTabsRoot.md +2 -1
  50. package/dist/ai/BbTag.md +149 -4
  51. package/dist/ai/BbTextInput.md +287 -17
  52. package/dist/ai/BbTextarea.md +179 -6
  53. package/dist/ai/BbTimePicker.md +102 -0
  54. package/dist/ai/BbTimePickerInput.md +158 -4
  55. package/dist/ai/BbToast.md +101 -1
  56. package/dist/ai/BbToastPortal.md +1 -1
  57. package/dist/ai/BbTooltip.md +108 -1
  58. package/dist/ai/BbTree.md +155 -1
  59. package/dist/ai/ChipsBox.md +40 -0
  60. package/dist/ai/ClearableButton.md +12 -0
  61. package/dist/ai/CommaBox.md +1 -0
  62. package/dist/ai/{BbBaseInputContainer.md → CommonField.md} +8 -7
  63. package/dist/ai/CommonFieldInput.md +90 -0
  64. package/dist/ai/CommonPopover.md +6 -1
  65. package/dist/ai/CommonTimeSelector.md +61 -0
  66. package/dist/ai/ErrorIcon.md +13 -1
  67. package/dist/ai/FlatListBox.md +27 -0
  68. package/dist/ai/GroupedListBox.md +27 -0
  69. package/dist/ai/ListBox.md +31 -0
  70. package/dist/ai/OptionsContainer.md +3 -2
  71. package/dist/ai/WarningIcon.md +13 -1
  72. package/dist/ai/changelog.json +631 -22
  73. package/dist/ai/components.json +32036 -10675
  74. package/dist/ai/guides/agent-contract.md +40 -1
  75. package/dist/ai/guides/ai-router.md +22 -14
  76. package/dist/ai/guides/design-language.md +21 -20
  77. package/dist/ai/guides/design-tokens.md +43 -7
  78. package/dist/ai/guides/installation-and-plugin-setup.md +165 -11
  79. package/dist/ai/guides/migration/components/bb-accordion.md +29 -0
  80. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +8 -7
  81. package/dist/ai/guides/migration/components/bb-button.md +1 -1
  82. package/dist/ai/guides/migration/components/bb-checkbox-group.md +32 -29
  83. package/dist/ai/guides/migration/components/bb-checkbox.md +10 -9
  84. package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
  85. package/dist/ai/guides/migration/components/bb-date-picker-input.md +33 -29
  86. package/dist/ai/guides/migration/components/bb-dropdown.md +10 -9
  87. package/dist/ai/guides/migration/components/bb-popover.md +12 -11
  88. package/dist/ai/guides/migration/components/bb-rating.md +23 -19
  89. package/dist/ai/guides/migration/components/bb-select.md +1 -1
  90. package/dist/ai/guides/migration/components/bb-tabs.md +2 -2
  91. package/dist/ai/guides/migration/components/bb-text-input.md +4 -4
  92. package/dist/ai/guides/migration/v2-to-v3.md +140 -90
  93. package/dist/ai/guides/passthrough.md +446 -0
  94. package/dist/ai/index.md +10 -25
  95. package/dist/ai/recipes/inertia/ownership-atlas.md +11 -9
  96. package/dist/ai/source/BbAccordion.md +75 -21
  97. package/dist/ai/source/BbAlert.md +51 -4
  98. package/dist/ai/source/BbAsterisk.md +50 -4
  99. package/dist/ai/source/BbAvatar.md +47 -4
  100. package/dist/ai/source/BbBadge.md +67 -4
  101. package/dist/ai/source/BbBadgeButton.md +35 -0
  102. package/dist/ai/source/BbBaseButton.md +81 -5
  103. package/dist/ai/source/BbBaseCheckboxIcon.md +119 -28
  104. package/dist/ai/source/BbBaseRadioIcon.md +88 -7
  105. package/dist/ai/source/BbBaseSwitchIcon.md +103 -12
  106. package/dist/ai/source/BbBreadcrumbs.md +177 -59
  107. package/dist/ai/source/BbButton.md +140 -26
  108. package/dist/ai/source/BbCheckbox.md +399 -60
  109. package/dist/ai/source/BbCheckboxGroup.md +669 -80
  110. package/dist/ai/source/BbCollapsible.md +75 -7
  111. package/dist/ai/source/BbColorInput.md +454 -56
  112. package/dist/ai/source/BbColorPalette.md +1086 -48
  113. package/dist/ai/source/BbConfirm.md +112 -2
  114. package/dist/ai/source/BbConfirmPortal.md +63 -0
  115. package/dist/ai/source/BbDatePicker.md +1229 -84
  116. package/dist/ai/source/BbDatePickerInput.md +1887 -99
  117. package/dist/ai/source/BbDialog.md +124 -8
  118. package/dist/ai/source/BbDropdown.md +178 -62
  119. package/dist/ai/source/BbDropdownButton.md +195 -69
  120. package/dist/ai/source/BbDropdownGroup.md +82 -8
  121. package/dist/ai/source/BbDropzone.md +68 -9
  122. package/dist/ai/source/BbIcon.md +48 -6
  123. package/dist/ai/source/BbIndicator.md +48 -4
  124. package/dist/ai/source/BbNumberInput.md +538 -71
  125. package/dist/ai/source/BbOffCanvas.md +100 -11
  126. package/dist/ai/source/BbPagination.md +74 -8
  127. package/dist/ai/source/BbPopover.md +160 -65
  128. package/dist/ai/source/BbProgress.md +42 -2
  129. package/dist/ai/source/BbRadio.md +335 -53
  130. package/dist/ai/source/BbRadioGroup.md +653 -94
  131. package/dist/ai/source/BbRating.md +606 -74
  132. package/dist/ai/source/BbSelect.md +743 -75
  133. package/dist/ai/source/BbSelectPopover.md +131 -12
  134. package/dist/ai/source/BbSlider.md +1145 -81
  135. package/dist/ai/source/BbSmoothHeight.md +46 -2
  136. package/dist/ai/source/BbSpinner.md +56 -4
  137. package/dist/ai/source/BbSwitch.md +243 -56
  138. package/dist/ai/source/BbSwitchGroup.md +539 -77
  139. package/dist/ai/source/BbTable.md +258 -39
  140. package/dist/ai/source/BbTabs.md +114 -82
  141. package/dist/ai/source/BbTabsList.md +127 -79
  142. package/dist/ai/source/BbTabsPanes.md +118 -78
  143. package/dist/ai/source/BbTabsRoot.md +109 -77
  144. package/dist/ai/source/BbTag.md +625 -74
  145. package/dist/ai/source/BbTextInput.md +403 -57
  146. package/dist/ai/source/BbTextarea.md +447 -52
  147. package/dist/ai/source/BbTimePicker.md +202 -53
  148. package/dist/ai/source/BbTimePickerInput.md +1055 -86
  149. package/dist/ai/source/BbToast.md +42 -2
  150. package/dist/ai/source/BbToastPortal.md +27 -0
  151. package/dist/ai/source/BbTooltip.md +48 -2
  152. package/dist/ai/source/BbTree.md +45 -3
  153. package/dist/ai/source/ChipsBox.md +11 -1
  154. package/dist/ai/source/CommaBox.md +9 -1
  155. package/dist/ai/source/{BbBaseInputContainer.md → CommonField.md} +172 -183
  156. package/dist/ai/source/{CommonInputWrapper.md → CommonFieldInput.md} +140 -79
  157. package/dist/ai/source/CommonPopover.md +64 -13
  158. package/dist/ai/source/CommonTimeSelector.md +637 -0
  159. package/dist/ai/source/FlatListBox.md +61 -4
  160. package/dist/ai/source/GroupedListBox.md +76 -4
  161. package/dist/ai/source/ListBox.md +12 -0
  162. package/dist/ai/source/OptionsContainer.md +134 -26
  163. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +49 -32
  164. package/dist/components/BbAccordion/types.d.ts +24 -1
  165. package/dist/components/BbAccordion/types.js +11 -0
  166. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
  167. package/dist/components/BbAlert/types.d.ts +17 -0
  168. package/dist/components/BbAlert/types.js +13 -0
  169. package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
  170. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
  171. package/dist/components/BbAsterisk/types.d.ts +14 -0
  172. package/dist/components/BbAsterisk/types.js +7 -0
  173. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
  174. package/dist/components/BbAvatar/types.d.ts +17 -0
  175. package/dist/components/BbAvatar/types.js +7 -0
  176. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +17 -17
  177. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +77 -55
  178. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +3 -0
  179. package/dist/components/BbBadge/badgeButtonContext.d.ts +4 -0
  180. package/dist/components/BbBadge/types.d.ts +26 -0
  181. package/dist/components/BbBadge/types.js +13 -0
  182. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +110 -97
  183. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +7 -7
  184. package/dist/components/BbBaseButton/types.d.ts +19 -0
  185. package/dist/components/BbBaseButton/types.js +9 -2
  186. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
  187. package/dist/components/BbBaseCheckboxIcon/types.d.ts +26 -2
  188. package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
  189. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
  190. package/dist/components/BbBaseRadioIcon/types.d.ts +26 -2
  191. package/dist/components/BbBaseRadioIcon/types.js +8 -0
  192. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
  193. package/dist/components/BbBaseSwitchIcon/types.d.ts +26 -2
  194. package/dist/components/BbBaseSwitchIcon/types.js +8 -0
  195. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +176 -135
  196. package/dist/components/BbBreadcrumbs/types.d.ts +19 -0
  197. package/dist/components/BbBreadcrumbs/types.js +12 -0
  198. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +108 -85
  199. package/dist/components/BbButton/types.d.ts +27 -0
  200. package/dist/components/BbButton/types.js +12 -0
  201. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +1 -1
  202. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +190 -69
  203. package/dist/components/BbCheckbox/types.d.ts +151 -10
  204. package/dist/components/BbCheckbox/types.js +8 -0
  205. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +3 -3
  206. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +298 -82
  207. package/dist/components/BbCheckboxGroup/types.d.ts +118 -10
  208. package/dist/components/BbCheckboxGroup/types.js +10 -0
  209. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
  210. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
  211. package/dist/components/BbCollapsible/types.d.ts +29 -0
  212. package/dist/components/BbCollapsible/types.js +7 -0
  213. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -0
  214. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +300 -84
  215. package/dist/components/BbColorInput/types.d.ts +164 -7
  216. package/dist/components/BbColorInput/types.js +24 -0
  217. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +8 -0
  218. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +498 -103
  219. package/dist/components/BbColorPalette/types.d.ts +40 -3
  220. package/dist/components/BbColorPalette/types.js +12 -0
  221. package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
  222. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +115 -76
  223. package/dist/components/BbConfirm/types.d.ts +29 -0
  224. package/dist/components/BbConfirm/types.js +17 -0
  225. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +11 -4
  226. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +610 -178
  227. package/dist/components/BbDatePicker/DatePickerMonthPanel.vue.js +5 -0
  228. package/dist/components/BbDatePicker/DatePickerMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
  229. package/dist/components/BbDatePicker/DatePickerYearPanel.vue.js +5 -0
  230. package/dist/components/BbDatePicker/DatePickerYearPanel.vue_vue_type_script_setup_true_lang.js +125 -0
  231. package/dist/components/BbDatePicker/types.d.ts +45 -4
  232. package/dist/components/BbDatePicker/types.js +31 -0
  233. package/dist/components/BbDatePicker/useCalendarGrid.d.ts +208 -0
  234. package/dist/components/BbDatePicker/useCalendarGrid.js +269 -0
  235. package/dist/components/{BbBaseDatePicker → BbDatePicker}/useDatePickerContext.d.ts +7 -4
  236. package/dist/components/BbDatePicker/useDatePickerContext.js +11 -0
  237. package/dist/components/BbDatePicker/useDayGrid.d.ts +79 -0
  238. package/dist/components/BbDatePicker/useDayGrid.js +203 -0
  239. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +14 -2
  240. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1126 -83
  241. package/dist/components/BbDatePickerInput/types.d.ts +132 -11
  242. package/dist/components/BbDatePickerInput/types.js +37 -0
  243. package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
  244. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +178 -139
  245. package/dist/components/BbDialog/types.d.ts +19 -0
  246. package/dist/components/BbDialog/types.js +16 -0
  247. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +53 -46
  248. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +8 -0
  249. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +225 -173
  250. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +213 -216
  251. package/dist/components/BbDropdown/types.d.ts +35 -1
  252. package/dist/components/BbDropdown/types.js +19 -2
  253. package/dist/components/BbDropdown/useDropdownContext.d.ts +7 -1
  254. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +13 -3
  255. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +118 -35
  256. package/dist/components/BbDropdownButton/types.d.ts +39 -1
  257. package/dist/components/BbDropdownButton/types.js +22 -0
  258. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +167 -136
  259. package/dist/components/BbDropzone/types.d.ts +20 -1
  260. package/dist/components/BbDropzone/types.js +16 -0
  261. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +54 -42
  262. package/dist/components/BbIcon/types.d.ts +21 -2
  263. package/dist/components/BbIcon/types.js +7 -0
  264. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +33 -20
  265. package/dist/components/BbIndicator/types.d.ts +17 -0
  266. package/dist/components/BbIndicator/types.js +7 -0
  267. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +5 -0
  268. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +267 -84
  269. package/dist/components/BbNumberInput/types.d.ts +153 -12
  270. package/dist/components/BbNumberInput/types.js +8 -0
  271. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +3 -3
  272. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +215 -192
  273. package/dist/components/BbOffCanvas/types.d.ts +21 -0
  274. package/dist/components/BbOffCanvas/types.js +15 -0
  275. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +119 -96
  276. package/dist/components/BbPagination/types.d.ts +19 -0
  277. package/dist/components/BbPagination/types.js +11 -0
  278. package/dist/components/BbPopover/BbPopover.vue.d.ts +3 -3
  279. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +180 -154
  280. package/dist/components/BbPopover/types.d.ts +19 -0
  281. package/dist/components/BbPopover/types.js +14 -0
  282. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +27 -15
  283. package/dist/components/BbProgress/types.d.ts +17 -0
  284. package/dist/components/BbProgress/types.js +7 -0
  285. package/dist/components/BbRadio/BbRadio.vue.d.ts +1 -1
  286. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +162 -58
  287. package/dist/components/BbRadio/types.d.ts +124 -10
  288. package/dist/components/BbRadio/types.js +8 -0
  289. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +2 -2
  290. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +280 -84
  291. package/dist/components/BbRadioGroup/types.d.ts +120 -12
  292. package/dist/components/BbRadioGroup/types.js +10 -0
  293. package/dist/components/BbRating/BbRating.vue.d.ts +4 -2
  294. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +241 -73
  295. package/dist/components/BbRating/types.d.ts +117 -7
  296. package/dist/components/BbRating/types.js +21 -0
  297. package/dist/components/BbSelect/BbSelect.vue.d.ts +3 -3
  298. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +446 -80
  299. package/dist/components/BbSelect/types.d.ts +48 -7
  300. package/dist/components/BbSelect/types.js +25 -0
  301. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +424 -350
  302. package/dist/components/BbSelectPopover/types.d.ts +30 -3
  303. package/dist/components/BbSelectPopover/types.js +23 -0
  304. package/dist/components/BbSlider/BbSlider.vue.d.ts +9 -3
  305. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +392 -92
  306. package/dist/components/BbSlider/types.d.ts +142 -7
  307. package/dist/components/BbSlider/types.js +21 -0
  308. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  309. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
  310. package/dist/components/BbSmoothHeight/types.d.ts +17 -0
  311. package/dist/components/BbSmoothHeight/types.js +7 -0
  312. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
  313. package/dist/components/BbSpinner/types.d.ts +17 -0
  314. package/dist/components/BbSpinner/types.js +7 -0
  315. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +1 -1
  316. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +199 -78
  317. package/dist/components/BbSwitch/types.d.ts +12 -11
  318. package/dist/components/BbSwitch/types.js +5 -0
  319. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +2 -2
  320. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +298 -82
  321. package/dist/components/BbSwitchGroup/types.d.ts +14 -7
  322. package/dist/components/BbSwitchGroup/types.js +5 -0
  323. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +912 -836
  324. package/dist/components/BbTable/BbTableDataRow.d.ts +8 -1
  325. package/dist/components/BbTable/BbTableDataRow.js +70 -73
  326. package/dist/components/BbTable/BbTableSelectToggle.d.ts +103 -0
  327. package/dist/components/BbTable/BbTableSelectToggle.js +114 -0
  328. package/dist/components/BbTable/types.d.ts +19 -0
  329. package/dist/components/BbTable/types.js +18 -0
  330. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +30 -19
  331. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +18 -14
  332. package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +14 -13
  333. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +10 -0
  334. package/dist/components/BbTabs/types.d.ts +25 -1
  335. package/dist/components/BbTabs/types.js +11 -0
  336. package/dist/components/BbTag/BbTag.vue.d.ts +6 -3
  337. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +344 -91
  338. package/dist/components/BbTag/types.d.ts +60 -6
  339. package/dist/components/BbTag/types.js +8 -0
  340. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +3 -1
  341. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +239 -83
  342. package/dist/components/BbTextInput/types.d.ts +122 -7
  343. package/dist/components/BbTextInput/types.js +8 -0
  344. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +247 -74
  345. package/dist/components/BbTextarea/types.d.ts +109 -7
  346. package/dist/components/BbTextarea/types.js +8 -0
  347. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +9 -1
  348. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +139 -99
  349. package/dist/components/BbTimePicker/types.d.ts +29 -2
  350. package/dist/components/BbTimePicker/types.js +12 -0
  351. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +12 -2
  352. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +670 -66
  353. package/dist/components/BbTimePickerInput/types.d.ts +67 -11
  354. package/dist/components/BbTimePickerInput/types.js +22 -0
  355. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +51 -28
  356. package/dist/components/BbToast/BbToastMessage.vue.d.ts +3 -0
  357. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +43 -42
  358. package/dist/components/BbToast/BbToastRegion.vue.d.ts +3 -0
  359. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +5 -2
  360. package/dist/components/BbToast/types.d.ts +19 -0
  361. package/dist/components/BbToast/types.js +13 -0
  362. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +72 -59
  363. package/dist/components/BbTooltip/types.d.ts +19 -0
  364. package/dist/components/BbTooltip/types.js +7 -0
  365. package/dist/components/BbTree/BbTree.vue.d.ts +11 -1
  366. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +44 -28
  367. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +13 -12
  368. package/dist/components/BbTree/context.d.ts +4 -1
  369. package/dist/components/BbTree/types.d.ts +20 -1
  370. package/dist/components/BbTree/types.js +7 -0
  371. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +23 -21
  372. package/dist/components/ChipsBox/types.d.ts +6 -0
  373. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +10 -6
  374. package/dist/components/CommaBox/types.d.ts +6 -0
  375. package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +3 -3
  376. package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → CommonField/CommonField.vue.js} +2 -2
  377. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +178 -0
  378. package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
  379. package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +20 -11
  380. package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +4 -4
  381. package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
  382. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +116 -0
  383. package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
  384. package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +15 -6
  385. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
  386. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +63 -52
  387. package/dist/components/CommonPopover/types.d.ts +27 -8
  388. package/dist/components/{BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts → CommonTimeSelector/CommonTimeSelector.vue.d.ts} +4 -1
  389. package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
  390. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +206 -0
  391. package/dist/components/CommonTimeSelector/types.d.ts +6 -0
  392. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +100 -74
  393. package/dist/components/FlatListBox/types.d.ts +6 -0
  394. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +98 -72
  395. package/dist/components/GroupedListBox/types.d.ts +6 -0
  396. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +5 -0
  397. package/dist/components/ListBox/types.d.ts +6 -0
  398. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +76 -43
  399. package/dist/components/OptionsContainer/types.d.ts +24 -5
  400. package/dist/composables/useBbTabsContext.d.ts +10 -2
  401. package/dist/composables/useBbTabsContext.js +155 -145
  402. package/dist/composables/useConfig.d.ts +2 -2
  403. package/dist/composables/useConfig.js +9 -7
  404. package/dist/composables/usePassthrough.d.ts +164 -0
  405. package/dist/composables/usePassthrough.js +182 -0
  406. package/dist/composables/usePrefill.d.ts +1 -0
  407. package/dist/composables/usePrefill.js +18 -8
  408. package/dist/composables/useSegmentedFields.d.ts +2 -2
  409. package/dist/composables/useToggleInput.d.ts +44 -0
  410. package/dist/composables/useToggleInput.js +39 -0
  411. package/dist/deprecation/ai-deprecations.json.d.ts +231 -0
  412. package/dist/deprecation/ai-deprecations.json.js +1 -1
  413. package/dist/i18n/locales/cs.json +2 -2
  414. package/dist/i18n/locales/da.json +2 -2
  415. package/dist/i18n/locales/de.json +2 -2
  416. package/dist/i18n/locales/el.json +2 -2
  417. package/dist/i18n/locales/en.json +2 -2
  418. package/dist/i18n/locales/es.json +2 -2
  419. package/dist/i18n/locales/fi.json +2 -2
  420. package/dist/i18n/locales/fr.json +2 -2
  421. package/dist/i18n/locales/hu.json +2 -2
  422. package/dist/i18n/locales/it.json +2 -2
  423. package/dist/i18n/locales/ja.json +2 -2
  424. package/dist/i18n/locales/ko.json +2 -2
  425. package/dist/i18n/locales/nb.json +2 -2
  426. package/dist/i18n/locales/nl.json +2 -2
  427. package/dist/i18n/locales/pl.json +2 -2
  428. package/dist/i18n/locales/pt.json +2 -2
  429. package/dist/i18n/locales/ro.json +2 -2
  430. package/dist/i18n/locales/ru.json +2 -2
  431. package/dist/i18n/locales/sv.json +2 -2
  432. package/dist/i18n/locales/tr.json +2 -2
  433. package/dist/i18n/locales/uk.json +2 -2
  434. package/dist/i18n/locales/zh-cn.json +2 -2
  435. package/dist/index.d.ts +8 -2
  436. package/dist/llms-full.txt +7500 -1967
  437. package/dist/llms-medium.txt +251 -49
  438. package/dist/llms.txt +4 -2
  439. package/dist/locale-blueprint.json +2 -2
  440. package/dist/passthrough-deduper.js +5 -0
  441. package/dist/plugin.d.ts +2 -2
  442. package/dist/styles.css +1 -1
  443. package/dist/types/ColumnName.d.ts +1 -1
  444. package/dist/types/CommonProps.d.ts +2 -2
  445. package/dist/types/Config.d.ts +16 -0
  446. package/dist/types/InputVariant.d.ts +1 -1
  447. package/dist/types/ItemProps.d.ts +13 -0
  448. package/dist/types/passthrough.d.ts +200 -0
  449. package/dist/types/passthrough.js +77 -0
  450. package/dist/utilities/functions/itemProps.d.ts +1 -1
  451. package/dist/utilities/functions/slotKey.d.ts +5 -5
  452. package/dist/utilities/functions/slotKey.js +1 -1
  453. package/dist/utilities/functions/toggleInput.d.ts +98 -0
  454. package/dist/utilities/functions/toggleInput.js +56 -0
  455. package/dist/utils/passthrough.d.ts +26 -0
  456. package/dist/utils/passthrough.js +76 -0
  457. package/dist/utils/passthroughDeduper.d.ts +2 -0
  458. package/dist/utils/passthroughTestKit.d.ts +54 -0
  459. package/dist/utils/swipeTestKit.d.ts +9 -0
  460. package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +56 -1
  461. package/dist/validated/BbCheckboxGroup.vue.d.ts +115 -2
  462. package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +77 -1
  463. package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +116 -1
  464. package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +370 -1
  465. package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +17 -1
  466. package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +86 -1
  467. package/dist/validated/BbRadioGroup.vue.d.ts +114 -2
  468. package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +77 -1
  469. package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +44 -1
  470. package/dist/validated/BbSelect.vue.d.ts +221 -2
  471. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +164 -1
  472. package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +44 -1
  473. package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +56 -1
  474. package/dist/validated/BbSwitchGroup.vue.d.ts +115 -2
  475. package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +77 -1
  476. package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +93 -1
  477. package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +86 -1
  478. package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +86 -1
  479. package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +137 -1
  480. package/dist/vite-plugin.d.ts +81 -12
  481. package/dist/vite.js +383 -257
  482. package/llms.txt +4 -2
  483. package/package.json +4 -3
  484. package/scripts/lib/component-tree.ts +611 -0
  485. package/scripts/lib/eslint-plugin.d.ts +5 -1
  486. package/scripts/lib/eslint-plugin.mjs +445 -0
  487. package/scripts/lib/validate-bb-markup.mjs +56 -18
  488. package/dist/ai/BbBaseCheckbox.md +0 -50
  489. package/dist/ai/BbBaseCheckboxGroup.md +0 -65
  490. package/dist/ai/BbBaseColorInput.md +0 -67
  491. package/dist/ai/BbBaseColorPalette.md +0 -39
  492. package/dist/ai/BbBaseDatePicker.md +0 -57
  493. package/dist/ai/BbBaseDatePickerInput.md +0 -84
  494. package/dist/ai/BbBaseNumberInput.md +0 -73
  495. package/dist/ai/BbBaseRadio.md +0 -47
  496. package/dist/ai/BbBaseRadioGroup.md +0 -65
  497. package/dist/ai/BbBaseRating.md +0 -63
  498. package/dist/ai/BbBaseSelect.md +0 -99
  499. package/dist/ai/BbBaseSlider.md +0 -84
  500. package/dist/ai/BbBaseSwitch.md +0 -50
  501. package/dist/ai/BbBaseSwitchGroup.md +0 -65
  502. package/dist/ai/BbBaseTag.md +0 -80
  503. package/dist/ai/BbBaseTextInput.md +0 -77
  504. package/dist/ai/BbBaseTextarea.md +0 -74
  505. package/dist/ai/BbBaseTimePickerInput.md +0 -63
  506. package/dist/ai/CommonInputWrapper.md +0 -60
  507. package/dist/ai/source/BbBaseCheckbox.md +0 -466
  508. package/dist/ai/source/BbBaseCheckboxGroup.md +0 -620
  509. package/dist/ai/source/BbBaseColorInput.md +0 -453
  510. package/dist/ai/source/BbBaseColorPalette.md +0 -942
  511. package/dist/ai/source/BbBaseDatePicker.md +0 -1450
  512. package/dist/ai/source/BbBaseDatePickerInput.md +0 -1951
  513. package/dist/ai/source/BbBaseNumberInput.md +0 -629
  514. package/dist/ai/source/BbBaseRadio.md +0 -386
  515. package/dist/ai/source/BbBaseRadioGroup.md +0 -605
  516. package/dist/ai/source/BbBaseRating.md +0 -614
  517. package/dist/ai/source/BbBaseSelect.md +0 -1035
  518. package/dist/ai/source/BbBaseSlider.md +0 -1181
  519. package/dist/ai/source/BbBaseSwitch.md +0 -247
  520. package/dist/ai/source/BbBaseSwitchGroup.md +0 -347
  521. package/dist/ai/source/BbBaseTag.md +0 -714
  522. package/dist/ai/source/BbBaseTextInput.md +0 -523
  523. package/dist/ai/source/BbBaseTextarea.md +0 -520
  524. package/dist/ai/source/BbBaseTimePickerInput.md +0 -1048
  525. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
  526. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
  527. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -147
  528. package/dist/components/BbBaseCheckbox/types.d.ts +0 -228
  529. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
  530. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
  531. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -197
  532. package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -278
  533. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
  534. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
  535. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -190
  536. package/dist/components/BbBaseColorInput/types.d.ts +0 -228
  537. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
  538. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.js +0 -6
  539. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
  540. package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
  541. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
  542. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
  543. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
  544. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
  545. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
  546. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
  547. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
  548. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
  549. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
  550. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
  551. package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
  552. package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
  553. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
  554. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
  555. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -740
  556. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
  557. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
  558. package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -330
  559. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
  560. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -199
  561. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
  562. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
  563. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -221
  564. package/dist/components/BbBaseNumberInput/types.d.ts +0 -220
  565. package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
  566. package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -115
  567. package/dist/components/BbBaseRadio/types.d.ts +0 -183
  568. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
  569. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -186
  570. package/dist/components/BbBaseRadioGroup/types.d.ts +0 -244
  571. package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
  572. package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
  573. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
  574. package/dist/components/BbBaseRating/types.d.ts +0 -176
  575. package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
  576. package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
  577. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -332
  578. package/dist/components/BbBaseSelect/types.d.ts +0 -348
  579. package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
  580. package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
  581. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
  582. package/dist/components/BbBaseSlider/types.d.ts +0 -200
  583. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
  584. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.js +0 -6
  585. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -148
  586. package/dist/components/BbBaseSwitch/types.d.ts +0 -10
  587. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
  588. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
  589. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -197
  590. package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
  591. package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
  592. package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
  593. package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -272
  594. package/dist/components/BbBaseTag/types.d.ts +0 -169
  595. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
  596. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
  597. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -206
  598. package/dist/components/BbBaseTextInput/types.d.ts +0 -218
  599. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
  600. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
  601. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -193
  602. package/dist/components/BbBaseTextarea/types.d.ts +0 -179
  603. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
  604. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
  605. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -522
  606. package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -156
  607. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -109
  608. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbDatePicker/DatePickerMonthPanel.vue.d.ts} +0 -0
  609. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbDatePicker/DatePickerYearPanel.vue.d.ts} +0 -0
  610. /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
  611. /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
package/README.md CHANGED
@@ -60,11 +60,12 @@ Full detail: `ai/guides/installation-and-plugin-setup.md`.
60
60
  `Bb*DirectivePlugin` for each, for app-level registration. Prefer the directive
61
61
  over the component for simple no-slot cases.
62
62
 
63
- ### Base\* primitives
63
+ ### Internal building blocks
64
64
 
65
- The styled `Base*` input controls and the input chrome (`BbBaseInputContainer`,
66
- `CommonInputWrapper` — label, prepend/append, prefix/suffix, clear button,
67
- spacing) are **internal composition layers and are not exported**. Use the full
65
+ The shared field chrome (`CommonField`, `CommonFieldInput` — label,
66
+ prepend/append, prefix/suffix, clear button, spacing) and the other `Common*`
67
+ pieces are **internal and are not exported**; every form control renders them
68
+ itself. Use the full
68
69
  public inputs (`BbTextInput`, `BbSelect`, …); pass `hideLabel` for a
69
70
  bare/inline control. The exported primitives are **`BbBaseButton`** and the
70
71
  presentational glyphs **`BbBaseCheckboxIcon`**, **`BbBaseRadioIcon`**,
@@ -81,6 +82,25 @@ Product-ready components with labels, hints, errors, and consistent styling:
81
82
  - **Data:** `BbTable`, `BbTree`
82
83
  - **Media & files:** `BbAvatar`, `BbDropzone`, `BbIcon`
83
84
 
85
+ ### Passthrough (`pt`)
86
+
87
+ Every component names a short list of **parts** and **states**, and a
88
+ `pt:<part>` / `pt:<part>:<state>` prop reaches that part with a class list —
89
+ or, in the object form, a style and attributes — typed and linted in the
90
+ attribute form, on top of any variant. Classes append to ours, attributes win, listeners run after the
91
+ component's own handler. A build-time `pt` map in the Vite / Nuxt plugin seeds
92
+ every instance. Grammar, merge rules and the per-component vocabulary:
93
+ [`ai/guides/passthrough.md`](ai/guides/passthrough.md).
94
+
95
+ ```vue
96
+ <BbButton
97
+ prepend:icon="lucide:save"
98
+ pt:icon="text-emerald-600"
99
+ pt:icon:loading="animate-pulse"
100
+ >Save</BbButton>
101
+ <BbTable :items="rows" pt:row:highlighted="bg-amber-50" />
102
+ ```
103
+
84
104
  ### Exported component types
85
105
 
86
106
  For the public **Bb\*** components, the package exports matching **props**, **events**, and (where relevant) **slots** types (for example `BbSelectProps`, `BbTableEvents`), plus supporting shapes like `BbDropdownItem` and `DropdownGroupItemsGetter`. Use them for typed wrappers and design-system layers; the docs list the full set per component.
@@ -375,6 +395,50 @@ is left alone. For a bulk sweep of a v2 codebase, opt into the fix:
375
395
  `assumeV2` is off by default because the two readings produce opposite
376
396
  layouts — turn it on only for files you know came from v2, then turn it off.
377
397
 
398
+ #### Glyph state colours: `no-state-text-color`
399
+
400
+ `bitboss-ui/no-state-text-color` flags a colour-shade text utility —
401
+ `text-red-800`, not `text-xs` — in a toggle glyph's state entry:
402
+ `pt:icon:errors` / `warnings` / `disabled` on `BbCheckbox`, `BbRadio`,
403
+ `BbSwitch` and their groups, or `pt:root:<state>` on their standalone glyphs. Those states paint
404
+ from the glyph's own `--accent`, never from `color`, so the class lands and
405
+ paints nothing. CSS cannot let a state entry's colour win while a resting
406
+ `pt:icon` colour loses — both are just a `color` utility by then — so the rule
407
+ says so where the class is written, and for errors and warnings offers the
408
+ spelling that works:
409
+
410
+ ```vue
411
+ <!-- warns: paints nothing -->
412
+ <BbCheckbox pt:icon="text-blue-500" pt:icon:errors="text-red-800" />
413
+ <!-- blue at rest, red-800 while erroring -->
414
+ <BbCheckbox
415
+ pt:icon="text-blue-500"
416
+ pt:icon:errors="[--accent:var(--color-red-800)]"
417
+ />
418
+ ```
419
+
420
+ It reads literal classes only (the attribute, a bound string or `{ class }`,
421
+ and a literal `:pt` object); a dynamic value is not checked.
422
+
423
+ #### Field box borders: `no-box-border-color`
424
+
425
+ `bitboss-ui/no-box-border-color` flags a colour-shade border utility —
426
+ `border-green-500`, not `border-2` — in the **base** `pt:box` of a text-like
427
+ control. The box paints its errors / warnings frame over the resting border,
428
+ but a border utility sets `border-color` itself and wins, so the field keeps
429
+ looking valid. The rule suggests the resting-border token instead; a state
430
+ entry is the state itself and is never reported:
431
+
432
+ ```vue
433
+ <!-- errors: hides the error frame -->
434
+ <BbTextInput pt:box="border-green-500" />
435
+ <!-- green at rest, the error frame while erroring, red-800 as the error style -->
436
+ <BbTextInput
437
+ pt:box="[--border-color:var(--color-green-500)]"
438
+ pt:box:errors="border-red-800"
439
+ />
440
+ ```
441
+
378
442
  #### The one rule that reads CSS: `no-unknown-token`
379
443
 
380
444
  `bitboss-ui/no-unknown-token` flags a bare `var(--bb-…)` naming a token the
@@ -96,7 +96,7 @@ function coreRules(version) {
96
96
 
97
97
  1. **Start at the AI Router**: \`${ROUTER}\` — which file to open next (do not dump the full catalogue into context).
98
98
  2. **Obey the agent contract**: \`${CONTRACT}\`.
99
- 3. **Prefer \`Bb*\` consumer components**; never use entries marked "Reference Only - Internal" unless the user explicitly asks for internals. (\`BbBaseButton\` is consumer API; most other \`BbBase*\` form primitives are not.)
99
+ 3. **Prefer \`Bb*\` consumer components**; never use entries marked "Reference Only - Internal" unless the user explicitly asks for internals. (\`BbBaseButton\` and the \`BbBase*Icon\` glyphs are consumer API; the \`Common*\` building blocks are not.)
100
100
  4. **Never invent prop/event/slot names** — open \`${KNOWLEDGE_BASE}/<ComponentName>.md\` (Usage & Guidelines first) or validate against \`${KNOWLEDGE_BASE}/components.json\`.
101
101
  5. **Icons**: discover names first; never invent them (\`${KNOWLEDGE_BASE}/guides/icons-policy.md\`).
102
102
  6. **Item-driven components**: declarative \`items\` / \`item-text\` / \`item-value\`, \`dependencies\`, \`enforce-coherence\` — no manual watchers for coherence.
@@ -8,6 +8,14 @@
8
8
  - Usage rule: Prefer this component for consumer-facing implementations.
9
9
  - Implementation source (only when the contract below is not enough): [source/BbAccordion.md](./source/BbAccordion.md)
10
10
 
11
+ ## Reachable through `BbAccordion`
12
+
13
+ `BbAccordion` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
14
+
15
+ | pt part | Lands on | In |
16
+ | --- | --- | --- |
17
+ | `pt:header` | the root of `BbBaseButton` | `BbBaseButton` ([contract](./BbBaseButton.md)) |
18
+
11
19
  ## Usage & Guidelines
12
20
 
13
21
  ### When to use
@@ -38,9 +46,9 @@ Everything else is composition.
38
46
 
39
47
  The classic pricing-page FAQ is independent panels — each with its own boolean.
40
48
  The `header` slot is rendered **inside the header button** — so put text and an
41
- indicator there, never a nested `<button>`/`<a>`. Style the body on the slotted
42
- content, not the panel: the underlying collapsible forces a true zero-height
43
- collapsed state and strips padding/borders you put on the panel itself.
49
+ indicator there, never a nested `<button>`/`<a>`. The panel is a block box
50
+ inside the collapsing region, so padding, a border or a background on it —
51
+ through `pt:panel` or `.bb-accordion__panel` — collapses with the body.
44
52
 
45
53
  **A pricing-page FAQ of independent panels**
46
54
 
@@ -481,6 +489,90 @@ references): the body region gets your id and the header gets `<id>_header`,
481
489
  already cross-wired via `aria-controls`/`aria-labelledby`. Omitted, a unique id
482
490
  is generated for you.
483
491
 
492
+ ### Restyling with passthrough
493
+
494
+ `pt` reaches a named part with a class list — or, in the object form, a
495
+ style and attributes — optionally only while a state is on. Parts: `root`,
496
+ `header` (the trigger button) and `panel` (the region the header controls). State:
497
+ `open`. There is no chevron of ours — the header is your slot markup — so there
498
+ is no `icon`.
499
+
500
+ The pricing-page FAQ above, restyled through those parts: layout, type and
501
+ hover on `pt:header` (children are click-transparent, so hover belongs on the
502
+ button), a heavier weight on `pt:header:open`, join lines on `pt:root`. Padding
503
+ can go on `pt:panel`: the panel sits inside the collapsing region, so it
504
+ collapses with the body.
505
+
506
+ **pt:header — the FAQ trigger, a wash while open**
507
+
508
+ ```vue
509
+ <template>
510
+ <div
511
+ class="max-w-2xl overflow-hidden rounded-(--bb-radius) border border-(--bb-border)"
512
+ >
513
+ <BbAccordion
514
+ v-for="(faq, index) in faqs"
515
+ :key="faq.question"
516
+ v-model="faq.open"
517
+ pt:header="flex items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium hover:underline"
518
+ pt:header:open="font-semibold"
519
+ pt:panel="text-sm"
520
+ :pt:root="index ? 'border-t border-(--bb-border)' : ''"
521
+ >
522
+ <template #header="{ value }">
523
+ <span>{{ faq.question }}</span>
524
+ <span
525
+ class="shrink-0 text-(--bb-text-muted) transition-transform duration-200"
526
+ :class="value ? 'rotate-180' : ''"
527
+ >
528
+ <BbIcon icon="lucide:chevron-down" size="sm" />
529
+ </span>
530
+ </template>
531
+
532
+ <p class="px-3 pb-2.5 text-(--bb-text-muted)">
533
+ {{ faq.answer }}
534
+ </p>
535
+ </BbAccordion>
536
+ </div>
537
+ </template>
538
+
539
+ <script setup lang="ts">
540
+ import { ref } from 'vue';
541
+ import { BbAccordion, BbIcon } from 'bitboss-ui';
542
+
543
+ type Faq = { question: string; answer: string; open: boolean };
544
+
545
+ // Same pricing-page FAQ as `FaqList.vue`, restyled through passthrough:
546
+ // layout and hover on `pt:header`, a heavier weight on `pt:header:open`,
547
+ // join lines on `pt:root`. Padding may go on `pt:panel` or the slotted body
548
+ // alike: the panel is inside the collapsing region, so both collapse.
549
+ const faqs = ref<Faq[]>([
550
+ {
551
+ question: 'Can I change plans mid-cycle?',
552
+ answer:
553
+ 'Yes. Upgrades take effect immediately and are prorated; downgrades apply at the next renewal.',
554
+ open: true,
555
+ },
556
+ {
557
+ question: 'Do you offer annual billing?',
558
+ answer:
559
+ 'Annual plans are billed once per year at a 20% discount versus monthly.',
560
+ open: false,
561
+ },
562
+ {
563
+ question: 'What happens when I exceed my seat limit?',
564
+ answer:
565
+ 'New invites pause until you add seats or free an existing one. Usage never auto-charges.',
566
+ open: false,
567
+ },
568
+ ]);
569
+ </script>
570
+ ```
571
+
572
+ A listener on `pt:header` runs after the toggle, never instead of it. The full
573
+ grammar, the merge rules and the global map are in the
574
+ [passthrough guide](./guides/passthrough.md).
575
+
484
576
  ### Works well with
485
577
 
486
578
  - `BbIcon` — a rotating chevron in the header, driven by the slot's `value` (see
@@ -499,8 +591,6 @@ is generated for you.
499
591
  belong in the body.
500
592
  - **Don't build a group wrapper** with watchers that force-close siblings —
501
593
  derive `model-value` from one active key instead (single-open above).
502
- - **Don't put padding/borders on the panel itself** expecting them to collapse —
503
- the collapsed state zeroes them; style the slotted content.
504
594
  - **Don't add `v-if`/`v-show` around the body** to "optimize" — deferred
505
595
  mounting is already the default; `eager` is the explicit opt-out.
506
596
  - **Hover styles on non-interactive header children won't fire** (they are
@@ -527,6 +617,7 @@ is generated for you.
527
617
 
528
618
  | Prop | Type | Default | Required | Description |
529
619
  | --- | --- | --- | --- | --- |
620
+ | `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: `header`, `panel`, `root`. States: `open`. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
530
621
  | `eager` | `boolean \| undefined` | `false` | | Prevents rendering content before it's made visible. |
531
622
  | `id` | `string \| undefined` | | | The identifier of the component. |
532
623
  | `modelValue` | `boolean \| undefined` | `false` | | Used by v-model to trigger opening / closing the collapsible. An accordion with no `v-model` starts closed. |
@@ -541,6 +632,19 @@ is generated for you.
541
632
  - `default` — scope: `BbAccordionToggleSlotProps` — The collapsible body content shown when the accordion is open.
542
633
  - `header` — scope: `BbAccordionToggleSlotProps` — Content rendered inside the accordion header button.
543
634
 
635
+ ## Component tree
636
+
637
+ `BbAccordion` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAccordion`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
638
+
639
+ - **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAccordion`. A pt part listed as landing there is set on `BbAccordion` (`pt:<part>`).
640
+ - **_public_** nodes are components with their own contract. `BbAccordion` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAccordion`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
641
+ - **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 `BbAccordion`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
642
+ - Listed nodes are the ones `BbAccordion`'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 the `tree` field of this component in `components.json`.
643
+
644
+ - `BbAccordion` _(this component)_ — its own template binds: `header` → `BbBaseButton`, `panel` → `div.bb-accordion__panel`
645
+ - `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
646
+ - `BbCollapsible` _(public — [contract](./BbCollapsible.md))_ — its own pt parts (`BbCollapsible`): `content` → `component.bb-collapsible__content`
647
+
544
648
  ## See Also
545
649
 
546
650
  - [BbCollapsible](./BbCollapsible.md) — Toggles visibility of collapsible content blocks.
@@ -8,6 +8,21 @@
8
8
  - Usage rule: Prefer this component for consumer-facing implementations.
9
9
  - Implementation source (only when the contract below is not enough): [source/BbAlert.md](./source/BbAlert.md)
10
10
 
11
+ ## Reachable through `BbAlert`
12
+
13
+ `BbAlert` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
14
+
15
+ | pt part | Lands on | In |
16
+ | --- | --- | --- |
17
+ | `pt:icon` | the root of `BbIcon` | `BbIcon` ([contract](./BbIcon.md)) |
18
+ | `pt:close` | the root of `ClearableButton` | `ClearableButton` _(internal)_ |
19
+
20
+ **CSS variables you can set through those parts** — declared deeper in the tree, so set one on the part that reads it (`pt:<part>="[--name:value]"`), never on `BbAlert`'s root:
21
+
22
+ | Variable | Set through | Declared by | What it is |
23
+ | --- | --- | --- | --- |
24
+ | `--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` indir… |
25
+
11
26
  ## Usage & Guidelines
12
27
 
13
28
  ### When to use
@@ -344,6 +359,51 @@ const publish = () => {
344
359
  </script>
345
360
  ```
346
361
 
362
+ ### Restyling with passthrough
363
+
364
+ `pt` reaches a named part with a class list — or, in the object form, a
365
+ style and attributes. Parts: `root` (the box), `icon` (the leading glyph),
366
+ `title` (the heading), `text` (the body copy), `close` (the ✕). The column
367
+ that wraps title and text is layout, not a part. No states — an alert is
368
+ either mounted or gone.
369
+
370
+ An overdue invoice banner, restyled through those parts: a hair of top offset
371
+ on `pt:icon` so the glyph sits with wrapped copy, `text-sm` on `pt:text`, a
372
+ tighter tracking on `pt:title`.
373
+ `hide-close` — this is page state until the invoice is paid, not a snooze.
374
+
375
+ **pt:icon / pt:title / pt:text — invoice overdue**
376
+
377
+ ```vue
378
+ <template>
379
+ <div class="max-w-2xl">
380
+ <BbAlert
381
+ hide-close
382
+ icon="lucide:triangle-alert"
383
+ pt:icon="mt-0.5"
384
+ pt:text="text-sm"
385
+ pt:title="tracking-tight"
386
+ text="Globex · €2,400 due 4 Sep. Record a payment or send a reminder — dunning is paused while this stays open."
387
+ title="INV-1043 is 7 days overdue"
388
+ variant="warning"
389
+ />
390
+ </div>
391
+ </template>
392
+
393
+ <script setup lang="ts">
394
+ import { BbAlert } from 'bitboss-ui';
395
+
396
+ // Invoice-record overdue banner, restyled through passthrough: a hair of
397
+ // top offset on `pt:icon` so the glyph sits with wrapped copy, `text-sm` on
398
+ // `pt:text` and a tighter tracking on `pt:title`. `hide-close` — this is page state,
399
+ // not a snooze; the ✕ is a different part, taught with a listener.
400
+ </script>
401
+ ```
402
+
403
+ A listener on `pt:close` runs after the alert closes, never instead of it. The
404
+ full grammar, the merge rules and the global map are in the
405
+ [passthrough guide](./guides/passthrough.md).
406
+
347
407
  ### Works well with
348
408
 
349
409
  - `BbToast` — pair them: the toast confirms _the action_ ("Saved"), the alert
@@ -388,6 +448,7 @@ const publish = () => {
388
448
 
389
449
  | Prop | Type | Default | Required | Description |
390
450
  | --- | --- | --- | --- | --- |
451
+ | `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: `close`, `icon`, `root`, `text`, `title`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
391
452
  | `ariaLive` | `"off" \| "polite" \| "assertive" \| undefined` | | | ARIA live region politeness. Defaults to `'assertive'` for destructive/warning variants, otherwise `'polite'`. |
392
453
  | `closeLabel` | `string \| undefined` | | | Visually hidden string used to label the close button. |
393
454
  | `hideClose` | `boolean \| undefined` | `false` | | Defines whether to hide the close button. |
@@ -412,7 +473,7 @@ const publish = () => {
412
473
 
413
474
  ## CSS custom properties
414
475
 
415
- Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals; the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
476
+ Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals — a **Set on** of `pt:<part>` means the local lives on that part's element, so set it through that entry (`pt:box="[--border-color:var(--color-green-500)]"`); the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
416
477
 
417
478
  | Property | Default | What it is |
418
479
  | --- | --- | --- |
@@ -430,6 +491,18 @@ Set these on the element, or on a class you put on it, to retune this component
430
491
  | `--border-color` | `color-mix(in oklab, var(--bb-text) 15%, transparent)` | Plate border |
431
492
  | `--elev` | `var(--bb-elev)` | Resting lift. A local, so a page that already sits on a card can flatten one alert (`<BbAlert style="--elev: none">`) without unsetting the theme's lift everywhere. |
432
493
 
494
+ ## Component tree
495
+
496
+ `BbAlert` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAlert`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
497
+
498
+ - **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAlert`. A pt part listed as landing there is set on `BbAlert` (`pt:<part>`).
499
+ - **_public_** nodes are components with their own contract. `BbAlert` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAlert`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
500
+ - **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 `BbAlert`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
501
+ - Listed nodes are the ones `BbAlert`'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 the `tree` field of this component in `components.json`.
502
+
503
+ - `BbAlert` _(this component)_ — its own template binds: `icon` → `BbIcon`, `close` → `ClearableButton`, `title` → `div.bb-alert__title`, `text` → `div.bb-alert__text`
504
+ - Also mounts `BbIcon`, `ClearableButton`
505
+
433
506
  ## See Also
434
507
 
435
508
  - [BbToast](./BbToast.md) — Shows transient notification messages (includes the co-located BbToastPortal export).
@@ -50,9 +50,36 @@ perceive), and never assume the asterisk is doing accessibility work.
50
50
  with `requiredAsterisk: false` there is no way to render the marker through
51
51
  them at all — placing `BbAsterisk` by hand is then the only route.
52
52
 
53
+ ### Restyling with passthrough
54
+
55
+ `pt` reaches the one part with a class list — or, in the object form, a
56
+ style and attributes. Part: `root` (the marker span — its only props are the passthrough ones). No states — nothing it paints is a
57
+ state.
58
+
59
+ With one part, `pt:root` is plain `class` with extra letters: write `class`
60
+ / `style` on the tag, as on any element. `pt:root` stays for uniformity —
61
+ the global map, the object form and a wrapper that spreads props address
62
+ every component the same way.
63
+
64
+ The default paint is `--bb-danger`; `class` is how you retint it. The
65
+ control's `required` still carries the requirement.
66
+
67
+ **class — a softened required marker**
68
+
69
+ ```vue
70
+ <span
71
+ class="text-sm font-medium"
72
+ >Workspace name<BbAsterisk class="text-(--bb-warn)" /></span>
73
+ ```
74
+
75
+ The full grammar, the merge rules and the global map are in the
76
+ [passthrough guide](./guides/passthrough.md).
77
+
53
78
  ## Props
54
79
 
55
- - None.
80
+ | Prop | Type | Default | Required | Description |
81
+ | --- | --- | --- | --- | --- |
82
+ | `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: `root`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
56
83
 
57
84
  ## Events
58
85
 
@@ -8,6 +8,20 @@
8
8
  - Usage rule: Prefer this component for consumer-facing implementations.
9
9
  - Implementation source (only when the contract below is not enough): [source/BbAvatar.md](./source/BbAvatar.md)
10
10
 
11
+ ## Reachable through `BbAvatar`
12
+
13
+ `BbAvatar` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
14
+
15
+ | pt part | Lands on | In |
16
+ | --- | --- | --- |
17
+ | `pt:icon` | the root of `BbIcon` | `BbIcon` ([contract](./BbIcon.md)) |
18
+
19
+ **CSS variables you can set through those parts** — declared deeper in the tree, so set one on the part that reads it (`pt:<part>="[--name:value]"`), never on `BbAvatar`'s root:
20
+
21
+ | Variable | Set through | Declared by | What it is |
22
+ | --- | --- | --- | --- |
23
+ | `--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` indir… |
24
+
11
25
  ## Usage & Guidelines
12
26
 
13
27
  ### When to use
@@ -499,6 +513,62 @@ Platform notes: the component is SSR-safe (Nuxt/Inertia) with no client-only
499
513
  markup; the only global config it reads is `iconDefaultSizes` for the size
500
514
  keys.
501
515
 
516
+ ### Restyling with passthrough
517
+
518
+ `pt` reaches each part with a class list — or, in the object form, a
519
+ style and attributes. Parts: `root` (the avatar frame) and `icon` (the default
520
+ user glyph). No states — nothing it paints is a state.
521
+
522
+ `icon` exists only while the fallback shows (no image, or it failed) and the
523
+ default slot is not overridden; when a photo or your own initials render,
524
+ `pt:icon` lands nowhere. For the frame, `pt:root` is plain `class` with extra
525
+ letters: write `class` / `style` on the tag, as on any element. `pt:root`
526
+ stays for uniformity — the global map, the object form and a wrapper that
527
+ spreads props address every component the same way.
528
+
529
+ A design-review stack, restyled with plain `class`: a panel-colored ring on
530
+ `class` keeps overlapped edges readable, and every avatar after the first
531
+ pulls in. The image and the fallback wrapper are not parts — don't reach for
532
+ `:deep(.bb-avatar)`.
533
+
534
+ **class — reviewer stack ring**
535
+
536
+ ```vue
537
+ <template>
538
+ <div class="flex">
539
+ <BbAvatar
540
+ v-for="(reviewer, index) in reviewers"
541
+ :key="reviewer.name"
542
+ :alt="reviewer.name"
543
+ :pt:root="
544
+ index ? '-ml-3 ring-2 ring-(--bb-panel)' : 'ring-2 ring-(--bb-panel)'
545
+ "
546
+ size="40"
547
+ >{{ reviewer.initials }}</BbAvatar
548
+ >
549
+ </div>
550
+ </template>
551
+
552
+ <script setup lang="ts">
553
+ import { BbAvatar } from 'bitboss-ui';
554
+
555
+ type Reviewer = { name: string; initials: string };
556
+
557
+ // Design-review stack, restyled through passthrough: a panel-colored ring on
558
+ // `pt:root` (the frame) so overlapped edges stay readable, pull-in on every
559
+ // avatar after the first. The image and fallback are not parts.
560
+ const reviewers: Reviewer[] = [
561
+ { name: 'Ada Lovelace', initials: 'AL' },
562
+ { name: 'Grace Hopper', initials: 'GH' },
563
+ { name: 'Alan Turing', initials: 'AT' },
564
+ { name: '2 more reviewers', initials: '+2' },
565
+ ];
566
+ </script>
567
+ ```
568
+
569
+ The full grammar, the merge rules and the global map are in the
570
+ [passthrough guide](./guides/passthrough.md).
571
+
502
572
  ### Works well with
503
573
 
504
574
  - [`BbIndicator`](./BbIndicator.md) — floating presence dots and counts (see above).
@@ -544,6 +614,7 @@ available in visible text or an adjacent label.
544
614
 
545
615
  | Prop | Type | Default | Required | Description |
546
616
  | --- | --- | --- | --- | --- |
617
+ | `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: `icon`, `root`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
547
618
  | `alt` | `string \| undefined` | `""` | | Alternative text for the image, used for accessibility. |
548
619
  | `size` | `number \| ({ size?: any; } & string) \| keyof Sizes \| undefined` | `"md"` | | Defines the component size. Accepted values: - A key from the provided size map (`keyof T`), e.g. `'sm' \| 'md' \| 'lg'` - A custom CSS size string (e.g. `'20px'`, `'1.5rem'`, `'2em'`) - A number, typically interpreted as pixels by size par… |
549
620
  | `sizes` | `string \| undefined` | | | Sizes attribute for the image, used with `srcset`. |
@@ -561,13 +632,26 @@ available in visible text or an adjacent label.
561
632
 
562
633
  ## CSS custom properties
563
634
 
564
- Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals; the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
635
+ Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals — a **Set on** of `pt:<part>` means the local lives on that part's element, so set it through that entry (`pt:box="[--border-color:var(--color-green-500)]"`); the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
565
636
 
566
- | Property | Default | What it is |
567
- | --- | --- | --- |
568
- | `--bg` | `var(--bb-primary)` | fallback surface (an image covers it) |
569
- | `--fg` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
570
- | `--default-icon-size` | `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. |
637
+ | Property | Set on | Default | What it is |
638
+ | --- | --- | --- | --- |
639
+ | `--bg` | `.bb-avatar` | `var(--bb-primary)` | fallback surface (an image covers it) |
640
+ | `--fg` | `.bb-avatar` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
641
+ | `--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. |
642
+ | `--size` | `.bb-avatar__default-icon` | `var(--default-icon-size)` | |
643
+
644
+ ## Component tree
645
+
646
+ `BbAvatar` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAvatar`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
647
+
648
+ - **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAvatar`. A pt part listed as landing there is set on `BbAvatar` (`pt:<part>`).
649
+ - **_public_** nodes are components with their own contract. `BbAvatar` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAvatar`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
650
+ - **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 `BbAvatar`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
651
+ - Listed nodes are the ones `BbAvatar`'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 the `tree` field of this component in `components.json`.
652
+
653
+ - `BbAvatar` _(this component)_ — its own template binds: `icon` → `BbIcon`
654
+ - Also mounts `BbIcon`
571
655
 
572
656
  ## See Also
573
657