bitboss-ui 3.0.0-beta.47 → 3.0.0-beta.49

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 (398) hide show
  1. package/README.md +24 -7
  2. package/bin/bitboss-ui-mcp.mjs +15 -3
  3. package/bin/bitboss-ui.mjs +167 -14
  4. package/dist/ai/BbAccordion.md +1 -1
  5. package/dist/ai/BbAvatar.md +1 -1
  6. package/dist/ai/BbBreadcrumbs.md +65 -65
  7. package/dist/ai/BbButton.md +28 -8
  8. package/dist/ai/BbCheckbox.md +0 -2
  9. package/dist/ai/BbCheckboxGroup.md +13 -20
  10. package/dist/ai/BbCollapsible.md +1 -1
  11. package/dist/ai/BbColorPalette.md +1 -1
  12. package/dist/ai/BbConfirm.md +8 -0
  13. package/dist/ai/BbConfirmPortal.md +1 -1
  14. package/dist/ai/BbDatePickerInput.md +4 -2
  15. package/dist/ai/BbDialog.md +1 -8
  16. package/dist/ai/BbDropdown.md +231 -220
  17. package/dist/ai/BbDropdownButton.md +65 -65
  18. package/dist/ai/BbDropdownGroup.md +2 -2
  19. package/dist/ai/BbDropzone.md +10 -10
  20. package/dist/ai/BbForm.md +43 -52
  21. package/dist/ai/BbHoverCard.md +19 -7
  22. package/dist/ai/BbHoverCardPortal.md +1 -1
  23. package/dist/ai/BbNumberInput.md +88 -21
  24. package/dist/ai/BbPopover.md +47 -40
  25. package/dist/ai/BbPopoverPortal.md +1 -1
  26. package/dist/ai/BbProgress.md +48 -22
  27. package/dist/ai/BbRadioGroup.md +13 -19
  28. package/dist/ai/BbSelect.md +16 -36
  29. package/dist/ai/BbSelectPopover.md +14 -30
  30. package/dist/ai/BbSmoothHeight.md +0 -2
  31. package/dist/ai/BbSwitchGroup.md +13 -20
  32. package/dist/ai/BbTable.md +11 -10
  33. package/dist/ai/BbTabs.md +107 -106
  34. package/dist/ai/BbTabsList.md +2 -2
  35. package/dist/ai/BbTabsPanels.md +1 -1
  36. package/dist/ai/BbTabsRoot.md +3 -3
  37. package/dist/ai/BbTooltip.md +29 -13
  38. package/dist/ai/BbTree.md +14 -11
  39. package/dist/ai/CommonPopover.md +1 -1
  40. package/dist/ai/changelog.json +297 -6
  41. package/dist/ai/components.json +50 -45
  42. package/dist/ai/composables/useBbDropdownContext.md +16 -16
  43. package/dist/ai/composables/useBbFormField.md +5 -1
  44. package/dist/ai/composables/useBbTabsContext.md +14 -14
  45. package/dist/ai/guides/agent-contract.md +27 -27
  46. package/dist/ai/guides/ai-router.md +1 -1
  47. package/dist/ai/guides/component-picker.md +3 -3
  48. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  49. package/dist/ai/guides/icons-policy.md +10 -10
  50. package/dist/ai/guides/inertia-helpers.md +120 -67
  51. package/dist/ai/guides/installation-and-plugin-setup.md +45 -15
  52. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
  53. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
  54. package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
  55. package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
  56. package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
  57. package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
  58. package/dist/ai/guides/migration/components/bb-select.md +10 -2
  59. package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
  60. package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
  61. package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
  62. package/dist/ai/guides/migration/v2-to-v3.md +143 -28
  63. package/dist/ai/guides/migration/v3-beta-css-classes.md +29 -27
  64. package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
  65. package/dist/ai/guides/options-items-playbook.md +30 -24
  66. package/dist/ai/guides/passthrough.md +4 -4
  67. package/dist/ai/guides/preset-components.md +18 -3
  68. package/dist/ai/guides/typescript-generic-components.md +1 -1
  69. package/dist/ai/guides/validated-forms.md +11 -22
  70. package/dist/ai/guides/validation-providers.md +4 -3
  71. package/dist/ai/helpers/inertia/manifest.json +636 -0
  72. package/dist/ai/helpers/inertia/types.ts +15 -0
  73. package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
  74. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
  75. package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
  76. package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
  77. package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
  78. package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
  79. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
  80. package/dist/ai/helpers/inertia/useLoading.ts +20 -0
  81. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
  82. package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
  83. package/dist/ai/helpers/inertia/useProp.ts +63 -0
  84. package/dist/ai/helpers/inertia/useQuery.ts +19 -0
  85. package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
  86. package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
  87. package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
  88. package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
  89. package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
  90. package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
  91. package/dist/ai/helpers/inertia/useUntil.ts +33 -0
  92. package/dist/ai/helpers/inertia/utils.ts +24 -0
  93. package/dist/ai/index.md +6 -6
  94. package/dist/ai/manifest/components/BbAccordion.json +1 -1
  95. package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
  96. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  97. package/dist/ai/manifest/components/BbButton.json +2 -1
  98. package/dist/ai/manifest/components/BbButton.tree.json +1 -1
  99. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  100. package/dist/ai/manifest/components/BbCollapsible.json +1 -1
  101. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  102. package/dist/ai/manifest/components/BbConfirmPortal.json +5 -2
  103. package/dist/ai/manifest/components/BbDropdown.json +23 -20
  104. package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
  105. package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
  106. package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
  107. package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
  108. package/dist/ai/manifest/components/BbForm.json +1 -0
  109. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  110. package/dist/ai/manifest/components/BbHoverCardPortal.json +2 -2
  111. package/dist/ai/manifest/components/BbNumberInput.json +6 -1
  112. package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
  113. package/dist/ai/manifest/components/BbPopover.json +2 -1
  114. package/dist/ai/manifest/components/BbPopoverPortal.json +2 -2
  115. package/dist/ai/manifest/components/BbProgress.json +6 -6
  116. package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
  117. package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
  118. package/dist/ai/manifest/components/BbSelect.json +2 -2
  119. package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
  120. package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
  121. package/dist/ai/manifest/components/BbSelectPopover.tree.json +1 -1
  122. package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
  123. package/dist/ai/manifest/components/BbTabs.json +8 -7
  124. package/dist/ai/manifest/components/BbTabsList.json +3 -3
  125. package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
  126. package/dist/ai/manifest/components/BbTabsRoot.json +6 -5
  127. package/dist/ai/manifest/components/BbTag.tree.json +1 -1
  128. package/dist/ai/manifest/components/BbTooltip.json +2 -2
  129. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  130. package/dist/ai/manifest/components/CommonPopover.json +1 -1
  131. package/dist/ai/manifest/index.json +2 -2
  132. package/dist/ai/manifest/meta.json +5 -0
  133. package/dist/ai/manifest/types.advanced.json +10 -9
  134. package/dist/ai/manifest/types.api.json +8 -5
  135. package/dist/ai/manifest/types.wrapper.json +1 -0
  136. package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
  137. package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
  138. package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
  139. package/dist/ai/recipes/inertia/onboarding.md +6 -10
  140. package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
  141. package/dist/ai/recipes/inertia/record-form.md +11 -11
  142. package/dist/ai/recipes/inertia/records-workspace.md +38 -41
  143. package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
  144. package/dist/ai/recipes/inertia/upload-center.md +31 -39
  145. package/dist/ai/recipes/inertia/wizard-form.md +10 -19
  146. package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
  147. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
  148. package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
  149. package/dist/ai/recipes/nuxt/onboarding.md +2 -6
  150. package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
  151. package/dist/ai/recipes/nuxt/record-form.md +5 -5
  152. package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
  153. package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
  154. package/dist/ai/recipes/nuxt/upload-center.md +22 -29
  155. package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
  156. package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
  157. package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
  158. package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
  159. package/dist/ai/recipes/vue/onboarding.md +2 -6
  160. package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
  161. package/dist/ai/recipes/vue/record-form.md +5 -5
  162. package/dist/ai/recipes/vue/records-workspace.md +29 -31
  163. package/dist/ai/recipes/vue/settings-workspace.md +22 -34
  164. package/dist/ai/recipes/vue/upload-center.md +22 -29
  165. package/dist/ai/recipes/vue/wizard-form.md +3 -11
  166. package/dist/ai/source/BbAccordion.md +1 -1
  167. package/dist/ai/source/BbAlert.md +3 -3
  168. package/dist/ai/source/BbBadge.md +14 -10
  169. package/dist/ai/source/BbBadgeButton.md +17 -12
  170. package/dist/ai/source/BbBaseButton.md +1 -1
  171. package/dist/ai/source/BbBaseRadioIcon.md +1 -0
  172. package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
  173. package/dist/ai/source/BbBreadcrumbs.md +63 -42
  174. package/dist/ai/source/BbButton.md +84 -38
  175. package/dist/ai/source/BbCalendar.md +17 -16
  176. package/dist/ai/source/BbCheckbox.md +3 -2
  177. package/dist/ai/source/BbCheckboxGroup.md +11 -4
  178. package/dist/ai/source/BbCollapsible.md +2 -1
  179. package/dist/ai/source/BbColorInput.md +10 -9
  180. package/dist/ai/source/BbColorPalette.md +2 -1
  181. package/dist/ai/source/BbConfirm.md +18 -1
  182. package/dist/ai/source/BbConfirmPortal.md +20 -6
  183. package/dist/ai/source/BbDatePicker.md +2 -2
  184. package/dist/ai/source/BbDatePickerInput.md +47 -20
  185. package/dist/ai/source/BbDialog.md +5 -5
  186. package/dist/ai/source/BbDropdown.md +231 -158
  187. package/dist/ai/source/BbDropdownButton.md +19 -12
  188. package/dist/ai/source/BbDropdownGroup.md +127 -93
  189. package/dist/ai/source/BbForm.md +25 -1
  190. package/dist/ai/source/BbHoverCard.md +30 -3
  191. package/dist/ai/source/BbHoverCardPortal.md +18 -3
  192. package/dist/ai/source/BbIndicator.md +4 -0
  193. package/dist/ai/source/BbNumberInput.md +855 -19
  194. package/dist/ai/source/BbOffCanvas.md +27 -11
  195. package/dist/ai/source/BbPagination.md +3 -3
  196. package/dist/ai/source/BbPopover.md +185 -12
  197. package/dist/ai/source/BbPopoverPortal.md +30 -3
  198. package/dist/ai/source/BbProgress.md +82 -18
  199. package/dist/ai/source/BbRadioGroup.md +12 -5
  200. package/dist/ai/source/BbRating.md +11 -9
  201. package/dist/ai/source/BbSelect.md +16 -10
  202. package/dist/ai/source/BbSelectPopover.md +29 -23
  203. package/dist/ai/source/BbSlider.md +12 -6
  204. package/dist/ai/source/BbSwitch.md +3 -2
  205. package/dist/ai/source/BbSwitchGroup.md +5 -2
  206. package/dist/ai/source/BbTable.md +102 -18
  207. package/dist/ai/source/BbTabs.md +30 -24
  208. package/dist/ai/source/BbTabsList.md +29 -23
  209. package/dist/ai/source/BbTabsPanels.md +29 -23
  210. package/dist/ai/source/BbTabsRoot.md +28 -22
  211. package/dist/ai/source/BbTag.md +10 -9
  212. package/dist/ai/source/BbTextInput.md +5 -4
  213. package/dist/ai/source/BbTextarea.md +6 -5
  214. package/dist/ai/source/BbTimePicker.md +1 -1
  215. package/dist/ai/source/BbTimePickerInput.md +46 -9
  216. package/dist/ai/source/BbToast.md +10 -7
  217. package/dist/ai/source/BbToastPortal.md +10 -7
  218. package/dist/ai/source/BbTooltip.md +88 -11
  219. package/dist/ai/source/BbTree.md +21 -3
  220. package/dist/ai/source/CommonField.md +6 -4
  221. package/dist/ai/source/CommonFieldInput.md +15 -10
  222. package/dist/ai/source/CommonPopover.md +8 -1
  223. package/dist/ai/source/CommonTimeSelector.md +5 -4
  224. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
  225. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
  226. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
  227. package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
  228. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +88 -70
  229. package/dist/components/BbButton/toggleRoving.d.ts +6 -0
  230. package/dist/components/BbButton/toggleRoving.js +45 -0
  231. package/dist/components/BbButton/types.d.ts +12 -4
  232. package/dist/components/BbButton/types.js +5 -1
  233. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
  234. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
  235. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
  236. package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
  237. package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
  238. package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
  239. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
  240. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
  241. package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
  242. package/dist/components/BbCollapsible/types.d.ts +2 -1
  243. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
  244. package/dist/components/BbColorPalette/types.d.ts +2 -1
  245. package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +2 -5
  246. package/dist/components/BbConfirm/types.d.ts +15 -0
  247. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
  248. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
  249. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
  250. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
  251. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
  252. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
  253. package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
  254. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
  255. package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
  256. package/dist/components/BbDropdown/normalizeGroups.js +60 -46
  257. package/dist/components/BbDropdown/types.d.ts +120 -88
  258. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
  259. package/dist/components/BbDropdownButton/types.d.ts +2 -2
  260. package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
  261. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
  262. package/dist/components/BbForm/BbFormCustomField.js +1 -1
  263. package/dist/components/BbForm/bindFormField.js +2 -1
  264. package/dist/components/BbForm/formFields.d.ts +5 -0
  265. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +145 -142
  266. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +2 -2
  267. package/dist/components/BbHoverCard/types.d.ts +14 -1
  268. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
  269. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
  270. package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
  271. package/dist/components/BbNumberInput/numberDisplay.js +499 -0
  272. package/dist/components/BbNumberInput/types.d.ts +54 -1
  273. package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
  274. package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
  275. package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
  276. package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
  277. package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
  278. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
  279. package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
  280. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -162
  281. package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +2 -2
  282. package/dist/components/BbPopover/types.d.ts +26 -1
  283. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
  284. package/dist/components/BbProgress/types.d.ts +23 -7
  285. package/dist/components/BbProgress/types.js +1 -1
  286. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
  287. package/dist/components/BbRadioGroup/types.d.ts +6 -2
  288. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
  289. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
  290. package/dist/components/BbSelect/types.d.ts +6 -2
  291. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  292. package/dist/components/BbSelectPopover/types.d.ts +6 -2
  293. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
  294. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
  295. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
  296. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
  297. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
  298. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
  299. package/dist/components/BbTabs/types.d.ts +28 -22
  300. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
  301. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
  302. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
  303. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
  304. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +99 -86
  305. package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
  306. package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
  307. package/dist/components/BbTooltip/types.d.ts +10 -3
  308. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
  309. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
  310. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
  311. package/dist/components/CommonPopover/types.d.ts +2 -1
  312. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
  313. package/dist/composables/formSubmitLock.d.ts +6 -0
  314. package/dist/composables/formSubmitLock.js +4 -0
  315. package/dist/composables/useBaseOptions.d.ts +7 -1
  316. package/dist/composables/useBaseOptions.js +32 -32
  317. package/dist/composables/useBbDropdownContext.d.ts +8 -8
  318. package/dist/composables/useBbFormField.d.ts +9 -0
  319. package/dist/composables/useBbFormField.js +5 -3
  320. package/dist/composables/useBbTabsContext.d.ts +10 -10
  321. package/dist/composables/useBbTabsContext.js +18 -18
  322. package/dist/composables/useFormBinding.d.ts +11 -0
  323. package/dist/composables/useFormBinding.js +15 -13
  324. package/dist/composables/useItemText.d.ts +5 -1
  325. package/dist/composables/useItemText.js +8 -3
  326. package/dist/composables/useItemValue.d.ts +5 -1
  327. package/dist/composables/useItemValue.js +8 -3
  328. package/dist/composables/useLocale.js +10 -9
  329. package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
  330. package/dist/deprecation/ai-deprecations.json.js +1 -1
  331. package/dist/deprecation/removedProps.js +1 -1
  332. package/dist/directives/bbDropdown.js +1 -1
  333. package/dist/directives/directivePortal.d.ts +13 -7
  334. package/dist/directives/directivePortal.js +1 -4
  335. package/dist/i18n/index.d.ts +7 -12
  336. package/dist/i18n/locales/cs.json +11 -14
  337. package/dist/i18n/locales/da.json +13 -16
  338. package/dist/i18n/locales/de-CH.json +137 -0
  339. package/dist/i18n/locales/de.json +14 -17
  340. package/dist/i18n/locales/el.json +10 -13
  341. package/dist/i18n/locales/en-GB.json +137 -0
  342. package/dist/i18n/locales/en.json +8 -11
  343. package/dist/i18n/locales/es-MX.json +137 -0
  344. package/dist/i18n/locales/es.json +16 -19
  345. package/dist/i18n/locales/fi.json +8 -11
  346. package/dist/i18n/locales/fr.json +23 -26
  347. package/dist/i18n/locales/hu.json +8 -11
  348. package/dist/i18n/locales/it.json +12 -15
  349. package/dist/i18n/locales/ja.json +13 -16
  350. package/dist/i18n/locales/ko.json +10 -13
  351. package/dist/i18n/locales/nb.json +13 -16
  352. package/dist/i18n/locales/nl.json +21 -24
  353. package/dist/i18n/locales/pl.json +10 -13
  354. package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
  355. package/dist/i18n/locales/pt-PT.json +137 -0
  356. package/dist/i18n/locales/ro.json +22 -25
  357. package/dist/i18n/locales/ru.json +11 -14
  358. package/dist/i18n/locales/sv.json +16 -19
  359. package/dist/i18n/locales/tr.json +14 -17
  360. package/dist/i18n/locales/uk.json +11 -14
  361. package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
  362. package/dist/i18n/locales/zh-HK.json +137 -0
  363. package/dist/i18n/locales/zh-TW.json +137 -0
  364. package/dist/i18n/regionHints.d.ts +16 -0
  365. package/dist/i18n/regionHints.js +49 -0
  366. package/dist/i18n/regions.d.ts +286 -0
  367. package/dist/i18n/regions.js +265 -0
  368. package/dist/index.d.ts +4 -4
  369. package/dist/index.js +4 -4
  370. package/dist/llms-full.txt +1914 -1714
  371. package/dist/llms-medium.txt +76 -46
  372. package/dist/llms.txt +7 -7
  373. package/dist/locale-blueprint.json +16 -13
  374. package/dist/styles.css +2 -2
  375. package/dist/types/passthrough.d.ts +1 -1
  376. package/dist/types/ptComponentMap.d.ts +2 -2
  377. package/dist/utilities/functions/slotKey.d.ts +2 -2
  378. package/dist/utils/versionCheck.js +1 -1
  379. package/dist/vite-plugin.d.ts +22 -19
  380. package/dist/vite.js +309 -297
  381. package/llms.txt +7 -7
  382. package/package.json +5 -3
  383. package/scripts/lib/agent-manifest.mjs +2 -1
  384. package/scripts/lib/eslint-disable.mjs +17 -4
  385. package/scripts/lib/eslint-plugin.d.ts +9 -1
  386. package/scripts/lib/eslint-plugin.mjs +256 -6
  387. package/scripts/lib/helper-canon.mjs +176 -0
  388. package/scripts/lib/helpers-add.mjs +1303 -0
  389. package/scripts/lib/local-components.mjs +33 -4
  390. package/scripts/lib/locale-check.mjs +165 -0
  391. package/scripts/lib/portal-names.mjs +458 -0
  392. package/scripts/lib/redundant-item-accessor.mjs +398 -0
  393. package/scripts/lib/renamed-item-field.mjs +343 -0
  394. package/scripts/lib/slot-key.mjs +2 -2
  395. package/scripts/lib/slot-renames.mjs +1 -1
  396. package/scripts/lib/unimported-components.mjs +5 -2
  397. package/scripts/lib/validate-bb-markup.mjs +123 -56
  398. package/dist/i18n/index.js +0 -27
@@ -0,0 +1,217 @@
1
+ import { Affix } from './oracle';
2
+ /**
3
+ * CDP (IME composition, media emulation) exists on Chromium only; tests that
4
+ * need it skip on Firefox / WebKit with `it.skipIf(!isChromium)`.
5
+ */
6
+ export declare const isChromium: boolean;
7
+ type Send = <T = unknown>(method: string, params?: Record<string, unknown>) => Promise<T>;
8
+ /** vitest's CDPSession type is empty; the session speaks plain CDP. */
9
+ export declare const send: Send;
10
+ export type FieldState = {
11
+ /** What the visible input shows. */
12
+ display: string;
13
+ /** Caret / selection in the visible input. */
14
+ caret: [number, number];
15
+ /** The last `update:modelValue` payload (`undefined`: none yet). */
16
+ model: unknown;
17
+ /** Every `update:modelValue` payload so far, in order. */
18
+ emits: unknown[];
19
+ /** The value a native POST carries (the named input's value), if any. */
20
+ posted: string | null;
21
+ /** What the step was, for the trace. */
22
+ step: string;
23
+ };
24
+ export type Field = {
25
+ el: HTMLInputElement;
26
+ host: HTMLElement;
27
+ emits: unknown[];
28
+ /** Writes the model from the outside (a parent `v-model` write). */
29
+ setModel: (value: number | null) => Promise<void>;
30
+ state: (step?: string) => FieldState;
31
+ unmount: () => void;
32
+ /** Every event the input received, for the trace (type + inputType / key). */
33
+ events: string[];
34
+ /** What it was mounted with (the shell helpers read the affix from it). */
35
+ locale: string;
36
+ props: Record<string, unknown>;
37
+ };
38
+ /**
39
+ * Mounts a BbNumberInput in `locale` (a built-in locale key), inside a
40
+ * `<form>` so the posted value and form restore can be read. Extra props go
41
+ * straight to the component (`disableFormatting`, `minPrecision`, `max`, …).
42
+ */
43
+ export declare const mountNumber: ({ locale, modelValue, name, props, }?: {
44
+ locale?: string;
45
+ modelValue?: number | null;
46
+ name?: string;
47
+ props?: Record<string, unknown>;
48
+ }) => Promise<Field>;
49
+ /** Lets the component's own `nextTick` / rAF work settle. */
50
+ export declare const settle: () => Promise<void>;
51
+ /** Puts the caret (or a selection) in the visible input. */
52
+ export declare const select: (f: Field, start: number, end?: number) => Promise<FieldState>;
53
+ /** Real keystrokes, one at a time; the trace has a state after each key. */
54
+ export declare const typeKeys: (f: Field, text: string) => Promise<FieldState[]>;
55
+ /** One named key, real (`Backspace`, `Delete`, `ArrowLeft`, `Enter`, `Home`). */
56
+ export declare const press: (f: Field, key: string) => Promise<FieldState>;
57
+ /** Real Undo / Redo shortcuts (the browser's own stack). */
58
+ export declare const undo: (f: Field) => Promise<FieldState>;
59
+ export declare const redo: (f: Field) => Promise<FieldState>;
60
+ /**
61
+ * Real clipboard round trip: the text goes onto the SYSTEM clipboard through
62
+ * a scratch textarea and a real Copy, then a real Paste into the field (at
63
+ * its current caret / selection). What the component reads is exactly what a
64
+ * user's paste delivers.
65
+ */
66
+ export declare const pasteReal: (f: Field, text: string) => Promise<FieldState>;
67
+ /**
68
+ * Runs a real copy / cut / paste with the clipboard to itself: files and
69
+ * engines run side by side and share it (src/dev/clipboardLockCommand.ts).
70
+ */
71
+ export declare const withClipboard: <T>(run: () => Promise<T>) => Promise<T>;
72
+ /**
73
+ * A synthetic `paste` with the given `text/plain` (and optional
74
+ * `text/html`), for shapes the system clipboard would normalise (it may turn
75
+ * U+202F into a space on some platforms). Cancelable, as a real one is. If
76
+ * nobody cancels it, nothing is inserted (a synthetic paste has no default
77
+ * action): that alone is a finding for an engine that relies on the default.
78
+ */
79
+ export declare const pasteEvent: (f: Field, text: string, html?: string) => Promise<FieldState>;
80
+ /** A synthetic text drop onto the field (dragstart/dragover elided). */
81
+ export declare const drop: (f: Field, text: string) => Promise<FieldState>;
82
+ /**
83
+ * Real IME composition through CDP: each entry of `steps` is the
84
+ * composition string as the IME shows it (`imeSetComposition`), then
85
+ * `commit` is inserted (`insertText` ends the composition), the way a
86
+ * Japanese / Chinese / Korean IME produces full-width digits.
87
+ */
88
+ export declare const imeCompose: (f: Field, steps: string[], commit: string) => Promise<FieldState[]>;
89
+ /**
90
+ * Android (Gboard and most soft keyboards): `keydown` arrives as
91
+ * `key: "Unidentified"`, keyCode 229, and the edit comes through
92
+ * `beforeinput` / `input`. Ordinary digit taps send a CANCELABLE
93
+ * `insertText` beforeinput (the default here); suggestions and composing
94
+ * keyboards send non-cancelable `insertCompositionText`. When nobody
95
+ * cancels the beforeinput, the text is applied at the caret the way the
96
+ * browser would, then `input` fires — a faithful stand-in, since headless
97
+ * Chromium cannot emit a 229 keydown itself.
98
+ */
99
+ export declare const android229: (f: Field, text: string, { inputType, cancelable, }?: {
100
+ inputType?: string;
101
+ cancelable?: boolean;
102
+ }) => Promise<FieldState>;
103
+ /**
104
+ * A keyboard suggestion replacing the whole word (Android autocorrect):
105
+ * non-cancelable `insertReplacementText`, `data` null, the value swapped.
106
+ */
107
+ export declare const androidReplaceAll: (f: Field, next: string) => Promise<FieldState>;
108
+ /**
109
+ * Form restore (back / forward, bfcache, session restore): the browser
110
+ * writes the painted text back into the input with NO input event, then
111
+ * fires `pageshow` (`persisted: true` for bfcache). Chrome and Firefox do
112
+ * this even with `autocomplete="off"` (WHATWG html#9019). `focus: true`
113
+ * also focuses the field afterwards, the other reconcile point.
114
+ */
115
+ export declare const restore: (f: Field, text: string, { persisted, focus }?: {
116
+ persisted?: boolean | undefined;
117
+ focus?: boolean | undefined;
118
+ }) => Promise<FieldState>;
119
+ /**
120
+ * Autofill. Chrome's autofill writes the value and fires `input` (no
121
+ * `inputType`) and `change`; some password managers write silently.
122
+ * `mode: 'events'` is Chrome's shape, `'silent'` the managers'.
123
+ */
124
+ export declare const autofill: (f: Field, text: string, { mode }?: {
125
+ mode?: "silent" | "events" | undefined;
126
+ }) => Promise<FieldState>;
127
+ /** Real blur: focus moves to a sibling button the harness adds. */
128
+ export declare const blur: (f: Field) => Promise<FieldState>;
129
+ /** Native submit: the FormData the browser would POST for the field. */
130
+ export declare const formData: (f: Field) => FormData;
131
+ /** Emulate `prefers-reduced-motion`, a narrow viewport or a locale's fonts: undo with `resetEmulation`. */
132
+ export declare const emulateMedia: (features: Array<{
133
+ name: string;
134
+ value: string;
135
+ }>) => Promise<unknown>;
136
+ export declare const resetEmulation: () => Promise<unknown>;
137
+ /** Select all with the platform's real shortcut (Ctrl+A on macOS moves to the line start instead). */
138
+ export declare const selectAll: (f: Field) => Promise<FieldState>;
139
+ /**
140
+ * The line-start / line-end keys as the platform has them: `Home` / `End`,
141
+ * and on macOS also Cmd+Left / Cmd+Right (a mac Home key scrolls, it does
142
+ * not move the caret). `which: 'both'` presses both, a state after each.
143
+ */
144
+ export declare const lineEdge: (f: Field, edge: "start" | "end", which?: "home-end" | "platform") => Promise<FieldState>;
145
+ /**
146
+ * The x of display offset `offset` inside the input, relative to its border
147
+ * box, measured on a hidden mirror with the input's computed text styles (so
148
+ * proportional fonts, NBSP / U+202F widths and `text-align` all count) minus
149
+ * the input's own horizontal scroll. `offset` = a caret boundary; `onChar` =
150
+ * the middle of the character AT `offset` instead.
151
+ */
152
+ export declare const offsetX: (f: Field, offset: number, onChar?: boolean) => number;
153
+ /**
154
+ * A REAL click (pointer down / up, the browser places the caret) at display
155
+ * offset `offset`: on the caret boundary before that character, or with
156
+ * `{ onChar: true }` on the middle of the character itself (a click ON `$`,
157
+ * on the NBSP, on `€`). `shift: true` extends the current selection to that
158
+ * point, the way a Shift+click (or the end of a drag) does.
159
+ */
160
+ export declare const clickAt: (f: Field, offset: number, { onChar, shift }?: {
161
+ onChar?: boolean | undefined;
162
+ shift?: boolean | undefined;
163
+ }) => Promise<FieldState>;
164
+ /** A double click on the character at `offset` (word selection). */
165
+ export declare const doubleClickAt: (f: Field, offset: number) => Promise<FieldState>;
166
+ /**
167
+ * The display split into the field's SHELL (prefix / suffix: symbol, unit,
168
+ * literals, bidi, the painted minus) and the numeric HOLE, against the shell
169
+ * the spec says this value should wear (oracle `shellOf`, from this engine's
170
+ * own `Intl`, plural form and sign of `value` included). `value` defaults to
171
+ * the last model; `fractionDigits` to the digits the hole shows. `ok: false`
172
+ * means the display does not wear the expected shell. For a field with no
173
+ * affix the whole display is the hole.
174
+ */
175
+ export declare const readShell: (f: Field, { value, fractionDigits }?: {
176
+ value?: number;
177
+ fractionDigits?: number;
178
+ }) => {
179
+ shell: import('./oracle').Shell | null;
180
+ ok: boolean;
181
+ prefix: string;
182
+ hole: string;
183
+ suffix: string;
184
+ };
185
+ /** The affix props the field was mounted with (`currency` wins), or `null`. */
186
+ export declare const affixOf: (f: Field) => Affix | null;
187
+ /**
188
+ * The accessibility facts a lane checks: `aria-valuetext` (set only at rest),
189
+ * `aria-valuenow`, the role, focus, and the spoken NAME the at-rest text
190
+ * should contain for an affixed field (oracle `spokenNameOf`).
191
+ */
192
+ export declare const aria: (f: Field) => {
193
+ role: string | null;
194
+ valuetext: string | null;
195
+ valuenow: string | null;
196
+ focused: boolean;
197
+ spokenName: string | null;
198
+ };
199
+ /**
200
+ * A synthetic drop at display `offset` (the point is put on that caret
201
+ * boundary, so the engine reads it from `caretPositionFromPoint`); the end
202
+ * of the field when `offset` is past it. Returns the event too, to check it
203
+ * was cancelled.
204
+ */
205
+ export declare const dropAt: (f: Field, offset: number, text: string) => Promise<{
206
+ event: DragEvent;
207
+ state: FieldState;
208
+ }>;
209
+ /**
210
+ * A REAL mouse drag from display offset `from` to `to` (each on the middle
211
+ * of that character with `onChar`, else on the caret boundary), through
212
+ * the `pointerDrag` command (vitest.warroom.config.ts). Playwright only.
213
+ */
214
+ export declare const dragSelect: (f: Field, from: number, to: number, { onChar }?: {
215
+ onChar?: boolean | undefined;
216
+ }) => Promise<FieldState>;
217
+ export {};
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Built-in locale key → Intl tag (the table `intlLocaleOf` reads: `en` is
3
+ * en-US, `nl` nl-NL). Anything else is used as a tag as-is, so engine-level
4
+ * rows can name tags no dictionary ships (`lt`, `ar-EG`, `hi-IN`).
5
+ */
6
+ export declare const intlTag: (locale: string) => string;
7
+ export type LocaleShape = {
8
+ group: string;
9
+ decimal: string;
10
+ /** Integer group sizes from the right: [primary, secondary]. */
11
+ primary: number;
12
+ secondary: number;
13
+ };
14
+ export declare const shapeOf: (locale: string) => LocaleShape;
15
+ /**
16
+ * Character-level normalisation every path shares (§ 2.13, GROK 4 / 7):
17
+ * NFKC, script digits to ASCII, minus look-alikes to `-`, bidi marks gone.
18
+ */
19
+ export declare const normaliseChars: (text: string) => string;
20
+ /**
21
+ * ASSUME_TRIM: a clipboard copied from a spreadsheet cell carries a trailing
22
+ * newline / tab, from a PDF surrounding spaces. The legality check runs on the
23
+ * text trimmed of ASCII whitespace at both ends (otherwise `1.234\n` from a de
24
+ * spreadsheet would read 1.234 through Q51.2).
25
+ */
26
+ export declare const ASSUME_TRIM = true;
27
+ /**
28
+ * Is `text` a number formatted the locale's way? Group marks only at legal
29
+ * positions (lakh sizes included), one decimal mark, an optional leading `-`.
30
+ * ASSUME_POSITIONS: legality is about POSITIONS only — `1.234` is legal in
31
+ * `it` although `useGrouping: "auto"` would print `1234` there.
32
+ */
33
+ export declare const isLocaleShaped: (text: string, locale: string) => boolean;
34
+ /** Strict locale read: group marks out, the decimal mark becomes `.`. */
35
+ export declare const strictParse: (text: string, locale: string) => number | null;
36
+ /**
37
+ * Q51.2 on a fragment — today's `replaceCommaWithPeriod` +
38
+ * `removeUnwantedSymbols` + `defaultPad`, after the shared char normalisation.
39
+ */
40
+ export declare const q51Parse: (text: string) => number | null;
41
+ export type PastePath = 'strict' | 'q51.2' | 'scientific';
42
+ /**
43
+ * Owner round 5 (BRIEF.md § Owner answers, round 5), all yes:
44
+ * CURRENCY_STRIP — one currency sign (`\p{Sc}`) or percent / per-mille sign
45
+ * at either end goes before the legality check (`$1,000` → 1000);
46
+ * PARENS_NEGATIVE — `(1,234.56)` is −1234.56; SCIENTIFIC — `1.2E+05` is
47
+ * 120000. ASSUME_TRIM, ASSUME_POSITIONS and LENGTH_CAP were ruled as encoded.
48
+ * Letters that name a currency (`Ft`, `kr.`, `CHF`) are not signs: only a
49
+ * currency field's own shell strips them (`pasteIntoAffixed`).
50
+ */
51
+ export declare const CURRENCY_STRIP = true;
52
+ export declare const PARENS_NEGATIVE = true;
53
+ export declare const SCIENTIFIC = true;
54
+ /** What a paste into an EMPTY field of `locale` should leave in the model. */
55
+ export declare const pasteInto: (clipboard: string, locale: string) => {
56
+ value: number | null;
57
+ path: PastePath;
58
+ };
59
+ /**
60
+ * The field's affix props. `currency` wins when both are set (GROK-CURRENCY
61
+ * "Maintainer"); `unit` is an `Intl` unit (`percent` is a unit here, NOT
62
+ * `style: 'percent'`: the model is the number shown).
63
+ */
64
+ export type Affix = {
65
+ currency?: string;
66
+ unit?: string;
67
+ };
68
+ /** The `Intl` options a field's affix stands for (`null`: no affix). */
69
+ export declare const affixOptions: (affix: Affix, spoken?: boolean) => Intl.NumberFormatOptions | null;
70
+ export type Shell = {
71
+ prefix: string;
72
+ suffix: string;
73
+ };
74
+ /**
75
+ * The shell a field shows around `value` (GROK-CURRENCY § 5 + INGEST): the
76
+ * parts before and after the hole, the `minusSign` part painted as ASCII `-`,
77
+ * literals and bidi marks kept as `Intl` gives them. The value decides it, not
78
+ * only the sign: unit plurals (`el` κιλό / κιλά, `en-GB` hr / hrs) follow the
79
+ * number as shown, so `fractionDigits` is the count of fraction digits the
80
+ * display paints. `null` for no affix, or a code `Intl` refuses (`RangeError`:
81
+ * the field paints a plain number).
82
+ */
83
+ export declare const shellOf: (locale: string, affix: Affix, value: number, fractionDigits?: number) => Shell | null;
84
+ /** The part types of a shell, for assertions that hold across ICU builds. */
85
+ export declare const shellTypesOf: (locale: string, affix: Affix, value: number) => {
86
+ prefix: string[];
87
+ suffix: string[];
88
+ } | null;
89
+ /** A display split into shell and hole; `ok: false` when the shell is not the expected one. */
90
+ export declare const splitDisplay: (display: string, shell: Shell | null) => {
91
+ ok: boolean;
92
+ prefix: string;
93
+ hole: string;
94
+ suffix: string;
95
+ };
96
+ /**
97
+ * The currency's own fraction digits (`resolvedOptions()`, never a table):
98
+ * JPY 0, EUR 2, KWD 3, CLF 4. `null` for a refused code. A unit has none.
99
+ */
100
+ export declare const currencyDigitsOf: (locale: string, currency: string) => {
101
+ min: number;
102
+ max: number;
103
+ } | null;
104
+ /**
105
+ * The at-rest `aria-valuetext` of an affixed field: the spoken NAME form
106
+ * (`currencyDisplay: 'name'`, `unitDisplay: 'long'`) of the value with the
107
+ * fraction digits the display paints. Assert `toContain` the name part, not
108
+ * equality, unless the test pins one engine.
109
+ */
110
+ export declare const spokenNameOf: (locale: string, affix: Affix, value: number) => string | null;
111
+ /**
112
+ * Every shell the field can paint, both signs, every plural form, comparable
113
+ * text, longest first (so `US$` is tried before `$`).
114
+ */
115
+ export declare const shellsOf: (locale: string, affix: Affix) => {
116
+ prefix: string;
117
+ suffix: string;
118
+ negative: boolean;
119
+ }[];
120
+ /**
121
+ * Paste into an EMPTY currency / unit field (GROK-CURRENCY § 2 Paste + § 5
122
+ * Read-back): strip THIS field's shells first (both signs, every plural form,
123
+ * space-like literals equal, both yen glyphs), then the round-5 sign strip,
124
+ * then strict-or-Q51.2. A shell is removed as a whole token (`kr.` never eats
125
+ * the da group dot). A negative shell's minus survives the strip.
126
+ */
127
+ export declare const pasteIntoAffixed: (clipboard: string, locale: string, affix: Affix) => {
128
+ value: number | null;
129
+ path: PastePath;
130
+ shell: boolean;
131
+ };
132
+ /**
133
+ * FOREIGN_UNIT (coordinator 2026-10-07): in a currency / unit field, a
134
+ * foreign symbol made of letters at either end goes like a foreign currency
135
+ * sign, with no conversion: `1,234 lb` into kilogram reads 1234, `12,50 CHF`
136
+ * into EUR 12.5, `US$12` into EUR 12. A plain field keeps the round-5 rule
137
+ * (only `\p{Sc}` / `%` signs strip). The token starts with a letter or `°`
138
+ * and may hold letters, marks, `.`, `/`, `²`, `³` (`km/h`, `m²`, `kr.`).
139
+ */
140
+ export declare const FOREIGN_UNIT = true;
141
+ /**
142
+ * A field with 0 fraction digits (`maxPrecision` 0, JPY / KRW by default):
143
+ * lane `currency` DECISION 19:32 — a typed decimal mark stays in raw (`12,`
144
+ * shows), the digits after it are refused, blur drops the mark: typed `12,5`
145
+ * is 12, never 125. A paste truncates (`12,5` → 12): `maxPrecision` never
146
+ * rounds (ZERO_DIGIT_PASTE, coordinator 2026-10-07: truncate, over
147
+ * GROK-CURRENCY-INGEST item 3's 13).
148
+ */
149
+ export declare const ZERO_DIGIT_PASTE: "truncate" | "round";
150
+ export declare const capFraction: (value: number | null, maxPrecision: number) => number | null;
@@ -3,9 +3,9 @@ import { usePassthrough as t } from "../../composables/usePassthrough.js";
3
3
  import { useBbTableContext as n, useBbTableContextHasHost as r, useBbTableContextPageIsSet as i } from "../../composables/useBbTableContext.js";
4
4
  import { removedPropsFor as ee } from "../../deprecation/removedProps.js";
5
5
  import { warnRemovedAttrs as a } from "../../utilities/functions/warnRemovedAttrs.js";
6
- import { useFrameworkDetection as o } from "../../composables/useFrameworkDetection.js";
7
- import s from "../BbBaseButton/BbBaseButton.vue.js";
8
- import { useLocale as c } from "../../composables/useLocale.js";
6
+ import { useLocale as o } from "../../composables/useLocale.js";
7
+ import { useFrameworkDetection as s } from "../../composables/useFrameworkDetection.js";
8
+ import c from "../BbBaseButton/BbBaseButton.vue.js";
9
9
  import { useRoute as te } from "../../composables/useRoute.js";
10
10
  import { parseCount as l, parsePositiveInteger as u } from "../../utilities/functions/parsePaginationNumber.js";
11
11
  import { BB_PAGINATION_PT as d } from "./types.js";
@@ -55,7 +55,7 @@ var se = ["aria-label"], ce = { class: "bb-pagination__page-label bb-sr-only" },
55
55
  active: { disabled: () => !!P.disabled }
56
56
  });
57
57
  process.env.NODE_ENV !== "production" && a("BbPagination", ee("BbPagination"));
58
- let { t: I } = c(), L = te(), R = re(), { isInertia: z } = o(), B = n(() => P.tableId), V = i(() => P.tableId);
58
+ let { t: I } = o(), L = te(), R = re(), { isInertia: z } = s(), B = n(() => P.tableId), V = i(() => P.tableId);
59
59
  r(() => P.tableId), e();
60
60
  let H = m(() => {
61
61
  let e = l(P.totalItems);
@@ -229,7 +229,7 @@ var se = ["aria-label"], ce = { class: "bb-pagination__page-label bb-sr-only" },
229
229
  ref: q,
230
230
  class: "bb-pagination__pages"
231
231
  }, [
232
- g("li", null, [_(D(s), S(y(pe.value)), {
232
+ g("li", null, [_(D(c), S(y(pe.value)), {
233
233
  default: j(() => [T(e.$slots, "previous", {}, () => [g("span", ce, E(D(I)("pagination.previous").value), 1), (C(), h("svg", x({
234
234
  class: "bb-pagination__icon",
235
235
  viewBox: "0 0 24 24",
@@ -245,7 +245,7 @@ var se = ["aria-label"], ce = { class: "bb-pagination__page-label bb-sr-only" },
245
245
  "aria-hidden": "true",
246
246
  class: "bb-pagination__ellipsis bb-pagination__page bb-pagination__page--ellipsis",
247
247
  ref_for: !0
248
- }, D(F).ellipsis), [T(e.$slots, "ellipsis", {}, () => [g("span", le, E(P.ellipsis), 1)])], 16)) : (C(), ne(D(s), x({
248
+ }, D(F).ellipsis), [T(e.$slots, "ellipsis", {}, () => [g("span", le, E(P.ellipsis), 1)])], 16)) : (C(), ne(D(c), x({
249
249
  key: 1,
250
250
  ref_for: !0
251
251
  }, me(t)), {
@@ -256,7 +256,7 @@ var se = ["aria-label"], ce = { class: "bb-pagination__page-label bb-sr-only" },
256
256
  }, () => [g("span", M, E(t.page), 1)])]),
257
257
  _: 2
258
258
  }, 1040))]))), 128)),
259
- g("li", null, [_(D(s), S(y(he.value)), {
259
+ g("li", null, [_(D(c), S(y(he.value)), {
260
260
  default: j(() => [T(e.$slots, "next", {}, () => [g("span", N, E(D(I)("pagination.next").value), 1), (C(), h("svg", x({
261
261
  class: "bb-pagination__icon",
262
262
  viewBox: "0 0 24 24",
@@ -33,6 +33,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {
33
33
  transitionDuration: number;
34
34
  trigger: PopoverTrigger | PopoverTrigger[];
35
35
  scrollable: boolean;
36
+ modal: boolean;
36
37
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
37
38
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
39
  declare const _default: typeof __VLS_export;