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

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 (377) 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 +416 -6
  47. package/dist/ai/components.json +50 -48
  48. package/dist/ai/composables/useConfirm.md +39 -1
  49. package/dist/ai/design-tokens.json +6 -6
  50. package/dist/ai/guides/agent-contract.md +2 -2
  51. package/dist/ai/guides/ai-router.md +24 -23
  52. package/dist/ai/guides/app-layout.md +5 -0
  53. package/dist/ai/guides/component-picker.md +9 -2
  54. package/dist/ai/guides/design-language.md +24 -24
  55. package/dist/ai/guides/design-tokens.md +15 -8
  56. package/dist/ai/guides/icons-policy.md +9 -2
  57. package/dist/ai/guides/inertia-helpers.md +79 -49
  58. package/dist/ai/guides/installation-and-plugin-setup.md +12 -2
  59. package/dist/ai/guides/migration/adoption-checklist.md +235 -0
  60. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -15
  61. package/dist/ai/guides/migration/components/bb-dialog.md +9 -9
  62. package/dist/ai/guides/migration/components/bb-dropdown.md +7 -2
  63. package/dist/ai/guides/migration/components/bb-popover.md +4 -2
  64. package/dist/ai/guides/migration/components/bb-select.md +19 -0
  65. package/dist/ai/guides/migration/components/bb-table.md +1 -0
  66. package/dist/ai/guides/migration/components/bb-toast.md +4 -0
  67. package/dist/ai/guides/migration/components/bb-tooltip.md +15 -12
  68. package/dist/ai/guides/migration/components/use-confirm.md +25 -2
  69. package/dist/ai/guides/migration/v2-to-v3.md +163 -9
  70. package/dist/ai/guides/migration/v3-beta-css-classes.md +7 -3
  71. package/dist/ai/guides/options-items-playbook.md +2 -1
  72. package/dist/ai/guides/passthrough.md +147 -85
  73. package/dist/ai/guides/preset-components.md +140 -15
  74. package/dist/ai/helpers/definePreset.json +7 -0
  75. package/dist/ai/helpers/definePreset.ts +123 -11
  76. package/dist/ai/helpers/inertia/manifest.json +15 -9
  77. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +4 -4
  78. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +39 -24
  79. package/dist/ai/helpers/inertia/useRouteQuery.ts +10 -4
  80. package/dist/ai/index.md +1 -0
  81. package/dist/ai/manifest/common.json +0 -1
  82. package/dist/ai/manifest/components/BbAlert.json +7 -2
  83. package/dist/ai/manifest/components/BbBadge.json +13 -4
  84. package/dist/ai/manifest/components/BbBadge.tree.json +2 -0
  85. package/dist/ai/manifest/components/BbBadgeButton.json +4 -2
  86. package/dist/ai/manifest/components/BbBaseButton.json +4 -2
  87. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  88. package/dist/ai/manifest/components/BbButton.json +14 -3
  89. package/dist/ai/manifest/components/BbButton.tree.json +5 -1
  90. package/dist/ai/manifest/components/BbCheckboxGroup.json +13 -8
  91. package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +11 -1
  92. package/dist/ai/manifest/components/BbColorInput.json +18 -15
  93. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  94. package/dist/ai/manifest/components/BbConfirm.json +4 -2
  95. package/dist/ai/manifest/components/BbConfirm.tree.json +1 -1
  96. package/dist/ai/manifest/components/BbDatePicker.json +1 -1
  97. package/dist/ai/manifest/components/BbDatePickerInput.json +17 -14
  98. package/dist/ai/manifest/components/BbDialog.tree.json +2 -1
  99. package/dist/ai/manifest/components/BbDropdown.json +24 -19
  100. package/dist/ai/manifest/components/BbDropdown.tree.json +9 -2
  101. package/dist/ai/manifest/components/BbDropdownButton.json +33 -20
  102. package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -2
  103. package/dist/ai/manifest/components/BbForm.json +2 -2
  104. package/dist/ai/manifest/components/BbHost.tree.json +1 -1
  105. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  106. package/dist/ai/manifest/components/BbIndicator.json +8 -2
  107. package/dist/ai/manifest/components/BbNumberInput.json +5 -2
  108. package/dist/ai/manifest/components/BbOffCanvas.json +2 -2
  109. package/dist/ai/manifest/components/BbOffCanvas.tree.json +1 -1
  110. package/dist/ai/manifest/components/BbPopover.json +1 -1
  111. package/dist/ai/manifest/components/BbRadioGroup.json +17 -12
  112. package/dist/ai/manifest/components/BbRadioGroup.tree.json +8 -1
  113. package/dist/ai/manifest/components/BbSelect.json +21 -18
  114. package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
  115. package/dist/ai/manifest/components/BbSelectPopover.json +10 -10
  116. package/dist/ai/manifest/components/BbSelectPopover.tree.json +3 -2
  117. package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
  118. package/dist/ai/manifest/components/BbSwitchGroup.tree.json +3 -1
  119. package/dist/ai/manifest/components/BbTable.tree.json +14 -1
  120. package/dist/ai/manifest/components/BbTabs.json +9 -6
  121. package/dist/ai/manifest/components/BbTabs.tree.json +1 -1
  122. package/dist/ai/manifest/components/BbTabsList.json +6 -3
  123. package/dist/ai/manifest/components/BbTag.json +19 -16
  124. package/dist/ai/manifest/components/BbTag.tree.json +1 -1
  125. package/dist/ai/manifest/components/BbTextInput.json +6 -3
  126. package/dist/ai/manifest/components/BbTextarea.json +6 -3
  127. package/dist/ai/manifest/components/BbTimePicker.json +1 -1
  128. package/dist/ai/manifest/components/BbTimePickerInput.json +10 -7
  129. package/dist/ai/manifest/components/BbToast.json +7 -2
  130. package/dist/ai/manifest/components/BbToast.tree.json +4 -2
  131. package/dist/ai/manifest/components/BbTooltip.json +6 -5
  132. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  133. package/dist/ai/manifest/components/CommonField.json +1 -1
  134. package/dist/ai/manifest/components/OptionsContainer.json +3 -1
  135. package/dist/ai/manifest/components/OptionsContainer.tree.json +38 -0
  136. package/dist/ai/manifest/index.json +3 -3
  137. package/dist/ai/manifest/meta.json +5 -3
  138. package/dist/ai/manifest/types.advanced.json +5 -2
  139. package/dist/ai/manifest/types.api.json +9 -7
  140. package/dist/ai/recipes/inertia/layout-scaffold.md +19 -6
  141. package/dist/ai/recipes/inertia/records-workspace.md +49 -13
  142. package/dist/ai/recipes/nuxt/layout-scaffold.md +19 -6
  143. package/dist/ai/recipes/nuxt/records-workspace.md +42 -12
  144. package/dist/ai/recipes/vue/layout-scaffold.md +19 -6
  145. package/dist/ai/recipes/vue/records-workspace.md +42 -12
  146. package/dist/ai/source/BbAlert.md +94 -76
  147. package/dist/ai/source/BbBadge.md +174 -72
  148. package/dist/ai/source/BbBadgeButton.md +130 -65
  149. package/dist/ai/source/BbBaseButton.md +46 -124
  150. package/dist/ai/source/BbBaseCheckboxIcon.md +38 -0
  151. package/dist/ai/source/BbBaseRadioIcon.md +18 -0
  152. package/dist/ai/source/BbBaseSwitchIcon.md +51 -0
  153. package/dist/ai/source/BbButton.md +153 -36
  154. package/dist/ai/source/BbCheckboxGroup.md +142 -18
  155. package/dist/ai/source/BbColorInput.md +240 -204
  156. package/dist/ai/source/BbColorPalette.md +7 -4
  157. package/dist/ai/source/BbConfirm.md +34 -11
  158. package/dist/ai/source/BbConfirmPortal.md +24 -9
  159. package/dist/ai/source/BbDatePicker.md +11 -7
  160. package/dist/ai/source/BbDatePickerInput.md +306 -269
  161. package/dist/ai/source/BbDialog.md +49 -14
  162. package/dist/ai/source/BbDropdown.md +314 -197
  163. package/dist/ai/source/BbDropdownButton.md +197 -31
  164. package/dist/ai/source/BbDropdownGroup.md +274 -176
  165. package/dist/ai/source/BbForm.md +50 -6
  166. package/dist/ai/source/BbHoverCard.md +12 -5
  167. package/dist/ai/source/BbIcon.md +4 -3
  168. package/dist/ai/source/BbIndicator.md +73 -52
  169. package/dist/ai/source/BbNumberInput.md +293 -257
  170. package/dist/ai/source/BbOffCanvas.md +55 -29
  171. package/dist/ai/source/BbPopover.md +14 -10
  172. package/dist/ai/source/BbRadioGroup.md +413 -297
  173. package/dist/ai/source/BbSelect.md +549 -435
  174. package/dist/ai/source/BbSelectPopover.md +128 -33
  175. package/dist/ai/source/BbSwitchGroup.md +70 -10
  176. package/dist/ai/source/BbTable.md +369 -37
  177. package/dist/ai/source/BbTabs.md +115 -39
  178. package/dist/ai/source/BbTabsList.md +106 -38
  179. package/dist/ai/source/BbTabsPanels.md +96 -36
  180. package/dist/ai/source/BbTabsRoot.md +96 -36
  181. package/dist/ai/source/BbTag.md +267 -233
  182. package/dist/ai/source/BbTextInput.md +261 -225
  183. package/dist/ai/source/BbTextarea.md +251 -215
  184. package/dist/ai/source/BbTimePicker.md +11 -7
  185. package/dist/ai/source/BbTimePickerInput.md +257 -220
  186. package/dist/ai/source/BbToast.md +73 -32
  187. package/dist/ai/source/BbToastPortal.md +65 -30
  188. package/dist/ai/source/BbTooltip.md +148 -113
  189. package/dist/ai/source/CommonPopover.md +6 -1
  190. package/dist/ai/source/FlatListBox.md +19 -9
  191. package/dist/ai/source/GroupedListBox.md +19 -9
  192. package/dist/ai/source/OptionsContainer.md +25 -9
  193. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +61 -36
  194. package/dist/components/BbAlert/types.d.ts +9 -5
  195. package/dist/components/BbAlert/types.js +8 -3
  196. package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +3 -3
  197. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +26 -17
  198. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +103 -50
  199. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +20 -15
  200. package/dist/components/BbBadge/badgeButtonContext.d.ts +12 -1
  201. package/dist/components/BbBadge/types.d.ts +45 -15
  202. package/dist/components/BbBadge/types.js +12 -3
  203. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +89 -126
  204. package/dist/components/BbBaseButton/types.d.ts +23 -4
  205. package/dist/components/BbBaseButton/types.js +7 -1
  206. package/dist/components/BbBaseButton/useLinkState.d.ts +41 -0
  207. package/dist/components/BbBaseButton/useLinkState.js +70 -0
  208. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +130 -74
  209. package/dist/components/BbButton/types.d.ts +50 -13
  210. package/dist/components/BbButton/types.js +10 -3
  211. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +148 -95
  212. package/dist/components/BbCheckboxGroup/types.d.ts +34 -11
  213. package/dist/components/BbCheckboxGroup/types.js +9 -4
  214. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +1 -1
  215. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +134 -93
  216. package/dist/components/BbColorInput/types.d.ts +11 -4
  217. package/dist/components/BbColorInput/types.js +9 -3
  218. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +82 -59
  219. package/dist/components/BbConfirm/types.d.ts +9 -4
  220. package/dist/components/BbConfirm/types.js +8 -3
  221. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  222. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +68 -67
  223. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -1
  224. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +259 -215
  225. package/dist/components/BbDatePickerInput/types.d.ts +12 -5
  226. package/dist/components/BbDatePickerInput/types.js +9 -3
  227. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +223 -219
  228. package/dist/components/BbDialog/useDialogStack.d.ts +1 -1
  229. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +104 -89
  230. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -0
  231. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +323 -285
  232. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +1 -0
  233. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +411 -319
  234. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +100 -98
  235. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +4 -3
  236. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +49 -28
  237. package/dist/components/BbDropdown/normalizeGroups.d.ts +6 -0
  238. package/dist/components/BbDropdown/normalizeGroups.js +21 -15
  239. package/dist/components/BbDropdown/types.d.ts +59 -12
  240. package/dist/components/BbDropdown/types.js +16 -3
  241. package/dist/components/BbDropdown/useDropdownContext.d.ts +6 -0
  242. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +2 -1
  243. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +179 -68
  244. package/dist/components/BbDropdownButton/types.d.ts +44 -16
  245. package/dist/components/BbDropdownButton/types.js +28 -3
  246. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +111 -89
  247. package/dist/components/BbForm/formSchema.d.ts +13 -0
  248. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +100 -100
  249. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +40 -25
  250. package/dist/components/BbIndicator/types.d.ts +9 -5
  251. package/dist/components/BbIndicator/types.js +8 -3
  252. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +243 -202
  253. package/dist/components/BbNumberInput/types.d.ts +12 -5
  254. package/dist/components/BbNumberInput/types.js +9 -3
  255. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  256. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +401 -399
  257. package/dist/components/BbOffCanvas/types.d.ts +6 -2
  258. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +81 -80
  259. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +158 -105
  260. package/dist/components/BbRadioGroup/types.d.ts +21 -7
  261. package/dist/components/BbRadioGroup/types.js +9 -4
  262. package/dist/components/BbSelect/BbSelect.vue.d.ts +4 -3
  263. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +181 -137
  264. package/dist/components/BbSelect/types.d.ts +36 -22
  265. package/dist/components/BbSelect/types.js +22 -3
  266. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +4 -4
  267. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +543 -532
  268. package/dist/components/BbSelectPopover/knownItems.d.ts +5 -0
  269. package/dist/components/BbSelectPopover/types.d.ts +46 -12
  270. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  271. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +2 -2
  272. package/dist/components/BbSwitchGroup/types.d.ts +14 -4
  273. package/dist/components/BbSwitchGroup/types.js +8 -3
  274. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1102 -995
  275. package/dist/components/BbTable/estimatedFloors.golden.d.ts +25 -0
  276. package/dist/components/BbTable/measuredFloors.d.ts +46 -0
  277. package/dist/components/BbTable/measuredFloors.js +322 -0
  278. package/dist/components/BbTable/measuredFloorsTestKit.d.ts +27 -0
  279. package/dist/components/BbTable/textRuler.d.ts +71 -0
  280. package/dist/components/BbTable/textRuler.js +121 -0
  281. package/dist/components/BbTable/utils.d.ts +113 -6
  282. package/dist/components/BbTable/utils.js +118 -65
  283. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +53 -35
  284. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +62 -45
  285. package/dist/components/BbTabs/types.d.ts +26 -11
  286. package/dist/components/BbTabs/types.js +23 -8
  287. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +205 -164
  288. package/dist/components/BbTag/types.d.ts +11 -4
  289. package/dist/components/BbTag/types.js +9 -3
  290. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +98 -57
  291. package/dist/components/BbTextInput/types.d.ts +12 -5
  292. package/dist/components/BbTextInput/types.js +9 -3
  293. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +137 -96
  294. package/dist/components/BbTextarea/types.d.ts +12 -5
  295. package/dist/components/BbTextarea/types.js +9 -3
  296. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +105 -104
  297. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +241 -197
  298. package/dist/components/BbTimePickerInput/types.d.ts +12 -5
  299. package/dist/components/BbTimePickerInput/types.js +9 -3
  300. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +74 -32
  301. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +47 -47
  302. package/dist/components/BbToast/types.d.ts +10 -5
  303. package/dist/components/BbToast/types.js +18 -3
  304. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +85 -71
  305. package/dist/components/BbTooltip/types.d.ts +13 -8
  306. package/dist/components/BbTooltip/types.js +8 -3
  307. package/dist/components/CommonField/CommonField.vue.d.ts +1 -1
  308. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +1 -1
  309. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +69 -69
  310. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +53 -50
  311. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +146 -143
  312. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +7 -2
  313. package/dist/components/OptionsContainer/types.d.ts +14 -3
  314. package/dist/composables/useBbFormContext.d.ts +4 -3
  315. package/dist/composables/useBbTabsContext.js +99 -85
  316. package/dist/composables/useChoiceIndicator.d.ts +58 -0
  317. package/dist/composables/useChoiceIndicator.js +197 -0
  318. package/dist/composables/useConfirm.d.ts +4 -4
  319. package/dist/composables/usePassthrough.d.ts +54 -1
  320. package/dist/composables/usePassthrough.js +100 -71
  321. package/dist/directives/bbTooltip.d.ts +12 -6
  322. package/dist/directives/createPopoverDirective.js +1 -1
  323. package/dist/index.d.ts +3 -1
  324. package/dist/llms-full.txt +2300 -543
  325. package/dist/llms-medium.txt +71 -53
  326. package/dist/llms.txt +2 -1
  327. package/dist/passthrough-deduper.js +6 -3
  328. package/dist/project-dts.d.ts +24 -0
  329. package/dist/project-dts.js +43 -17
  330. package/dist/styles.css +2 -2
  331. package/dist/types/AlertVariant.d.ts +14 -0
  332. package/dist/types/AlertVariant.js +9 -0
  333. package/dist/types/BadgeVariant.d.ts +14 -0
  334. package/dist/types/BadgeVariant.js +9 -0
  335. package/dist/types/ButtonVariant.d.ts +16 -0
  336. package/dist/types/ButtonVariant.js +11 -0
  337. package/dist/types/CheckboxVariant.d.ts +38 -0
  338. package/dist/types/CheckboxVariant.js +4 -0
  339. package/dist/types/CommonProps.d.ts +4 -3
  340. package/dist/types/Config.d.ts +7 -0
  341. package/dist/types/ConfirmVariant.d.ts +12 -0
  342. package/dist/types/ConfirmVariant.js +4 -0
  343. package/dist/types/DropdownItemVariant.d.ts +12 -0
  344. package/dist/types/DropdownItemVariant.js +4 -0
  345. package/dist/types/IndicatorVariant.d.ts +15 -0
  346. package/dist/types/IndicatorVariant.js +10 -0
  347. package/dist/types/InputVariant.d.ts +13 -0
  348. package/dist/types/InputVariant.js +8 -0
  349. package/dist/types/RadioVariant.d.ts +38 -0
  350. package/dist/types/RadioVariant.js +4 -0
  351. package/dist/types/TabsVariant.d.ts +13 -0
  352. package/dist/types/TabsVariant.js +8 -0
  353. package/dist/types/ToastVariant.d.ts +15 -0
  354. package/dist/types/ToastVariant.js +10 -0
  355. package/dist/types/TooltipVariant.d.ts +12 -0
  356. package/dist/types/TooltipVariant.js +4 -0
  357. package/dist/types/passthrough.d.ts +83 -15
  358. package/dist/types/passthrough.js +2 -2
  359. package/dist/types/ptComponentMap.d.ts +35 -23
  360. package/dist/utilities/functions/extractDomContainer.d.ts +20 -1
  361. package/dist/utilities/functions/extractDomContainer.js +8 -3
  362. package/dist/utils/focusVisibility.d.ts +6 -0
  363. package/dist/utils/focusVisibility.js +4 -1
  364. package/dist/utils/passthroughDeduper.d.ts +14 -0
  365. package/dist/utils/versionCheck.js +1 -1
  366. package/dist/vite-plugin.d.ts +64 -7
  367. package/dist/vite.js +385 -259
  368. package/llms.txt +2 -1
  369. package/package.json +3 -3
  370. package/scripts/lib/adoption-checklist.json +312 -0
  371. package/scripts/lib/eslint-plugin.d.ts +13 -0
  372. package/scripts/lib/eslint-plugin.mjs +75 -11
  373. package/scripts/lib/idiom-scan.mjs +65 -0
  374. package/scripts/lib/mcp-config.mjs +203 -9
  375. package/scripts/lib/migrate-fix.mjs +42 -1
  376. package/scripts/lib/project-variant-dts.mjs +18 -0
  377. package/scripts/lib/validate-bb-markup.mjs +99 -2
@@ -1,4 +1,16 @@
1
- import { PtDataMap } from './passthrough';
1
+ import { PtDataMap, PtVariantDataMap } from './passthrough';
2
+ import { AlertVariantRegistry } from './AlertVariant';
3
+ import { BadgeVariantRegistry } from './BadgeVariant';
4
+ import { ButtonVariantRegistry } from './ButtonVariant';
5
+ import { CheckboxVariantRegistry } from './CheckboxVariant';
6
+ import { ConfirmVariantRegistry } from './ConfirmVariant';
7
+ import { DropdownItemVariantRegistry } from './DropdownItemVariant';
8
+ import { IndicatorVariantRegistry } from './IndicatorVariant';
9
+ import { InputVariantRegistry } from './InputVariant';
10
+ import { RadioVariantRegistry } from './RadioVariant';
11
+ import { TabsVariantRegistry } from './TabsVariant';
12
+ import { ToastVariantRegistry } from './ToastVariant';
13
+ import { TooltipVariantRegistry } from './TooltipVariant';
2
14
  /**
3
15
  * A build-time `pt` map with every component name and every `part` /
4
16
  * `part:state` key typed: what `definePt` and the plugin's `pt` /
@@ -7,41 +19,41 @@ import { PtDataMap } from './passthrough';
7
19
  */
8
20
  export interface BbPtComponentMap {
9
21
  BbAccordion?: PtDataMap<'root' | 'header' | 'title' | 'icon' | 'panel', 'open'>;
10
- BbAlert?: PtDataMap<'root' | 'icon' | 'title' | 'text' | 'close', never>;
22
+ BbAlert?: PtDataMap<'root' | 'icon' | 'title' | 'text' | 'close', never> & PtVariantDataMap<'root' | 'icon' | 'title' | 'text' | 'close', keyof AlertVariantRegistry>;
11
23
  BbAsterisk?: PtDataMap<'root', never>;
12
24
  BbAvatar?: PtDataMap<'root' | 'icon', never>;
13
- BbBadge?: PtDataMap<'root' | 'icon' | 'spinner' | 'text' | 'clear', 'loading'>;
14
- BbBaseButton?: PtDataMap<'root', 'disabled'>;
25
+ BbBadge?: PtDataMap<'root' | 'icon' | 'spinner' | 'text' | 'clear', 'activeLink' | 'exactActiveLink' | 'loading'> & PtVariantDataMap<'root' | 'icon' | 'spinner' | 'text' | 'clear', keyof BadgeVariantRegistry>;
26
+ BbBaseButton?: PtDataMap<'root', 'activeLink' | 'exactActiveLink' | 'disabled'>;
15
27
  BbBaseCheckboxIcon?: PtDataMap<'root', 'checked' | 'indeterminate' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
16
28
  BbBaseRadioIcon?: PtDataMap<'root', 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
17
29
  BbBaseSwitchIcon?: PtDataMap<'root', 'checked' | 'indeterminate' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
18
30
  BbBreadcrumbs?: PtDataMap<'root' | 'item' | 'icon' | 'text', 'disabled' | 'active'>;
19
- BbButton?: PtDataMap<'root' | 'icon' | 'spinner' | 'text', 'pressed' | 'disabled' | 'loading'>;
31
+ BbButton?: PtDataMap<'root' | 'icon' | 'spinner' | 'text', 'activeLink' | 'exactActiveLink' | 'pressed' | 'disabled' | 'loading'> & PtVariantDataMap<'root' | 'icon' | 'spinner' | 'text', keyof ButtonVariantRegistry>;
20
32
  BbCalendar?: PtDataMap<'root' | 'header' | 'arrow' | 'month' | 'year' | 'cellColumnHeader' | 'day' | 'dayButton' | 'monthItem' | 'yearItem' | 'item', 'outside' | 'today' | 'inRange' | 'selected' | 'rangeStart' | 'rangeEnd' | 'disabled' | 'active' | 'highlighted'>;
21
33
  BbCheckbox?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'icon', 'checked' | 'indeterminate' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
22
- BbCheckboxGroup?: PtDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription', 'hasValue' | 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible' | 'loading'>;
34
+ BbCheckboxGroup?: PtDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription' | 'indicator', 'hasValue' | 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible' | 'loading'> & PtVariantDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription' | 'indicator', keyof CheckboxVariantRegistry>;
23
35
  BbCollapsible?: PtDataMap<'root' | 'content', 'open'>;
24
- BbColorInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'indicator' | 'panel' | 'sheet' | 'swatch', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'>;
36
+ BbColorInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'indicator' | 'panel' | 'sheet' | 'swatch', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
25
37
  BbColorPalette?: PtDataMap<'root' | 'panel' | 'sheet' | 'swatch', 'selected' | 'open'>;
26
- BbConfirm?: PtDataMap<'root' | 'sheet' | 'header' | 'title' | 'content' | 'text' | 'footer' | 'close' | 'action', 'open'>;
38
+ BbConfirm?: PtDataMap<'root' | 'sheet' | 'header' | 'title' | 'content' | 'text' | 'footer' | 'close' | 'action', 'open'> & PtVariantDataMap<'root' | 'sheet' | 'header' | 'title' | 'content' | 'text' | 'footer' | 'close' | 'action', keyof ConfirmVariantRegistry>;
27
39
  BbDatePicker?: PtDataMap<'root' | 'panel' | 'sheet' | 'header' | 'arrow' | 'month' | 'year' | 'cellColumnHeader' | 'day' | 'dayButton' | 'monthItem' | 'yearItem' | 'item', 'outside' | 'today' | 'inRange' | 'selected' | 'rangeStart' | 'rangeEnd' | 'disabled' | 'active' | 'open' | 'highlighted'>;
28
- BbDatePickerInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator' | 'panel' | 'sheet' | 'header' | 'arrow' | 'month' | 'year' | 'cellColumnHeader' | 'day' | 'dayButton' | 'monthItem' | 'yearItem' | 'item', 'hasValue' | 'outside' | 'today' | 'inRange' | 'selected' | 'rangeStart' | 'rangeEnd' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'active' | 'open' | 'highlighted' | 'loading'>;
40
+ BbDatePickerInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator' | 'panel' | 'sheet' | 'header' | 'arrow' | 'month' | 'year' | 'cellColumnHeader' | 'day' | 'dayButton' | 'monthItem' | 'yearItem' | 'item', 'hasValue' | 'outside' | 'today' | 'inRange' | 'selected' | 'rangeStart' | 'rangeEnd' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'active' | 'open' | 'highlighted' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator', keyof InputVariantRegistry>;
29
41
  BbDialog?: PtDataMap<'root' | 'sheet' | 'header' | 'title' | 'description' | 'content' | 'footer' | 'close', 'open' | 'fullscreen'>;
30
- BbDropdown?: PtDataMap<'root' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'list' | 'item' | 'itemText' | 'itemIcon' | 'itemDescription', 'selected' | 'disabled' | 'open'>;
31
- BbDropdownButton?: PtDataMap<'root' | 'main' | 'toggle' | 'icon' | 'spinner' | 'text' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'item' | 'itemText' | 'itemIcon' | 'itemDescription', 'selected' | 'disabled' | 'open' | 'loading'>;
42
+ BbDropdown?: PtDataMap<'root' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'list' | 'item' | 'itemText' | 'itemIcon' | 'itemDescription', 'activeLink' | 'exactActiveLink' | 'selected' | 'disabled' | 'open'> & PtVariantDataMap<'item' | 'itemText' | 'itemIcon' | 'itemDescription', keyof DropdownItemVariantRegistry>;
43
+ BbDropdownButton?: PtDataMap<'root' | 'main' | 'toggle' | 'icon' | 'spinner' | 'text' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'item' | 'itemText' | 'itemIcon' | 'itemDescription', 'activeLink' | 'exactActiveLink' | 'selected' | 'disabled' | 'open' | 'loading'> & PtVariantDataMap<'root' | 'main' | 'toggle' | 'icon' | 'spinner' | 'text', keyof ButtonVariantRegistry> & PtVariantDataMap<'item' | 'itemText' | 'itemIcon' | 'itemDescription', keyof DropdownItemVariantRegistry>;
32
44
  BbDropzone?: PtDataMap<'root' | 'content' | 'message', 'readonly' | 'disabled' | 'warnings' | 'errors' | 'active'>;
33
45
  BbHoverCard?: PtDataMap<'root' | 'panel' | 'header' | 'content' | 'footer', 'open'>;
34
46
  BbIcon?: PtDataMap<'root', never>;
35
- BbIndicator?: PtDataMap<'root' | 'bubble', never>;
36
- BbNumberInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', 'hasValue' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'>;
47
+ BbIndicator?: PtDataMap<'root' | 'bubble', never> & PtVariantDataMap<'root' | 'bubble', keyof IndicatorVariantRegistry>;
48
+ BbNumberInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', 'hasValue' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
37
49
  BbOffCanvas?: PtDataMap<'root' | 'header' | 'title' | 'description' | 'content' | 'footer' | 'close', 'open' | 'fullscreen'>;
38
50
  BbPagination?: PtDataMap<'root' | 'item' | 'arrow' | 'ellipsis' | 'icon', 'disabled' | 'active'>;
39
51
  BbPopover?: PtDataMap<'root' | 'panel' | 'sheet' | 'header' | 'content' | 'footer', 'open'>;
40
52
  BbProgress?: PtDataMap<'root' | 'bar', 'indeterminate'>;
41
53
  BbRadio?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'icon', 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
42
- BbRadioGroup?: PtDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription', 'hasValue' | 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible' | 'loading'>;
54
+ BbRadioGroup?: PtDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription' | 'indicator', 'hasValue' | 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible' | 'loading'> & PtVariantDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription' | 'indicator', keyof RadioVariantRegistry>;
43
55
  BbRating?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'item', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors'>;
44
- BbSelect?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'activator' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'panel' | 'sheet' | 'header' | 'footer' | 'list' | 'option' | 'itemText' | 'itemIcon' | 'itemDescription' | 'badge' | 'comma', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'open' | 'loading'>;
56
+ BbSelect?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'activator' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'panel' | 'sheet' | 'header' | 'footer' | 'list' | 'option' | 'itemText' | 'itemIcon' | 'itemDescription' | 'badge' | 'comma', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'open' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'activator' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
45
57
  BbSelectPopover?: PtDataMap<'root' | 'panel' | 'sheet' | 'input' | 'clear' | 'list' | 'option' | 'itemText' | 'itemIcon' | 'itemDescription' | 'header' | 'footer', 'selected' | 'disabled' | 'open'>;
46
58
  BbSlider?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'track' | 'bar' | 'ticks' | 'tick' | 'thumb', 'inRange' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'active'>;
47
59
  BbSmoothHeight?: PtDataMap<'root', never>;
@@ -49,15 +61,15 @@ export interface BbPtComponentMap {
49
61
  BbSwitch?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'icon', 'checked' | 'indeterminate' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible'>;
50
62
  BbSwitchGroup?: PtDataMap<'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'item' | 'icon' | 'label' | 'itemDescription', 'hasValue' | 'checked' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'focused' | 'focusVisible' | 'loading'>;
51
63
  BbTable?: PtDataMap<'root' | 'caption' | 'table' | 'head' | 'headerRow' | 'cellColumnHeader' | 'sortIcon' | 'body' | 'row' | 'cell' | 'expand' | 'firstRow' | 'lastRow' | 'selectIcon' | 'dragIcon' | 'dragHandle' | 'foot', 'value' | 'placeholder' | 'empty' | 'sorted' | 'sortedDesc' | 'selected' | 'indeterminate' | 'disabled' | 'expanded' | 'highlighted' | 'loading'>;
52
- BbTabs?: PtDataMap<'root' | 'wrapper' | 'list' | 'item' | 'indicator' | 'panels' | 'panel', 'disabled' | 'active'>;
53
- BbTabsList?: PtDataMap<'root' | 'list' | 'item' | 'indicator', 'disabled' | 'active'>;
64
+ BbTabs?: PtDataMap<'root' | 'wrapper' | 'list' | 'item' | 'indicator' | 'panels' | 'panel', 'disabled' | 'active'> & PtVariantDataMap<'wrapper' | 'list' | 'item' | 'indicator', keyof TabsVariantRegistry>;
65
+ BbTabsList?: PtDataMap<'root' | 'list' | 'item' | 'indicator', 'disabled' | 'active'> & PtVariantDataMap<'root' | 'list' | 'item' | 'indicator', keyof TabsVariantRegistry>;
54
66
  BbTabsPanels?: PtDataMap<'root' | 'panel', 'disabled' | 'active'>;
55
- BbTag?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'badge' | 'comma', 'hasValue' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'highlighted' | 'loading'>;
56
- BbTextInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'counter', 'hasValue' | 'nearLimit' | 'atLimit' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'>;
57
- BbTextarea?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'counter', 'hasValue' | 'nearLimit' | 'atLimit' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'>;
67
+ BbTag?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'badge' | 'comma', 'hasValue' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'highlighted' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
68
+ BbTextInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'counter', 'hasValue' | 'nearLimit' | 'atLimit' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
69
+ BbTextarea?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'counter', 'hasValue' | 'nearLimit' | 'atLimit' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear', keyof InputVariantRegistry>;
58
70
  BbTimePicker?: PtDataMap<'root' | 'panel' | 'sheet' | 'header' | 'cellColumnHeader' | 'item', 'selected' | 'disabled' | 'open'>;
59
- BbTimePickerInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator' | 'panel' | 'sheet' | 'header' | 'cellColumnHeader' | 'item', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'open' | 'loading'>;
60
- BbToast?: PtDataMap<'root' | 'panel' | 'icon' | 'content' | 'title' | 'text' | 'footer' | 'action' | 'close', 'loading'>;
61
- BbTooltip?: PtDataMap<'root' | 'panel', 'open'>;
71
+ BbTimePickerInput?: PtDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator' | 'panel' | 'sheet' | 'header' | 'cellColumnHeader' | 'item', 'hasValue' | 'selected' | 'readonly' | 'disabled' | 'warnings' | 'errors' | 'open' | 'loading'> & PtVariantDataMap<'root' | 'label' | 'description' | 'message' | 'hint' | 'box' | 'input' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear' | 'activator', keyof InputVariantRegistry>;
72
+ BbToast?: PtDataMap<'root' | 'panel' | 'icon' | 'content' | 'title' | 'text' | 'footer' | 'action' | 'close', 'loading'> & PtVariantDataMap<'panel' | 'icon' | 'content' | 'title' | 'text' | 'footer' | 'action' | 'close', keyof ToastVariantRegistry>;
73
+ BbTooltip?: PtDataMap<'root' | 'panel', 'open'> & PtVariantDataMap<'root' | 'panel', keyof TooltipVariantRegistry>;
62
74
  BbTree?: PtDataMap<'root' | 'item', 'expanded'>;
63
75
  }
@@ -1 +1,20 @@
1
- export declare function extractDomContainer(target: unknown): HTMLElement | null;
1
+ /**
2
+ * What a floating surface can hang on: an HTML element, or an svg one (a raw
3
+ * `<svg>`, or a component whose root is one, like BbIcon — Q76.15). Spelled
4
+ * as the members both share rather than `HTMLElement | SVGElement`, whose
5
+ * overloaded `addEventListener` no typed handler can satisfy.
6
+ */
7
+ export interface DomHost extends Element, HTMLOrSVGElement, ElementCSSInlineStyle {
8
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: DomHost, ev: HTMLElementEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
9
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
10
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: DomHost, ev: HTMLElementEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
11
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
12
+ }
13
+ /**
14
+ * A host as the element it really is, for APIs typed on the DOM classes
15
+ * (VueUse's observers); every DomHost is one of the two.
16
+ */
17
+ export declare const domElement: (el: DomHost | null | undefined) => HTMLElement | SVGElement | undefined;
18
+ export declare function extractDomContainer(target: unknown): DomHost | null;
19
+ /** {@link extractDomContainer} for a library-owned container that is always HTML (a panel, a row, a button root). */
20
+ export declare const extractHtmlContainer: (target: unknown) => HTMLElement | null;
@@ -1,6 +1,11 @@
1
1
  //#region src/utilities/functions/extractDomContainer.ts
2
- function e(e) {
3
- return e ? e instanceof HTMLElement ? e : typeof e == "object" && "$el" in e && e.$el instanceof HTMLElement ? e.$el : typeof e == "object" && "el" in e && e.el instanceof HTMLElement ? e.el : null : null;
2
+ var e = (e) => e ?? void 0, t = (e) => e instanceof HTMLElement || e instanceof SVGElement;
3
+ function n(e) {
4
+ return e ? t(e) ? e : typeof e == "object" && "$el" in e && t(e.$el) ? e.$el : typeof e == "object" && "el" in e && t(e.el) ? e.el : null : null;
4
5
  }
6
+ var r = (e) => {
7
+ let t = n(e);
8
+ return t instanceof HTMLElement ? t : null;
9
+ };
5
10
  //#endregion
6
- export { e as extractDomContainer };
11
+ export { e as domElement, n as extractDomContainer, r as extractHtmlContainer };
@@ -7,3 +7,9 @@ export declare const focusVisibly: (el: HTMLElement | null | undefined, options?
7
7
  * on the focused element changes nothing.
8
8
  */
9
9
  export declare const focusQuietly: (el: HTMLElement | null | undefined, options?: FocusOptions) => void;
10
+ /**
11
+ * The first match of `selector` inside `root` that a script `focus()` can
12
+ * land on: an HTMLElement that is not disabled. A focusable `<svg>` (or a
13
+ * disabled button) first in line is passed over, not a dead end (Q76.16).
14
+ */
15
+ export declare const firstFocusableMatch: (root: ParentNode | null | undefined, selector: string) => HTMLElement | null;
@@ -7,6 +7,9 @@ var e = (e, t) => e?.focus({
7
7
  ...t,
8
8
  focusVisible: !1
9
9
  }));
10
+ }, n = (e, t) => {
11
+ for (let n of e?.querySelectorAll(t) ?? []) if (n instanceof HTMLElement && !n.matches(":disabled")) return n;
12
+ return null;
10
13
  };
11
14
  //#endregion
12
- export { t as focusQuietly, e as focusVisibly };
15
+ export { n as firstFocusableMatch, t as focusQuietly, e as focusVisibly };
@@ -1,2 +1,16 @@
1
+ /**
2
+ * The app's own `@theme` names per tailwind-merge theme key (`text` for
3
+ * `--text-*` font sizes, `color` for `--color-*`, …), read by the build
4
+ * plugin from the app's CSS.
5
+ */
6
+ export type PassthroughDeduperTheme = Partial<Record<string, string[]>>;
7
+ /**
8
+ * A deduper that knows the app's theme (Q76.7 e): each of the app's token
9
+ * classes resolves to the property its `@theme` namespace sets, so
10
+ * `text-h2 text-ink` (a font size and a colour) keeps both, while two font
11
+ * sizes or two colours still dedupe. Without the names, tailwind-merge reads
12
+ * an unknown `text-*` as a colour.
13
+ */
14
+ export declare const createPassthroughDeduper: (theme?: PassthroughDeduperTheme) => ((className: string) => string);
1
15
  declare const passthroughDeduper: (className: string) => string;
2
16
  export default passthroughDeduper;
@@ -9,7 +9,7 @@ function r() {
9
9
  if (process.env.NODE_ENV === "production" || n || typeof window > "u") return;
10
10
  n = !0;
11
11
  let r = () => {
12
- let n = t("3.0.0-beta.63", getComputedStyle(document.documentElement).getPropertyValue(e));
12
+ let n = t("3.0.0-beta.64", getComputedStyle(document.documentElement).getPropertyValue(e));
13
13
  n && console.warn(n);
14
14
  };
15
15
  document.readyState === "complete" ? setTimeout(r, 0) : window.addEventListener("load", r, { once: !0 });
@@ -31,6 +31,14 @@ export declare function expandIconWhitelist(whitelist: readonly string[], provid
31
31
  * silent. Best effort: an unwritable cache only loses the hint.
32
32
  */
33
33
  export declare function upgradeHint(root: string, version: string): string | null;
34
+ /**
35
+ * Q76.7: an app's own variant name must not be a passthrough state of a
36
+ * component it styles: `pt:root:loading` could not say whether it means the
37
+ * `loading` state or a `loading` variant. Returns an error message, or `null`.
38
+ * The component's states are its declared `pt:<part>:<word>` words that are
39
+ * not built-in variant names.
40
+ */
41
+ export declare function validateVariantNames(options: Partial<Record<string, unknown>>, path?: string | null): string | null;
34
42
  /**
35
43
  * Build-time check of the global `pt` map's component names and keys against
36
44
  * the manifest. Returns an error message, or `null` when every key names a
@@ -40,7 +48,9 @@ export declare function upgradeHint(root: string, version: string): string | nul
40
48
  */
41
49
  export declare function validatePtGlobalMapNames(pt: Record<string, Record<string, unknown>> | undefined, path?: string | null,
42
50
  /** Where the map sits in the plugin options: `pt`, `ptScopes.webapp`. */
43
- label?: string): string | null;
51
+ label?: string,
52
+ /** The plugin options, for the app's own variant names (Q76.7). */
53
+ options?: Partial<Record<string, unknown>>): string | null;
44
54
  export { BUILTIN_LOCALE_KEYS };
45
55
  /**
46
56
  * Resolves the built-in locales that actually ship in the consumer bundle,
@@ -99,7 +109,30 @@ export declare function generateDayjsLocalesModule(found: ReadonlyArray<{
99
109
  * A consumer path is resolved against the project root; a bare specifier is
100
110
  * left for Vite to resolve like any import.
101
111
  */
102
- export declare function generatePassthroughDeduperModule(option: false | string | undefined, root: string, libraryDir?: string): string;
112
+ export declare function generatePassthroughDeduperModule(option: false | string | undefined, root: string, libraryDir?: string, themeNames?: ThemeNames): string;
113
+ /** Theme names per tailwind-merge theme key: `{ text: ['h2'], color: ['ink'] }`. */
114
+ type ThemeNames = Record<string, string[]>;
115
+ /**
116
+ * The `@theme` names one CSS file declares (`--text-h2` → `text: ['h2']`,
117
+ * `--color-ink` → `color: ['ink']`). A sub-property (`--text-h2--line-height`)
118
+ * and a reset (`--color-*`) are not names.
119
+ */
120
+ export declare function themeNamesInCss(css: string): ThemeNames;
121
+ /** Several files' names as one, sorted (a stable module source). */
122
+ export declare function mergeThemeNames(all: Iterable<ThemeNames>): ThemeNames;
123
+ /** Is `path` an app CSS file the theme scan reads (under `root`, not skipped)? */
124
+ export declare function isAppThemeCss(root: string, path: string): boolean;
125
+ /**
126
+ * The app's own CSS files that declare `@theme` names, each with its names,
127
+ * read from the project's folders only, a few levels deep.
128
+ */
129
+ export declare function scanThemeFiles(root: string): Map<string, ThemeNames>;
130
+ /**
131
+ * The app's own Tailwind `@theme` names per tailwind-merge theme key, from
132
+ * every CSS file of the project (see `scanThemeFiles`). In dev the plugin
133
+ * keeps them live: a CSS edit that changes them reloads the deduper module.
134
+ */
135
+ export declare function collectThemeNames(root: string): ThemeNames;
103
136
  /** Build-time check of `passthroughDeduper`; an error message or `null`. */
104
137
  export declare function validatePassthroughDeduper(value: unknown): string | null;
105
138
  /**
@@ -204,10 +237,10 @@ export interface BitbossUiOptions extends Partial<Omit<EditableConfig, 'formCont
204
237
  /**
205
238
  * When `true`, the dev server registers the bitboss-ui MCP server in each
206
239
  * project-scoped agent-harness config on boot (`.mcp.json` for Claude Code,
207
- * `.cursor/mcp.json`, `.vscode/mcp.json`), so agents can query the component
208
- * knowledge base with no manual setup. The write is merge-safe and
209
- * idempotent (it leaves any other servers alone and only logs when it
210
- * actually changes a file).
240
+ * `.cursor/mcp.json`, `.vscode/mcp.json`, `.zed/settings.json`), so agents
241
+ * can query the component knowledge base with no manual setup. The write
242
+ * is merge-safe and idempotent (it leaves any other servers alone and only
243
+ * logs when it actually changes a file).
211
244
  *
212
245
  * The same project-scoped registration `npx bitboss-ui ai-init` performs
213
246
  * (which also installs the server's optional peers; a dev-server boot never
@@ -332,7 +365,10 @@ export interface BitbossUiOptions extends Partial<Omit<EditableConfig, 'formCont
332
365
  * `pt:icon="text-slate-400"` + `pt:icon:loading="text-red-500"` keeps only
333
366
  * `text-red-500` while loading.
334
367
  *
335
- * - unset — the bundled `tailwind-merge` v3 (Tailwind v4);
368
+ * - unset — the bundled `tailwind-merge` v3 (Tailwind v4), taught the
369
+ * `@theme` token names in the project's own CSS (live in dev), so each
370
+ * dedupes by the property it sets (`text-h2` a size, `text-ink` a
371
+ * colour);
336
372
  * - `false` — off: classes append, and stylesheet order decides conflicts;
337
373
  * - a module path (relative to the project root) or package name whose
338
374
  * default export is `(className: string) => string` — pure and
@@ -477,6 +513,27 @@ export interface BitbossUiOptions extends Partial<Omit<EditableConfig, 'formCont
477
513
  * @defaultValue `['pill', 'line', 'none']`
478
514
  */
479
515
  tabsVariants?: string[];
516
+ /**
517
+ * List of radio-group variants to register as a typed union — the
518
+ * `variant` prop of `BbRadioGroup`, its tab-strip looks (Q76.11 d).
519
+ * Appends to the default set when provided. A custom name is styled
520
+ * through its class hook `bb-radio-group__list--<name>` by setting the
521
+ * strip's tokens (`--list-bg`, `--indicator-bg`, `--indicator-h`,
522
+ * `--active-fg`, …); the shipped variants are the same token presets.
523
+ *
524
+ * @defaultValue `['pill', 'line']`
525
+ */
526
+ radioVariants?: string[];
527
+ /**
528
+ * List of checkbox-group variants to register as a typed union — the
529
+ * `variant` prop of `BbCheckboxGroup`, its tab-strip looks (Q76.11 d).
530
+ * Appends to the default set when provided. A custom name is styled
531
+ * through its class hook `bb-checkbox-group__list--<name>` by setting the
532
+ * strip's tokens; a custom look draws pills per run, as `pill` does.
533
+ *
534
+ * @defaultValue `['pill', 'line']`
535
+ */
536
+ checkboxVariants?: string[];
480
537
  }
481
538
  export declare const REQUIRED_OPTIMIZE_DEPS_INCLUDE: string[];
482
539
  export declare const REQUIRED_OPTIMIZE_DEPS_EXCLUDE: string[];