bitboss-ui 3.0.0-beta.0 → 3.0.0-beta.2

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 (35) hide show
  1. package/bin/bitboss-ui.mjs +133 -12
  2. package/dist/ai/changelog.json +1 -1
  3. package/dist/ai/components.json +2 -2
  4. package/dist/ai/guides/ai-router.md +2 -2
  5. package/dist/ai/guides/design-tokens.md +46 -6
  6. package/dist/ai/guides/installation-and-plugin-setup.md +71 -5
  7. package/dist/ai/guides/migration/components/bb-alert.md +37 -0
  8. package/dist/ai/guides/migration/components/bb-avatar.md +47 -8
  9. package/dist/ai/guides/migration/components/bb-badge.md +23 -1
  10. package/dist/ai/guides/migration/components/bb-button.md +64 -0
  11. package/dist/ai/guides/migration/components/bb-checkbox-group.md +55 -1
  12. package/dist/ai/guides/migration/components/bb-date-picker-input.md +9 -2
  13. package/dist/ai/guides/migration/components/bb-dialog.md +121 -11
  14. package/dist/ai/guides/migration/components/bb-icon.md +42 -0
  15. package/dist/ai/guides/migration/components/bb-offcanvas.md +35 -1
  16. package/dist/ai/guides/migration/components/bb-rating.md +52 -1
  17. package/dist/ai/guides/migration/components/bb-select.md +48 -0
  18. package/dist/ai/guides/migration/components/bb-table.md +156 -10
  19. package/dist/ai/guides/migration/components/bb-tabs.md +79 -1
  20. package/dist/ai/guides/migration/components/bb-text-input.md +23 -1
  21. package/dist/ai/guides/migration/components/bb-toast.md +44 -10
  22. package/dist/ai/guides/migration/components/use-confirm.md +48 -13
  23. package/dist/ai/guides/migration/v2-to-v3.md +626 -108
  24. package/dist/ai/index.md +9 -9
  25. package/dist/ai/source/BbDialog.md +0 -3
  26. package/dist/ai/source/BbDropdown.md +24 -1
  27. package/dist/ai/source/BbDropdownGroup.md +24 -1
  28. package/dist/index.d.ts +2 -1
  29. package/dist/llms-full.txt +1814 -367
  30. package/dist/llms-medium.txt +82 -16
  31. package/dist/llms.txt +11 -11
  32. package/dist/styles.css +1 -1
  33. package/llms.txt +12 -12
  34. package/package.json +2 -1
  35. package/scripts/lib/validate-bb-markup.mjs +105 -17
package/dist/ai/index.md CHANGED
@@ -215,40 +215,40 @@ Do not use these components directly in consumer code unless the user explicitly
215
215
  - [Installation and Plugin Setup](./guides/installation-and-plugin-setup.md) - Canonical installation, style handling, and full plugin option reference for Vite, Nuxt, and Inertia consumers.
216
216
  - [Migration v2 → v3](./guides/migration/v2-to-v3.md) - Complete upgrade guide from bitboss-ui 2.x to 3.0 — plugin-based setup, token overhaul, variant registries, global behavioral changes, and the silent-failure audit playbook.
217
217
  - [Migration v2→v3: BbAlert](./guides/migration/components/bb-alert.md) - showClose inverted to hideClose, theme replaced by typed variant.
218
- - [Migration v2→v3: BbAvatar](./guides/migration/components/bb-avatar.md) - The color prop is removed — the initials fallback is always primary.
218
+ - [Migration v2→v3: BbAvatar](./guides/migration/components/bb-avatar.md) - The color prop is removed — retheme the fallback through the --bg-color / --text-color locals.
219
219
  - [Migration v2→v3: BbBadge (and where your v2 badges went)](./guides/migration/components/bb-badge.md) - The v2 BbBadge (floating count/dot) is now BbIndicator; the v3 BbBadge is a new inline pill that also replaces BbChip.
220
220
  - [Migration v2→v3: BbBreadcrumbs](./guides/migration/components/bb-breadcrumbs.md) - Item keys must be strings, the text divider prop is gone, per-item slot names are normalized.
221
221
  - [Migration v2→v3: BbButton](./guides/migration/components/bb-button.md) - Async click handlers now auto-track loading (behavior flip), built-in tooltip props removed, variant locked to the registry.
222
222
  - [Migration v2→v3: BbCheckbox / BbRadio / BbSwitch](./guides/migration/components/bb-checkbox.md) - reverse polarity inverted (explicit values flip, default layout unchanged), checked narrowed to boolean, color removed, BbRadio's name no longer required.
223
- - [Migration v2→v3: BbCheckboxGroup / BbRadioGroup / BbSwitchGroup](./guides/migration/components/bb-checkbox-group.md) - labelPosition renamed legendPosition, per-item disabled is now inert (use selectable), color and the option affix slots removed, BbRadioGroup's name no longer required.
223
+ - [Migration v2→v3: BbCheckboxGroup / BbRadioGroup / BbSwitchGroup](./guides/migration/components/bb-checkbox-group.md) - labelPosition renamed legendPosition, per-item disabled is now inert (use selectable), color and the option affix slots removed, BbRadioGroup's name no longer required, and the shared bb-cr-container CSS block split into one per group.
224
224
  - [Migration v2→v3: BbChip (removed)](./guides/migration/components/bb-chip.md) - BbChip is gone — BbBadge with clearable is the replacement; non-clearable chips were badges all along.
225
225
  - [Migration v2→v3: BbCollapsible](./guides/migration/components/bb-collapsible.md) - The tag prop is removed; the root is always a div.
226
226
  - [Migration v2→v3: BbColorInput](./guides/migration/components/bb-color-input.md) - picker renamed to eyeDropper.
227
227
  - [Migration v2→v3: BbColorPalette](./guides/migration/components/bb-color-palette.md) - flip inverted to disableFlip, showArrow removed, picker renamed eyeDropper, update:open dropped, model updates never emit null.
228
228
  - [Migration v2→v3: BbDatePickerInput](./guides/migration/components/bb-date-picker-input.md) - allowWriting inverted to disableWriting and hidePopover renamed to disableCalendar, both with a changed token set; the width prop is removed; adaptive mobile sheet by default; non-floating output carries the local offset instead of UTC `Z` (new `utc` prop restores v2 output).
229
- - [Migration v2→v3: BbDialog](./guides/migration/components/bb-dialog.md) - showClose inverted to hideClose, several presentation props removed, default widths changed, adaptive bottom sheet on mobile by default.
229
+ - [Migration v2→v3: BbDialog](./guides/migration/components/bb-dialog.md) - showClose inverted to hideClose, several presentation props and the #close/#description slots removed, default widths changed, adaptive bottom sheet on mobile by default, --bb-dialog-* tokens replaced by --bb-panel-p plus locals.
230
230
  - [Migration v2→v3: BbDropdown](./guides/migration/components/bb-dropdown.md) - Items now expect text as the label and can carry variants/submenus; arrowPadding removed; adaptive mobile sheet on by default.
231
231
  - [Migration v2→v3: BbDropdownButton](./guides/migration/components/bb-dropdown-button.md) - autoLoading renamed to disableAutoLoading, disabledWhileLoading and theme removed.
232
232
  - [Migration v2→v3: BbDropzone](./guides/migration/components/bb-dropzone.md) - modelValue is typed, accept no longer throws and takes bare tokens, and the hidden native-submit input only renders when name is set.
233
233
  - [Migration v2→v3: BbIcon](./guides/migration/components/bb-icon.md) - The required prop is renamed type→icon, color is removed, and the xxl size key becomes 2xl.
234
234
  - [Migration v2→v3: BbIntersection](./guides/migration/components/bb-intersection.md) - Removed with no replacement — it wrapped IntersectionObserver and carried no styling; use @vueuse/core's useIntersectionObserver.
235
- - [Migration v2→v3: BbOffCanvas](./guides/migration/components/bb-offcanvas.md) - direction→side; showClose→hideClose; size defaults change; adaptive drawer configs unify on offCanvasProps.
235
+ - [Migration v2→v3: BbOffCanvas](./guides/migration/components/bb-offcanvas.md) - direction→side; showClose→hideClose; description and the #close/#description slots removed; size defaults change; adaptive drawer configs unify on offCanvasProps.
236
236
  - [Migration v2→v3: BbPagination](./guides/migration/components/bb-pagination.md) - querykey renamed to queryKey; the loading prop is removed.
237
237
  - [Migration v2→v3: BbPopover](./guides/migration/components/bb-popover.md) - Built-in close button, restoreFocus, theme, and the arrow are gone; close affordances move into your content.
238
- - [Migration v2→v3: BbRating](./guides/migration/components/bb-rating.md) - color removed; name no longer required.
238
+ - [Migration v2→v3: BbRating](./guides/migration/components/bb-rating.md) - color removed; name no longer required; the star state modifier renamed --highlighted to --filled/--empty; --bb-rating-size demoted to a local --size; input-position finally works.
239
239
  - [Migration v2→v3: BbSelect](./guides/migration/components/bb-select.md) - allowWriting inverted to disableWriting, filterBy narrowed to string[], prefill value renamed, chevron/options slots removed, and two behavior changes (second click, mount-time coherence).
240
240
  - [Migration v2→v3: BbSelectPopover](./guides/migration/components/bb-select-popover.md) - flip and allowWriting inverted, arrow props removed, filterBy narrowed, options slots replaced by header/footer; shares BbSelect's behavior changes.
241
241
  - [Migration v2→v3: BbSlider](./guides/migration/components/bb-slider.md) - thumbTranslate inverted to disableThumbTranslate; string model values and color removed.
242
242
  - [Migration v2→v3: BbSmoothHeight](./guides/migration/components/bb-smooth-height.md) - The `tag` prop is narrowed to `div | span`, and the inner measuring element now mirrors it instead of always being a `<div>`.
243
243
  - [Migration v2→v3: BbSpinner](./guides/migration/components/bb-spinner.md) - The color prop is removed; spinners follow currentColor.
244
- - [Migration v2→v3: BbTable](./guides/migration/components/bb-table.md) - allowSelectAll inverted to disableSelectAll; loading no longer blanks populated tables and now inerts rows; #loading is first-load-only; #no-data fills a full-width table cell instead of replacing the row.
245
- - [Migration v2→v3: BbTabs (was BbTab)](./guides/migration/components/bb-tabs.md) - Component renamed; querykey→queryKey; animations default on; label slots renamed and all dynamic names/URL slugs normalized.
244
+ - [Migration v2→v3: BbTable](./guides/migration/components/bb-table.md) - allowSelectAll inverted to disableSelectAll; loading no longer blanks populated tables and now inerts rows; #loading is first-load-only; #no-data fills a full-width table cell instead of replacing the row; columns gained sortable + rowClass, which collide with same-named consumer fields.
245
+ - [Migration v2→v3: BbTabs (was BbTab)](./guides/migration/components/bb-tabs.md) - Component renamed; querykey→queryKey; animations default on; label slots renamed and all dynamic names/URL slugs normalized; the entire .bb-tab BEM tree renamed to .bb-tabs / .bb-tabs-list / .bb-tabs-panes.
246
246
  - [Migration v2→v3: BbTag](./guides/migration/components/bb-tag.md) - modelValue is strictly string[] now, multiple is removed, and duplicates are rejected case-insensitively by default.
247
- - [Migration v2→v3: BbTextInput](./guides/migration/components/bb-text-input.md) - The type prop narrows to the text-like input types — number/date values must move to their dedicated components.
247
+ - [Migration v2→v3: BbTextInput](./guides/migration/components/bb-text-input.md) - The type prop narrows to the text-like input types — number/date values must move to their dedicated components; a bare `floating` attribute was never a prop, the spelling is label-mode="floating".
248
248
  - [Migration v2→v3: BbToast and toast()](./guides/migration/components/bb-toast.md) - Host placement becomes position with a corner-based value set; toast() options rewritten (variant, duration, actions, portal).
249
249
  - [Migration v2→v3: BbTooltip](./guides/migration/components/bb-tooltip.md) - timeout renamed to delay; theme replaced by typed variant; hideArrow is now a declared prop; block removed; modelValue is new.
250
250
  - [Migration v2→v3: BbTree](./guides/migration/components/bb-tree.md) - Item model rewritten — payload moves under meta, open becomes expanded, identifier becomes itemValue, expansion is a v-model.
251
- - [Migration v2→v3: confirm() / useConfirm](./guides/migration/components/use-confirm.md) - yesText/onYes/noText/onNo collapse into yes/no configs, actions becomes an array-or-false, labels are localized, footer buttons default md.
251
+ - [Migration v2→v3: confirm() / useConfirm](./guides/migration/components/use-confirm.md) - yesText/onYes/noText/onNo collapse into yes/no configs, actions becomes an array-or-false, theme→variant, timeout→duration, autoClose flips to default-true, labels are localized, footer buttons default md.
252
252
  - [Migration v2→v3: useBroadcastChannelInstance](./guides/migration/components/use-broadcast-channel-instance.md) - Removed — cross-tab messaging is not a UI concern; use useBroadcastChannel from @vueuse/core.
253
253
  - [Options and Items Playbook](./guides/options-items-playbook.md) - How item-driven components turn raw domain items into options — mapping, value identity, model seeding, and the supported ways to disable choices.
254
254
  - [Page Shell](./guides/page-shell.md) - App-side page layout — topbar, content, and a right details sidebar driven by a stack-based context (push a record to peek it, pop to go back). The implementation ships in the per-platform Layout Scaffold recipe; this guide covers when and how to use it.
@@ -659,9 +659,6 @@ export type { BbDialogSlots as BaseDialogSlots };
659
659
  .bb-dialog {
660
660
  --page-padding: 20px;
661
661
  --transition-timing-function: var(--bb-ease);
662
- --close-minimum-size: 24px;
663
- --pt: 16px;
664
- --px: 16px;
665
662
 
666
663
  background-color: var(--bb-panel);
667
664
  border: 1px solid var(--bb-border);
@@ -2146,6 +2146,7 @@ export type BbDropdownGroupEvents = {
2146
2146
  gap: 1px;
2147
2147
  /* `max-height` is set inline by BbDropdownList from the group's `maxHeight`
2148
2148
  * (a fixed size — `searchable` groups default to 280px). */
2149
+ overflow-x: clip;
2149
2150
  overflow-y: auto;
2150
2151
  overscroll-behavior: contain;
2151
2152
  }
@@ -2215,6 +2216,10 @@ export type BbDropdownGroupEvents = {
2215
2216
  max-height: var(--max-h, none);
2216
2217
  min-height: 0;
2217
2218
  min-width: 128px;
2219
+ /* `overflow-y: auto` alone promotes `overflow-x` to `auto` too — long
2220
+ * nowrap labels then grow a horizontal scrollbar. Clip x; y still scrolls.
2221
+ * Ellipsis on `.item__content` is the real truncation; this is the belt. */
2222
+ overflow-x: clip;
2218
2223
  overflow-y: auto;
2219
2224
  padding: var(--menu-inset);
2220
2225
  width: var(--w, auto);
@@ -2264,6 +2269,10 @@ export type BbDropdownGroupEvents = {
2264
2269
 
2265
2270
  .group-title__content {
2266
2271
  flex: auto;
2272
+ min-width: 0;
2273
+ overflow: hidden;
2274
+ text-overflow: ellipsis;
2275
+ white-space: nowrap;
2267
2276
  }
2268
2277
 
2269
2278
  &.bb-dropdown__group-title--variant-destructive {
@@ -2288,10 +2297,14 @@ export type BbDropdownGroupEvents = {
2288
2297
  * its buttons) `inherit` would make the menu text invisible. */
2289
2298
  color: var(--bb-text);
2290
2299
  column-gap: 8px;
2291
- display: inline-flex;
2300
+ /* `flex`, not `inline-flex`: full-width rows need a flex formatting
2301
+ * context so `min-width: 0` on `.item__content` can actually shrink. */
2302
+ display: flex;
2292
2303
  /* Keep natural row height under a capped, scrolling container. */
2293
2304
  flex-shrink: 0;
2294
2305
  height: 28px;
2306
+ /* Let the row sit inside a fixed `--w` panel instead of expanding it. */
2307
+ min-width: 0;
2295
2308
  padding: 2px 6px;
2296
2309
  text-align: left;
2297
2310
  width: 100%;
@@ -2339,6 +2352,12 @@ export type BbDropdownGroupEvents = {
2339
2352
 
2340
2353
  .item__content {
2341
2354
  flex: auto;
2355
+ /* Shrink below intrinsic nowrap width inside a fixed `--w` panel
2356
+ * (BbSelectPopover option labels do the same). Without this, long
2357
+ * labels grow a horizontal scrollbar instead of truncating. */
2358
+ min-width: 0;
2359
+ overflow: hidden;
2360
+ text-overflow: ellipsis;
2342
2361
  white-space: nowrap;
2343
2362
  }
2344
2363
 
@@ -2361,8 +2380,12 @@ export type BbDropdownGroupEvents = {
2361
2380
  min-height: 28px;
2362
2381
  padding-block: 4px;
2363
2382
 
2383
+ /* Description rows intentionally wrap — don't ellipsis the block. */
2364
2384
  .item__content {
2365
2385
  line-height: 20px;
2386
+ overflow: visible;
2387
+ text-overflow: clip;
2388
+ white-space: normal;
2366
2389
  }
2367
2390
 
2368
2391
  .item__prepend-icon,
@@ -935,6 +935,7 @@ export type BbDropdownGroupEvents = {
935
935
  gap: 1px;
936
936
  /* `max-height` is set inline by BbDropdownList from the group's `maxHeight`
937
937
  * (a fixed size — `searchable` groups default to 280px). */
938
+ overflow-x: clip;
938
939
  overflow-y: auto;
939
940
  overscroll-behavior: contain;
940
941
  }
@@ -1004,6 +1005,10 @@ export type BbDropdownGroupEvents = {
1004
1005
  max-height: var(--max-h, none);
1005
1006
  min-height: 0;
1006
1007
  min-width: 128px;
1008
+ /* `overflow-y: auto` alone promotes `overflow-x` to `auto` too — long
1009
+ * nowrap labels then grow a horizontal scrollbar. Clip x; y still scrolls.
1010
+ * Ellipsis on `.item__content` is the real truncation; this is the belt. */
1011
+ overflow-x: clip;
1007
1012
  overflow-y: auto;
1008
1013
  padding: var(--menu-inset);
1009
1014
  width: var(--w, auto);
@@ -1053,6 +1058,10 @@ export type BbDropdownGroupEvents = {
1053
1058
 
1054
1059
  .group-title__content {
1055
1060
  flex: auto;
1061
+ min-width: 0;
1062
+ overflow: hidden;
1063
+ text-overflow: ellipsis;
1064
+ white-space: nowrap;
1056
1065
  }
1057
1066
 
1058
1067
  &.bb-dropdown__group-title--variant-destructive {
@@ -1077,10 +1086,14 @@ export type BbDropdownGroupEvents = {
1077
1086
  * its buttons) `inherit` would make the menu text invisible. */
1078
1087
  color: var(--bb-text);
1079
1088
  column-gap: 8px;
1080
- display: inline-flex;
1089
+ /* `flex`, not `inline-flex`: full-width rows need a flex formatting
1090
+ * context so `min-width: 0` on `.item__content` can actually shrink. */
1091
+ display: flex;
1081
1092
  /* Keep natural row height under a capped, scrolling container. */
1082
1093
  flex-shrink: 0;
1083
1094
  height: 28px;
1095
+ /* Let the row sit inside a fixed `--w` panel instead of expanding it. */
1096
+ min-width: 0;
1084
1097
  padding: 2px 6px;
1085
1098
  text-align: left;
1086
1099
  width: 100%;
@@ -1128,6 +1141,12 @@ export type BbDropdownGroupEvents = {
1128
1141
 
1129
1142
  .item__content {
1130
1143
  flex: auto;
1144
+ /* Shrink below intrinsic nowrap width inside a fixed `--w` panel
1145
+ * (BbSelectPopover option labels do the same). Without this, long
1146
+ * labels grow a horizontal scrollbar instead of truncating. */
1147
+ min-width: 0;
1148
+ overflow: hidden;
1149
+ text-overflow: ellipsis;
1131
1150
  white-space: nowrap;
1132
1151
  }
1133
1152
 
@@ -1150,8 +1169,12 @@ export type BbDropdownGroupEvents = {
1150
1169
  min-height: 28px;
1151
1170
  padding-block: 4px;
1152
1171
 
1172
+ /* Description rows intentionally wrap — don't ellipsis the block. */
1153
1173
  .item__content {
1154
1174
  line-height: 20px;
1175
+ overflow: visible;
1176
+ text-overflow: clip;
1177
+ white-space: normal;
1155
1178
  }
1156
1179
 
1157
1180
  .item__prepend-icon,
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export { useBbTableContext } from './composables/useBbTableContext';
42
42
  export type { BbTableContextHandle as BbTableContext } from './composables/useBbTableContext';
43
43
  export { useBbTabsContext } from './composables/useBbTabsContext';
44
44
  export { useConfirm } from './composables/useConfirm';
45
+ export type { BbConfirmMessage, ConfirmButtonConfig, } from './composables/useConfirm';
45
46
  export { useCountdown } from './composables/useCountdown';
46
47
  export { useId } from './composables/useId';
47
48
  export { useMobile } from './composables/useMobile';
@@ -180,6 +181,6 @@ BbTabsItem as BbTabItem, } from './components/BbTabs/types';
180
181
  export type { BbTagProps, BbTagEvents } from './components/BbTag/types';
181
182
  export type { BbTextareaProps, BbTextareaEvents, } from './components/BbTextarea/types';
182
183
  export type { BbTextInputProps, BbTextInputEvents, } from './components/BbTextInput/types';
183
- export type { BbToastProps } from './components/BbToast/types';
184
+ export type { BbToastOptions, BbToastProps, BbToastUpdate, } from './components/BbToast/types';
184
185
  export type { BbTooltipProps, BbTooltipVariant, } from './components/BbTooltip/types';
185
186
  export type { BbTreeProps, BbTreeItem, BbTreeEvents, BbTreeSlots, } from './components/BbTree/types';