bitboss-ui 3.0.0-beta.63 → 3.0.0-beta.65

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 (396) hide show
  1. package/README.md +25 -20
  2. package/bin/bitboss-ui.mjs +73 -7
  3. package/dist/ai/BbAlert.md +10 -1
  4. package/dist/ai/BbBadge.md +35 -3
  5. package/dist/ai/BbBadgeButton.md +4 -2
  6. package/dist/ai/BbBaseButton.md +9 -3
  7. package/dist/ai/BbBreadcrumbs.md +2 -2
  8. package/dist/ai/BbButton.md +113 -8
  9. package/dist/ai/BbCheckbox.md +1 -1
  10. package/dist/ai/BbCheckboxGroup.md +94 -6
  11. package/dist/ai/BbColorInput.md +4 -1
  12. package/dist/ai/BbColorPalette.md +2 -1
  13. package/dist/ai/BbConfirm.md +7 -3
  14. package/dist/ai/BbDatePicker.md +2 -1
  15. package/dist/ai/BbDatePickerInput.md +4 -1
  16. package/dist/ai/BbDialog.md +12 -11
  17. package/dist/ai/BbDropdown.md +189 -38
  18. package/dist/ai/BbDropdownButton.md +27 -7
  19. package/dist/ai/BbForm.md +55 -22
  20. package/dist/ai/BbHost.md +2 -2
  21. package/dist/ai/BbHoverCard.md +7 -3
  22. package/dist/ai/BbIcon.md +12 -6
  23. package/dist/ai/BbIndicator.md +11 -1
  24. package/dist/ai/BbNumberInput.md +4 -1
  25. package/dist/ai/BbOffCanvas.md +37 -3
  26. package/dist/ai/BbPopover.md +2 -1
  27. package/dist/ai/BbRadio.md +1 -1
  28. package/dist/ai/BbRadioGroup.md +102 -10
  29. package/dist/ai/BbSelect.md +52 -17
  30. package/dist/ai/BbSelectPopover.md +93 -26
  31. package/dist/ai/BbSwitch.md +1 -1
  32. package/dist/ai/BbSwitchGroup.md +30 -3
  33. package/dist/ai/BbTable.md +17 -10
  34. package/dist/ai/BbTabs.md +8 -3
  35. package/dist/ai/BbTabsList.md +4 -1
  36. package/dist/ai/BbTag.md +5 -2
  37. package/dist/ai/BbTextInput.md +4 -1
  38. package/dist/ai/BbTextarea.md +4 -1
  39. package/dist/ai/BbTimePicker.md +2 -1
  40. package/dist/ai/BbTimePickerInput.md +4 -1
  41. package/dist/ai/BbToast.md +9 -3
  42. package/dist/ai/BbTooltip.md +71 -9
  43. package/dist/ai/ChipsBox.md +1 -1
  44. package/dist/ai/CommonField.md +1 -1
  45. package/dist/ai/OptionsContainer.md +42 -0
  46. package/dist/ai/changelog.json +494 -6
  47. package/dist/ai/components.json +50 -48
  48. package/dist/ai/composables/useBbConfig.md +8 -1
  49. package/dist/ai/composables/useConfirm.md +39 -1
  50. package/dist/ai/design-tokens.json +6 -6
  51. package/dist/ai/guides/agent-contract.md +2 -2
  52. package/dist/ai/guides/ai-router.md +24 -23
  53. package/dist/ai/guides/app-layout.md +5 -0
  54. package/dist/ai/guides/component-picker.md +9 -2
  55. package/dist/ai/guides/design-language.md +24 -24
  56. package/dist/ai/guides/design-tokens.md +15 -8
  57. package/dist/ai/guides/icons-policy.md +9 -2
  58. package/dist/ai/guides/inertia-helpers.md +1183 -301
  59. package/dist/ai/guides/installation-and-plugin-setup.md +12 -2
  60. package/dist/ai/guides/migration/adoption-checklist.md +235 -0
  61. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -15
  62. package/dist/ai/guides/migration/components/bb-dialog.md +9 -9
  63. package/dist/ai/guides/migration/components/bb-dropdown.md +7 -2
  64. package/dist/ai/guides/migration/components/bb-popover.md +4 -2
  65. package/dist/ai/guides/migration/components/bb-select.md +19 -0
  66. package/dist/ai/guides/migration/components/bb-table.md +1 -0
  67. package/dist/ai/guides/migration/components/bb-toast.md +4 -0
  68. package/dist/ai/guides/migration/components/bb-tooltip.md +15 -12
  69. package/dist/ai/guides/migration/components/use-confirm.md +25 -2
  70. package/dist/ai/guides/migration/v2-to-v3.md +211 -9
  71. package/dist/ai/guides/migration/v3-beta-css-classes.md +7 -3
  72. package/dist/ai/guides/options-items-playbook.md +2 -1
  73. package/dist/ai/guides/passthrough.md +149 -85
  74. package/dist/ai/guides/preset-components.md +140 -15
  75. package/dist/ai/helpers/definePreset.json +7 -0
  76. package/dist/ai/helpers/definePreset.ts +123 -11
  77. package/dist/ai/helpers/inertia/manifest.json +151 -62
  78. package/dist/ai/helpers/inertia/messages.ts +33 -0
  79. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +120 -20
  80. package/dist/ai/helpers/inertia/useHasChanged.ts +34 -16
  81. package/dist/ai/helpers/inertia/useLazyProp.ts +102 -36
  82. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +3 -1
  83. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +154 -34
  84. package/dist/ai/helpers/inertia/usePromiseForm.ts +121 -14
  85. package/dist/ai/helpers/inertia/useQuery.ts +133 -11
  86. package/dist/ai/helpers/inertia/useQueryObject.ts +74 -67
  87. package/dist/ai/helpers/inertia/useResourceContext.ts +60 -14
  88. package/dist/ai/helpers/inertia/useRouteQuery.ts +38 -27
  89. package/dist/ai/helpers/inertia/useScreenSizes.ts +9 -7
  90. package/dist/ai/helpers/inertia/useTableContext.ts +5 -2
  91. package/dist/ai/helpers/inertia/utils.ts +14 -0
  92. package/dist/ai/index.md +1 -0
  93. package/dist/ai/manifest/common.json +0 -1
  94. package/dist/ai/manifest/components/BbAlert.json +7 -2
  95. package/dist/ai/manifest/components/BbBadge.json +13 -4
  96. package/dist/ai/manifest/components/BbBadge.tree.json +2 -0
  97. package/dist/ai/manifest/components/BbBadgeButton.json +4 -2
  98. package/dist/ai/manifest/components/BbBaseButton.json +4 -2
  99. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  100. package/dist/ai/manifest/components/BbButton.json +14 -3
  101. package/dist/ai/manifest/components/BbButton.tree.json +5 -1
  102. package/dist/ai/manifest/components/BbCheckboxGroup.json +13 -8
  103. package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +11 -1
  104. package/dist/ai/manifest/components/BbColorInput.json +18 -15
  105. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  106. package/dist/ai/manifest/components/BbConfirm.json +4 -2
  107. package/dist/ai/manifest/components/BbConfirm.tree.json +1 -1
  108. package/dist/ai/manifest/components/BbDatePicker.json +1 -1
  109. package/dist/ai/manifest/components/BbDatePickerInput.json +17 -14
  110. package/dist/ai/manifest/components/BbDialog.tree.json +2 -1
  111. package/dist/ai/manifest/components/BbDropdown.json +24 -19
  112. package/dist/ai/manifest/components/BbDropdown.tree.json +9 -2
  113. package/dist/ai/manifest/components/BbDropdownButton.json +33 -20
  114. package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -2
  115. package/dist/ai/manifest/components/BbForm.json +2 -2
  116. package/dist/ai/manifest/components/BbHost.tree.json +1 -1
  117. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  118. package/dist/ai/manifest/components/BbIndicator.json +8 -2
  119. package/dist/ai/manifest/components/BbNumberInput.json +5 -2
  120. package/dist/ai/manifest/components/BbOffCanvas.json +2 -2
  121. package/dist/ai/manifest/components/BbOffCanvas.tree.json +1 -1
  122. package/dist/ai/manifest/components/BbPopover.json +1 -1
  123. package/dist/ai/manifest/components/BbRadioGroup.json +17 -12
  124. package/dist/ai/manifest/components/BbRadioGroup.tree.json +8 -1
  125. package/dist/ai/manifest/components/BbSelect.json +21 -18
  126. package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
  127. package/dist/ai/manifest/components/BbSelectPopover.json +10 -10
  128. package/dist/ai/manifest/components/BbSelectPopover.tree.json +3 -2
  129. package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
  130. package/dist/ai/manifest/components/BbSwitchGroup.tree.json +3 -1
  131. package/dist/ai/manifest/components/BbTable.tree.json +14 -1
  132. package/dist/ai/manifest/components/BbTabs.json +9 -6
  133. package/dist/ai/manifest/components/BbTabs.tree.json +1 -1
  134. package/dist/ai/manifest/components/BbTabsList.json +6 -3
  135. package/dist/ai/manifest/components/BbTag.json +19 -16
  136. package/dist/ai/manifest/components/BbTag.tree.json +1 -1
  137. package/dist/ai/manifest/components/BbTextInput.json +6 -3
  138. package/dist/ai/manifest/components/BbTextarea.json +6 -3
  139. package/dist/ai/manifest/components/BbTimePicker.json +1 -1
  140. package/dist/ai/manifest/components/BbTimePickerInput.json +10 -7
  141. package/dist/ai/manifest/components/BbToast.json +7 -2
  142. package/dist/ai/manifest/components/BbToast.tree.json +4 -2
  143. package/dist/ai/manifest/components/BbTooltip.json +6 -5
  144. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  145. package/dist/ai/manifest/components/CommonField.json +1 -1
  146. package/dist/ai/manifest/components/OptionsContainer.json +3 -1
  147. package/dist/ai/manifest/components/OptionsContainer.tree.json +38 -0
  148. package/dist/ai/manifest/index.json +3 -3
  149. package/dist/ai/manifest/meta.json +5 -3
  150. package/dist/ai/manifest/types.advanced.json +5 -2
  151. package/dist/ai/manifest/types.api.json +9 -7
  152. package/dist/ai/recipes/inertia/approvals-inbox.md +1 -1
  153. package/dist/ai/recipes/inertia/inline-edit-workspace.md +1 -1
  154. package/dist/ai/recipes/inertia/layout-scaffold.md +19 -6
  155. package/dist/ai/recipes/inertia/ownership-atlas.md +1 -1
  156. package/dist/ai/recipes/inertia/records-workspace.md +50 -14
  157. package/dist/ai/recipes/inertia/upload-center.md +1 -1
  158. package/dist/ai/recipes/nuxt/layout-scaffold.md +19 -6
  159. package/dist/ai/recipes/nuxt/records-workspace.md +42 -12
  160. package/dist/ai/recipes/vue/layout-scaffold.md +19 -6
  161. package/dist/ai/recipes/vue/records-workspace.md +42 -12
  162. package/dist/ai/source/BbAlert.md +94 -76
  163. package/dist/ai/source/BbBadge.md +174 -72
  164. package/dist/ai/source/BbBadgeButton.md +130 -65
  165. package/dist/ai/source/BbBaseButton.md +46 -124
  166. package/dist/ai/source/BbBaseCheckboxIcon.md +38 -0
  167. package/dist/ai/source/BbBaseRadioIcon.md +18 -0
  168. package/dist/ai/source/BbBaseSwitchIcon.md +51 -0
  169. package/dist/ai/source/BbButton.md +153 -36
  170. package/dist/ai/source/BbCheckboxGroup.md +142 -18
  171. package/dist/ai/source/BbColorInput.md +240 -204
  172. package/dist/ai/source/BbColorPalette.md +7 -4
  173. package/dist/ai/source/BbConfirm.md +34 -11
  174. package/dist/ai/source/BbConfirmPortal.md +24 -9
  175. package/dist/ai/source/BbDatePicker.md +11 -7
  176. package/dist/ai/source/BbDatePickerInput.md +306 -269
  177. package/dist/ai/source/BbDialog.md +49 -14
  178. package/dist/ai/source/BbDropdown.md +314 -197
  179. package/dist/ai/source/BbDropdownButton.md +197 -31
  180. package/dist/ai/source/BbDropdownGroup.md +274 -176
  181. package/dist/ai/source/BbForm.md +50 -6
  182. package/dist/ai/source/BbHoverCard.md +12 -5
  183. package/dist/ai/source/BbIcon.md +4 -3
  184. package/dist/ai/source/BbIndicator.md +73 -52
  185. package/dist/ai/source/BbNumberInput.md +293 -257
  186. package/dist/ai/source/BbOffCanvas.md +55 -29
  187. package/dist/ai/source/BbPopover.md +14 -10
  188. package/dist/ai/source/BbRadioGroup.md +413 -297
  189. package/dist/ai/source/BbSelect.md +549 -435
  190. package/dist/ai/source/BbSelectPopover.md +153 -34
  191. package/dist/ai/source/BbSwitchGroup.md +70 -10
  192. package/dist/ai/source/BbTable.md +369 -37
  193. package/dist/ai/source/BbTabs.md +115 -39
  194. package/dist/ai/source/BbTabsList.md +106 -38
  195. package/dist/ai/source/BbTabsPanels.md +96 -36
  196. package/dist/ai/source/BbTabsRoot.md +96 -36
  197. package/dist/ai/source/BbTag.md +267 -233
  198. package/dist/ai/source/BbTextInput.md +261 -225
  199. package/dist/ai/source/BbTextarea.md +251 -215
  200. package/dist/ai/source/BbTimePicker.md +11 -7
  201. package/dist/ai/source/BbTimePickerInput.md +257 -220
  202. package/dist/ai/source/BbToast.md +73 -32
  203. package/dist/ai/source/BbToastPortal.md +65 -30
  204. package/dist/ai/source/BbTooltip.md +148 -113
  205. package/dist/ai/source/CommonPopover.md +6 -1
  206. package/dist/ai/source/FlatListBox.md +19 -9
  207. package/dist/ai/source/GroupedListBox.md +19 -9
  208. package/dist/ai/source/OptionsContainer.md +25 -9
  209. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +61 -36
  210. package/dist/components/BbAlert/types.d.ts +9 -5
  211. package/dist/components/BbAlert/types.js +8 -3
  212. package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +3 -3
  213. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +26 -17
  214. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +103 -50
  215. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +20 -15
  216. package/dist/components/BbBadge/badgeButtonContext.d.ts +12 -1
  217. package/dist/components/BbBadge/types.d.ts +45 -15
  218. package/dist/components/BbBadge/types.js +12 -3
  219. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +89 -126
  220. package/dist/components/BbBaseButton/types.d.ts +23 -4
  221. package/dist/components/BbBaseButton/types.js +7 -1
  222. package/dist/components/BbBaseButton/useLinkState.d.ts +41 -0
  223. package/dist/components/BbBaseButton/useLinkState.js +70 -0
  224. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +130 -74
  225. package/dist/components/BbButton/types.d.ts +50 -13
  226. package/dist/components/BbButton/types.js +10 -3
  227. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +148 -95
  228. package/dist/components/BbCheckboxGroup/types.d.ts +34 -11
  229. package/dist/components/BbCheckboxGroup/types.js +9 -4
  230. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +1 -1
  231. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +134 -93
  232. package/dist/components/BbColorInput/types.d.ts +11 -4
  233. package/dist/components/BbColorInput/types.js +9 -3
  234. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +82 -59
  235. package/dist/components/BbConfirm/types.d.ts +9 -4
  236. package/dist/components/BbConfirm/types.js +8 -3
  237. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  238. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +68 -67
  239. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -1
  240. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +259 -215
  241. package/dist/components/BbDatePickerInput/types.d.ts +12 -5
  242. package/dist/components/BbDatePickerInput/types.js +9 -3
  243. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +223 -219
  244. package/dist/components/BbDialog/useDialogStack.d.ts +1 -1
  245. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +104 -89
  246. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -0
  247. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +323 -285
  248. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +1 -0
  249. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +411 -319
  250. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +100 -98
  251. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +4 -3
  252. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +49 -28
  253. package/dist/components/BbDropdown/normalizeGroups.d.ts +6 -0
  254. package/dist/components/BbDropdown/normalizeGroups.js +21 -15
  255. package/dist/components/BbDropdown/types.d.ts +59 -12
  256. package/dist/components/BbDropdown/types.js +16 -3
  257. package/dist/components/BbDropdown/useDropdownContext.d.ts +6 -0
  258. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +2 -1
  259. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +179 -68
  260. package/dist/components/BbDropdownButton/types.d.ts +44 -16
  261. package/dist/components/BbDropdownButton/types.js +28 -3
  262. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +111 -89
  263. package/dist/components/BbForm/formSchema.d.ts +13 -0
  264. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +100 -100
  265. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +40 -25
  266. package/dist/components/BbIndicator/types.d.ts +9 -5
  267. package/dist/components/BbIndicator/types.js +8 -3
  268. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +243 -202
  269. package/dist/components/BbNumberInput/types.d.ts +12 -5
  270. package/dist/components/BbNumberInput/types.js +9 -3
  271. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  272. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +401 -399
  273. package/dist/components/BbOffCanvas/types.d.ts +6 -2
  274. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +81 -80
  275. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +158 -105
  276. package/dist/components/BbRadioGroup/types.d.ts +21 -7
  277. package/dist/components/BbRadioGroup/types.js +9 -4
  278. package/dist/components/BbSelect/BbSelect.vue.d.ts +4 -3
  279. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +181 -137
  280. package/dist/components/BbSelect/types.d.ts +36 -22
  281. package/dist/components/BbSelect/types.js +22 -3
  282. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +4 -4
  283. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +600 -577
  284. package/dist/components/BbSelectPopover/knownItems.d.ts +5 -0
  285. package/dist/components/BbSelectPopover/types.d.ts +46 -12
  286. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  287. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +2 -2
  288. package/dist/components/BbSwitchGroup/types.d.ts +14 -4
  289. package/dist/components/BbSwitchGroup/types.js +8 -3
  290. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1102 -995
  291. package/dist/components/BbTable/estimatedFloors.golden.d.ts +25 -0
  292. package/dist/components/BbTable/measuredFloors.d.ts +46 -0
  293. package/dist/components/BbTable/measuredFloors.js +322 -0
  294. package/dist/components/BbTable/measuredFloorsTestKit.d.ts +27 -0
  295. package/dist/components/BbTable/textRuler.d.ts +71 -0
  296. package/dist/components/BbTable/textRuler.js +121 -0
  297. package/dist/components/BbTable/utils.d.ts +113 -6
  298. package/dist/components/BbTable/utils.js +118 -65
  299. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +53 -35
  300. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +62 -45
  301. package/dist/components/BbTabs/types.d.ts +26 -11
  302. package/dist/components/BbTabs/types.js +23 -8
  303. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +205 -164
  304. package/dist/components/BbTag/types.d.ts +11 -4
  305. package/dist/components/BbTag/types.js +9 -3
  306. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +98 -57
  307. package/dist/components/BbTextInput/types.d.ts +12 -5
  308. package/dist/components/BbTextInput/types.js +9 -3
  309. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +137 -96
  310. package/dist/components/BbTextarea/types.d.ts +12 -5
  311. package/dist/components/BbTextarea/types.js +9 -3
  312. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +105 -104
  313. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +241 -197
  314. package/dist/components/BbTimePickerInput/types.d.ts +12 -5
  315. package/dist/components/BbTimePickerInput/types.js +9 -3
  316. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +74 -32
  317. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +47 -47
  318. package/dist/components/BbToast/types.d.ts +10 -5
  319. package/dist/components/BbToast/types.js +18 -3
  320. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +85 -71
  321. package/dist/components/BbTooltip/types.d.ts +13 -8
  322. package/dist/components/BbTooltip/types.js +8 -3
  323. package/dist/components/CommonField/CommonField.vue.d.ts +1 -1
  324. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +1 -1
  325. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +69 -69
  326. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +53 -50
  327. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +146 -143
  328. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +7 -2
  329. package/dist/components/OptionsContainer/types.d.ts +14 -3
  330. package/dist/composables/useBbConfig.d.ts +1 -0
  331. package/dist/composables/useBbConfig.js +11 -7
  332. package/dist/composables/useBbFormContext.d.ts +4 -3
  333. package/dist/composables/useBbTabsContext.js +99 -85
  334. package/dist/composables/useChoiceIndicator.d.ts +58 -0
  335. package/dist/composables/useChoiceIndicator.js +197 -0
  336. package/dist/composables/useConfirm.d.ts +4 -4
  337. package/dist/composables/usePassthrough.d.ts +54 -1
  338. package/dist/composables/usePassthrough.js +100 -71
  339. package/dist/directives/bbTooltip.d.ts +12 -6
  340. package/dist/directives/createPopoverDirective.js +1 -1
  341. package/dist/index.d.ts +3 -1
  342. package/dist/llms-full.txt +3467 -801
  343. package/dist/llms-medium.txt +71 -53
  344. package/dist/llms.txt +2 -1
  345. package/dist/passthrough-deduper.js +6 -3
  346. package/dist/project-dts.d.ts +24 -0
  347. package/dist/project-dts.js +43 -17
  348. package/dist/styles.css +2 -2
  349. package/dist/types/AlertVariant.d.ts +14 -0
  350. package/dist/types/AlertVariant.js +9 -0
  351. package/dist/types/BadgeVariant.d.ts +14 -0
  352. package/dist/types/BadgeVariant.js +9 -0
  353. package/dist/types/ButtonVariant.d.ts +16 -0
  354. package/dist/types/ButtonVariant.js +11 -0
  355. package/dist/types/CheckboxVariant.d.ts +38 -0
  356. package/dist/types/CheckboxVariant.js +4 -0
  357. package/dist/types/CommonProps.d.ts +4 -3
  358. package/dist/types/Config.d.ts +7 -0
  359. package/dist/types/ConfirmVariant.d.ts +12 -0
  360. package/dist/types/ConfirmVariant.js +4 -0
  361. package/dist/types/DropdownItemVariant.d.ts +12 -0
  362. package/dist/types/DropdownItemVariant.js +4 -0
  363. package/dist/types/IndicatorVariant.d.ts +15 -0
  364. package/dist/types/IndicatorVariant.js +10 -0
  365. package/dist/types/InputVariant.d.ts +13 -0
  366. package/dist/types/InputVariant.js +8 -0
  367. package/dist/types/RadioVariant.d.ts +38 -0
  368. package/dist/types/RadioVariant.js +4 -0
  369. package/dist/types/TabsVariant.d.ts +13 -0
  370. package/dist/types/TabsVariant.js +8 -0
  371. package/dist/types/ToastVariant.d.ts +15 -0
  372. package/dist/types/ToastVariant.js +10 -0
  373. package/dist/types/TooltipVariant.d.ts +12 -0
  374. package/dist/types/TooltipVariant.js +4 -0
  375. package/dist/types/passthrough.d.ts +83 -15
  376. package/dist/types/passthrough.js +2 -2
  377. package/dist/types/ptComponentMap.d.ts +35 -23
  378. package/dist/utilities/functions/extractDomContainer.d.ts +20 -1
  379. package/dist/utilities/functions/extractDomContainer.js +8 -3
  380. package/dist/utils/focusVisibility.d.ts +6 -0
  381. package/dist/utils/focusVisibility.js +4 -1
  382. package/dist/utils/passthroughDeduper.d.ts +14 -0
  383. package/dist/utils/versionCheck.js +1 -1
  384. package/dist/vite-plugin.d.ts +64 -7
  385. package/dist/vite.js +385 -259
  386. package/llms.txt +2 -1
  387. package/package.json +5 -4
  388. package/scripts/lib/adoption-checklist.json +312 -0
  389. package/scripts/lib/eslint-plugin.d.ts +13 -0
  390. package/scripts/lib/eslint-plugin.mjs +75 -11
  391. package/scripts/lib/helpers-add.mjs +26 -2
  392. package/scripts/lib/idiom-scan.mjs +65 -0
  393. package/scripts/lib/mcp-config.mjs +203 -9
  394. package/scripts/lib/migrate-fix.mjs +42 -1
  395. package/scripts/lib/project-variant-dts.mjs +18 -0
  396. package/scripts/lib/validate-bb-markup.mjs +99 -2
@@ -35,7 +35,7 @@ import {
35
35
  useAttrs,
36
36
  watch,
37
37
  } from 'vue';
38
- import { usePassthrough } from '@/composables/usePassthrough';
38
+ import { usePassthrough, variantPt } from '@/composables/usePassthrough';
39
39
  import { useConfig } from '@/composables/useConfig';
40
40
  import {
41
41
  toastState,
@@ -49,7 +49,11 @@ import type { BbToast, BbToastPosition } from './types';
49
49
  import BbToastRegion from './BbToastRegion.vue';
50
50
  import { BB_TOAST_PT, type BbToastProps } from './types';
51
51
 
52
- defineOptions({ inheritAttrs: false });
52
+ defineOptions({
53
+ // An app's own variants as declared `pt:<part>:<name>` props (Q76.7).
54
+ mixins: [variantPt(BB_TOAST_PT)],
55
+ inheritAttrs: false,
56
+ });
53
57
  const props = defineProps<BbToastProps>();
54
58
 
55
59
  /** Passthrough (plans/passthrough/BbToast.md) — handed down to every region and card. */
@@ -60,6 +64,8 @@ const passthrough = usePassthrough({
60
64
  parts: BB_TOAST_PT.parts,
61
65
  states: BB_TOAST_PT.states,
62
66
  active: {},
67
+ // Per toast: each card passes its own variant to `part()`.
68
+ variant: BB_TOAST_PT.variant,
63
69
  });
64
70
 
65
71
  const config = useConfig();
@@ -151,9 +157,14 @@ const regions = computed(() => {
151
157
 
152
158
  ```ts
153
159
  import type { Component } from 'vue';
154
- import type { PtMap, PtValue } from '@/types/passthrough';
160
+ import type { PtMap, PtValue, PtVariantAttrs } from '@/types/passthrough';
155
161
  import type { IconType } from '@/types/Icon';
156
- import type { ToastVariantType } from '@/types/ToastVariant';
162
+ import {
163
+ TOAST_VARIANTS,
164
+ type ToastVariantBuiltIn,
165
+ type ToastVariantRegistry,
166
+ type ToastVariantType,
167
+ } from '@/types/ToastVariant';
157
168
  import type { ActionButtonConfig } from '@/types/ActionButton';
158
169
 
159
170
  /**
@@ -324,11 +335,31 @@ export const BB_TOAST_PT = {
324
335
  'close',
325
336
  ],
326
337
  rowStates: ['loading'],
338
+ // Each toast's `variant` is a state on its card parts (Q76.7), below `loading`.
339
+ variant: {
340
+ names: TOAST_VARIANTS,
341
+ option: 'toastVariants',
342
+ parts: [
343
+ 'panel',
344
+ 'icon',
345
+ 'content',
346
+ 'title',
347
+ 'text',
348
+ 'footer',
349
+ 'action',
350
+ 'close',
351
+ ],
352
+ },
327
353
  } as const satisfies {
328
354
  parts: readonly BbToastPtPart[];
329
355
  states: readonly BbToastPtState[];
330
356
  rowParts: readonly BbToastPtPart[];
331
357
  rowStates: readonly BbToastPtState[];
358
+ variant: {
359
+ names: readonly ToastVariantBuiltIn[];
360
+ option: string;
361
+ parts: readonly BbToastCardPtPart[];
362
+ };
332
363
  };
333
364
 
334
365
  // Spelled INLINE with this component's own union (Vue's SFC type resolver
@@ -336,18 +367,26 @@ export const BB_TOAST_PT = {
336
367
  // `loading` is a card state: declared on the card parts, never on `root`.
337
368
  // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
338
369
  export type BbToastProps = {
339
- [K in `pt:${BbToastPtPart}` | `pt:${BbToastCardPtPart}:loading`]?: PtValue;
340
- } & {
341
- /**
342
- * Passthrough, object form: the same keys as the `pt:*` attributes
343
- * without the prefix. See the `pt:<part>` row.
344
- */
345
- // Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
346
- // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
347
- pt?: PtMap<BbToastPtPart, never> & {
348
- [K in `${BbToastCardPtPart}:loading`]?: PtValue;
370
+ [K in
371
+ | `pt:${BbToastPtPart}`
372
+ | `pt:${BbToastCardPtPart}:loading`
373
+ | `pt:${BbToastCardPtPart}:${ToastVariantBuiltIn}`]?: PtValue;
374
+ } & /* @vue-ignore */ PtVariantAttrs<
375
+ BbToastCardPtPart,
376
+ keyof ToastVariantRegistry
377
+ > & {
378
+ /**
379
+ * Passthrough, object form: the same keys as the `pt:*` attributes
380
+ * without the prefix. See the `pt:<part>` row.
381
+ */
382
+ // Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
383
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
384
+ pt?: PtMap<BbToastPtPart, never> & {
385
+ [K in
386
+ | `${BbToastCardPtPart}:loading`
387
+ | `${BbToastCardPtPart}:${ToastVariantBuiltIn | keyof ToastVariantRegistry}`]?: PtValue;
388
+ };
349
389
  };
350
- };
351
390
  ```
352
391
 
353
392
  ## Styles
@@ -362,7 +401,7 @@ export type BbToastProps = {
362
401
  * --front-index distance from the front of the pile (0 = newest/front)
363
402
  * --height-before combined px height of the toasts in front (expanded layout)
364
403
  * --front-height px height of the front toast (collapsed pile sizing)
365
- * --toast-height px height of this toast's own content
404
+ * --toast-height px height of this toast's card (content + edge)
366
405
  * --z z-index (front toast highest)
367
406
  * --swipe-amount live px offset while the user drags to dismiss
368
407
  *
@@ -448,8 +487,10 @@ export type BbToastProps = {
448
487
  --r: min(var(--bb-radius), 10px);
449
488
  --ring-size: 2px; /* focus ring on the close button */
450
489
  --bg: var(--bb-panel); /* card fill, and the close button's own fill */
451
- /* Card edge, painted as an inset ring (the card carries no `border`) */
452
- --border-color: var(--bb-border);
490
+ --border-color: var(--bb-border); /* card edge */
491
+ /* Edge width: a real `border`, counted in the measured height; the inner
492
+ padding and the × take it back, so the card keeps its size. */
493
+ --bw: var(--bb-border-w);
453
494
  --fg: var(--bb-text); /* title, text and close glyph */
454
495
  /* The status glyph only — the variants below re-point this and nothing else */
455
496
  --icon-color: var(--bb-text);
@@ -462,15 +503,12 @@ export type BbToastProps = {
462
503
  -webkit-backdrop-filter: var(--bb-surface-filter);
463
504
  backdrop-filter: var(--bb-surface-filter);
464
505
  background-color: var(--bg);
506
+ border: var(--bw) solid var(--border-color);
465
507
  border-radius: min(var(--r), 14px);
466
- /* --bb-shadow like every other floating surface (BbDialog, BbPopover, …) —
467
- was a hand-rolled light-only pair that stayed flat once the page went
468
- dark. The inset ring is the border; kept as its own layer since the card
469
- has no `border` property to carry it. */
470
- box-shadow:
471
- var(--bb-shadow),
472
- inset 0 0 0 var(--bb-border-w) var(--border-color);
473
-
508
+ /* --bb-shadow like every other floating surface (BbDialog, BbPopover, …),
509
+ alone in the property, so `--bb-shadow: none` turns it off and keeps
510
+ the edge. */
511
+ box-shadow: var(--bb-shadow);
474
512
  box-sizing: border-box;
475
513
  color: var(--fg);
476
514
  height: var(--toast-height);
@@ -559,7 +597,7 @@ export type BbToastProps = {
559
597
  box-sizing: border-box;
560
598
  display: flex;
561
599
  gap: 12px;
562
- padding: 14px 16px;
600
+ padding: calc(14px - var(--bw)) calc(16px - var(--bw));
563
601
  transition: opacity 0.3s var(--bb-ease);
564
602
  width: 100%;
565
603
  }
@@ -633,12 +671,14 @@ export type BbToastProps = {
633
671
  cursor: pointer;
634
672
  display: flex;
635
673
  height: 22px;
636
- inset-inline-end: 8px;
674
+ /* 8px from the card's outer corner: the containing block starts inside
675
+ the edge. */
676
+ inset-inline-end: calc(8px - var(--bw));
637
677
  justify-content: center;
638
678
  opacity: 0;
639
679
  padding: 0;
640
680
  position: absolute;
641
- top: 8px;
681
+ top: calc(8px - var(--bw));
642
682
  transition:
643
683
  opacity 0.15s var(--bb-ease),
644
684
  background-color 0.15s var(--bb-ease);
@@ -729,10 +769,11 @@ export type BbToastProps = {
729
769
  &::after {
730
770
  --hit: 44px;
731
771
  content: '';
732
- height: calc(var(--hit) - 2px);
733
- inset-inline-end: -8px; /* the button's inset from the card corner */
772
+ /* From inside the edge (the card clips there), bottom unchanged. */
773
+ height: calc(var(--hit) - 2px - var(--bw));
774
+ inset-inline-end: calc(var(--bw) - 8px);
734
775
  position: absolute;
735
- top: -8px;
776
+ top: calc(var(--bw) - 8px);
736
777
  width: var(--hit);
737
778
  }
738
779
  }
@@ -56,9 +56,14 @@ watchEffect((onCleanup) => {
56
56
 
57
57
  ```ts
58
58
  import type { Component } from 'vue';
59
- import type { PtMap, PtValue } from '@/types/passthrough';
59
+ import type { PtMap, PtValue, PtVariantAttrs } from '@/types/passthrough';
60
60
  import type { IconType } from '@/types/Icon';
61
- import type { ToastVariantType } from '@/types/ToastVariant';
61
+ import {
62
+ TOAST_VARIANTS,
63
+ type ToastVariantBuiltIn,
64
+ type ToastVariantRegistry,
65
+ type ToastVariantType,
66
+ } from '@/types/ToastVariant';
62
67
  import type { ActionButtonConfig } from '@/types/ActionButton';
63
68
 
64
69
  /**
@@ -229,11 +234,31 @@ export const BB_TOAST_PT = {
229
234
  'close',
230
235
  ],
231
236
  rowStates: ['loading'],
237
+ // Each toast's `variant` is a state on its card parts (Q76.7), below `loading`.
238
+ variant: {
239
+ names: TOAST_VARIANTS,
240
+ option: 'toastVariants',
241
+ parts: [
242
+ 'panel',
243
+ 'icon',
244
+ 'content',
245
+ 'title',
246
+ 'text',
247
+ 'footer',
248
+ 'action',
249
+ 'close',
250
+ ],
251
+ },
232
252
  } as const satisfies {
233
253
  parts: readonly BbToastPtPart[];
234
254
  states: readonly BbToastPtState[];
235
255
  rowParts: readonly BbToastPtPart[];
236
256
  rowStates: readonly BbToastPtState[];
257
+ variant: {
258
+ names: readonly ToastVariantBuiltIn[];
259
+ option: string;
260
+ parts: readonly BbToastCardPtPart[];
261
+ };
237
262
  };
238
263
 
239
264
  // Spelled INLINE with this component's own union (Vue's SFC type resolver
@@ -241,18 +266,26 @@ export const BB_TOAST_PT = {
241
266
  // `loading` is a card state: declared on the card parts, never on `root`.
242
267
  // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
243
268
  export type BbToastProps = {
244
- [K in `pt:${BbToastPtPart}` | `pt:${BbToastCardPtPart}:loading`]?: PtValue;
245
- } & {
246
- /**
247
- * Passthrough, object form: the same keys as the `pt:*` attributes
248
- * without the prefix. See the `pt:<part>` row.
249
- */
250
- // Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
251
- // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
252
- pt?: PtMap<BbToastPtPart, never> & {
253
- [K in `${BbToastCardPtPart}:loading`]?: PtValue;
269
+ [K in
270
+ | `pt:${BbToastPtPart}`
271
+ | `pt:${BbToastCardPtPart}:loading`
272
+ | `pt:${BbToastCardPtPart}:${ToastVariantBuiltIn}`]?: PtValue;
273
+ } & /* @vue-ignore */ PtVariantAttrs<
274
+ BbToastCardPtPart,
275
+ keyof ToastVariantRegistry
276
+ > & {
277
+ /**
278
+ * Passthrough, object form: the same keys as the `pt:*` attributes
279
+ * without the prefix. See the `pt:<part>` row.
280
+ */
281
+ // Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
282
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
283
+ pt?: PtMap<BbToastPtPart, never> & {
284
+ [K in
285
+ | `${BbToastCardPtPart}:loading`
286
+ | `${BbToastCardPtPart}:${ToastVariantBuiltIn | keyof ToastVariantRegistry}`]?: PtValue;
287
+ };
254
288
  };
255
- };
256
289
  ```
257
290
 
258
291
  ## Styles
@@ -267,7 +300,7 @@ export type BbToastProps = {
267
300
  * --front-index distance from the front of the pile (0 = newest/front)
268
301
  * --height-before combined px height of the toasts in front (expanded layout)
269
302
  * --front-height px height of the front toast (collapsed pile sizing)
270
- * --toast-height px height of this toast's own content
303
+ * --toast-height px height of this toast's card (content + edge)
271
304
  * --z z-index (front toast highest)
272
305
  * --swipe-amount live px offset while the user drags to dismiss
273
306
  *
@@ -353,8 +386,10 @@ export type BbToastProps = {
353
386
  --r: min(var(--bb-radius), 10px);
354
387
  --ring-size: 2px; /* focus ring on the close button */
355
388
  --bg: var(--bb-panel); /* card fill, and the close button's own fill */
356
- /* Card edge, painted as an inset ring (the card carries no `border`) */
357
- --border-color: var(--bb-border);
389
+ --border-color: var(--bb-border); /* card edge */
390
+ /* Edge width: a real `border`, counted in the measured height; the inner
391
+ padding and the × take it back, so the card keeps its size. */
392
+ --bw: var(--bb-border-w);
358
393
  --fg: var(--bb-text); /* title, text and close glyph */
359
394
  /* The status glyph only — the variants below re-point this and nothing else */
360
395
  --icon-color: var(--bb-text);
@@ -367,15 +402,12 @@ export type BbToastProps = {
367
402
  -webkit-backdrop-filter: var(--bb-surface-filter);
368
403
  backdrop-filter: var(--bb-surface-filter);
369
404
  background-color: var(--bg);
405
+ border: var(--bw) solid var(--border-color);
370
406
  border-radius: min(var(--r), 14px);
371
- /* --bb-shadow like every other floating surface (BbDialog, BbPopover, …) —
372
- was a hand-rolled light-only pair that stayed flat once the page went
373
- dark. The inset ring is the border; kept as its own layer since the card
374
- has no `border` property to carry it. */
375
- box-shadow:
376
- var(--bb-shadow),
377
- inset 0 0 0 var(--bb-border-w) var(--border-color);
378
-
407
+ /* --bb-shadow like every other floating surface (BbDialog, BbPopover, …),
408
+ alone in the property, so `--bb-shadow: none` turns it off and keeps
409
+ the edge. */
410
+ box-shadow: var(--bb-shadow);
379
411
  box-sizing: border-box;
380
412
  color: var(--fg);
381
413
  height: var(--toast-height);
@@ -464,7 +496,7 @@ export type BbToastProps = {
464
496
  box-sizing: border-box;
465
497
  display: flex;
466
498
  gap: 12px;
467
- padding: 14px 16px;
499
+ padding: calc(14px - var(--bw)) calc(16px - var(--bw));
468
500
  transition: opacity 0.3s var(--bb-ease);
469
501
  width: 100%;
470
502
  }
@@ -538,12 +570,14 @@ export type BbToastProps = {
538
570
  cursor: pointer;
539
571
  display: flex;
540
572
  height: 22px;
541
- inset-inline-end: 8px;
573
+ /* 8px from the card's outer corner: the containing block starts inside
574
+ the edge. */
575
+ inset-inline-end: calc(8px - var(--bw));
542
576
  justify-content: center;
543
577
  opacity: 0;
544
578
  padding: 0;
545
579
  position: absolute;
546
- top: 8px;
580
+ top: calc(8px - var(--bw));
547
581
  transition:
548
582
  opacity 0.15s var(--bb-ease),
549
583
  background-color 0.15s var(--bb-ease);
@@ -634,10 +668,11 @@ export type BbToastProps = {
634
668
  &::after {
635
669
  --hit: 44px;
636
670
  content: '';
637
- height: calc(var(--hit) - 2px);
638
- inset-inline-end: -8px; /* the button's inset from the card corner */
671
+ /* From inside the edge (the card clips there), bottom unchanged. */
672
+ height: calc(var(--hit) - 2px - var(--bw));
673
+ inset-inline-end: calc(var(--bw) - 8px);
639
674
  position: absolute;
640
- top: -8px;
675
+ top: calc(var(--bw) - 8px);
641
676
  width: var(--hit);
642
677
  }
643
678
  }