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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/README.md +25 -20
  2. package/bin/bitboss-ui.mjs +73 -7
  3. package/dist/ai/BbAlert.md +10 -1
  4. package/dist/ai/BbBadge.md +35 -3
  5. package/dist/ai/BbBadgeButton.md +4 -2
  6. package/dist/ai/BbBaseButton.md +9 -3
  7. package/dist/ai/BbBreadcrumbs.md +2 -2
  8. package/dist/ai/BbButton.md +113 -8
  9. package/dist/ai/BbCheckbox.md +1 -1
  10. package/dist/ai/BbCheckboxGroup.md +94 -6
  11. package/dist/ai/BbColorInput.md +4 -1
  12. package/dist/ai/BbColorPalette.md +2 -1
  13. package/dist/ai/BbConfirm.md +7 -3
  14. package/dist/ai/BbDatePicker.md +2 -1
  15. package/dist/ai/BbDatePickerInput.md +4 -1
  16. package/dist/ai/BbDialog.md +12 -11
  17. package/dist/ai/BbDropdown.md +189 -38
  18. package/dist/ai/BbDropdownButton.md +27 -7
  19. package/dist/ai/BbForm.md +55 -22
  20. package/dist/ai/BbHost.md +2 -2
  21. package/dist/ai/BbHoverCard.md +7 -3
  22. package/dist/ai/BbIcon.md +12 -6
  23. package/dist/ai/BbIndicator.md +11 -1
  24. package/dist/ai/BbNumberInput.md +4 -1
  25. package/dist/ai/BbOffCanvas.md +37 -3
  26. package/dist/ai/BbPopover.md +2 -1
  27. package/dist/ai/BbRadio.md +1 -1
  28. package/dist/ai/BbRadioGroup.md +102 -10
  29. package/dist/ai/BbSelect.md +52 -17
  30. package/dist/ai/BbSelectPopover.md +93 -26
  31. package/dist/ai/BbSwitch.md +1 -1
  32. package/dist/ai/BbSwitchGroup.md +30 -3
  33. package/dist/ai/BbTable.md +17 -10
  34. package/dist/ai/BbTabs.md +8 -3
  35. package/dist/ai/BbTabsList.md +4 -1
  36. package/dist/ai/BbTag.md +5 -2
  37. package/dist/ai/BbTextInput.md +4 -1
  38. package/dist/ai/BbTextarea.md +4 -1
  39. package/dist/ai/BbTimePicker.md +2 -1
  40. package/dist/ai/BbTimePickerInput.md +4 -1
  41. package/dist/ai/BbToast.md +9 -3
  42. package/dist/ai/BbTooltip.md +71 -9
  43. package/dist/ai/ChipsBox.md +1 -1
  44. package/dist/ai/CommonField.md +1 -1
  45. package/dist/ai/OptionsContainer.md +42 -0
  46. package/dist/ai/changelog.json +494 -6
  47. package/dist/ai/components.json +50 -48
  48. package/dist/ai/composables/useBbConfig.md +8 -1
  49. package/dist/ai/composables/useConfirm.md +39 -1
  50. package/dist/ai/design-tokens.json +6 -6
  51. package/dist/ai/guides/agent-contract.md +2 -2
  52. package/dist/ai/guides/ai-router.md +24 -23
  53. package/dist/ai/guides/app-layout.md +5 -0
  54. package/dist/ai/guides/component-picker.md +9 -2
  55. package/dist/ai/guides/design-language.md +24 -24
  56. package/dist/ai/guides/design-tokens.md +15 -8
  57. package/dist/ai/guides/icons-policy.md +9 -2
  58. package/dist/ai/guides/inertia-helpers.md +1183 -301
  59. package/dist/ai/guides/installation-and-plugin-setup.md +12 -2
  60. package/dist/ai/guides/migration/adoption-checklist.md +235 -0
  61. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -15
  62. package/dist/ai/guides/migration/components/bb-dialog.md +9 -9
  63. package/dist/ai/guides/migration/components/bb-dropdown.md +7 -2
  64. package/dist/ai/guides/migration/components/bb-popover.md +4 -2
  65. package/dist/ai/guides/migration/components/bb-select.md +19 -0
  66. package/dist/ai/guides/migration/components/bb-table.md +1 -0
  67. package/dist/ai/guides/migration/components/bb-toast.md +4 -0
  68. package/dist/ai/guides/migration/components/bb-tooltip.md +15 -12
  69. package/dist/ai/guides/migration/components/use-confirm.md +25 -2
  70. package/dist/ai/guides/migration/v2-to-v3.md +211 -9
  71. package/dist/ai/guides/migration/v3-beta-css-classes.md +7 -3
  72. package/dist/ai/guides/options-items-playbook.md +2 -1
  73. package/dist/ai/guides/passthrough.md +149 -85
  74. package/dist/ai/guides/preset-components.md +140 -15
  75. package/dist/ai/helpers/definePreset.json +7 -0
  76. package/dist/ai/helpers/definePreset.ts +123 -11
  77. package/dist/ai/helpers/inertia/manifest.json +151 -62
  78. package/dist/ai/helpers/inertia/messages.ts +33 -0
  79. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +120 -20
  80. package/dist/ai/helpers/inertia/useHasChanged.ts +34 -16
  81. package/dist/ai/helpers/inertia/useLazyProp.ts +102 -36
  82. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +3 -1
  83. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +154 -34
  84. package/dist/ai/helpers/inertia/usePromiseForm.ts +121 -14
  85. package/dist/ai/helpers/inertia/useQuery.ts +133 -11
  86. package/dist/ai/helpers/inertia/useQueryObject.ts +74 -67
  87. package/dist/ai/helpers/inertia/useResourceContext.ts +60 -14
  88. package/dist/ai/helpers/inertia/useRouteQuery.ts +38 -27
  89. package/dist/ai/helpers/inertia/useScreenSizes.ts +9 -7
  90. package/dist/ai/helpers/inertia/useTableContext.ts +5 -2
  91. package/dist/ai/helpers/inertia/utils.ts +14 -0
  92. package/dist/ai/index.md +1 -0
  93. package/dist/ai/manifest/common.json +0 -1
  94. package/dist/ai/manifest/components/BbAlert.json +7 -2
  95. package/dist/ai/manifest/components/BbBadge.json +13 -4
  96. package/dist/ai/manifest/components/BbBadge.tree.json +2 -0
  97. package/dist/ai/manifest/components/BbBadgeButton.json +4 -2
  98. package/dist/ai/manifest/components/BbBaseButton.json +4 -2
  99. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  100. package/dist/ai/manifest/components/BbButton.json +14 -3
  101. package/dist/ai/manifest/components/BbButton.tree.json +5 -1
  102. package/dist/ai/manifest/components/BbCheckboxGroup.json +13 -8
  103. package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +11 -1
  104. package/dist/ai/manifest/components/BbColorInput.json +18 -15
  105. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  106. package/dist/ai/manifest/components/BbConfirm.json +4 -2
  107. package/dist/ai/manifest/components/BbConfirm.tree.json +1 -1
  108. package/dist/ai/manifest/components/BbDatePicker.json +1 -1
  109. package/dist/ai/manifest/components/BbDatePickerInput.json +17 -14
  110. package/dist/ai/manifest/components/BbDialog.tree.json +2 -1
  111. package/dist/ai/manifest/components/BbDropdown.json +24 -19
  112. package/dist/ai/manifest/components/BbDropdown.tree.json +9 -2
  113. package/dist/ai/manifest/components/BbDropdownButton.json +33 -20
  114. package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -2
  115. package/dist/ai/manifest/components/BbForm.json +2 -2
  116. package/dist/ai/manifest/components/BbHost.tree.json +1 -1
  117. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  118. package/dist/ai/manifest/components/BbIndicator.json +8 -2
  119. package/dist/ai/manifest/components/BbNumberInput.json +5 -2
  120. package/dist/ai/manifest/components/BbOffCanvas.json +2 -2
  121. package/dist/ai/manifest/components/BbOffCanvas.tree.json +1 -1
  122. package/dist/ai/manifest/components/BbPopover.json +1 -1
  123. package/dist/ai/manifest/components/BbRadioGroup.json +17 -12
  124. package/dist/ai/manifest/components/BbRadioGroup.tree.json +8 -1
  125. package/dist/ai/manifest/components/BbSelect.json +21 -18
  126. package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
  127. package/dist/ai/manifest/components/BbSelectPopover.json +10 -10
  128. package/dist/ai/manifest/components/BbSelectPopover.tree.json +3 -2
  129. package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
  130. package/dist/ai/manifest/components/BbSwitchGroup.tree.json +3 -1
  131. package/dist/ai/manifest/components/BbTable.tree.json +14 -1
  132. package/dist/ai/manifest/components/BbTabs.json +9 -6
  133. package/dist/ai/manifest/components/BbTabs.tree.json +1 -1
  134. package/dist/ai/manifest/components/BbTabsList.json +6 -3
  135. package/dist/ai/manifest/components/BbTag.json +19 -16
  136. package/dist/ai/manifest/components/BbTag.tree.json +1 -1
  137. package/dist/ai/manifest/components/BbTextInput.json +6 -3
  138. package/dist/ai/manifest/components/BbTextarea.json +6 -3
  139. package/dist/ai/manifest/components/BbTimePicker.json +1 -1
  140. package/dist/ai/manifest/components/BbTimePickerInput.json +10 -7
  141. package/dist/ai/manifest/components/BbToast.json +7 -2
  142. package/dist/ai/manifest/components/BbToast.tree.json +4 -2
  143. package/dist/ai/manifest/components/BbTooltip.json +6 -5
  144. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  145. package/dist/ai/manifest/components/CommonField.json +1 -1
  146. package/dist/ai/manifest/components/OptionsContainer.json +3 -1
  147. package/dist/ai/manifest/components/OptionsContainer.tree.json +38 -0
  148. package/dist/ai/manifest/index.json +3 -3
  149. package/dist/ai/manifest/meta.json +5 -3
  150. package/dist/ai/manifest/types.advanced.json +5 -2
  151. package/dist/ai/manifest/types.api.json +9 -7
  152. package/dist/ai/recipes/inertia/approvals-inbox.md +1 -1
  153. package/dist/ai/recipes/inertia/inline-edit-workspace.md +1 -1
  154. package/dist/ai/recipes/inertia/layout-scaffold.md +19 -6
  155. package/dist/ai/recipes/inertia/ownership-atlas.md +1 -1
  156. package/dist/ai/recipes/inertia/records-workspace.md +50 -14
  157. package/dist/ai/recipes/inertia/upload-center.md +1 -1
  158. package/dist/ai/recipes/nuxt/layout-scaffold.md +19 -6
  159. package/dist/ai/recipes/nuxt/records-workspace.md +42 -12
  160. package/dist/ai/recipes/vue/layout-scaffold.md +19 -6
  161. package/dist/ai/recipes/vue/records-workspace.md +42 -12
  162. package/dist/ai/source/BbAlert.md +94 -76
  163. package/dist/ai/source/BbBadge.md +174 -72
  164. package/dist/ai/source/BbBadgeButton.md +130 -65
  165. package/dist/ai/source/BbBaseButton.md +46 -124
  166. package/dist/ai/source/BbBaseCheckboxIcon.md +38 -0
  167. package/dist/ai/source/BbBaseRadioIcon.md +18 -0
  168. package/dist/ai/source/BbBaseSwitchIcon.md +51 -0
  169. package/dist/ai/source/BbButton.md +153 -36
  170. package/dist/ai/source/BbCheckboxGroup.md +142 -18
  171. package/dist/ai/source/BbColorInput.md +240 -204
  172. package/dist/ai/source/BbColorPalette.md +7 -4
  173. package/dist/ai/source/BbConfirm.md +34 -11
  174. package/dist/ai/source/BbConfirmPortal.md +24 -9
  175. package/dist/ai/source/BbDatePicker.md +11 -7
  176. package/dist/ai/source/BbDatePickerInput.md +306 -269
  177. package/dist/ai/source/BbDialog.md +49 -14
  178. package/dist/ai/source/BbDropdown.md +314 -197
  179. package/dist/ai/source/BbDropdownButton.md +197 -31
  180. package/dist/ai/source/BbDropdownGroup.md +274 -176
  181. package/dist/ai/source/BbForm.md +50 -6
  182. package/dist/ai/source/BbHoverCard.md +12 -5
  183. package/dist/ai/source/BbIcon.md +4 -3
  184. package/dist/ai/source/BbIndicator.md +73 -52
  185. package/dist/ai/source/BbNumberInput.md +293 -257
  186. package/dist/ai/source/BbOffCanvas.md +55 -29
  187. package/dist/ai/source/BbPopover.md +14 -10
  188. package/dist/ai/source/BbRadioGroup.md +413 -297
  189. package/dist/ai/source/BbSelect.md +549 -435
  190. package/dist/ai/source/BbSelectPopover.md +153 -34
  191. package/dist/ai/source/BbSwitchGroup.md +70 -10
  192. package/dist/ai/source/BbTable.md +369 -37
  193. package/dist/ai/source/BbTabs.md +115 -39
  194. package/dist/ai/source/BbTabsList.md +106 -38
  195. package/dist/ai/source/BbTabsPanels.md +96 -36
  196. package/dist/ai/source/BbTabsRoot.md +96 -36
  197. package/dist/ai/source/BbTag.md +267 -233
  198. package/dist/ai/source/BbTextInput.md +261 -225
  199. package/dist/ai/source/BbTextarea.md +251 -215
  200. package/dist/ai/source/BbTimePicker.md +11 -7
  201. package/dist/ai/source/BbTimePickerInput.md +257 -220
  202. package/dist/ai/source/BbToast.md +73 -32
  203. package/dist/ai/source/BbToastPortal.md +65 -30
  204. package/dist/ai/source/BbTooltip.md +148 -113
  205. package/dist/ai/source/CommonPopover.md +6 -1
  206. package/dist/ai/source/FlatListBox.md +19 -9
  207. package/dist/ai/source/GroupedListBox.md +19 -9
  208. package/dist/ai/source/OptionsContainer.md +25 -9
  209. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +61 -36
  210. package/dist/components/BbAlert/types.d.ts +9 -5
  211. package/dist/components/BbAlert/types.js +8 -3
  212. package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +3 -3
  213. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +26 -17
  214. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +103 -50
  215. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +20 -15
  216. package/dist/components/BbBadge/badgeButtonContext.d.ts +12 -1
  217. package/dist/components/BbBadge/types.d.ts +45 -15
  218. package/dist/components/BbBadge/types.js +12 -3
  219. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +89 -126
  220. package/dist/components/BbBaseButton/types.d.ts +23 -4
  221. package/dist/components/BbBaseButton/types.js +7 -1
  222. package/dist/components/BbBaseButton/useLinkState.d.ts +41 -0
  223. package/dist/components/BbBaseButton/useLinkState.js +70 -0
  224. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +130 -74
  225. package/dist/components/BbButton/types.d.ts +50 -13
  226. package/dist/components/BbButton/types.js +10 -3
  227. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +148 -95
  228. package/dist/components/BbCheckboxGroup/types.d.ts +34 -11
  229. package/dist/components/BbCheckboxGroup/types.js +9 -4
  230. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +1 -1
  231. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +134 -93
  232. package/dist/components/BbColorInput/types.d.ts +11 -4
  233. package/dist/components/BbColorInput/types.js +9 -3
  234. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +82 -59
  235. package/dist/components/BbConfirm/types.d.ts +9 -4
  236. package/dist/components/BbConfirm/types.js +8 -3
  237. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  238. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +68 -67
  239. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -1
  240. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +259 -215
  241. package/dist/components/BbDatePickerInput/types.d.ts +12 -5
  242. package/dist/components/BbDatePickerInput/types.js +9 -3
  243. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +223 -219
  244. package/dist/components/BbDialog/useDialogStack.d.ts +1 -1
  245. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +104 -89
  246. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -0
  247. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +323 -285
  248. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +1 -0
  249. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +411 -319
  250. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +100 -98
  251. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +4 -3
  252. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +49 -28
  253. package/dist/components/BbDropdown/normalizeGroups.d.ts +6 -0
  254. package/dist/components/BbDropdown/normalizeGroups.js +21 -15
  255. package/dist/components/BbDropdown/types.d.ts +59 -12
  256. package/dist/components/BbDropdown/types.js +16 -3
  257. package/dist/components/BbDropdown/useDropdownContext.d.ts +6 -0
  258. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +2 -1
  259. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +179 -68
  260. package/dist/components/BbDropdownButton/types.d.ts +44 -16
  261. package/dist/components/BbDropdownButton/types.js +28 -3
  262. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +111 -89
  263. package/dist/components/BbForm/formSchema.d.ts +13 -0
  264. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +100 -100
  265. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +40 -25
  266. package/dist/components/BbIndicator/types.d.ts +9 -5
  267. package/dist/components/BbIndicator/types.js +8 -3
  268. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +243 -202
  269. package/dist/components/BbNumberInput/types.d.ts +12 -5
  270. package/dist/components/BbNumberInput/types.js +9 -3
  271. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  272. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +401 -399
  273. package/dist/components/BbOffCanvas/types.d.ts +6 -2
  274. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +81 -80
  275. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +158 -105
  276. package/dist/components/BbRadioGroup/types.d.ts +21 -7
  277. package/dist/components/BbRadioGroup/types.js +9 -4
  278. package/dist/components/BbSelect/BbSelect.vue.d.ts +4 -3
  279. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +181 -137
  280. package/dist/components/BbSelect/types.d.ts +36 -22
  281. package/dist/components/BbSelect/types.js +22 -3
  282. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +4 -4
  283. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +600 -577
  284. package/dist/components/BbSelectPopover/knownItems.d.ts +5 -0
  285. package/dist/components/BbSelectPopover/types.d.ts +46 -12
  286. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  287. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +2 -2
  288. package/dist/components/BbSwitchGroup/types.d.ts +14 -4
  289. package/dist/components/BbSwitchGroup/types.js +8 -3
  290. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1102 -995
  291. package/dist/components/BbTable/estimatedFloors.golden.d.ts +25 -0
  292. package/dist/components/BbTable/measuredFloors.d.ts +46 -0
  293. package/dist/components/BbTable/measuredFloors.js +322 -0
  294. package/dist/components/BbTable/measuredFloorsTestKit.d.ts +27 -0
  295. package/dist/components/BbTable/textRuler.d.ts +71 -0
  296. package/dist/components/BbTable/textRuler.js +121 -0
  297. package/dist/components/BbTable/utils.d.ts +113 -6
  298. package/dist/components/BbTable/utils.js +118 -65
  299. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +53 -35
  300. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +62 -45
  301. package/dist/components/BbTabs/types.d.ts +26 -11
  302. package/dist/components/BbTabs/types.js +23 -8
  303. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +205 -164
  304. package/dist/components/BbTag/types.d.ts +11 -4
  305. package/dist/components/BbTag/types.js +9 -3
  306. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +98 -57
  307. package/dist/components/BbTextInput/types.d.ts +12 -5
  308. package/dist/components/BbTextInput/types.js +9 -3
  309. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +137 -96
  310. package/dist/components/BbTextarea/types.d.ts +12 -5
  311. package/dist/components/BbTextarea/types.js +9 -3
  312. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +105 -104
  313. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +241 -197
  314. package/dist/components/BbTimePickerInput/types.d.ts +12 -5
  315. package/dist/components/BbTimePickerInput/types.js +9 -3
  316. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +74 -32
  317. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +47 -47
  318. package/dist/components/BbToast/types.d.ts +10 -5
  319. package/dist/components/BbToast/types.js +18 -3
  320. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +85 -71
  321. package/dist/components/BbTooltip/types.d.ts +13 -8
  322. package/dist/components/BbTooltip/types.js +8 -3
  323. package/dist/components/CommonField/CommonField.vue.d.ts +1 -1
  324. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +1 -1
  325. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +69 -69
  326. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +53 -50
  327. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +146 -143
  328. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +7 -2
  329. package/dist/components/OptionsContainer/types.d.ts +14 -3
  330. package/dist/composables/useBbConfig.d.ts +1 -0
  331. package/dist/composables/useBbConfig.js +11 -7
  332. package/dist/composables/useBbFormContext.d.ts +4 -3
  333. package/dist/composables/useBbTabsContext.js +99 -85
  334. package/dist/composables/useChoiceIndicator.d.ts +58 -0
  335. package/dist/composables/useChoiceIndicator.js +197 -0
  336. package/dist/composables/useConfirm.d.ts +4 -4
  337. package/dist/composables/usePassthrough.d.ts +54 -1
  338. package/dist/composables/usePassthrough.js +100 -71
  339. package/dist/directives/bbTooltip.d.ts +12 -6
  340. package/dist/directives/createPopoverDirective.js +1 -1
  341. package/dist/index.d.ts +3 -1
  342. package/dist/llms-full.txt +3467 -801
  343. package/dist/llms-medium.txt +71 -53
  344. package/dist/llms.txt +2 -1
  345. package/dist/passthrough-deduper.js +6 -3
  346. package/dist/project-dts.d.ts +24 -0
  347. package/dist/project-dts.js +43 -17
  348. package/dist/styles.css +2 -2
  349. package/dist/types/AlertVariant.d.ts +14 -0
  350. package/dist/types/AlertVariant.js +9 -0
  351. package/dist/types/BadgeVariant.d.ts +14 -0
  352. package/dist/types/BadgeVariant.js +9 -0
  353. package/dist/types/ButtonVariant.d.ts +16 -0
  354. package/dist/types/ButtonVariant.js +11 -0
  355. package/dist/types/CheckboxVariant.d.ts +38 -0
  356. package/dist/types/CheckboxVariant.js +4 -0
  357. package/dist/types/CommonProps.d.ts +4 -3
  358. package/dist/types/Config.d.ts +7 -0
  359. package/dist/types/ConfirmVariant.d.ts +12 -0
  360. package/dist/types/ConfirmVariant.js +4 -0
  361. package/dist/types/DropdownItemVariant.d.ts +12 -0
  362. package/dist/types/DropdownItemVariant.js +4 -0
  363. package/dist/types/IndicatorVariant.d.ts +15 -0
  364. package/dist/types/IndicatorVariant.js +10 -0
  365. package/dist/types/InputVariant.d.ts +13 -0
  366. package/dist/types/InputVariant.js +8 -0
  367. package/dist/types/RadioVariant.d.ts +38 -0
  368. package/dist/types/RadioVariant.js +4 -0
  369. package/dist/types/TabsVariant.d.ts +13 -0
  370. package/dist/types/TabsVariant.js +8 -0
  371. package/dist/types/ToastVariant.d.ts +15 -0
  372. package/dist/types/ToastVariant.js +10 -0
  373. package/dist/types/TooltipVariant.d.ts +12 -0
  374. package/dist/types/TooltipVariant.js +4 -0
  375. package/dist/types/passthrough.d.ts +83 -15
  376. package/dist/types/passthrough.js +2 -2
  377. package/dist/types/ptComponentMap.d.ts +35 -23
  378. package/dist/utilities/functions/extractDomContainer.d.ts +20 -1
  379. package/dist/utilities/functions/extractDomContainer.js +8 -3
  380. package/dist/utils/focusVisibility.d.ts +6 -0
  381. package/dist/utils/focusVisibility.js +4 -1
  382. package/dist/utils/passthroughDeduper.d.ts +14 -0
  383. package/dist/utils/versionCheck.js +1 -1
  384. package/dist/vite-plugin.d.ts +64 -7
  385. package/dist/vite.js +385 -259
  386. package/llms.txt +2 -1
  387. package/package.json +5 -4
  388. package/scripts/lib/adoption-checklist.json +312 -0
  389. package/scripts/lib/eslint-plugin.d.ts +13 -0
  390. package/scripts/lib/eslint-plugin.mjs +75 -11
  391. package/scripts/lib/helpers-add.mjs +26 -2
  392. package/scripts/lib/idiom-scan.mjs +65 -0
  393. package/scripts/lib/mcp-config.mjs +203 -9
  394. package/scripts/lib/migrate-fix.mjs +42 -1
  395. package/scripts/lib/project-variant-dts.mjs +18 -0
  396. package/scripts/lib/validate-bb-markup.mjs +99 -2
@@ -1,30 +1,32 @@
1
1
  import { isNotEmpty as e } from "../../utilities/functions/isNotEmpty.js";
2
- import { aliasParts as t, formControlPtActive as n, pickActive as r, usePassthrough as i } from "../../composables/usePassthrough.js";
3
- import { hash as a } from "../../utilities/functions/hash.js";
4
- import { useId as o } from "../../composables/useId.js";
5
- import { removedPropsFor as s } from "../../deprecation/removedProps.js";
6
- import { warnRemovedAttrs as c } from "../../utilities/functions/warnRemovedAttrs.js";
7
- import { useItemsGetter as l } from "../../composables/useItemsGetter.js";
8
- import { withItemDescribedby as u } from "../../utilities/functions/itemProps.js";
9
- import { useHashedWatcher as d } from "../../composables/useHashedWatcher.js";
10
- import { vAutofocus as ee } from "../../utilities/misc/autofocus.js";
11
- import te from "../CommonField/CommonField.vue.js";
12
- import { preventReadonlyClick as ne, preventReadonlyKeydown as re, revertReadonlyChange as ie, toggleInputAttrs as ae, toggleInputValue as oe } from "../../utilities/functions/toggleInput.js";
13
- import { useToggleListFocus as se } from "../../composables/useToggleInput.js";
14
- import { useFormBinding as ce } from "../../composables/useFormBinding.js";
15
- import le from "../OptionsContainer/OptionsContainer.vue.js";
16
- import { useIndexById as f } from "../../composables/useIndexById.js";
17
- import { useBaseOptions as p } from "../../composables/useBaseOptions.js";
18
- import { useCoherence as m } from "../../composables/useCoherence.js";
19
- import { usePrefill as ue } from "../../composables/usePrefill.js";
20
- import { useActiveInactiveState as de } from "../../composables/useActiveInactiveState.js";
21
- import { useOnFalsy as fe } from "../../composables/useOnFalsy.js";
22
- import { useOnTruthy as pe } from "../../composables/useOnTruthy.js";
23
- import me from "../BbBaseRadioIcon/BbBaseRadioIcon.vue.js";
2
+ import { aliasParts as t, formControlPtActive as n, pickActive as r, usePassthrough as i, variantPt as a } from "../../composables/usePassthrough.js";
3
+ import { hash as o } from "../../utilities/functions/hash.js";
4
+ import { useId as s } from "../../composables/useId.js";
5
+ import { removedPropsFor as c } from "../../deprecation/removedProps.js";
6
+ import { warnRemovedAttrs as l } from "../../utilities/functions/warnRemovedAttrs.js";
7
+ import { useItemsGetter as ee } from "../../composables/useItemsGetter.js";
8
+ import { withItemDescribedby as te } from "../../utilities/functions/itemProps.js";
9
+ import { useHashedWatcher as u } from "../../composables/useHashedWatcher.js";
10
+ import { vAutofocus as d } from "../../utilities/misc/autofocus.js";
11
+ import f from "../CommonField/CommonField.vue.js";
12
+ import { preventReadonlyClick as p, preventReadonlyKeydown as ne, revertReadonlyChange as re, toggleInputAttrs as ie, toggleInputValue as ae } from "../../utilities/functions/toggleInput.js";
13
+ import { useToggleListFocus as oe } from "../../composables/useToggleInput.js";
14
+ import { useFormBinding as se } from "../../composables/useFormBinding.js";
15
+ import ce from "../OptionsContainer/OptionsContainer.vue.js";
16
+ import { useChoiceIndicator as le } from "../../composables/useChoiceIndicator.js";
17
+ import { useIndexById as m } from "../../composables/useIndexById.js";
18
+ import { useBaseOptions as ue } from "../../composables/useBaseOptions.js";
19
+ import { useCoherence as de } from "../../composables/useCoherence.js";
20
+ import { usePrefill as fe } from "../../composables/usePrefill.js";
21
+ import { useActiveInactiveState as pe } from "../../composables/useActiveInactiveState.js";
22
+ import { useOnFalsy as me } from "../../composables/useOnFalsy.js";
23
+ import { useOnTruthy as he } from "../../composables/useOnTruthy.js";
24
+ import ge from "../BbBaseRadioIcon/BbBaseRadioIcon.vue.js";
24
25
  import { BB_RADIO_GROUP_PT as h } from "./types.js";
25
- import { computed as g, createBlock as he, createElementVNode as ge, createSlots as _e, createVNode as _, defineComponent as v, guardReactiveProps as y, mergeProps as b, nextTick as ve, normalizeProps as x, openBlock as ye, ref as be, renderSlot as S, shallowRef as xe, toRef as C, unref as w, useAttrs as T, useSlots as E, withCtx as D, withDirectives as O } from "vue";
26
+ import { Fragment as _e, computed as g, createBlock as ve, createElementBlock as _, createElementVNode as v, createSlots as ye, createVNode as y, defineComponent as b, guardReactiveProps as x, mergeProps as S, nextTick as be, normalizeProps as C, openBlock as w, ref as xe, renderList as Se, renderSlot as T, shallowRef as E, toRef as D, unref as O, useAttrs as k, useSlots as A, withCtx as j, withDirectives as Ce } from "vue";
26
27
  //#region src/components/BbRadioGroup/BbRadioGroup.vue?vue&type=script&setup=true&lang.ts
27
- var k = /*@__PURE__*/ v({
28
+ var M = /*@__PURE__*/ b({
29
+ mixins: [a(h)],
28
30
  inheritAttrs: !1,
29
31
  __name: "BbRadioGroup",
30
32
  props: {
@@ -34,6 +36,7 @@ var k = /*@__PURE__*/ v({
34
36
  "pt:message": {},
35
37
  "pt:hint": {},
36
38
  "pt:list": {},
39
+ "pt:indicator": {},
37
40
  "pt:root:hasValue": {},
38
41
  "pt:root:readonly": {},
39
42
  "pt:root:disabled": {},
@@ -70,6 +73,26 @@ var k = /*@__PURE__*/ v({
70
73
  "pt:list:warnings": {},
71
74
  "pt:list:errors": {},
72
75
  "pt:list:loading": {},
76
+ "pt:indicator:hasValue": {},
77
+ "pt:indicator:readonly": {},
78
+ "pt:indicator:disabled": {},
79
+ "pt:indicator:warnings": {},
80
+ "pt:indicator:errors": {},
81
+ "pt:indicator:loading": {},
82
+ "pt:root:pill": {},
83
+ "pt:root:line": {},
84
+ "pt:legend:pill": {},
85
+ "pt:legend:line": {},
86
+ "pt:description:pill": {},
87
+ "pt:description:line": {},
88
+ "pt:message:pill": {},
89
+ "pt:message:line": {},
90
+ "pt:hint:pill": {},
91
+ "pt:hint:line": {},
92
+ "pt:list:pill": {},
93
+ "pt:list:line": {},
94
+ "pt:indicator:pill": {},
95
+ "pt:indicator:line": {},
73
96
  "pt:item:hasValue": {},
74
97
  "pt:item:checked": {},
75
98
  "pt:item:readonly": {},
@@ -106,6 +129,14 @@ var k = /*@__PURE__*/ v({
106
129
  "pt:itemDescription:focused": {},
107
130
  "pt:itemDescription:focusVisible": {},
108
131
  "pt:itemDescription:loading": {},
132
+ "pt:item:pill": {},
133
+ "pt:item:line": {},
134
+ "pt:icon:pill": {},
135
+ "pt:icon:line": {},
136
+ "pt:label:pill": {},
137
+ "pt:label:line": {},
138
+ "pt:itemDescription:pill": {},
139
+ "pt:itemDescription:line": {},
109
140
  "pt:item": {},
110
141
  "pt:icon": {},
111
142
  "pt:label": {},
@@ -141,6 +172,7 @@ var k = /*@__PURE__*/ v({
141
172
  legendPosition: {},
142
173
  legend: {},
143
174
  legendMode: {},
175
+ variant: {},
144
176
  listLayout: {},
145
177
  loadingText: {},
146
178
  modelValue: {},
@@ -174,66 +206,70 @@ var k = /*@__PURE__*/ v({
174
206
  "mouseup",
175
207
  "update:modelValue"
176
208
  ],
177
- setup(v, { emit: k }) {
178
- let A = v, j = k, M = E(), { props: N, emit: P, showAsterisk: Se, errors: Ce, ariaRequired: we, readonly: F } = ce(A, j, {
209
+ setup(a, { emit: b }) {
210
+ let M = a, we = b, Te = A(), { props: N, emit: P, showAsterisk: Ee, errors: De, ariaRequired: Oe, readonly: F } = se(M, we, {
179
211
  componentName: "BbRadioGroup",
180
- identifierFallback: () => A.legend,
212
+ identifierFallback: () => M.legend,
181
213
  leaveOn: "inactive"
182
- }), I = () => !!N.legend || !!M.legend;
183
- process.env.NODE_ENV !== "production" && c("BbRadioGroup", s("BbRadioGroup"));
184
- let Te = o().id, L = g(() => N.name || Te.value), Ee = [], R = g(() => N.items === void 0 ? Ee : N.items), z = xe(null), De = (e) => {
214
+ }), I = () => !!N.legend || !!Te.legend;
215
+ process.env.NODE_ENV !== "production" && l("BbRadioGroup", c("BbRadioGroup"));
216
+ let ke = s().id, L = g(() => N.name || ke.value), Ae = [], R = g(() => N.items === void 0 ? Ae : N.items), z = E(null), je = (e) => {
185
217
  z.value = e?.$el ?? null;
186
- }, { active: B } = de(z), V = be(!1), Oe = g(() => N.persistentHint || V.value);
187
- fe(B, () => {
218
+ }, { active: B } = pe(z), V = xe(!1), Me = g(() => N.persistentHint || V.value);
219
+ me(B, () => {
188
220
  V.value = !1, P("inactive");
189
- }), pe(B, () => {
221
+ }), he(B, () => {
190
222
  V.value = !0, P("active");
191
223
  });
192
- let { getter: H, clientReproducible: ke, hydratedFromSsr: Ae, items: je, loading: U, error: Me, ssrMarker: Ne } = l({
224
+ let { getter: H, clientReproducible: Ne, hydratedFromSsr: Pe, items: Fe, loading: U, error: Ie, ssrMarker: Le } = ee({
193
225
  items: R,
194
226
  marker: !0
195
227
  }), W = () => {
196
- N.enforceCoherence && !J.value && P("update:modelValue", null);
197
- }, { hasPrefilled: G, whenPrefilled: Pe } = ue({
198
- alreadyLoaded: Ae,
199
- clientReproducible: ke,
228
+ N.enforceCoherence && !q.value && P("update:modelValue", null);
229
+ }, { hasPrefilled: G, whenPrefilled: Re } = fe({
230
+ alreadyLoaded: Pe,
231
+ clientReproducible: Ne,
200
232
  trigger: !0,
201
233
  currentValue: N.modelValue,
202
234
  multiple: !1,
203
235
  fn: async () => {
204
236
  await H(void 0, "initial", N.modelValue) === "applied" && W();
205
237
  }
206
- }), { data: K } = f({ items: g(() => [N.modelValue]) }), { options: q } = p({
207
- disabled: C(N, "disabled"),
208
- items: je,
238
+ }), { data: ze } = m({ items: g(() => [N.modelValue]) }), { options: K } = ue({
239
+ disabled: D(N, "disabled"),
240
+ items: Fe,
209
241
  itemText: N.itemText,
210
- itemProps: C(N, "itemProps"),
242
+ itemProps: D(N, "itemProps"),
211
243
  itemValue: N.itemValue,
212
244
  optionDefaults: !0,
213
245
  max: Infinity,
214
- selectable: C(N, "selectable"),
215
- selectedIndexedByHash: K
216
- }), { data: Fe } = f({
217
- items: q,
246
+ selectable: D(N, "selectable"),
247
+ selectedIndexedByHash: ze
248
+ }), { data: Be } = m({
249
+ items: K,
218
250
  key: "valueHash"
219
- }), { coherent: J } = m({
220
- modelValue: C(N, "modelValue"),
251
+ }), { coherent: q } = de({
252
+ modelValue: D(N, "modelValue"),
221
253
  multiple: !1,
222
- iteratee: (e) => !!Fe.value[a(e)]
223
- }), Y = 0;
224
- d(() => N.modelValue, async () => {
225
- Y++, J.value || await H(void 0, "model", N.modelValue) === "applied" && W(), Y--;
226
- }, { debounce: N.modelValueDebounceTime === void 0 ? 0 : N.modelValueDebounceTime }), d(() => [N.dependencies, R.value], async () => {
227
- G.value || await Pe(), G.value && (Y++, await H(void 0, "dependencies", N.modelValue) === "applied" && Y === 1 && W(), Y--);
254
+ iteratee: (e) => !!Be.value[o(e)]
255
+ }), J = 0;
256
+ u(() => N.modelValue, async () => {
257
+ J++, q.value || await H(void 0, "model", N.modelValue) === "applied" && W(), J--;
258
+ }, { debounce: N.modelValueDebounceTime === void 0 ? 0 : N.modelValueDebounceTime }), u(() => [N.dependencies, R.value], async () => {
259
+ G.value || await Re(), G.value && (J++, await H(void 0, "dependencies", N.modelValue) === "applied" && J === 1 && W(), J--);
228
260
  }, { debounce: N.depsDebounceTime === void 0 ? 0 : N.depsDebounceTime });
229
- let X = g(() => e(N.modelValue)), Z = i({
261
+ let Y = g(() => e(N.modelValue)), X = i({
230
262
  component: "BbRadioGroup",
231
- attrs: T(),
263
+ attrs: k(),
232
264
  props: N,
233
265
  parts: h.parts,
234
266
  states: h.states,
267
+ variant: {
268
+ ...h.variant,
269
+ current: () => N.variant
270
+ },
235
271
  active: {
236
- ...r(n(N, () => X.value), [
272
+ ...r(n(N, () => Y.value), [
237
273
  "errors",
238
274
  "warnings",
239
275
  "disabled",
@@ -242,39 +278,46 @@ var k = /*@__PURE__*/ v({
242
278
  ]),
243
279
  loading: () => U.value
244
280
  }
245
- }), Ie = t(Z, { label: "legend" }), Q = se(), $ = (e, t) => {
281
+ }), Z = g(() => N.listLayout === "vertical" || N.listLayout === "vertical-stretch"), { boxes: Ve, ready: He, styleOf: Ue } = le({
282
+ kind: "radio",
283
+ variant: () => N.variant,
284
+ vertical: () => Z.value,
285
+ list: () => z.value,
286
+ rows: () => K.value,
287
+ rowClass: "bb-radio-group__item"
288
+ }), We = t(X, { label: "legend" }), Q = oe(), $ = (e, t) => {
246
289
  if (t) return [t, e.valueHash].filter(Boolean).join("-");
247
- }, Le = () => {
290
+ }, Ge = () => {
248
291
  let e = z.value?.querySelectorAll("input[type=\"radio\"]") ?? [];
249
- e.length === q.value.length && q.value.forEach((t, n) => {
292
+ e.length === K.value.length && K.value.forEach((t, n) => {
250
293
  e[n].checked = !!t.selected;
251
294
  });
252
- }, Re = (e) => ({
295
+ }, Ke = (e) => ({
253
296
  onBlur: (t) => {
254
297
  Q.onBlur(e.valueHash), P("blur", t);
255
298
  },
256
299
  onChange: (t) => {
257
300
  if (N.readonly) {
258
- t.target instanceof HTMLInputElement && ie(t.target, N.readonly, !!e.selected);
301
+ t.target instanceof HTMLInputElement && re(t.target, N.readonly, !!e.selected);
259
302
  return;
260
303
  }
261
- P("change", t), P("update:modelValue", e.value), ve(Le);
304
+ P("change", t), P("update:modelValue", e.value), be(Ge);
262
305
  },
263
306
  onClick: (e) => {
264
- ne(e, N.readonly), P("click", e);
307
+ p(e, N.readonly), P("click", e);
265
308
  },
266
309
  onFocus: (t) => {
267
310
  Q.onFocus(e.valueHash, t), V.value = !0, P("focus", t);
268
311
  },
269
312
  onInput: (e) => P("input", e),
270
313
  onKeydown: (e) => {
271
- re(e, N.readonly), P("keydown", e);
314
+ ne(e, N.readonly), P("keydown", e);
272
315
  },
273
316
  onMousedown: (e) => P("mousedown", e),
274
317
  onMouseup: (e) => P("mouseup", e)
275
- }), ze = (e, t, n, r, i, a) => ({
276
- ...ae("radio", {
277
- ariaDescribedby: u(r, a),
318
+ }), qe = (e, t, n, r, i, a) => ({
319
+ ...ie("radio", {
320
+ ariaDescribedby: te(r, a),
278
321
  ariaLabelledby: i,
279
322
  autofocus: N.autofocus && !t,
280
323
  checked: !!e.selected,
@@ -285,8 +328,8 @@ var k = /*@__PURE__*/ v({
285
328
  required: N.required,
286
329
  value: e.value
287
330
  }),
288
- ...Re(e)
289
- }), Be = (e, t, n, r) => ({
331
+ ...Ke(e)
332
+ }), Je = (e, t, n, r) => ({
290
333
  checked: !!e.selected,
291
334
  disabled: !!e.disabled,
292
335
  focused: Q.focused(e.valueHash),
@@ -295,19 +338,19 @@ var k = /*@__PURE__*/ v({
295
338
  hasWarnings: !!r && !n,
296
339
  id: $(e, t),
297
340
  name: L.value,
298
- parsedValue: oe("radio", e.value),
341
+ parsedValue: ae("radio", e.value),
299
342
  readonly: !!N.readonly,
300
343
  value: e.value
301
344
  });
302
- return (e, t) => (ye(), he(te, b({
345
+ return (e, t) => (w(), ve(f, S({
303
346
  id: e.id,
304
347
  class: "bb-radio-group",
305
348
  compact: e.compact,
306
349
  description: e.description,
307
350
  disabled: e.disabled,
308
- errors: w(Ce),
351
+ errors: O(De),
309
352
  "has-errors": e.hasErrors,
310
- "has-value": X.value,
353
+ "has-value": Y.value,
311
354
  "has-warnings": e.hasWarnings,
312
355
  "hide-label": e.hideLegend,
313
356
  hint: e.hint,
@@ -319,57 +362,65 @@ var k = /*@__PURE__*/ v({
319
362
  "label-position": e.legendPosition,
320
363
  "label-tag": "legend",
321
364
  layout: e.layout,
322
- loading: w(U),
365
+ loading: O(U),
323
366
  name: L.value,
324
- passthrough: w(Ie),
325
- readonly: w(F),
367
+ passthrough: O(We),
368
+ readonly: O(F),
326
369
  reverse: e.reverse,
327
- "show-asterisk": w(Se),
328
- "show-hint": Oe.value,
329
- "ssr-marker": w(Ne),
370
+ "show-asterisk": O(Ee),
371
+ "show-hint": Me.value,
372
+ "ssr-marker": O(Le),
330
373
  tag: "fieldset",
331
374
  warnings: e.warnings
332
- }, w(Z).forwardAttrs), _e({
333
- label: D((t) => [S(e.$slots, "legend", x(y(t)))]),
334
- input: D(({ id: t, hasErrors: n, hasWarnings: r, ariaDescribedby: i }) => [_(le, {
335
- ref: De,
375
+ }, O(X).forwardAttrs), ye({
376
+ label: j((t) => [T(e.$slots, "legend", C(x(t)))]),
377
+ input: j(({ id: t, hasErrors: n, hasWarnings: r, ariaDescribedby: i }) => [y(ce, {
378
+ ref: je,
336
379
  "aria-labelledby": I() ? `${t}__label` : void 0,
337
- "aria-readonly": I() && w(F) ? !0 : void 0,
338
- "aria-required": I() ? w(we) : void 0,
380
+ "aria-readonly": I() && O(F) ? !0 : void 0,
381
+ "aria-required": I() ? O(Oe) : void 0,
339
382
  block: "bb-radio-group",
340
383
  "empty-text": e.emptyText,
341
- error: w(Me),
384
+ error: O(Ie),
342
385
  "failed-text": e.failedText,
343
386
  "has-errors": n,
344
387
  "has-warnings": r,
345
388
  "hide-label": e.hideLabel,
389
+ "indicator-ready": O(He),
346
390
  "item-input-align": e.itemInputAlign,
347
391
  "item-label-align": e.itemLabelAlign,
348
392
  "item-layout": e.itemLayout,
349
393
  "item-reverse": e.itemReverse,
350
394
  "list-layout": e.listLayout,
351
- loading: !!w(U),
395
+ loading: !!O(U),
352
396
  "loading-text": e.loadingText,
353
- options: w(q),
354
- passthrough: w(Z),
355
- role: I() ? "radiogroup" : void 0
397
+ options: O(K),
398
+ passthrough: O(X),
399
+ role: I() ? "radiogroup" : void 0,
400
+ variant: e.variant
356
401
  }, {
357
- prepend: D(() => [S(e.$slots, "prepend")]),
358
- loading: D(() => [S(e.$slots, "loading")]),
359
- empty: D((t) => [S(e.$slots, "empty", x(y(t)))]),
360
- label: D((t) => [S(e.$slots, "label", x(y(t)))]),
361
- input: D(({ option: a, index: o, labelId: s, descriptionId: c, rowStates: l }) => [O(ge("input", x(y(ze(a, o, t, i, s, c))), null, 16), [[w(ee)]]), S(e.$slots, "icon", b({
402
+ prepend: j(() => [(w(!0), _(_e, null, Se(O(Ve), (e) => (w(), _("span", S({
403
+ key: e.key,
404
+ "aria-hidden": "true",
405
+ class: "bb-radio-group__indicator",
406
+ style: O(Ue)(e),
407
+ ref_for: !0
408
+ }, O(X).indicator), null, 16))), 128)), T(e.$slots, "prepend")]),
409
+ loading: j(() => [T(e.$slots, "loading")]),
410
+ empty: j((t) => [T(e.$slots, "empty", C(x(t)))]),
411
+ label: j((t) => [T(e.$slots, "label", C(x(t)))]),
412
+ input: j(({ option: a, index: o, labelId: s, descriptionId: c, rowStates: l }) => [Ce(v("input", C(x(qe(a, o, t, i, s, c))), null, 16), [[O(d)]]), T(e.$slots, "icon", S({
362
413
  item: a.item,
363
414
  text: a.text
364
- }, Be(a, t, n, r)), () => [_(me, b({
415
+ }, Je(a, t, n, r)), () => [y(ge, S({
365
416
  checked: !!a.selected,
366
417
  disabled: !!a.disabled,
367
- "focus-visible": w(Q).focusVisible(a.valueHash),
368
- focused: w(Q).focused(a.valueHash),
418
+ "focus-visible": O(Q).focusVisible(a.valueHash),
419
+ focused: O(Q).focused(a.valueHash),
369
420
  "has-errors": !!n,
370
421
  "has-warnings": !!r && !n,
371
- readonly: !!w(F)
372
- }, w(Z).part("icon", l, a.item)), null, 16, [
422
+ readonly: !!O(F)
423
+ }, O(X).part("icon", l, a.item)), null, 16, [
373
424
  "checked",
374
425
  "disabled",
375
426
  "focus-visible",
@@ -378,7 +429,7 @@ var k = /*@__PURE__*/ v({
378
429
  "has-warnings",
379
430
  "readonly"
380
431
  ])])]),
381
- append: D(() => [S(e.$slots, "append")]),
432
+ append: j(() => [T(e.$slots, "append")]),
382
433
  _: 2
383
434
  }, 1032, [
384
435
  "aria-labelledby",
@@ -390,6 +441,7 @@ var k = /*@__PURE__*/ v({
390
441
  "has-errors",
391
442
  "has-warnings",
392
443
  "hide-label",
444
+ "indicator-ready",
393
445
  "item-input-align",
394
446
  "item-label-align",
395
447
  "item-layout",
@@ -399,15 +451,16 @@ var k = /*@__PURE__*/ v({
399
451
  "loading-text",
400
452
  "options",
401
453
  "passthrough",
402
- "role"
454
+ "role",
455
+ "variant"
403
456
  ])]),
404
457
  _: 2
405
458
  }, [e.$slots.description ? {
406
459
  name: "description",
407
- fn: D((t) => [S(e.$slots, "description", x(y(t)))]),
460
+ fn: j((t) => [T(e.$slots, "description", C(x(t)))]),
408
461
  key: "0"
409
462
  } : void 0]), 1040, /* @__PURE__ */ "id.compact.description.disabled.errors.has-errors.has-value.has-warnings.hide-label.hint.input-align.input-position.label.label-align.label-mode.label-position.layout.loading.name.passthrough.readonly.reverse.show-asterisk.show-hint.ssr-marker.warnings".split(".")));
410
463
  }
411
464
  });
412
465
  //#endregion
413
- export { k as default };
466
+ export { M as default };
@@ -1,7 +1,8 @@
1
1
  import { Responsive } from '../../types/ResponsiveSize';
2
+ import { RadioVariantBuiltIn, RadioVariantRegistry, RadioVariantType } from '../../types/RadioVariant';
2
3
  import { BbOptionGroupItemProps } from '../../types/ItemProps';
3
4
  import { HTMLAttributes, InputHTMLAttributes } from 'vue';
4
- import { GroupFieldPtPart, GroupPtMap, GroupRowPtPart, GroupWidePtState, GroupPtPart, GroupPtState, PtItemCtx, PtNoInfer, PtItemResult, PtValue } from '../../types/passthrough';
5
+ import { PtVariantAttrs, ChoiceFieldPtPart, ChoicePtMap, ChoicePtPart, GroupRowPtPart, GroupWidePtState, GroupPtState, PtItemCtx, PtNoInfer, PtItemResult, PtValue } from '../../types/passthrough';
5
6
  import { FieldCrossAlign, FieldLayout, ListLayout } from '../../types/FieldLayout';
6
7
  import { ItemAccessor } from '../../types/ItemAccessor';
7
8
  import { BbRadioGroupItemsContext } from '../../types/ItemsProvider';
@@ -13,27 +14,33 @@ import { CommonFieldAsteriskSlotProps } from '../CommonField/types';
13
14
  *
14
15
  * Per-item functions: on the instance, a row part (`item`, `icon`, `label`, `itemDescription`) also accepts `({ item, checked, … }) => PtValue | false | null | undefined` — `item` is the raw item of that row, and every state a boolean beside it, on for it (`checked`, `disabled`, …) — in the `pt` object or the `:pt:<part>` attribute, never on a `<part>:<state>` key and never in the global map or a scope (they ship as JSON). Its result is merged last, after every state entry, through the same deduper; a falsy result leaves the row as it was. See the passthrough guide, _Per-item functions_.
15
16
  */
16
- export type BbRadioGroupPtPart = GroupPtPart;
17
+ export type BbRadioGroupPtPart = ChoicePtPart;
17
18
  /** Passthrough states of `BbRadioGroup`, true while the matching `--` modifier is on. */
18
19
  export type BbRadioGroupPtState = GroupPtState;
19
20
  /** The runtime lists the resolver is wired with — kept next to the types so the two cannot drift. */
20
21
  export declare const BB_RADIO_GROUP_PT: {
21
- readonly parts: readonly ["root", "legend", "description", "message", "hint", "list", "item", "icon", "label", "itemDescription"];
22
+ readonly parts: readonly ["root", "legend", "description", "message", "hint", "list", "item", "icon", "label", "itemDescription", "indicator"];
22
23
  readonly states: readonly ["hasValue", "checked", "readonly", "disabled", "warnings", "errors", "focused", "focusVisible", "loading"];
23
24
  /** `rowStates` are declared on `rowParts` only — the field parts never have them. */
24
25
  readonly rowParts: readonly ["item", "icon", "label", "itemDescription"];
25
26
  readonly rowStates: readonly ["checked", "focused", "focusVisible"];
27
+ readonly variant: {
28
+ readonly names: readonly ["pill", "line"];
29
+ readonly option: "radioVariants";
30
+ };
26
31
  };
27
32
  export type BbRadioGroupProps<T> = {
28
- [K in `pt:${GroupFieldPtPart}` | `pt:${GroupFieldPtPart}:${GroupWidePtState}` | `pt:${GroupRowPtPart}:${BbRadioGroupPtState}`]?: PtValue;
29
- } & {
30
- [K in `pt:${GroupRowPtPart}`]?: PtValue | ((ctx: PtItemCtx<PtNoInfer<T>, BbRadioGroupPtState>) => PtItemResult);
33
+ [K in `pt:${ChoiceFieldPtPart}` | `pt:${ChoiceFieldPtPart}:${GroupWidePtState}` | `pt:${ChoiceFieldPtPart}:${RadioVariantBuiltIn}` | `pt:${GroupRowPtPart}:${BbRadioGroupPtState}` | `pt:${GroupRowPtPart}:${RadioVariantBuiltIn}`]?: PtValue;
34
+ } & /* @vue-ignore */ PtVariantAttrs<ChoicePtPart, keyof RadioVariantRegistry> & {
35
+ [K in `pt:${GroupRowPtPart}`]?: PtValue | ((ctx: PtItemCtx<PtNoInfer<T>, BbRadioGroupPtState, RadioVariantBuiltIn | keyof RadioVariantRegistry>) => PtItemResult);
31
36
  } & {
32
37
  /**
33
38
  * Passthrough, object form: the same keys as the `pt:*` attributes
34
39
  * without the prefix. See the `pt:<part>` row.
35
40
  */
36
- pt?: GroupPtMap<PtNoInfer<T>>;
41
+ pt?: ChoicePtMap<PtNoInfer<T>> & {
42
+ [K in `${ChoicePtPart}:${RadioVariantBuiltIn | keyof RadioVariantRegistry}`]?: PtValue;
43
+ };
37
44
  /**
38
45
  * Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field.
39
46
  */
@@ -202,6 +209,13 @@ export type BbRadioGroupProps<T> = {
202
209
  * Floating mode is not supported for radio groups.
203
210
  */
204
211
  legendMode?: 'outside' | 'inside';
212
+ /**
213
+ * A tab-strip look (Q76.11 d): `'pill'` (a raised pill under the pick) or
214
+ * `'line'` (a bar on a baseline); the indicator slides like a tab strip's.
215
+ * `list-layout="vertical"` stacks it. Register more with `radioVariants`.
216
+ * Unset: the group's own rows.
217
+ */
218
+ variant?: RadioVariantType;
205
219
  /**
206
220
  * How the rows sit in the list: `'horizontal'` (on a line, wrapping),
207
221
  * `'vertical'` (stacked), `'vertical-stretch'` (stacked, as wide as the
@@ -1,10 +1,15 @@
1
- import { GROUP_PT_PARTS as e, GROUP_PT_STATES as t, GROUP_ROW_PT_PARTS as n, GROUP_ROW_PT_STATES as r } from "../../types/passthrough.js";
1
+ import { CHOICE_PT_PARTS as e, GROUP_PT_STATES as t, GROUP_ROW_PT_PARTS as n, GROUP_ROW_PT_STATES as r } from "../../types/passthrough.js";
2
+ import { RADIO_VARIANTS as i } from "../../types/RadioVariant.js";
2
3
  //#region src/components/BbRadioGroup/types.ts
3
- var i = {
4
+ var a = {
4
5
  parts: e,
5
6
  states: t,
6
7
  rowParts: n,
7
- rowStates: r
8
+ rowStates: r,
9
+ variant: {
10
+ names: i,
11
+ option: "radioVariants"
12
+ }
8
13
  };
9
14
  //#endregion
10
- export { i as BB_RADIO_GROUP_PT };
15
+ export { a as BB_RADIO_GROUP_PT };
@@ -1,6 +1,7 @@
1
+ import { BbSelectKnownItems } from '../BbSelectPopover/types';
1
2
  import { BbSelectProps, BbSelectEvents, BbSelectSlots } from './types';
2
- declare const __VLS_export: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
- props: import('vue').PublicProps & __VLS_PrettifyLocal<BbSelectProps<T> & {
3
+ declare const __VLS_export: <T = any, Known extends BbSelectKnownItems | undefined = undefined>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<BbSelectProps<T, Known> & {
4
5
  onActive?: (() => any) | undefined;
5
6
  onInput?: ((event: Event) => any) | undefined;
6
7
  onBlur?: ((event: FocusEvent) => any) | undefined;
@@ -19,7 +20,7 @@ declare const __VLS_export: <T = any>(__VLS_props: NonNullable<Awaited<typeof __
19
20
  } ? P : {});
20
21
  expose: (exposed: {}) => void;
21
22
  attrs: any;
22
- slots: BbSelectSlots<T>;
23
+ slots: BbSelectSlots<T, Known>;
23
24
  emit: BbSelectEvents;
24
25
  }>) => import('vue').VNode & {
25
26
  __ctx?: Awaited<typeof __VLS_setup>;