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
@@ -158,9 +158,20 @@ export declare const mergeRowClasses: <Item>(global: RowClasses<Item> | undefine
158
158
  export declare const mergeCellClasses: (base: Classes, global?: ColumnClasses, column?: ColumnClasses, content?: any, key?: string, item?: any) => Classes;
159
159
  /** Estimated width of `text` on one line, in em. */
160
160
  export declare const textEm: (text: string) => number;
161
+ /** The per-character table runs up to 8% short of Arial on short values
162
+ * (measured on the corpus): a unit is reserved with that margin. It is the
163
+ * ESTIMATE's margin: after mount the real widths raise a reservation past it
164
+ * (`profileValues`' `measure`), never below it. */
165
+ export declare const UNIT_MARGIN = 1.08;
166
+ /** The estimate reads only some of `count` rows (`sampleForEstimate`). */
167
+ export declare const estimateSamples: (count: number) => boolean;
161
168
  export declare const sampleForEstimate: <T>(rows: readonly T[]) => readonly T[];
162
169
  /** What a column's values say, apart from its label and padding: figured
163
- * once per set of values, so a resize re-runs only `estimateFromProfile`. */
170
+ * once per set of values, so a resize re-runs only `estimateFromProfile`.
171
+ * `units`, `coreUnits`, `token`, `proseUnits` and `proseWord` are
172
+ * RESERVATIONS: the estimate with its margin, raised to the measured width
173
+ * where one is known. The rest is estimate only (comfort widths, and the
174
+ * pre-corpus floor `squeeze` is what rendered before, by definition). */
164
175
  export type ColumnProfile = {
165
176
  p75: number;
166
177
  p90: number;
@@ -172,12 +183,79 @@ export type ColumnProfile = {
172
183
  token: number;
173
184
  /** The widest unit of a prose column's short values. */
174
185
  proseUnits: number;
186
+ /** The longest word a prose column holds (up to 8em, no margin). */
187
+ proseWord: number;
175
188
  /** Share of long spaced values, figures excluded, and as Q9.1b counted. */
176
189
  spaced: number;
177
190
  spacedLegacy: number;
191
+ /** Most values are long and spaced: the column wraps by design. */
192
+ prose: boolean;
193
+ /** A short column's 95th-percentile unit, past which a value is a rare
194
+ * outlier (`Infinity`: fewer than 20 values, or prose). */
195
+ usual: number;
196
+ };
197
+ /** A value's real widths, in em of the body text (`--bb-fs`), measured once
198
+ * the table has rendered: the whole value on one line, and its widest
199
+ * space-separated run. */
200
+ export type MeasuredText = {
201
+ whole?: number;
202
+ word?: number;
203
+ };
204
+ /** Looks up a value's measured widths (`undefined`: not measured). */
205
+ export type MeasureLookup = (text: string) => MeasuredText | undefined;
206
+ /** The whole px a measured width reserves: at least 0.05px above the real
207
+ * width, which a box of exactly that width wraps in some engine at some
208
+ * zoom (and `Math.floor` of it wraps in every engine). */
209
+ export declare const reservePx: (px: number) => number;
210
+ /**
211
+ * The header spacer's px for a fitted floor (`--floor`): the text share of
212
+ * `floorEm` (the padding `padEm` apart), rounded DOWN so the floors still sum
213
+ * under the room. The epsilon keeps a floor that IS a reserved whole px at
214
+ * it: `(n / em + pad) - pad` comes back a hair under `n / em` for about one
215
+ * n in three, and flooring that would drop a held value's px.
216
+ */
217
+ export declare const floorTextPx: (floorEm: number, padEm: number, em: number) => number;
218
+ /** A text's runs between the spaces a line breaks at (a no-break space
219
+ * joins: `1.234,56\u00a0€` is one run), as measured and looked up. */
220
+ export declare const breakRuns: (text: string) => string[];
221
+ /**
222
+ * Profile a column's display values; `null` when none has text.
223
+ *
224
+ * `measure` gives the real widths the browser measured (in em of the body
225
+ * text, already rounded up, see `reservePx`). Each reservation is the larger
226
+ * of the estimate with its margin and the measured width of the part the
227
+ * value is held by (`cellRole`): the whole value for `line`/`token`, its
228
+ * longest run for `word`. RAISE ONLY: a font narrower than the estimate
229
+ * keeps the estimate, so without `measure` (the server, the first render)
230
+ * the numbers are exactly the estimate's.
231
+ */
232
+ export declare const profileValues: (values: readonly string[], measure?: MeasureLookup) => ColumnProfile | null;
233
+ /**
234
+ * The internal classes a body cell of an estimated column carries: how the
235
+ * fit holds its value (`--line`: whole, with spaces; `--token`: whole, one
236
+ * run; `--word`: by its longest word), and `--outlier` for a short column's
237
+ * rare outlier. From the estimate only, so the server writes the same
238
+ * classes; the table root's hold level (`fitFloors`' `hold`) turns them on.
239
+ * Not public API, like `--fluid`.
240
+ */
241
+ export declare const cellRole: (text: string, profile: {
242
+ prose: boolean;
243
+ usual: number;
244
+ }) => string[];
245
+ /**
246
+ * The texts worth measuring in a column: every value that could be the
247
+ * widest of a reservation (within 1.5x of the estimated widest), whole for a
248
+ * value held whole, by its space-separated runs otherwise (`runs` also feed
249
+ * `token`, the longest unbreakable run). Same-shape values (every date of a
250
+ * column) are all candidates: the estimate cannot rank them, the font can.
251
+ *
252
+ * `prose` is the column profile's (`profileValues`, over every value, the
253
+ * call `cellRole` follows); by default it is figured the same way here.
254
+ */
255
+ export declare const measureCandidates: (values: readonly string[], prose?: boolean) => {
256
+ whole: string[];
257
+ runs: string[];
178
258
  };
179
- /** Profile a column's display values; `null` when none has text. */
180
- export declare const profileValues: (values: readonly string[]) => ColumnProfile | null;
181
259
  /** One column's estimate, in em of the body text, cell padding included. */
182
260
  export type TrackEstimate = {
183
261
  /** Short values: the width they fit on one line (capped). */
@@ -229,16 +307,36 @@ export declare function estimateTrack(values: string[], label: string, padEm?: n
229
307
  },
230
308
  /** The padding the pre-corpus floor was figured with (`squeeze`). */
231
309
  legacyPadEm?: number): TrackEstimate;
232
- /** `estimateTrack` from a column's `profileValues`. */
310
+ /** A heading measured in the header's own type, in em of the body text:
311
+ * `one` on one line, `two` the wider line of its most balanced split. */
312
+ export type MeasuredLabel = {
313
+ one: number;
314
+ two: number;
315
+ };
316
+ /** `estimateTrack` from a column's `profileValues`. `labelMeasured` raises
317
+ * the label's widths to the measured ones (never lowers them). */
233
318
  export declare function estimateFromProfile(p: ColumnProfile | null, label: string, padEm?: number, headerExtraEm?: number, labelType?: {
234
319
  scale: number;
235
320
  spacingEm: number;
236
- }, legacyPadEm?: number): TrackEstimate;
321
+ }, legacyPadEm?: number, labelMeasured?: MeasuredLabel): TrackEstimate;
322
+ /**
323
+ * How much of what the estimate holds the fit's floors still cover, so the
324
+ * table root may promise it (index.css: held cells floor their own track):
325
+ * - `units`: every held value whole (`--line`/`--token`), every `--word` by
326
+ * its word;
327
+ * - `core`: the same without the rare outliers (`--outlier`);
328
+ * - `words`: a single-run value whole (`--token`), the rest by its words;
329
+ * - `none`: nothing (the floors went below the longest runs).
330
+ */
331
+ export type HoldLevel = 'units' | 'core' | 'words' | 'none';
237
332
  /** `fitFloors`' answer: each column's floor, and the columns whose heading
238
- * is given two lines to keep the table from scrolling. */
333
+ * is given two lines to keep the table from scrolling. `stage` is the stage
334
+ * the fit stopped at (6 split as 6a/6b/6c in `hold`). */
239
335
  export type FittedFloors = {
240
336
  floors: Record<string, number>;
241
337
  wrapLabels: Set<string>;
338
+ stage: 1 | 2 | 3 | 4 | 5 | 6 | 7;
339
+ hold: HoldLevel;
242
340
  };
243
341
  /**
244
342
  * Fit the estimated columns into the room left for them (same unit as the
@@ -257,5 +355,14 @@ export type FittedFloors = {
257
355
  * 7. Even that does not fit: the table scrolls anyway, so nothing is
258
356
  * squeezed for it — short values at `hard`, prose at its floor, headings
259
357
  * on one line.
358
+ *
359
+ * `hold` says what the floors still cover, for the table root to promise:
360
+ * `units` at every stage but 6 (each floor is at least `hard` or `wrapped`,
361
+ * which reserve every held value), `core` at 6 while the outliers alone give
362
+ * way, `words` while the floors stay above every column's longest run
363
+ * (`token`: a single-run value is whole there), `none` past that. A held
364
+ * cell floors its own track (index.css), so its reservation must never
365
+ * exceed its column's floor at that level, or a table that fitted would
366
+ * start to scroll; estimatedFloors.node.test.ts checks exactly that.
260
367
  */
261
368
  export declare function fitFloors(estimates: Record<string, TrackEstimate>, available: number): FittedFloors;
@@ -180,116 +180,169 @@ var n = /^-?\d*\.?\d+px$/, r = (e) => {
180
180
  }
181
181
  let r = Math.min(10, Math.max(t, e.p90));
182
182
  return Math.max(t, Math.min(r, 6)) + n;
183
- }, B = 1e3, V = 1e3, H = (e) => {
184
- if (e.length <= 2e3) return e;
183
+ }, B = 1e3, V = 1e3, H = (e) => e > 2e3, U = (e) => {
184
+ if (!H(e.length)) return e;
185
185
  let t = e.slice(0, B), n = (e.length - B) / V;
186
186
  for (let r = 0; r < V; r++) t.push(e[B + Math.floor(r * n)]);
187
187
  return t;
188
- }, U = (e) => {
189
- let t = 0;
190
- for (let n of e) n > t && (t = n);
191
- return t;
192
- }, W = (e) => {
193
- let t = e.map((e) => e.trim()).filter(Boolean);
194
- if (!t.length) return null;
195
- let n = t.map(I), r = n.map((e) => e.width).sort((e, t) => e - t), i = n.map((e) => e.unit).sort((e, t) => e - t), a = C(i, .95), o = 0, s = 0;
196
- return t.forEach((e, t) => {
197
- e.length <= 24 || !/\s/.test(e) || (s++, n[t].figures || o++);
188
+ }, W = (e) => Math.ceil(e + .05), G = (e, t, n) => Math.floor(Math.max(0, e - t) * n + 1e-4), K = 8, q = 20, J = /[ \t\n]/, Y = (e) => e.split(/[ \t\n]+/).filter(Boolean), X = (e, t, n) => (n ? t.width <= E : t.unit > 0 && t.unit >= t.width - 1e-9) ? J.test(e) ? "line" : "token" : n ? t.word > 0 && t.word <= K ? "word" : null : t.word > 0 && t.word <= t.unit ? "word" : null, Z = (e, t) => {
189
+ let n = 0, r = 0;
190
+ return e.forEach((e, i) => {
191
+ e.length <= 24 || !/\s/.test(e) || (r++, t[i].figures || n++);
192
+ }), {
193
+ spaced: n / e.length,
194
+ spacedLegacy: r / e.length
195
+ };
196
+ }, Q = (e, t) => {
197
+ let n = e.map((e) => e.trim()).filter(Boolean);
198
+ if (!n.length) return null;
199
+ let r = n.map(I), i = r.map((e) => e.width).sort((e, t) => e - t), a = r.map((e) => e.unit).sort((e, t) => e - t), o = C(a, .95), s = Z(n, r), c = s.spaced >= .5, l = a.length >= q, u = 0, d = 0, f = 0, p = 0, m = 0, h = 0;
200
+ return n.forEach((e, n) => {
201
+ let i = r[n];
202
+ i.word > h && (h = i.word);
203
+ let a = t?.(e), s = a?.word ?? (J.test(e) ? void 0 : a?.whole);
204
+ if (i.unit > 0) {
205
+ let e = i.unit >= i.width - 1e-9, t = Math.max(i.unit * k, (e ? a?.whole : s) ?? 0);
206
+ t > u && (u = t), (!l || i.unit <= o) && t > d && (d = t), i.width <= E && t > p && (p = t);
207
+ }
208
+ if (i.word <= O) {
209
+ let e = Math.max(i.word * k, s ?? 0);
210
+ e > f && (f = e);
211
+ }
212
+ i.word <= K && s && s > m && (m = s);
213
+ }), {
214
+ p75: C(i, .75),
215
+ p90: C(i, .9),
216
+ longestWord: h,
217
+ units: u,
218
+ coreUnits: d,
219
+ token: f,
220
+ proseUnits: p,
221
+ proseWord: Math.max(m, Math.min(K, h)),
222
+ ...s,
223
+ prose: c,
224
+ usual: l && !c ? o : Infinity
225
+ };
226
+ }, ee = (e, t) => {
227
+ let n = e.trim();
228
+ if (!n) return [];
229
+ let r = I(n), i = X(n, r, t.prose);
230
+ if (!i) return [];
231
+ let a = `bb-table__cell--${i}`;
232
+ return r.unit > t.usual ? [a, "bb-table__cell--outlier"] : [a];
233
+ }, $ = 1.5, te = (e, t) => {
234
+ let n = e.map((e) => e.trim()).filter(Boolean), r = [...new Set(n)], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
235
+ if (!r.length) return {
236
+ whole: [],
237
+ runs: []
238
+ };
239
+ let o = r.map(I);
240
+ t ??= Z(n, n.map(I)).spaced >= .5;
241
+ let s = 0, c = 0, l = 0;
242
+ o.forEach((e) => {
243
+ e.unit > s && (s = e.unit), e.word <= O && e.word > c && (c = e.word), e.word <= K && e.word > l && (l = e.word);
244
+ });
245
+ let u = (e, t) => {
246
+ if (!J.test(e)) return void a.add(e);
247
+ for (let n of Y(e)) S(n) * $ >= t.word && a.add(n);
248
+ };
249
+ return r.forEach((e, n) => {
250
+ let r = o[n], a = X(e, r, t);
251
+ if (!a) {
252
+ r.word <= O && r.word * $ >= c && u(e, r);
253
+ return;
254
+ }
255
+ (r.unit * $ >= s || r.word * $ >= c || t && r.word * $ >= l) && (a === "word" ? u(e, r) : (i.add(e), a === "line" && u(e, r)));
198
256
  }), {
199
- p75: C(r, .75),
200
- p90: C(r, .9),
201
- longestWord: U(n.map((e) => e.word)),
202
- units: i.at(-1),
203
- coreUnits: i.length >= 20 ? U(i.filter((e) => e <= a)) : i.at(-1),
204
- token: U(n.map((e) => e.word <= O ? e.word : 0)),
205
- proseUnits: U(n.map((e) => e.width <= E ? e.unit : 0)),
206
- spaced: o / t.length,
207
- spacedLegacy: s / t.length
257
+ whole: [...i],
258
+ runs: [...a]
208
259
  };
209
260
  };
210
- function G(e, t, n = 1.5, r = 0, i = {
261
+ function ne(e, t, n = 1.5, r = 0, i = {
211
262
  scale: 1,
212
263
  spacingEm: 0
213
- }, a = n) {
214
- let o = (e, t) => (t * 1.08 + i.spacingEm * [...e].length) * i.scale + r, s = o(t, S(t)), c = w(t).length > 1 && S(t) > L ? o(t, R(t)) : s;
264
+ }, a = n, o) {
265
+ let s = (e, t) => (t * 1.08 + i.spacingEm * [...e].length) * i.scale + r, c = Math.max(s(t, S(t)), o ? o.one + r : 0), l = w(t).length > 1 && S(t) > L ? Math.max(s(t, R(t)), o ? o.two + r : 0) : c;
215
266
  if (!e) return {
216
- min: s + n,
217
- target: s + n,
218
- hard: s + n,
219
- wrapped: c + n,
220
- squeeze: s + a,
221
- label: s + n,
222
- labelWrap: c + n,
267
+ min: c + n,
268
+ target: c + n,
269
+ hard: c + n,
270
+ wrapped: l + n,
271
+ squeeze: c + a,
272
+ label: c + n,
273
+ labelWrap: l + n,
223
274
  token: n,
224
- core: c + n,
275
+ core: l + n,
225
276
  kind: "short"
226
277
  };
227
- let l = z(e, s, a), u = e.units * k, d = e.token * k + n;
228
- if (e.spaced >= .5) {
229
- let t = Math.min(30, Math.max(10, e.p75 / 3)), r = Math.min(16, Math.max(10, s, e.longestWord)), i = e.proseUnits * k, a = Math.min(8, e.longestWord), o = Math.max(s, a, i), u = Math.max(c, a, i), f = Math.max(t, r);
278
+ let u = z(e, c, a), d = e.units, f = e.token + n;
279
+ if (e.prose) {
280
+ let t = Math.min(30, Math.max(10, e.p75 / 3)), r = Math.min(16, Math.max(10, c, e.longestWord)), i = e.proseUnits, a = e.proseWord, o = Math.max(c, a, i), s = Math.max(l, a, i), d = Math.max(t, r, o);
230
281
  return {
231
282
  min: r + n,
232
- target: f + n,
283
+ target: d + n,
233
284
  hard: o + n,
234
- wrapped: u + n,
235
- squeeze: l,
236
- label: s + n,
237
- labelWrap: c + n,
238
- token: Math.min(d, o + n),
239
- core: u + n,
285
+ wrapped: s + n,
286
+ squeeze: u,
287
+ label: c + n,
288
+ labelWrap: l + n,
289
+ token: Math.min(f, o + n),
290
+ core: s + n,
240
291
  kind: "prose"
241
292
  };
242
293
  }
243
- let f = e.p90, p = Math.max(Math.min(10, f), s, u), m = Math.min(22, Math.max(p, f)), h = Math.max(u, Math.min(10, f, 6)), g = Math.max(c, e.coreUnits * k, Math.min(10, f, 6)) + n;
294
+ let p = e.p90, m = Math.max(Math.min(10, p), c, d), h = Math.min(22, Math.max(m, p)), g = Math.max(d, Math.min(10, p, 6)), _ = Math.max(l, e.coreUnits, Math.min(10, p, 6)) + n;
244
295
  return {
245
- min: p + n,
246
- target: m + n,
247
- hard: Math.max(s, h) + n,
248
- wrapped: Math.max(c, h) + n,
249
- squeeze: l,
250
- label: s + n,
251
- labelWrap: c + n,
252
- token: Math.min(d, Math.max(c, h) + n),
253
- core: g,
296
+ min: m + n,
297
+ target: h + n,
298
+ hard: Math.max(c, g) + n,
299
+ wrapped: Math.max(l, g) + n,
300
+ squeeze: u,
301
+ label: c + n,
302
+ labelWrap: l + n,
303
+ token: Math.min(f, Math.max(l, g) + n),
304
+ core: _,
254
305
  kind: "short"
255
306
  };
256
307
  }
257
- function K(e, t) {
258
- let n = Object.keys(e), r = (t) => e[t], i = (e) => r(e).kind === "prose", a = n.filter((e) => !i(e)), o = n.filter(i), s = (e) => i(e) ? r(e).target : r(e).min, c = (e) => Math.max(r(e).hard, r(e).target / 2), l = (e) => Math.max(r(e).wrapped, r(e).target / 2), u = (e, t) => e.reduce((e, n) => e + t(n), 0), d = {}, f = /* @__PURE__ */ new Set(), p = () => ({
308
+ function re(e, t) {
309
+ let n = Object.keys(e), r = (t) => e[t], i = (e) => r(e).kind === "prose", a = n.filter((e) => !i(e)), o = n.filter(i), s = (e) => i(e) ? r(e).target : r(e).min, c = (e) => Math.max(r(e).hard, r(e).target / 2), l = (e) => Math.max(r(e).wrapped, r(e).target / 2), u = (e, t) => e.reduce((e, n) => e + t(n), 0), d = {}, f = /* @__PURE__ */ new Set(), p = (e, t = "units") => ({
259
310
  floors: d,
260
- wrapLabels: f
311
+ wrapLabels: f,
312
+ stage: e,
313
+ hold: t
261
314
  }), m = (e, t, n, r) => {
262
315
  let i = u(e, n), a = u(e, r), o = i === a ? 1 : Math.max(0, Math.min(1, (t - a) / (i - a)));
263
316
  for (let t of e) d[t] = r(t) + (n(t) - r(t)) * o;
264
317
  }, h = (e) => r(e).hard;
265
318
  if (!(t > 0) || u(n, s) <= t) {
266
319
  for (let e of n) d[e] = s(e);
267
- return p();
320
+ return p(1);
268
321
  }
269
322
  if (u(a, h) + u(o, s) <= t) {
270
323
  for (let e of o) d[e] = s(e);
271
- return m(a, t - u(o, s), s, h), p();
324
+ return m(a, t - u(o, s), s, h), p(2);
272
325
  }
273
326
  if (u(a, h) + u(o, c) <= t) {
274
327
  for (let e of a) d[e] = h(e);
275
- return m(o, t - u(a, h), s, c), p();
328
+ return m(o, t - u(a, h), s, c), p(3);
276
329
  }
277
330
  let g = (e) => i(e) ? l(e) : r(e).wrapped, _ = (e) => i(e) ? c(e) : h(e), v = () => {
278
331
  for (let e of n) d[e] < r(e).label - 1e-9 && r(e).labelWrap < r(e).label && f.add(e);
279
332
  };
280
- if (u(n, g) <= t) return m(n, t, _, g), v(), p();
333
+ if (u(n, g) <= t) return m(n, t, _, g), v(), p(4);
281
334
  if (u(a, g) + u(o, (e) => r(e).wrapped) <= t) {
282
335
  for (let e of a) d[e] = g(e);
283
- return m(o, t - u(a, g), g, (e) => r(e).wrapped), v(), p();
336
+ return m(o, t - u(a, g), g, (e) => r(e).wrapped), v(), p(5);
284
337
  }
285
338
  let y = (e) => Math.max(Math.min(r(e).wrapped, r(e).squeeze), r(e).labelWrap);
286
339
  if (u(n, (e) => Math.max(r(e).squeeze, r(e).labelWrap)) <= t + .1 * n.length) {
287
- if (u(n, (e) => r(e).core) <= t) return m(n, t, (e) => r(e).wrapped, (e) => r(e).core), v(), p();
288
- let e = (e) => Math.max(y(e), Math.min(r(e).wrapped, r(e).token));
289
- return u(n, e) <= t ? m(n, t, (e) => r(e).wrapped, e) : m(n, t, e, y), v(), p();
340
+ if (u(n, (e) => r(e).core) <= t) return m(n, t, (e) => r(e).wrapped, (e) => r(e).core), v(), p(6, "core");
341
+ let e = (e) => Math.max(y(e), Math.min(r(e).wrapped, r(e).token)), i = u(n, e) <= t;
342
+ return i ? m(n, t, (e) => r(e).wrapped, e) : m(n, t, e, y), v(), p(6, i ? "words" : "none");
290
343
  }
291
344
  for (let e of n) d[e] = _(e);
292
- return p();
345
+ return p(7);
293
346
  }
294
347
  //#endregion
295
- export { a as applyFixedTableColumns, m as cellsLabelText, p as columnKeyToSlotName, o as completeColumnOrder, G as estimateFromProfile, K as fitFloors, l as lockColumnOrder, v as mergeCellClasses, g as mergeHeaderClasses, _ as mergeRowClasses, c as moveColumnKey, s as orderColumns, W as profileValues, r as readResolvedTracks, u as reorderRange, h as rowNameText, d as sameColumnOrder, H as sampleForEstimate, S as textEm };
348
+ export { k as UNIT_MARGIN, a as applyFixedTableColumns, Y as breakRuns, ee as cellRole, m as cellsLabelText, p as columnKeyToSlotName, o as completeColumnOrder, ne as estimateFromProfile, H as estimateSamples, re as fitFloors, G as floorTextPx, l as lockColumnOrder, te as measureCandidates, v as mergeCellClasses, g as mergeHeaderClasses, _ as mergeRowClasses, c as moveColumnKey, s as orderColumns, Q as profileValues, r as readResolvedTracks, u as reorderRange, W as reservePx, h as rowNameText, d as sameColumnOrder, U as sampleForEstimate, S as textEm };
@@ -1,15 +1,17 @@
1
- import { usePassthrough as e } from "../../composables/usePassthrough.js";
2
- import { removedPropsFor as t } from "../../deprecation/removedProps.js";
3
- import { slotKey as n } from "../../utilities/functions/slotKey.js";
4
- import { warnRemovedAttrs as r } from "../../utilities/functions/warnRemovedAttrs.js";
5
- import { createTabsContext as i } from "../../composables/useBbTabsContext.js";
6
- import { omitName as a, pickName as o } from "./tablistName.js";
7
- import { BB_TABS_LIST_HOST_PARTS as s, BB_TABS_PANELS_HOST_PARTS as c, BB_TABS_PT as l } from "./types.js";
8
- import u from "./BbTabsList.vue.js";
9
- import d from "./BbTabsPanels.vue.js";
10
- import { createElementBlock as f, createSlots as p, createVNode as m, defineComponent as h, guardReactiveProps as g, mergeProps as _, normalizeProps as v, openBlock as y, renderList as b, renderSlot as x, unref as S, useAttrs as C, useSlots as w, withCtx as T } from "vue";
1
+ import { registeredVariantNames as e, usePassthrough as t, variantPt as n } from "../../composables/usePassthrough.js";
2
+ import { removedPropsFor as r } from "../../deprecation/removedProps.js";
3
+ import { slotKey as i } from "../../utilities/functions/slotKey.js";
4
+ import { warnRemovedAttrs as a } from "../../utilities/functions/warnRemovedAttrs.js";
5
+ import { createTabsContext as o } from "../../composables/useBbTabsContext.js";
6
+ import { TABS_VARIANTS as s } from "../../types/TabsVariant.js";
7
+ import { omitName as c, pickName as l } from "./tablistName.js";
8
+ import { BB_TABS_LIST_HOST_PARTS as u, BB_TABS_LIST_PT as d, BB_TABS_PANELS_HOST_PARTS as f, BB_TABS_PT as p } from "./types.js";
9
+ import m from "./BbTabsList.vue.js";
10
+ import h from "./BbTabsPanels.vue.js";
11
+ import { createElementBlock as g, createSlots as _, createVNode as v, defineComponent as y, guardReactiveProps as b, mergeProps as x, normalizeProps as S, openBlock as C, renderList as w, renderSlot as T, unref as E, useAttrs as D, useSlots as O, withCtx as k } from "vue";
11
12
  //#region src/components/BbTabs/BbTabs.vue?vue&type=script&setup=true&lang.ts
12
- var E = ["id"], D = /*@__PURE__*/ h({
13
+ var A = ["id"], j = /*@__PURE__*/ y({
14
+ mixins: [n(p)],
13
15
  inheritAttrs: !1,
14
16
  __name: "BbTabs",
15
17
  props: {
@@ -33,6 +35,18 @@ var E = ["id"], D = /*@__PURE__*/ h({
33
35
  "pt:panels:disabled": {},
34
36
  "pt:panel:active": {},
35
37
  "pt:panel:disabled": {},
38
+ "pt:wrapper:pill": {},
39
+ "pt:wrapper:line": {},
40
+ "pt:wrapper:none": {},
41
+ "pt:list:pill": {},
42
+ "pt:list:line": {},
43
+ "pt:list:none": {},
44
+ "pt:item:pill": {},
45
+ "pt:item:line": {},
46
+ "pt:item:none": {},
47
+ "pt:indicator:pill": {},
48
+ "pt:indicator:line": {},
49
+ "pt:indicator:none": {},
36
50
  "pt:item": {},
37
51
  pt: {},
38
52
  headers: {},
@@ -71,37 +85,41 @@ var E = ["id"], D = /*@__PURE__*/ h({
71
85
  variant: { default: "pill" }
72
86
  },
73
87
  emits: ["update:modelValue"],
74
- setup(h, { emit: D }) {
75
- let O = h, k = D;
76
- process.env.NODE_ENV !== "production" && r("BbTabs", t("BbTabs"), {
77
- slotKeys: () => (O.items ?? []).map((e) => e.value),
88
+ setup(n, { emit: y }) {
89
+ let j = n, M = y;
90
+ process.env.NODE_ENV !== "production" && a("BbTabs", r("BbTabs"), {
91
+ slotKeys: () => (j.items ?? []).map((e) => e.value),
78
92
  family: "BbTabs"
79
93
  });
80
- let A = w(), j = () => (O.items ?? []).some((e) => !!A[n(e.value)]), { id: M, direction: N, block: P, compact: F, disabled: I } = i(O, k), L = C(), R = e({
94
+ let N = O(), P = () => (j.items ?? []).some((e) => !!N[i(e.value)]), { id: F, direction: I, block: L, compact: R, disabled: z } = o(j, M), B = D(), V = t({
81
95
  component: "BbTabs",
82
- attrs: L,
83
- props: O,
84
- parts: l.parts,
85
- states: l.states,
86
- active: { disabled: () => !!O.disabled }
87
- }), z = () => a(R.rootAttrs), B = (e) => Object.fromEntries(Object.entries(e).map(([e, t]) => [t, e])), V = B(s), H = B(c);
88
- return (e, t) => (y(), f("div", _({
89
- id: S(M),
96
+ attrs: B,
97
+ props: j,
98
+ parts: p.parts,
99
+ states: p.states,
100
+ active: { disabled: () => !!j.disabled },
101
+ variant: {
102
+ ...p.variant,
103
+ current: () => j.variant
104
+ }
105
+ }), H = [...d.states, ...e(s, "tabsVariants")], U = () => c(V.rootAttrs), W = (e) => Object.fromEntries(Object.entries(e).map(([e, t]) => [t, e])), G = W(u), K = W(f);
106
+ return (e, t) => (C(), g("div", x({
107
+ id: E(F),
90
108
  class: ["bb-tabs", {
91
- [`bb-tabs--${S(N)}`]: !0,
92
- "bb-tabs--block": S(P),
93
- "bb-tabs--compact": S(F),
94
- "bb-tabs--disabled": S(I),
95
- "bb-tabs--no-panels": !j()
109
+ [`bb-tabs--${E(I)}`]: !0,
110
+ "bb-tabs--block": E(L),
111
+ "bb-tabs--compact": E(R),
112
+ "bb-tabs--disabled": E(z),
113
+ "bb-tabs--no-panels": !P()
96
114
  }]
97
- }, z()), [m(u, _(S(o)(S(L)), { pt: S(R).forwardInstance(S(V)) }), p({ _: 2 }, [b(S(A), (t, n) => ({
115
+ }, U()), [v(m, x(E(l)(E(B)), { pt: E(V).forwardInstance(E(G), H) }), _({ _: 2 }, [w(E(N), (t, n) => ({
98
116
  name: n,
99
- fn: T((t) => [x(e.$slots, n, v(g(t)))])
100
- }))]), 1040, ["pt"]), m(d, { pt: S(R).forwardInstance(S(H)) }, p({ _: 2 }, [b(S(A), (t, n) => ({
117
+ fn: k((t) => [T(e.$slots, n, S(b(t)))])
118
+ }))]), 1040, ["pt"]), v(h, { pt: E(V).forwardInstance(E(K)) }, _({ _: 2 }, [w(E(N), (t, n) => ({
101
119
  name: n,
102
- fn: T((t) => [x(e.$slots, n, v(g(t)))])
103
- }))]), 1032, ["pt"])], 16, E));
120
+ fn: k((t) => [T(e.$slots, n, S(b(t)))])
121
+ }))]), 1032, ["pt"])], 16, A));
104
122
  }
105
123
  });
106
124
  //#endregion
107
- export { D as default };
125
+ export { j as default };