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
@@ -1,34 +1,35 @@
1
1
  import { useConfig as e } from "../../composables/useConfig.js";
2
- import { watchEffect as t } from "vue";
3
- import n from "dayjs";
4
- import { dayjsLocales as r } from "virtual:bitboss-ui/dayjs-locales";
2
+ import { LOCALE_TABLE as t, localeKeyOf as n } from "../../i18n/regions.js";
3
+ import { watchEffect as r } from "vue";
4
+ import i from "dayjs";
5
+ import { dayjsLocales as a } from "virtual:bitboss-ui/dayjs-locales";
5
6
  //#region src/components/BbCalendar/useDayjsLocale.ts
6
- var i = () => {
7
- let i = e();
8
- t(() => {
9
- n.locale(r[i.locale] ?? "en");
7
+ var o = (e) => {
8
+ let t = n(e);
9
+ return t ? a[t] : void 0;
10
+ }, s = () => {
11
+ let t = e();
12
+ r(() => {
13
+ i.locale(o(t.locale) ?? "en");
10
14
  });
11
- }, a = (e) => r[e]?.name ?? "en", o = (e) => r[e]?.weekStart ?? 0, s = "dddd, MMMM D, YYYY", c = /* @__PURE__ */ new Map(), l = (e) => {
12
- if (!e) return s;
13
- let t = e.length;
14
- for (let n = 0, r = !1; n < e.length; n++) {
15
- let i = e[n];
16
- if (i === "[") r = !0;
17
- else if (i === "]") r = !1;
18
- else if (!r && /[AaHhkms]/.test(i)) {
19
- t = n;
20
- break;
21
- }
22
- }
23
- let n = e.slice(0, t).replace(/(?:[\s,]|\[[^\]]*\])+$/u, "");
24
- return n.includes("dddd") ? n : s;
25
- }, u = (e, t) => {
26
- let n = a(t), i = c.get(n);
27
- if (i === void 0) {
28
- let e = r[t]?.formats;
29
- i = n === "en" ? s : l(e?.LLLL), c.set(n, i);
30
- }
31
- return e.locale(n).format(i);
32
- };
15
+ }, c = (e) => o(e)?.name ?? "en", l = (e) => {
16
+ let r = n(e), i = r ? t[r] : void 0;
17
+ return i?.weekStart !== void 0 && o(e) ? i.weekStart : o(e)?.weekStart ?? 0;
18
+ }, u = (e) => {
19
+ let r = n(e);
20
+ if (!r) return "en-US";
21
+ let { tag: i, dayjs: o } = t[r];
22
+ return o === null || a[r] ? i : "en-US";
23
+ }, d = /* @__PURE__ */ new Map(), f = (e, t, n) => {
24
+ let r = e instanceof Date ? e : e.toDate();
25
+ if (Number.isNaN(r.getTime())) return "";
26
+ let i = u(t), a = `${i}|${JSON.stringify(n)}`, o = d.get(a);
27
+ return o || (o = new Intl.DateTimeFormat(i, n), d.set(a, o)), o.format(r);
28
+ }, p = (e, t) => ({
29
+ hour: e ? "numeric" : "2-digit",
30
+ minute: "2-digit",
31
+ ...t ? { second: "2-digit" } : {},
32
+ hourCycle: e ? "h12" : "h23"
33
+ }), m = (e, t) => f(e, t, { dateStyle: "full" });
33
34
  //#endregion
34
- export { a as dayjsLocaleOf, u as longDateOf, l as longDatePattern, i as useDayjsLocale, o as weekStartOf };
35
+ export { c as dayjsLocaleOf, f as formatDateOf, u as intlLocaleOf, m as longDateOf, p as timeFieldsOf, s as useDayjsLocale, l as weekStartOf };
@@ -3,12 +3,12 @@ import { removedPropsFor as r } from "../../deprecation/removedProps.js";
3
3
  import { warnRemovedAttrs as i } from "../../utilities/functions/warnRemovedAttrs.js";
4
4
  import { isEqual as a } from "../../utilities/functions/isEqual.js";
5
5
  import o from "../CommonField/CommonField.vue.js";
6
- import s from "../BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js";
7
- import { hiddenSubmitAttrs as c, isMembershipModel as ee, nextToggleModel as l, preventReadonlyClick as u, preventReadonlyKeydown as d, revertReadonlyChange as te, syncCheckedToData as f, syncIndeterminate as p, toggleInputAttrs as m, toggleInputValue as h, toggleModelChecked as ne } from "../../utilities/functions/toggleInput.js";
8
- import { usePaintedChecked as g, useToggleFocus as _ } from "../../composables/useToggleInput.js";
9
- import { BB_CHECKBOX_PT as v } from "./types.js";
10
- import { useFormBinding as y } from "../../composables/useFormBinding.js";
11
- import { computed as b, createBlock as x, createCommentVNode as S, createElementBlock as C, createElementVNode as w, createSlots as re, createVNode as ie, defineComponent as T, guardReactiveProps as E, mergeProps as D, normalizeProps as O, openBlock as k, ref as A, renderSlot as j, unref as M, useAttrs as N, withCtx as P } from "vue";
6
+ import ee from "../BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js";
7
+ import { hiddenSubmitAttrs as s, isMembershipModel as c, nextToggleModel as l, preventReadonlyClick as u, preventReadonlyKeydown as d, revertReadonlyChange as f, syncCheckedToData as te, syncIndeterminate as p, toggleInputAttrs as m, toggleInputValue as h, toggleModelChecked as g } from "../../utilities/functions/toggleInput.js";
8
+ import { usePaintedChecked as ne, useToggleFocus as re } from "../../composables/useToggleInput.js";
9
+ import { BB_CHECKBOX_PT as _ } from "./types.js";
10
+ import { useFormBinding as v } from "../../composables/useFormBinding.js";
11
+ import { computed as y, createBlock as b, createCommentVNode as ie, createElementBlock as x, createElementVNode as S, createSlots as C, createVNode as w, defineComponent as T, guardReactiveProps as E, mergeProps as D, normalizeProps as O, openBlock as k, ref as A, renderSlot as j, unref as M, useAttrs as N, withCtx as P } from "vue";
12
12
  //#region src/components/BbCheckbox/BbCheckbox.vue?vue&type=script&setup=true&lang.ts
13
13
  var F = /*@__PURE__*/ T({
14
14
  inheritAttrs: !1,
@@ -117,25 +117,25 @@ var F = /*@__PURE__*/ T({
117
117
  "update:modelValue"
118
118
  ],
119
119
  setup(T, { emit: F }) {
120
- let I = T, { props: L, emit: R, showAsterisk: z, errors: B, ariaRequired: V } = y(I, F, {
120
+ let I = T, { props: L, emit: R, showAsterisk: z, errors: B, ariaRequired: V, readonly: H } = v(I, F, {
121
121
  componentName: "BbCheckbox",
122
122
  identifierFallback: () => I.label,
123
123
  leaveOn: "blur",
124
124
  commits: !0
125
- }), H = b(() => L.trueValue === void 0 || L.trueValue), U = b(() => L.falseValue !== void 0 && L.falseValue);
125
+ }), U = y(() => L.trueValue === void 0 || L.trueValue), W = y(() => L.falseValue !== void 0 && L.falseValue);
126
126
  process.env.NODE_ENV !== "production" && i("BbCheckbox", r("BbCheckbox"));
127
- let W = A(null), { focused: G, focusVisible: K, onFocus: q, onBlur: J } = _(), Y = b(() => L.persistentHint || G.value), ae = b(() => !L.reverse), X = b(() => ({
128
- trueValue: H.value,
129
- falseValue: U.value
130
- })), oe = b(() => ee(L.modelValue, X.value)), Z = b(() => L.checked !== void 0 || L.modelValue !== void 0), Q = g(() => L.checked === void 0 ? ne(L.modelValue, X.value, a) : L.checked, {
127
+ let G = A(null), { focused: K, focusVisible: q, onFocus: J, onBlur: Y } = re(), ae = y(() => L.persistentHint || K.value), oe = y(() => !L.reverse), X = y(() => ({
128
+ trueValue: U.value,
129
+ falseValue: W.value
130
+ })), se = y(() => c(L.modelValue, X.value)), Z = y(() => L.checked !== void 0 || L.modelValue !== void 0), Q = ne(() => L.checked === void 0 ? g(L.modelValue, X.value, a) : L.checked, {
131
131
  indeterminate: () => L.indeterminate,
132
- input: W
132
+ input: G
133
133
  }), $ = n({
134
134
  component: "BbCheckbox",
135
135
  attrs: N(),
136
136
  props: L,
137
- parts: v.parts,
138
- states: v.states,
137
+ parts: _.parts,
138
+ states: _.states,
139
139
  active: {
140
140
  ...t(e(L), [
141
141
  "errors",
@@ -144,25 +144,25 @@ var F = /*@__PURE__*/ T({
144
144
  "readonly"
145
145
  ]),
146
146
  checked: () => Q.value,
147
- focused: () => G.value,
148
- focusVisible: () => K.value,
147
+ focused: () => K.value,
148
+ focusVisible: () => q.value,
149
149
  indeterminate: () => !!L.indeterminate
150
150
  }
151
- }), se = {
151
+ }), ce = {
152
152
  onBlur: (e) => {
153
- J(), R("blur", e);
153
+ Y(), R("blur", e);
154
154
  },
155
155
  onChange: (e) => {
156
156
  if (e.target instanceof HTMLInputElement) {
157
- if (te(e.target, L.readonly, Q.value)) {
158
- p(W.value, L.indeterminate);
157
+ if (f(e.target, L.readonly, Q.value)) {
158
+ p(G.value, L.indeterminate);
159
159
  return;
160
160
  }
161
- Z.value || (Q.value = e.target.checked), p(W.value, L.indeterminate), R("change", e), R("update:modelValue", l(L.modelValue, e.target.checked, X.value, a)), Z.value && f(() => W.value, () => Q.value, () => L.indeterminate);
161
+ Z.value || (Q.value = e.target.checked), p(G.value, L.indeterminate), R("change", e), R("update:modelValue", l(L.modelValue, e.target.checked, X.value, a)), Z.value && te(() => G.value, () => Q.value, () => L.indeterminate);
162
162
  }
163
163
  },
164
164
  onFocus: (e) => {
165
- q(e), R("focus", e);
165
+ J(e), R("focus", e);
166
166
  },
167
167
  onClick: (e) => {
168
168
  u(e, L.readonly), R("click", e);
@@ -173,7 +173,7 @@ var F = /*@__PURE__*/ T({
173
173
  },
174
174
  onMousedown: (e) => R("mousedown", e),
175
175
  onMouseup: (e) => R("mouseup", e)
176
- }, ce = (e, t, n) => ({
176
+ }, le = (e, t, n) => ({
177
177
  ...m("checkbox", {
178
178
  ariaDescribedby: t,
179
179
  ariaLabelledby: n,
@@ -186,26 +186,26 @@ var F = /*@__PURE__*/ T({
186
186
  readonly: L.readonly,
187
187
  required: L.required,
188
188
  ariaRequired: V.value,
189
- value: H.value
189
+ value: U.value
190
190
  }),
191
- ...se
192
- }), le = (e, t, n) => ({
191
+ ...ce
192
+ }), ue = (e, t, n) => ({
193
193
  checked: Q.value,
194
194
  disabled: !!L.disabled,
195
- falseValue: U.value,
196
- focused: G.value,
197
- focusVisible: K.value,
195
+ falseValue: W.value,
196
+ focused: K.value,
197
+ focusVisible: q.value,
198
198
  hasErrors: !!t,
199
199
  hasWarnings: !!n && !t,
200
200
  id: e,
201
201
  indeterminate: L.indeterminate,
202
202
  name: L.name,
203
- parsedValue: h("checkbox", H.value),
203
+ parsedValue: h("checkbox", U.value),
204
204
  readonly: !!L.readonly,
205
- trueValue: H.value,
206
- value: Q.value ? H.value : U.value
205
+ trueValue: U.value,
206
+ value: Q.value ? U.value : W.value
207
207
  });
208
- return (e, t) => (k(), x(o, D({
208
+ return (e, t) => (k(), b(o, D({
209
209
  id: e.id,
210
210
  class: "bb-checkbox",
211
211
  compact: e.compact,
@@ -225,33 +225,33 @@ var F = /*@__PURE__*/ T({
225
225
  layout: e.layout,
226
226
  name: e.name,
227
227
  passthrough: M($),
228
- readonly: e.readonly,
229
- reverse: ae.value,
228
+ readonly: M(H),
229
+ reverse: oe.value,
230
230
  "show-asterisk": M(z),
231
- "show-hint": Y.value,
231
+ "show-hint": ae.value,
232
232
  tag: "label",
233
233
  warnings: e.warnings
234
- }, M($).forwardAttrs), re({
234
+ }, M($).forwardAttrs), C({
235
235
  label: P((t) => [j(e.$slots, "label", O(E(t)))]),
236
236
  input: P(({ id: t, hasErrors: n, hasWarnings: r, ariaDescribedby: i, ariaLabelledby: a }) => [
237
- !M(Q) && e.submitWhenFalse && !oe.value ? (k(), C("input", O(D({ key: 0 }, M(c)({
237
+ !M(Q) && e.submitWhenFalse && !se.value ? (k(), x("input", O(D({ key: 0 }, M(s)({
238
238
  disabled: e.disabled,
239
- falseValue: U.value,
239
+ falseValue: W.value,
240
240
  name: e.name
241
- }))), null, 16)) : S("", !0),
242
- w("input", D({
241
+ }))), null, 16)) : ie("", !0),
242
+ S("input", D({
243
243
  ref_key: "checkboxInput",
244
- ref: W
245
- }, ce(t, i, a)), null, 16),
246
- j(e.$slots, "icon", D(le(t, n, r), { text: e.label }), () => [ie(s, D({
244
+ ref: G
245
+ }, le(t, i, a)), null, 16),
246
+ j(e.$slots, "icon", D(ue(t, n, r), { text: e.label }), () => [w(ee, D({
247
247
  checked: M(Q),
248
248
  disabled: !!e.disabled,
249
- "focus-visible": M(K),
250
- focused: M(G),
249
+ "focus-visible": M(q),
250
+ focused: M(K),
251
251
  "has-errors": !!n,
252
252
  "has-warnings": !!r && !n,
253
253
  indeterminate: !!e.indeterminate,
254
- readonly: !!e.readonly
254
+ readonly: !!M(H)
255
255
  }, M($).icon), null, 16, [
256
256
  "checked",
257
257
  "disabled",
@@ -9,7 +9,7 @@ import { withItemDescribedby as ee } from "../../utilities/functions/itemProps.j
9
9
  import { useHashedWatcher as u } from "../../composables/useHashedWatcher.js";
10
10
  import te from "../CommonField/CommonField.vue.js";
11
11
  import d from "../BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js";
12
- import { preventReadonlyClick as f, preventReadonlyKeydown as p, revertReadonlyChange as m, syncCheckedToData as ne, syncIndeterminate as h, toggleInputAttrs as re, toggleInputValue as ie } from "../../utilities/functions/toggleInput.js";
12
+ import { preventReadonlyClick as f, preventReadonlyKeydown as p, revertReadonlyChange as ne, syncCheckedToData as m, syncIndeterminate as h, toggleInputAttrs as re, toggleInputValue as ie } from "../../utilities/functions/toggleInput.js";
13
13
  import { useToggleListFocus as ae } from "../../composables/useToggleInput.js";
14
14
  import { useFormBinding as oe } from "../../composables/useFormBinding.js";
15
15
  import se from "../OptionsContainer/OptionsContainer.vue.js";
@@ -17,13 +17,13 @@ import { useIndexById as g } from "../../composables/useIndexById.js";
17
17
  import { useBaseOptions as ce } from "../../composables/useBaseOptions.js";
18
18
  import { useCoherence as le } from "../../composables/useCoherence.js";
19
19
  import { usePrefill as ue } from "../../composables/usePrefill.js";
20
- import { useActiveInactiveState as de } from "../../composables/useActiveInactiveState.js";
21
- import { useOnFalsy as fe } from "../../composables/useOnFalsy.js";
22
- import { useOnTruthy as _ } from "../../composables/useOnTruthy.js";
23
- import { BB_CHECKBOX_GROUP_PT as v } from "./types.js";
24
- import { computed as y, createBlock as pe, createElementVNode as me, createSlots as he, createVNode as b, defineComponent as x, guardReactiveProps as S, mergeProps as C, normalizeProps as w, onBeforeMount as ge, openBlock as _e, ref as ve, renderSlot as T, shallowRef as ye, toRef as E, unref as D, useAttrs as O, withCtx as k } from "vue";
20
+ import { useActiveInactiveState as _ } from "../../composables/useActiveInactiveState.js";
21
+ import { useOnFalsy as de } from "../../composables/useOnFalsy.js";
22
+ import { useOnTruthy as v } from "../../composables/useOnTruthy.js";
23
+ import { BB_CHECKBOX_GROUP_PT as y } from "./types.js";
24
+ import { computed as b, createBlock as fe, createElementVNode as pe, createSlots as me, createVNode as x, defineComponent as S, guardReactiveProps as C, mergeProps as w, normalizeProps as T, onBeforeMount as he, openBlock as ge, ref as _e, renderSlot as E, shallowRef as ve, toRef as D, unref as O, useAttrs as ye, withCtx as k } from "vue";
25
25
  //#region src/components/BbCheckboxGroup/BbCheckboxGroup.vue?vue&type=script&setup=true&lang.ts
26
- var A = /*@__PURE__*/ x({
26
+ var A = /*@__PURE__*/ S({
27
27
  inheritAttrs: !1,
28
28
  __name: "BbCheckboxGroup",
29
29
  props: {
@@ -177,8 +177,8 @@ var A = /*@__PURE__*/ x({
177
177
  "mouseup",
178
178
  "update:modelValue"
179
179
  ],
180
- setup(x, { emit: A }) {
181
- let j = x, { props: M, emit: N, showAsterisk: P, errors: be } = oe(j, A, {
180
+ setup(S, { emit: A }) {
181
+ let j = S, { props: M, emit: N, showAsterisk: P, errors: be, readonly: F } = oe(j, A, {
182
182
  componentName: "BbCheckboxGroup",
183
183
  identifierFallback: () => j.legend,
184
184
  emptyValue: () => [],
@@ -186,72 +186,73 @@ var A = /*@__PURE__*/ x({
186
186
  });
187
187
  process.env.NODE_ENV !== "production" && c("BbCheckboxGroup", s("BbCheckboxGroup"));
188
188
  let xe = e();
189
- ge(() => {
189
+ he(() => {
190
190
  M.multiple && !Array.isArray(M.modelValue) && xe.throw("BbCheckboxGroup: multiple is set to \"true\" but modelValue is not an array.");
191
191
  });
192
- let Se = [], F = y(() => M.items === void 0 ? Se : M.items), I = ye(null), Ce = (e) => {
193
- I.value = e?.$el ?? null;
194
- }, { active: L } = de(I), R = ve(!1), we = y(() => M.persistentHint || R.value);
195
- fe(L, () => {
196
- R.value = !1, N("inactive");
197
- }), _(L, () => {
198
- R.value = !0, N("active");
192
+ let Se = [], I = b(() => M.items === void 0 ? Se : M.items), L = ve(null), Ce = (e) => {
193
+ L.value = e?.$el ?? null;
194
+ }, { active: R } = _(L), z = _e(!1), we = b(() => M.persistentHint || z.value);
195
+ de(R, () => {
196
+ z.value = !1, N("inactive");
197
+ }), v(R, () => {
198
+ z.value = !0, N("active");
199
199
  });
200
- let { getter: z, clientReproducible: B, hydratedFromSsr: Te, items: Ee, loading: V, error: De, ssrMarker: Oe } = l({
201
- items: F,
200
+ let { getter: B, clientReproducible: Te, hydratedFromSsr: Ee, items: De, loading: V, error: Oe, ssrMarker: ke } = l({
201
+ items: I,
202
202
  marker: !0
203
203
  }), H = () => {
204
- M.enforceCoherence && !q.value && N("update:modelValue", Ne.value);
205
- }, { hasPrefilled: U, whenPrefilled: ke } = ue({
206
- alreadyLoaded: Te,
207
- clientReproducible: B,
204
+ M.enforceCoherence && !q.value && N("update:modelValue", Pe.value);
205
+ }, { hasPrefilled: U, whenPrefilled: Ae } = ue({
206
+ alreadyLoaded: Ee,
207
+ clientReproducible: Te,
208
208
  trigger: !0,
209
209
  currentValue: M.modelValue,
210
210
  multiple: M.multiple,
211
211
  fn: async () => {
212
- await z(void 0, "initial", M.modelValue) === "applied" && H();
212
+ await B(void 0, "initial", M.modelValue) === "applied" && H();
213
213
  }
214
- }), W = y(() => M.multiple ? [].concat(M.modelValue) : [M.modelValue]), { data: G } = g({ items: W }), { options: K } = ce({
215
- disabled: E(M, "disabled"),
216
- items: Ee,
214
+ }), W = b(() => M.multiple ? [].concat(M.modelValue) : [M.modelValue]), { data: G } = g({ items: W }), { options: K } = ce({
215
+ disabled: D(M, "disabled"),
216
+ items: De,
217
217
  itemText: M.itemText,
218
- itemProps: E(M, "itemProps"),
218
+ itemProps: D(M, "itemProps"),
219
219
  itemValue: M.itemValue,
220
- max: E(M, "max"),
221
- selectable: E(M, "selectable"),
220
+ optionDefaults: !0,
221
+ max: D(M, "max"),
222
+ selectable: D(M, "selectable"),
222
223
  selectedIndexedByHash: G
223
- }), Ae = (e) => {
224
+ }), je = (e) => {
224
225
  if (M.multiple) {
225
226
  N("update:modelValue", [...W.value, e.value]);
226
227
  return;
227
228
  }
228
229
  N("update:modelValue", e.value);
229
- }, je = (e) => {
230
+ }, Me = (e) => {
230
231
  if (!M.multiple) {
231
232
  N("update:modelValue", null);
232
233
  return;
233
234
  }
234
235
  let t = { ...G.value };
235
236
  delete t[e.valueHash], N("update:modelValue", Object.values(t));
236
- }, { data: Me } = g({
237
+ }, { data: Ne } = g({
237
238
  items: K,
238
239
  key: "valueHash"
239
- }), { coherent: q, coherentValue: Ne } = le({
240
- modelValue: E(M, "modelValue"),
240
+ }), { coherent: q, coherentValue: Pe } = le({
241
+ modelValue: D(M, "modelValue"),
241
242
  multiple: M.multiple,
242
- iteratee: (e) => !!Me.value[o(e)]
243
+ iteratee: (e) => !!Ne.value[o(e)]
243
244
  }), J = 0;
244
245
  u(() => M.modelValue, async () => {
245
- J++, q.value || await z(void 0, "model", M.modelValue) === "applied" && H(), J--;
246
- }, { debounce: M.modelValueDebounceTime === void 0 ? 0 : M.modelValueDebounceTime }), u(() => [M.dependencies, F.value], async () => {
247
- U.value || await ke(), U.value && (J++, await z(void 0, "dependencies", M.modelValue) === "applied" && J === 1 && H(), J--);
246
+ J++, q.value || await B(void 0, "model", M.modelValue) === "applied" && H(), J--;
247
+ }, { debounce: M.modelValueDebounceTime === void 0 ? 0 : M.modelValueDebounceTime }), u(() => [M.dependencies, I.value], async () => {
248
+ U.value || await Ae(), U.value && (J++, await B(void 0, "dependencies", M.modelValue) === "applied" && J === 1 && H(), J--);
248
249
  }, { debounce: M.depsDebounceTime === void 0 ? 0 : M.depsDebounceTime });
249
- let Y = y(() => t(M.modelValue)), X = a({
250
+ let Y = b(() => t(M.modelValue)), X = a({
250
251
  component: "BbCheckboxGroup",
251
- attrs: O(),
252
+ attrs: ye(),
252
253
  props: M,
253
- parts: v.parts,
254
- states: v.states,
254
+ parts: y.parts,
255
+ states: y.states,
255
256
  active: {
256
257
  ...i(r(M, () => Y.value), [
257
258
  "errors",
@@ -262,26 +263,26 @@ var A = /*@__PURE__*/ x({
262
263
  ]),
263
264
  loading: () => V.value
264
265
  }
265
- }), Pe = n(X, { label: "legend" }), Z = ae(), Q = (e) => e.value === void 0 || e.value, $ = (e, t) => {
266
+ }), Fe = n(X, { label: "legend" }), Z = ae(), Q = (e) => e.value === void 0 || e.value, $ = (e, t) => {
266
267
  if (t) return [t, e.valueHash].filter(Boolean).join("-");
267
- }, Fe = (e, t) => {
268
- N("change", e), t.selected ? je(t) : Ae(t);
269
- }, Ie = (e) => ({
268
+ }, Ie = (e, t) => {
269
+ N("change", e), t.selected ? Me(t) : je(t);
270
+ }, Le = (e) => ({
270
271
  onBlur: (t) => {
271
272
  Z.onBlur(e.valueHash), N("blur", t);
272
273
  },
273
274
  onChange: (t) => {
274
275
  if (!(t.target instanceof HTMLInputElement)) return;
275
- if (m(t.target, M.readonly, !!e.selected)) {
276
+ if (ne(t.target, M.readonly, !!e.selected)) {
276
277
  h(t.target, !1);
277
278
  return;
278
279
  }
279
- h(t.target, !1), Fe(t, e);
280
+ h(t.target, !1), Ie(t, e);
280
281
  let n = t.target;
281
- ne(() => n, () => !!K.value.find((t) => t.valueHash === e.valueHash)?.selected);
282
+ m(() => n, () => !!K.value.find((t) => t.valueHash === e.valueHash)?.selected);
282
283
  },
283
284
  onFocus: (t) => {
284
- Z.onFocus(e.valueHash, t), R.value = !0, N("focus", t);
285
+ Z.onFocus(e.valueHash, t), z.value = !0, N("focus", t);
285
286
  },
286
287
  onClick: (e) => {
287
288
  f(e, M.readonly), N("click", e);
@@ -292,7 +293,7 @@ var A = /*@__PURE__*/ x({
292
293
  },
293
294
  onMousedown: (e) => N("mousedown", e),
294
295
  onMouseup: (e) => N("mouseup", e)
295
- }), Le = (e, t, n, r, i, a) => ({
296
+ }), Re = (e, t, n, r, i, a) => ({
296
297
  ...re("checkbox", {
297
298
  ariaDescribedby: ee(r, a),
298
299
  ariaLabelledby: i,
@@ -306,8 +307,8 @@ var A = /*@__PURE__*/ x({
306
307
  required: !1,
307
308
  value: Q(e)
308
309
  }),
309
- ...Ie(e)
310
- }), Re = (e, t, n, r) => {
310
+ ...Le(e)
311
+ }), ze = (e, t, n, r) => {
311
312
  let i = !!e.selected;
312
313
  return {
313
314
  checked: i,
@@ -326,13 +327,13 @@ var A = /*@__PURE__*/ x({
326
327
  value: i ? Q(e) : !1
327
328
  };
328
329
  };
329
- return (e, t) => (_e(), pe(te, C({
330
+ return (e, t) => (ge(), fe(te, w({
330
331
  id: e.id,
331
332
  class: "bb-checkbox-group",
332
333
  compact: e.compact,
333
334
  description: e.description,
334
335
  disabled: e.disabled,
335
- errors: D(be),
336
+ errors: O(be),
336
337
  "has-errors": e.hasErrors,
337
338
  "has-value": Y.value,
338
339
  "has-warnings": e.hasWarnings,
@@ -346,23 +347,23 @@ var A = /*@__PURE__*/ x({
346
347
  "label-position": e.legendPosition,
347
348
  "label-tag": "legend",
348
349
  layout: e.layout,
349
- loading: D(V),
350
+ loading: O(V),
350
351
  name: e.name,
351
- passthrough: D(Pe),
352
- readonly: e.readonly,
352
+ passthrough: O(Fe),
353
+ readonly: O(F),
353
354
  reverse: e.reverse,
354
- "show-asterisk": D(P),
355
+ "show-asterisk": O(P),
355
356
  "show-hint": we.value,
356
- "ssr-marker": D(Oe),
357
+ "ssr-marker": O(ke),
357
358
  tag: "fieldset",
358
359
  warnings: e.warnings
359
- }, D(X).forwardAttrs), he({
360
- label: k((t) => [T(e.$slots, "legend", w(S(t)))]),
361
- input: k(({ id: t, hasErrors: n, hasWarnings: r, ariaDescribedby: i }) => [b(se, {
360
+ }, O(X).forwardAttrs), me({
361
+ label: k((t) => [E(e.$slots, "legend", T(C(t)))]),
362
+ input: k(({ id: t, hasErrors: n, hasWarnings: r, ariaDescribedby: i }) => [x(se, {
362
363
  ref: Ce,
363
364
  block: "bb-checkbox-group",
364
365
  "empty-text": e.emptyText,
365
- error: D(De),
366
+ error: O(Oe),
366
367
  "failed-text": e.failedText,
367
368
  "has-errors": n,
368
369
  "has-warnings": r,
@@ -372,28 +373,28 @@ var A = /*@__PURE__*/ x({
372
373
  "item-layout": e.itemLayout,
373
374
  "item-reverse": e.itemReverse,
374
375
  "list-layout": e.listLayout,
375
- loading: !!D(V),
376
+ loading: !!O(V),
376
377
  "loading-text": e.loadingText,
377
- options: D(K),
378
- passthrough: D(X)
378
+ options: O(K),
379
+ passthrough: O(X)
379
380
  }, {
380
- prepend: k(() => [T(e.$slots, "prepend")]),
381
- loading: k(() => [T(e.$slots, "loading")]),
382
- empty: k((t) => [T(e.$slots, "empty", w(S(t)))]),
383
- label: k((t) => [T(e.$slots, "label", w(S(t)))]),
384
- input: k(({ option: a, index: o, labelId: s, descriptionId: c, rowStates: l }) => [me("input", w(S(Le(a, o, t, i, s, c))), null, 16), T(e.$slots, "icon", C({
381
+ prepend: k(() => [E(e.$slots, "prepend")]),
382
+ loading: k(() => [E(e.$slots, "loading")]),
383
+ empty: k((t) => [E(e.$slots, "empty", T(C(t)))]),
384
+ label: k((t) => [E(e.$slots, "label", T(C(t)))]),
385
+ input: k(({ option: a, index: o, labelId: s, descriptionId: c, rowStates: l }) => [pe("input", T(C(Re(a, o, t, i, s, c))), null, 16), E(e.$slots, "icon", w({
385
386
  item: a.item,
386
387
  text: a.text
387
- }, Re(a, t, n, r)), () => [b(d, C({
388
+ }, ze(a, t, n, r)), () => [x(d, w({
388
389
  checked: !!a.selected,
389
390
  disabled: !!a.disabled,
390
- "focus-visible": D(Z).focusVisible(a.valueHash),
391
- focused: D(Z).focused(a.valueHash),
391
+ "focus-visible": O(Z).focusVisible(a.valueHash),
392
+ focused: O(Z).focused(a.valueHash),
392
393
  "has-errors": !!n,
393
394
  "has-warnings": !!r && !n,
394
395
  indeterminate: !1,
395
- readonly: !!e.readonly
396
- }, D(X).part("icon", l, a.item)), null, 16, [
396
+ readonly: !!O(F)
397
+ }, O(X).part("icon", l, a.item)), null, 16, [
397
398
  "checked",
398
399
  "disabled",
399
400
  "focus-visible",
@@ -402,7 +403,7 @@ var A = /*@__PURE__*/ x({
402
403
  "has-warnings",
403
404
  "readonly"
404
405
  ])])]),
405
- append: k(() => [T(e.$slots, "append")]),
406
+ append: k(() => [E(e.$slots, "append")]),
406
407
  _: 2
407
408
  }, 1032, [
408
409
  "empty-text",
@@ -424,7 +425,7 @@ var A = /*@__PURE__*/ x({
424
425
  _: 2
425
426
  }, [e.$slots.description ? {
426
427
  name: "description",
427
- fn: k((t) => [T(e.$slots, "description", w(S(t)))]),
428
+ fn: k((t) => [E(e.$slots, "description", T(C(t)))]),
428
429
  key: "0"
429
430
  } : void 0]), 1040, /* @__PURE__ */ "id.compact.description.disabled.errors.has-errors.has-value.has-warnings.hide-label.hint.input-align.input-position.label.label-align.label-mode.label-position.layout.loading.name.passthrough.readonly.reverse.show-asterisk.show-hint.ssr-marker.warnings".split(".")));
430
431
  }
@@ -163,13 +163,17 @@ export type BbCheckboxGroupProps<T> = {
163
163
  /**
164
164
  * Defines a path that returns a property of the object to use as text or a function that returns a string.
165
165
  *
166
- * @defaultValue `JSON.stringify(item)`
166
+ * Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
167
+ *
168
+ * @defaultValue own `label`, else `text`, else `JSON.stringify(item)`
167
169
  */
168
170
  itemText?: ItemAccessor<T, string>;
169
171
  /**
170
172
  * Defines a path that returns a property of the object to use as value or a function that returns any value.
171
173
  *
172
- * @defaultValue the whole item
174
+ * Unset: own `value`, even `null`.
175
+ *
176
+ * @defaultValue own `value`, else the whole item
173
177
  */
174
178
  itemValue?: ItemAccessor<T>;
175
179
  /**
@@ -37,7 +37,8 @@ export type BbCollapsibleProps = {
37
37
  */
38
38
  tag?: LayoutTag;
39
39
  /**
40
- * Prevents rendering content before it's made visible.
40
+ * Renders the content at mount, while closed, instead of on the first
41
+ * open. Closed content is `inert` and `aria-hidden` either way.
41
42
  */
42
43
  eager?: boolean;
43
44
  /**