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
@@ -14,6 +14,20 @@ export interface AlertVariantRegistry {
14
14
  warning: true;
15
15
  }
16
16
  export type AlertVariantFromRegistry = keyof AlertVariantRegistry;
17
+ /**
18
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
19
+ * ATTRIBUTE props are declared from it when the library is built; an app's
20
+ * own names are declared by the component's `variantPt()` mixin and typed by
21
+ * its `PtVariantAttrs` member, both from the registry.
22
+ *
23
+ * @state outline - Component-wide: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win.
24
+ * @state primary - Component-wide: `variant: 'primary'`. Below the real states, like every variant.
25
+ * @state destructive - Component-wide: `variant: 'destructive'`. Below the real states, like every variant.
26
+ * @state warning - Component-wide: `variant: 'warning'`. Below the real states, like every variant.
27
+ */
28
+ export type AlertVariantBuiltIn = 'outline' | 'primary' | 'destructive' | 'warning';
29
+ /** The built-in names at runtime, for the passthrough resolver. */
30
+ export declare const ALERT_VARIANTS: readonly ["outline", "primary", "destructive", "warning"];
17
31
  /**
18
32
  * Variant type for `BbAlert.variant`.
19
33
  *
@@ -0,0 +1,9 @@
1
+ //#region src/types/AlertVariant.ts
2
+ var e = [
3
+ "outline",
4
+ "primary",
5
+ "destructive",
6
+ "warning"
7
+ ];
8
+ //#endregion
9
+ export { e as ALERT_VARIANTS };
@@ -14,6 +14,20 @@ export interface BadgeVariantRegistry {
14
14
  outline: true;
15
15
  }
16
16
  export type BadgeVariantFromRegistry = keyof BadgeVariantRegistry;
17
+ /**
18
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
19
+ * ATTRIBUTE props are declared from it when the library is built; an app's
20
+ * own names are declared by the component's `variantPt()` mixin and typed by
21
+ * its `PtVariantAttrs` member, both from the registry.
22
+ *
23
+ * @state primary - Component-wide: `variant: 'primary'`. Merged after the part's base entry and before its states, so the real states still win.
24
+ * @state secondary - Component-wide: `variant: 'secondary'`. Below the real states, like every variant.
25
+ * @state destructive - Component-wide: `variant: 'destructive'`. Below the real states, like every variant.
26
+ * @state outline - Component-wide: `variant: 'outline'`. Below the real states, like every variant.
27
+ */
28
+ export type BadgeVariantBuiltIn = 'primary' | 'secondary' | 'destructive' | 'outline';
29
+ /** The built-in names at runtime, for the passthrough resolver. */
30
+ export declare const BADGE_VARIANTS: readonly ["primary", "secondary", "destructive", "outline"];
17
31
  /**
18
32
  * Variant type for `BbBadge.variant`.
19
33
  *
@@ -0,0 +1,9 @@
1
+ //#region src/types/BadgeVariant.ts
2
+ var e = [
3
+ "primary",
4
+ "secondary",
5
+ "destructive",
6
+ "outline"
7
+ ];
8
+ //#endregion
9
+ export { e as BADGE_VARIANTS };
@@ -16,6 +16,22 @@ export interface ButtonVariantRegistry {
16
16
  link: true;
17
17
  }
18
18
  export type ButtonVariantFromRegistry = keyof ButtonVariantRegistry;
19
+ /**
20
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
21
+ * ATTRIBUTE props are declared from it when the library is built; an app's
22
+ * own names are declared by the component's `variantPt()` mixin and typed by
23
+ * its `PtVariantAttrs` member, both from the registry.
24
+ *
25
+ * @state primary - Component-wide: `variant="primary"`. Merged after the part's base entry and before its states, so `disabled` / `loading` still win.
26
+ * @state outline - Component-wide: `variant="outline"`. Below the real states, like every variant.
27
+ * @state secondary - Component-wide: `variant="secondary"`. Below the real states, like every variant.
28
+ * @state ghost - Component-wide: `variant="ghost"`. Below the real states, like every variant.
29
+ * @state destructive - Component-wide: `variant="destructive"`. Keeps the red under a base `pt`: `pt:root:destructive`.
30
+ * @state link - Component-wide: `variant="link"`. Below the real states, like every variant.
31
+ */
32
+ export type ButtonVariantBuiltIn = 'primary' | 'outline' | 'secondary' | 'ghost' | 'destructive' | 'link';
33
+ /** The built-in names at runtime, for the passthrough resolver. */
34
+ export declare const BUTTON_VARIANTS: readonly ["primary", "outline", "secondary", "ghost", "destructive", "link"];
19
35
  /**
20
36
  * Variant type for `BbButton.variant`.
21
37
  *
@@ -0,0 +1,11 @@
1
+ //#region src/types/ButtonVariant.ts
2
+ var e = [
3
+ "primary",
4
+ "outline",
5
+ "secondary",
6
+ "ghost",
7
+ "destructive",
8
+ "link"
9
+ ];
10
+ //#endregion
11
+ export { e as BUTTON_VARIANTS };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The registered variant names: the built-in set, declared here, plus the
3
+ * app's own names, which the Vite plugin writes into the project's
4
+ * committed `bitboss-ui.d.ts` (`declare module 'bitboss-ui'`). Keys only;
5
+ * the value is always `true`, so a repeated default is never a conflict.
6
+ * The runtime list is `project-dts.ts`'s matching `DEFAULT_*` array, and
7
+ * a node test keeps the two equal.
8
+ * @internal
9
+ */
10
+ export interface CheckboxVariantRegistry {
11
+ pill: true;
12
+ line: true;
13
+ }
14
+ export type CheckboxVariantFromRegistry = keyof CheckboxVariantRegistry;
15
+ /**
16
+ * The built-in names as a literal union (Q76.7, Q76.11 d). The
17
+ * `pt:<part>:<variant>` ATTRIBUTE props are declared from it when the
18
+ * library is built; an app's own names are declared by the component's
19
+ * `variantPt()` mixin and typed by its `PtVariantAttrs` member, both from
20
+ * the registry.
21
+ *
22
+ * @state pill - On every part: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win.
23
+ * @state line - On every part: `variant: 'line'`. Below the real states, like every variant.
24
+ */
25
+ export type CheckboxVariantBuiltIn = 'pill' | 'line';
26
+ /** The built-in names at runtime, for the passthrough resolver. */
27
+ export declare const CHECKBOX_VARIANTS: readonly ["pill", "line"];
28
+ /**
29
+ * Variant type for the `variant` of `BbCheckboxGroup`: a tab-strip look on the
30
+ * group (Q76.11 d).
31
+ *
32
+ * Locked to registered variants — the built-in set (`pill`, `line`) plus
33
+ * any added via the vite plugin `checkboxVariants` option — so unknown names
34
+ * are a compile error. For a one-off, register it (recommended) or force it
35
+ * with a cast: the class `bb-checkbox-group__list--<variant>` is interpolated at
36
+ * runtime, so your CSS still applies.
37
+ */
38
+ export type CheckboxVariantType = CheckboxVariantFromRegistry;
@@ -0,0 +1,4 @@
1
+ //#region src/types/CheckboxVariant.ts
2
+ var e = ["pill", "line"];
3
+ //#endregion
4
+ export { e as CHECKBOX_VARIANTS };
@@ -1,14 +1,15 @@
1
1
  import { ComponentPublicInstance } from 'vue';
2
2
  /**
3
- * An external element reference prop (activator/anchor): a DOM element, a Vue
4
- * component instance (its root element is resolved internally), or `null`.
3
+ * An external element reference prop (activator/anchor): a DOM element (an
4
+ * `<svg>` too, Q76.15), a Vue component instance (its root element is
5
+ * resolved internally), or `null`.
5
6
  *
6
7
  * The `Pick<…, '$el'>` arm keeps concretely typed component instances
7
8
  * assignable: instances with typed `$emit` signatures are not assignable to
8
9
  * the base `ComponentPublicInstance` type, but all of them expose `$el`,
9
10
  * which is what the internal DOM resolution consumes.
10
11
  */
11
- export type ElementOrComponentRef = HTMLElement | ComponentPublicInstance | Pick<ComponentPublicInstance, '$el'> | null;
12
+ export type ElementOrComponentRef = HTMLElement | SVGElement | ComponentPublicInstance | Pick<ComponentPublicInstance, '$el'> | null;
12
13
  /**
13
14
  * Variant of {@link ElementOrComponentRef} for boundary props, which
14
15
  * additionally accept a CSS selector string.
@@ -198,6 +198,13 @@ export type ResolvedConfig = Omit<EditableConfig, 'iconDefaultSizes' | 'dialogDe
198
198
  toast: Readonly<Record<string, string>>;
199
199
  alert: Readonly<Record<string, string>>;
200
200
  }>;
201
+ /**
202
+ * The app's OWN variant names per build-plugin option (`buttonVariants`,
203
+ * …), the built-ins left out. Build-time only, like `pt`: the components
204
+ * declare `pt:<part>:<name>` props from it (Q76.7), and the passthrough
205
+ * dev check knows the names.
206
+ */
207
+ readonly variantNames: Readonly<Record<string, readonly string[]>>;
201
208
  };
202
209
  /**
203
210
  * What `app.use(bitbossUiPlugin, …)` accepts: per-app runtime overrides of the
@@ -12,6 +12,18 @@ export interface ConfirmVariantRegistry {
12
12
  destructive: true;
13
13
  }
14
14
  export type ConfirmVariantFromRegistry = keyof ConfirmVariantRegistry;
15
+ /**
16
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
17
+ * ATTRIBUTE props are declared from it when the library is built; an app's
18
+ * own names are declared by the component's `variantPt()` mixin and typed by
19
+ * its `PtVariantAttrs` member, both from the registry.
20
+ *
21
+ * @state default - Component-wide, from the message: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win.
22
+ * @state destructive - Component-wide, from the message: `variant: 'destructive'`. Below the real states, like every variant.
23
+ */
24
+ export type ConfirmVariantBuiltIn = 'default' | 'destructive';
25
+ /** The built-in names at runtime, for the passthrough resolver. */
26
+ export declare const CONFIRM_VARIANTS: readonly ["default", "destructive"];
15
27
  /**
16
28
  * Variant type for `BbConfirmMessage.variant`.
17
29
  *
@@ -0,0 +1,4 @@
1
+ //#region src/types/ConfirmVariant.ts
2
+ var e = ["default", "destructive"];
3
+ //#endregion
4
+ export { e as CONFIRM_VARIANTS };
@@ -12,6 +12,18 @@ export interface DropdownItemVariantRegistry {
12
12
  destructive: true;
13
13
  }
14
14
  export type DropdownItemVariantFromRegistry = keyof DropdownItemVariantRegistry;
15
+ /**
16
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
17
+ * ATTRIBUTE props are declared from it when the library is built; an app's
18
+ * own names are declared by the component's `variantPt()` mixin and typed by
19
+ * its `PtVariantAttrs` member, both from the registry.
20
+ *
21
+ * @state default - Per entry, on the entry parts: an entry with `variant: 'default'` or none. Merged after the part's base entry and before its states, so the real states still win.
22
+ * @state destructive - Per entry, on the entry parts: `variant: 'destructive'`. Below the real states, like every variant.
23
+ */
24
+ export type DropdownItemVariantBuiltIn = 'default' | 'destructive';
25
+ /** The built-in names at runtime, for the passthrough resolver. */
26
+ export declare const DROPDOWN_ITEM_VARIANTS: readonly ["default", "destructive"];
15
27
  /**
16
28
  * Variant type for a dropdown `Item.variant`.
17
29
  *
@@ -0,0 +1,4 @@
1
+ //#region src/types/DropdownItemVariant.ts
2
+ var e = ["default", "destructive"];
3
+ //#endregion
4
+ export { e as DROPDOWN_ITEM_VARIANTS };
@@ -15,6 +15,21 @@ export interface IndicatorVariantRegistry {
15
15
  destructive: true;
16
16
  }
17
17
  export type IndicatorVariantFromRegistry = keyof IndicatorVariantRegistry;
18
+ /**
19
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
20
+ * ATTRIBUTE props are declared from it when the library is built; an app's
21
+ * own names are declared by the component's `variantPt()` mixin and typed by
22
+ * its `PtVariantAttrs` member, both from the registry.
23
+ *
24
+ * @state default - Component-wide: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win.
25
+ * @state success - Component-wide: `variant: 'success'`. Below the real states, like every variant.
26
+ * @state info - Component-wide: `variant: 'info'`. Below the real states, like every variant.
27
+ * @state warning - Component-wide: `variant: 'warning'`. Below the real states, like every variant.
28
+ * @state destructive - Component-wide: `variant: 'destructive'`. Below the real states, like every variant.
29
+ */
30
+ export type IndicatorVariantBuiltIn = 'default' | 'success' | 'info' | 'warning' | 'destructive';
31
+ /** The built-in names at runtime, for the passthrough resolver. */
32
+ export declare const INDICATOR_VARIANTS: readonly ["default", "success", "info", "warning", "destructive"];
18
33
  /**
19
34
  * Variant type for a `BbIndicator`'s `variant`.
20
35
  *
@@ -0,0 +1,10 @@
1
+ //#region src/types/IndicatorVariant.ts
2
+ var e = [
3
+ "default",
4
+ "success",
5
+ "info",
6
+ "warning",
7
+ "destructive"
8
+ ];
9
+ //#endregion
10
+ export { e as INDICATOR_VARIANTS };
@@ -13,6 +13,19 @@ export interface InputVariantRegistry {
13
13
  ghost: true;
14
14
  }
15
15
  export type InputVariantFromRegistry = keyof InputVariantRegistry;
16
+ /**
17
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
18
+ * ATTRIBUTE props are declared from it when the library is built; an app's
19
+ * own names are declared by the component's `variantPt()` mixin and typed by
20
+ * its `PtVariantAttrs` member, both from the registry.
21
+ *
22
+ * @state outline - On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win.
23
+ * @state secondary - On the field's parts: `variant: 'secondary'`. Below the real states, like every variant.
24
+ * @state ghost - On the field's parts: `variant: 'ghost'`. Below the real states, like every variant.
25
+ */
26
+ export type InputVariantBuiltIn = 'outline' | 'secondary' | 'ghost';
27
+ /** The built-in names at runtime, for the passthrough resolver. */
28
+ export declare const INPUT_VARIANTS: readonly ["outline", "secondary", "ghost"];
16
29
  /**
17
30
  * Variant type for the `variant` prop of every text-like form control
18
31
  * (`BbTextInput`, `BbTextarea`, `BbNumberInput`, `BbSelect`, `BbTag`,
@@ -0,0 +1,8 @@
1
+ //#region src/types/InputVariant.ts
2
+ var e = [
3
+ "outline",
4
+ "secondary",
5
+ "ghost"
6
+ ];
7
+ //#endregion
8
+ export { e as INPUT_VARIANTS };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The registered variant names: the built-in set, declared here, plus the
3
+ * app's own names, which the Vite plugin writes into the project's
4
+ * committed `bitboss-ui.d.ts` (`declare module 'bitboss-ui'`). Keys only;
5
+ * the value is always `true`, so a repeated default is never a conflict.
6
+ * The runtime list is `project-dts.ts`'s matching `DEFAULT_*` array, and
7
+ * a node test keeps the two equal.
8
+ * @internal
9
+ */
10
+ export interface RadioVariantRegistry {
11
+ pill: true;
12
+ line: true;
13
+ }
14
+ export type RadioVariantFromRegistry = keyof RadioVariantRegistry;
15
+ /**
16
+ * The built-in names as a literal union (Q76.7, Q76.11 d). The
17
+ * `pt:<part>:<variant>` ATTRIBUTE props are declared from it when the
18
+ * library is built; an app's own names are declared by the component's
19
+ * `variantPt()` mixin and typed by its `PtVariantAttrs` member, both from
20
+ * the registry.
21
+ *
22
+ * @state pill - On every part: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win.
23
+ * @state line - On every part: `variant: 'line'`. Below the real states, like every variant.
24
+ */
25
+ export type RadioVariantBuiltIn = 'pill' | 'line';
26
+ /** The built-in names at runtime, for the passthrough resolver. */
27
+ export declare const RADIO_VARIANTS: readonly ["pill", "line"];
28
+ /**
29
+ * Variant type for the `variant` of `BbRadioGroup`: a tab-strip look on the
30
+ * group (Q76.11 d).
31
+ *
32
+ * Locked to registered variants — the built-in set (`pill`, `line`) plus
33
+ * any added via the vite plugin `radioVariants` option — so unknown names
34
+ * are a compile error. For a one-off, register it (recommended) or force it
35
+ * with a cast: the class `bb-radio-group__list--<variant>` is interpolated at
36
+ * runtime, so your CSS still applies.
37
+ */
38
+ export type RadioVariantType = RadioVariantFromRegistry;
@@ -0,0 +1,4 @@
1
+ //#region src/types/RadioVariant.ts
2
+ var e = ["pill", "line"];
3
+ //#endregion
4
+ export { e as RADIO_VARIANTS };
@@ -13,6 +13,19 @@ export interface TabsVariantRegistry {
13
13
  none: true;
14
14
  }
15
15
  export type TabsVariantFromRegistry = keyof TabsVariantRegistry;
16
+ /**
17
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
18
+ * ATTRIBUTE props are declared from it when the library is built; an app's
19
+ * own names are declared by the component's `variantPt()` mixin and typed by
20
+ * its `PtVariantAttrs` member, both from the registry.
21
+ *
22
+ * @state pill - On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win.
23
+ * @state line - On the strip's parts: `variant: 'line'`. Below the real states, like every variant.
24
+ * @state none - On the strip's parts: `variant: 'none'`. Below the real states, like every variant.
25
+ */
26
+ export type TabsVariantBuiltIn = 'pill' | 'line' | 'none';
27
+ /** The built-in names at runtime, for the passthrough resolver. */
28
+ export declare const TABS_VARIANTS: readonly ["pill", "line", "none"];
16
29
  /**
17
30
  * Variant type for the `variant` of `BbTabs` / `BbTabsList`.
18
31
  *
@@ -0,0 +1,8 @@
1
+ //#region src/types/TabsVariant.ts
2
+ var e = [
3
+ "pill",
4
+ "line",
5
+ "none"
6
+ ];
7
+ //#endregion
8
+ export { e as TABS_VARIANTS };
@@ -15,6 +15,21 @@ export interface ToastVariantRegistry {
15
15
  destructive: true;
16
16
  }
17
17
  export type ToastVariantFromRegistry = keyof ToastVariantRegistry;
18
+ /**
19
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
20
+ * ATTRIBUTE props are declared from it when the library is built; an app's
21
+ * own names are declared by the component's `variantPt()` mixin and typed by
22
+ * its `PtVariantAttrs` member, both from the registry.
23
+ *
24
+ * @state default - Per toast, on its card parts: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win.
25
+ * @state success - Per toast, on its card parts: `variant: 'success'`. Below the real states, like every variant.
26
+ * @state info - Per toast, on its card parts: `variant: 'info'`. Below the real states, like every variant.
27
+ * @state warning - Per toast, on its card parts: `variant: 'warning'`. Below the real states, like every variant.
28
+ * @state destructive - Per toast, on its card parts: `variant: 'destructive'`. Below the real states, like every variant.
29
+ */
30
+ export type ToastVariantBuiltIn = 'default' | 'success' | 'info' | 'warning' | 'destructive';
31
+ /** The built-in names at runtime, for the passthrough resolver. */
32
+ export declare const TOAST_VARIANTS: readonly ["default", "success", "info", "warning", "destructive"];
18
33
  /**
19
34
  * Variant type for a toast's `variant`.
20
35
  *
@@ -0,0 +1,10 @@
1
+ //#region src/types/ToastVariant.ts
2
+ var e = [
3
+ "default",
4
+ "success",
5
+ "info",
6
+ "warning",
7
+ "destructive"
8
+ ];
9
+ //#endregion
10
+ export { e as TOAST_VARIANTS };
@@ -12,6 +12,18 @@ export interface TooltipVariantRegistry {
12
12
  destructive: true;
13
13
  }
14
14
  export type TooltipVariantFromRegistry = keyof TooltipVariantRegistry;
15
+ /**
16
+ * The built-in names as a literal union (Q76.7). The `pt:<part>:<variant>`
17
+ * ATTRIBUTE props are declared from it when the library is built; an app's
18
+ * own names are declared by the component's `variantPt()` mixin and typed by
19
+ * its `PtVariantAttrs` member, both from the registry.
20
+ *
21
+ * @state default - Component-wide: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win.
22
+ * @state destructive - Component-wide: `variant: 'destructive'`. Below the real states, like every variant.
23
+ */
24
+ export type TooltipVariantBuiltIn = 'default' | 'destructive';
25
+ /** The built-in names at runtime, for the passthrough resolver. */
26
+ export declare const TOOLTIP_VARIANTS: readonly ["default", "destructive"];
15
27
  /**
16
28
  * Variant type for `BbTooltip.variant`.
17
29
  *
@@ -0,0 +1,4 @@
1
+ //#region src/types/TooltipVariant.ts
2
+ var e = ["default", "destructive"];
3
+ //#endregion
4
+ export { e as TOOLTIP_VARIANTS };
@@ -19,7 +19,8 @@
19
19
  * NOTHING HERE IS IMPORTABLE from 'bitboss-ui', by ruling (Q52.7): no
20
20
  * `import type { PtValue }`, no deep import of this file. In app code, type a
21
21
  * `pt` value through the component it is for. The object form's keys drop the
22
- * `pt:` prefix, and a per-item function gets `{ item, <state>: boolean, … }`:
22
+ * `pt:` prefix, and a per-item function gets `{ item, <state>: boolean, … }`
23
+ * (plus `variant` where the row has one, `known` on a select's rows):
23
24
  *
24
25
  * export const invoicePt = {
25
26
  * row: ({ item, highlighted }) => item.overdue && !highlighted && 'bg-red-50',
@@ -49,7 +50,8 @@ export type PtValue = string | {
49
50
  * A per-item passthrough function — what a ROW part (`item`, `option`, `row`
50
51
  * and their `itemText` / `itemIcon` / `itemDescription`) accepts on the
51
52
  * instance beside a plain `PtValue`: called once per rendered row with that
52
- * row's raw `item` and one boolean per state, its result is merged LAST
53
+ * row's raw `item`, one boolean per state and the row's facts (its `variant`),
54
+ * its result is merged LAST
53
55
  * (after every `part:state` entry) through the same `mergeProps` + deduper
54
56
  * path; a falsy result leaves the cached binding untouched. Allowed in the
55
57
  * `pt` object and the `:pt:<part>` attribute only — never on a `part:state`
@@ -66,18 +68,28 @@ export type PtValue = string | {
66
68
  * consumers on TypeScript 5.0–5.3 still read the declarations.
67
69
  */
68
70
  export type PtNoInfer<T> = [T][T extends unknown ? 0 : never];
69
- export type PtItemFn<Item, State extends string> = (ctx: PtItemCtx<Item, State>) => PtItemResult;
71
+ export type PtItemFn<Item, State extends string, Variant extends string = never, Row = {
72
+ readonly item: Item;
73
+ }> = (ctx: PtItemCtx<Item, State, Variant, Row>) => PtItemResult;
70
74
  /**
71
75
  * What a per-item function receives: the row's raw `item` — the element of
72
- * `items` this row renders — and one boolean per state of the component, on
73
- * for this row (the per-node ones and the component-level ones), so a
74
- * function destructures what it reads: `({ item, selected }) => …`. States
75
- * only: the component's props are in scope where the function is written.
76
+ * `items` this row renders — one boolean per state of the component, on for
77
+ * this row (the per-node ones and the component-level ones), and the row's
78
+ * facts: today its `variant`, a typed string, on a component whose rows have
79
+ * one (`({ item, variant, selected }) => variant === 'destructive' && …`). A
80
+ * function destructures what it reads. The component's props are in scope
81
+ * where the function is written, so they are not repeated here. `Row` is the
82
+ * `item` half when the row can be something else than an element of `items`:
83
+ * a select's `{ known, item }` (Q77.7), a `known-items` stand-in or the option.
76
84
  */
77
- export type PtItemCtx<Item, State extends string> = {
85
+ export type PtItemCtx<Item, State extends string, Variant extends string = never, Row = {
78
86
  readonly item: Item;
79
- } & {
87
+ }> = Row & {
80
88
  readonly [S in State]: boolean;
89
+ } & PtItemFacts<Variant>;
90
+ /** The per-row facts beside the states: `variant`, when the component's rows have one. */
91
+ export type PtItemFacts<Variant extends string> = [Variant] extends [never] ? unknown : {
92
+ readonly variant: Variant;
81
93
  };
82
94
  /** What a per-item function returns: a value, or nothing (`false` / `null` / `undefined` leave the row as it was). */
83
95
  export type PtItemResult = PtValue | false | null | undefined;
@@ -88,10 +100,12 @@ export type PtItemResult = PtValue | false | null | undefined;
88
100
  * inline — the SFC resolver reads only a literal function type as `Function`,
89
101
  * see PASSTHROUGH.md T23.)
90
102
  */
91
- export type PtItemMap<Part extends string, ItemPart extends Part, State extends string, Item> = {
92
- [K in Exclude<Part, ItemPart> | `${Part}:${State}`]?: PtValue;
103
+ export type PtItemMap<Part extends string, ItemPart extends Part, State extends string, Item, Variant extends string = never, Row = {
104
+ readonly item: Item;
105
+ }> = {
106
+ [K in Exclude<Part, ItemPart> | `${Part}:${State}` | `${ItemPart}:${Variant}`]?: PtValue;
93
107
  } & {
94
- [K in ItemPart]?: PtValue | PtItemFn<Item, State>;
108
+ [K in ItemPart]?: PtValue | PtItemFn<Item, State, Variant, Row>;
95
109
  };
96
110
  /** What JSON can carry — the only thing a build-time map ships. */
97
111
  type PtJson = string | number | boolean | null | PtJson[] | {
@@ -111,6 +125,28 @@ export type PtDataValue = string | {
111
125
  export type PtDataMap<Part extends string, State extends string> = {
112
126
  [K in Part | `${Part}:${State}`]?: PtDataValue;
113
127
  };
128
+ /**
129
+ * A build-time map's variant keys (Q76.7): `part:<variant>` for every
130
+ * registered name, an app's own included (`Variant` is `keyof` the registry).
131
+ */
132
+ export type PtVariantDataMap<Part extends string, Variant extends string> = {
133
+ [K in `${Part}:${Variant}`]?: PtDataValue;
134
+ };
135
+ /** `brand-strong` → `brandStrong`: how Vue (and vue-tsc) store a kebab prop word. */
136
+ export type PtCamelize<S extends string> = S extends `${infer Head}-${infer Tail}` ? `${Head}${PtCamelize<Capitalize<Tail>>}` : S;
137
+ /**
138
+ * The `pt:<part>:<variant>` ATTRIBUTES of every registered variant (Q76.7
139
+ * part 2), an app's own names included (`Variant` is `keyof` the registry the
140
+ * app's `bitboss-ui.d.ts` augments). A component intersects it behind
141
+ * a `@vue-ignore` comment: Vue's SFC resolver cannot expand `keyof` an interface
142
+ * into runtime props, and does not need to — the built-in names are declared
143
+ * props, an app's own come from the `variantPt()` mixin at runtime. vue-tsc
144
+ * reads it, so `pt:item:warning="…"` type-checks once `warning` is
145
+ * registered, and a typo does not.
146
+ */
147
+ export type PtVariantAttrs<Part extends string, Variant extends string> = {
148
+ [K in `pt:${Part}:${Variant | PtCamelize<Variant>}`]?: PtValue;
149
+ };
114
150
  /** `part` or `part:state` — the key shape shared by the object form and the global map. */
115
151
  export type PtKey<Part extends string, State extends string> = Part | `${Part}:${State}`;
116
152
  /** The object form, `:pt="{ icon: '…', 'icon:loading': '…' }"`. */
@@ -160,7 +196,9 @@ export type PtBindings<Part extends string, State extends string = string> = Par
160
196
  * The third argument is the row's raw item, for a per-item function on
161
197
  * the part (`PtItemFn`); leave it out on a part that has no item.
162
198
  */
163
- part?: (part: Part, states: Partial<Record<State, boolean>>, item?: unknown) => Record<string, unknown>;
199
+ part?: (part: Part, states: Partial<Record<State, boolean>>, item?: unknown,
200
+ /** A per-node variant (a dropdown entry's). */
201
+ variant?: string) => Record<string, unknown>;
164
202
  /**
165
203
  * The host's attributes and listeners with the resolved `root` (a `class`
166
204
  * inside it), for an internal component that renders the host's root —
@@ -177,7 +215,7 @@ export type PtBindings<Part extends string, State extends string = string> = Par
177
215
  * an error shows red on a disabled field, a hover shows over a selection).
178
216
  * Enforced by `passthrough-ladder.node.test.ts`.
179
217
  */
180
- export declare const PT_STATE_LADDER: readonly ["hasValue", "value", "placeholder", "nearLimit", "atLimit", "empty", "outside", "today", "inRange", "sorted", "sortedDesc", "selected", "rangeStart", "rangeEnd", "checked", "indeterminate", "pressed", "readonly", "disabled", "warnings", "errors", "active", "expanded", "open", "fullscreen", "focused", "focusVisible", "highlighted", "loading"];
218
+ export declare const PT_STATE_LADDER: readonly ["hasValue", "value", "placeholder", "nearLimit", "atLimit", "empty", "outside", "today", "inRange", "activeLink", "exactActiveLink", "sorted", "sortedDesc", "selected", "rangeStart", "rangeEnd", "checked", "indeterminate", "pressed", "readonly", "disabled", "warnings", "errors", "active", "expanded", "open", "fullscreen", "focused", "focusVisible", "highlighted", "loading"];
181
219
  export type PtState = (typeof PT_STATE_LADDER)[number];
182
220
  /**
183
221
  * The states every form control shares, in ladder order.
@@ -245,7 +283,7 @@ export declare const COUNTER_PT_STATES: readonly ["nearLimit", "atLimit"];
245
283
  export type FieldInputPtPart = 'box' | 'icon' | 'spinner' | 'prefix' | 'suffix' | 'clear';
246
284
  /**
247
285
  * The parts of a toggle (checkbox, radio, switch): no box, no affixes — the
248
- * drawn glyph is `icon`. The visually hidden native input is deliberately NOT a
286
+ * drawn glyph is `icon`. The invisible native input under it is deliberately NOT a
249
287
  * part (owner, 2026-09-14): it is never painted, and `input` beside `icon`
250
288
  * invited styling the wrong node.
251
289
  *
@@ -350,6 +388,36 @@ export type GroupPtMap<Item = any> = {
350
388
  } & {
351
389
  [K in GroupRowPtPart]?: PtValue | PtItemFn<Item, GroupPtState>;
352
390
  };
391
+ /**
392
+ * A choice group's field parts (BbRadioGroup, BbCheckboxGroup): an option
393
+ * group's, plus the `variant="pill" | "line"` indicator (Q76.11 d).
394
+ *
395
+ * @part root - The group's container (the fieldset).
396
+ * @part legend - The group's heading — the fieldset `<legend>` (the `legend` prop).
397
+ * @part description - The muted line under the legend (the `description` prop).
398
+ * @part message - The errors / warnings line. A node of its own: it can show at the same time as `hint`.
399
+ * @part hint - The helper line (the `hint` prop), shown on focus, or always with `persistent-hint`.
400
+ * @part list - The node that lays the rows out (flex + wrap, gaps on `--gap` / `--row-gap`): `pt:list="grid grid-cols-3"` re-lays them, `pt:list="[--gap:8px]"` tightens them. With a `variant`, the tab strip. Takes the group-wide states only.
401
+ * @part indicator - With a `variant`: the shape under the checked option, BbTabs' indicator — the sliding pill or bar of a radio group, a checkbox group's pill per run of adjacent picks (or bar per pick). Takes the group-wide states only.
402
+ */
403
+ export type ChoiceFieldPtPart = 'root' | 'legend' | 'description' | 'message' | 'hint' | 'list' | 'indicator';
404
+ /**
405
+ * A choice group's parts: an option group's, plus `indicator`.
406
+ *
407
+ * @part indicator - With a `variant`: the shape under the checked option, BbTabs' indicator — the sliding pill or bar of a radio group, a checkbox group's pill per run of adjacent picks (or bar per pick). Takes the group-wide states only.
408
+ */
409
+ export type ChoicePtPart = GroupPtPart | 'indicator';
410
+ export declare const CHOICE_PT_PARTS: readonly ["root", "legend", "description", "message", "hint", "list", "item", "icon", "label", "itemDescription", "indicator"];
411
+ /**
412
+ * The object form of a choice group's `pt`: an option group's keys and the
413
+ * `indicator`. Each group adds its `variant` as a state on every part
414
+ * (Q76.7), from its own registry.
415
+ */
416
+ export type ChoicePtMap<Item = any> = {
417
+ [K in ChoiceFieldPtPart | `${ChoiceFieldPtPart}:${GroupWidePtState}` | `${GroupRowPtPart}:${GroupPtState}`]?: PtValue;
418
+ } & {
419
+ [K in GroupRowPtPart]?: PtValue | PtItemFn<Item, GroupPtState>;
420
+ };
353
421
  /**
354
422
  * The states of an option group (owner ruling 2026-09-15). Group-wide, on
355
423
  * every part: `hasValue` (something is chosen), `readonly`, `loading` (the
@@ -63,7 +63,7 @@ var e = [
63
63
  "checked",
64
64
  "focused",
65
65
  "focusVisible"
66
- ], l = [
66
+ ], l = [...o, "indicator"], u = [
67
67
  "hasValue",
68
68
  "checked",
69
69
  "readonly",
@@ -75,4 +75,4 @@ var e = [
75
75
  "loading"
76
76
  ];
77
77
  //#endregion
78
- export { a as CHECKABLE_PT_STATES, n as COUNTER_PT_STATES, e as FORM_CONTROL_PT_STATES, o as GROUP_PT_PARTS, l as GROUP_PT_STATES, s as GROUP_ROW_PT_PARTS, c as GROUP_ROW_PT_STATES, t as TEXT_CONTROL_PT_PARTS, r as TOGGLE_PT_PARTS, i as TOGGLE_PT_STATES };
78
+ export { a as CHECKABLE_PT_STATES, l as CHOICE_PT_PARTS, n as COUNTER_PT_STATES, e as FORM_CONTROL_PT_STATES, o as GROUP_PT_PARTS, u as GROUP_PT_STATES, s as GROUP_ROW_PT_PARTS, c as GROUP_ROW_PT_STATES, t as TEXT_CONTROL_PT_PARTS, r as TOGGLE_PT_PARTS, i as TOGGLE_PT_STATES };