bitboss-ui 3.0.0-beta.5 → 3.0.0-beta.9

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 (66) hide show
  1. package/README.md +36 -29
  2. package/dist/ai/BbBadge.md +10 -5
  3. package/dist/ai/BbSelect.md +8 -0
  4. package/dist/ai/BbTable.md +592 -61
  5. package/dist/ai/changelog.json +92 -2
  6. package/dist/ai/components.json +60 -18
  7. package/dist/ai/guides/component-picker.md +2 -2
  8. package/dist/ai/guides/design-language.md +14 -14
  9. package/dist/ai/guides/design-tokens.md +25 -18
  10. package/dist/ai/guides/installation-and-plugin-setup.md +1 -1
  11. package/dist/ai/guides/migration/components/bb-dialog.md +35 -29
  12. package/dist/ai/guides/migration/components/bb-table.md +446 -28
  13. package/dist/ai/guides/migration/v2-to-v3.md +175 -75
  14. package/dist/ai/index.md +1 -1
  15. package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
  16. package/dist/ai/recipes/inertia/ownership-atlas.md +41 -20
  17. package/dist/ai/recipes/inertia/records-workspace.md +26 -7
  18. package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
  19. package/dist/ai/recipes/nuxt/records-workspace.md +26 -7
  20. package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
  21. package/dist/ai/recipes/vue/records-workspace.md +26 -7
  22. package/dist/ai/source/BbBaseInputContainer.md +26 -0
  23. package/dist/ai/source/BbBreadcrumbs.md +31 -0
  24. package/dist/ai/source/BbDialog.md +15 -9
  25. package/dist/ai/source/BbOffCanvas.md +17 -11
  26. package/dist/ai/source/BbProgress.md +2 -2
  27. package/dist/ai/source/BbTable.md +2432 -941
  28. package/dist/ai/source/CommonInputWrapper.md +4 -0
  29. package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
  30. package/dist/components/BbTable/BbTable.vue.d.ts +8 -4
  31. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +887 -511
  32. package/dist/components/BbTable/types.d.ts +216 -85
  33. package/dist/components/BbTable/utils.d.ts +71 -4
  34. package/dist/components/BbTable/utils.js +66 -35
  35. package/dist/i18n/locales/cs.json +4 -1
  36. package/dist/i18n/locales/da.json +4 -1
  37. package/dist/i18n/locales/de.json +4 -1
  38. package/dist/i18n/locales/el.json +4 -1
  39. package/dist/i18n/locales/en.json +4 -1
  40. package/dist/i18n/locales/es.json +4 -1
  41. package/dist/i18n/locales/fi.json +4 -1
  42. package/dist/i18n/locales/fr.json +4 -1
  43. package/dist/i18n/locales/hu.json +4 -1
  44. package/dist/i18n/locales/it.json +4 -1
  45. package/dist/i18n/locales/ja.json +4 -1
  46. package/dist/i18n/locales/ko.json +4 -1
  47. package/dist/i18n/locales/nb.json +4 -1
  48. package/dist/i18n/locales/nl.json +4 -1
  49. package/dist/i18n/locales/pl.json +4 -1
  50. package/dist/i18n/locales/pt.json +4 -1
  51. package/dist/i18n/locales/ro.json +4 -1
  52. package/dist/i18n/locales/ru.json +4 -1
  53. package/dist/i18n/locales/sv.json +4 -1
  54. package/dist/i18n/locales/tr.json +4 -1
  55. package/dist/i18n/locales/uk.json +4 -1
  56. package/dist/i18n/locales/zh-cn.json +4 -1
  57. package/dist/index.d.ts +5 -1
  58. package/dist/index.js +68 -67
  59. package/dist/llms-full.txt +1442 -277
  60. package/dist/llms-medium.txt +17 -17
  61. package/dist/llms.txt +1 -1
  62. package/dist/locale-blueprint.json +4 -1
  63. package/dist/styles.css +1 -1
  64. package/llms.txt +1 -1
  65. package/package.json +1 -1
  66. package/dist/assets/svgs/sort.svg_raw.js +0 -4
package/README.md CHANGED
@@ -36,46 +36,53 @@ Full detail: `ai/guides/installation-and-plugin-setup.md`.
36
36
 
37
37
  ### Composables
38
38
 
39
- | Composable | Role |
40
- | ----------------------------- | ---------------------------------------------------------- |
41
- | `useBbConfig` | Global options for the kit (locale, defaults, etc.). |
42
- | `useBroadcastChannelInstance` | Shared `BroadcastChannel` helper for cross-tab messaging. |
43
- | `useConfirm` | Programmatic confirm / modal flows. |
44
- | `useCountdown` | Countdown timer state. |
45
- | `useMobile` | Mobile / viewport-oriented behaviour. |
46
- | `useQueue` | Simple async task queue. |
47
- | `useSafeArea` | Claim a screen edge for a docked panel so toasts avoid it. |
48
- | `useToast` | Toast notifications API. |
49
-
50
- ### Base\* components (primitives) _(reference-only - prefer `Bb*` equivalents for consumer code)_
51
-
52
- Headless or low-level pieces used inside **Bb\*** wrappers or your own compositions:
53
-
54
- - **Actions:** `BbBaseButton`
55
- - **Text & numbers:** `BaseTextInput`, `BaseTextarea`, `BaseNumberInput`, `BaseTag`
56
- - **Choice:** `BaseCheckbox`, `BaseCheckboxGroup`, `BaseRadio`, `BaseRadioGroup`, `BaseSwitch`, `BaseSwitchGroup`, `BaseSlider`, `BaseRating`
57
- - **Choice glyphs (presentational SVGs):** `BbBaseCheckboxIcon`, `BbBaseRadioIcon`, `BbBaseSwitchIcon`
58
- - **Rich inputs:** `BaseSelect`, `BaseColorInput`, `BaseDatePicker`, `BaseDatePickerInput`
59
- - **Layout / chrome:** `BaseInputContainer`, `BaseDialog`
39
+ | Composable | Role |
40
+ | ---------------------- | --------------------------------------------------------------------- |
41
+ | `useBbConfig` | Global options for the kit (locale, defaults, etc.). |
42
+ | `useBbDropdownContext` | Read a `BbDropdown`'s resolved groups/selections from anywhere by id. |
43
+ | `useBbTableContext` | Imperative handle onto a `BbTable` by id. |
44
+ | `useBbTabsContext` | Programmatic tab selection for a `BbTabs` by id. |
45
+ | `useConfirm` | Programmatic confirm / modal flows. |
46
+ | `useCountdown` | Countdown timer state. |
47
+ | `useId` | SSR-safe unique ids. |
48
+ | `useMobile` | Mobile / viewport-oriented behaviour. |
49
+ | `useSafeArea` | Claim a screen edge for a docked panel so toasts avoid it. |
50
+ | `useToast` | Toast notifications API. |
51
+
52
+ ### Utilities
53
+
54
+ - **`slotKey`** — the normalizer behind every dynamic per-item named slot (`BbDropdown`, `BbTable`, `BbTabs`, `BbTree`, `BbBreadcrumbs`). Import it when building slot names programmatically instead of restating the rule.
55
+
56
+ ### Directives
57
+
58
+ `vBbTooltip`, `vBbDropdown`, `vBbColor`, `vBbDate`, `vBbTime` — plus a
59
+ `Bb*DirectivePlugin` for each, for app-level registration. Prefer the directive
60
+ over the component for simple no-slot cases.
61
+
62
+ ### Base\* primitives
63
+
64
+ The styled `Base*` input controls and the input chrome (`BbBaseInputContainer`,
65
+ `CommonInputWrapper` — label, prepend/append, prefix/suffix, clear button,
66
+ spacing) are **internal composition layers and are not exported**. Use the full
67
+ public inputs (`BbTextInput`, `BbSelect`, …); pass `hideLabel` for a
68
+ bare/inline control. The exported primitives are **`BbBaseButton`** and the
69
+ presentational glyphs **`BbBaseCheckboxIcon`**, **`BbBaseRadioIcon`**,
70
+ **`BbBaseSwitchIcon`**.
60
71
 
61
72
  ### Bb\* components (composed)
62
73
 
63
74
  Product-ready components with labels, hints, errors, and consistent styling:
64
75
 
65
- - **Forms & actions:** `BbTextInput`, `BbTextarea`, `BbNumberInput`, `BbSelect`, `BbCheckbox`, `BbCheckboxGroup`, `BbRadio`, `BbRadioGroup`, `BbSwitch`, `BbSwitchGroup`, `BbSlider`, `BbRating`, `BbColorInput`, `BbDatePickerInput`, `BbButton`, `BbBadge`, `BbIndicator`, `BbTag`, `BbDropdown`, `BbDropdownButton`
66
- - **Feedback:** `BbAlert`, `BbProgress`, `BbSpinner`, `BbToast`, `BbTooltip`
67
- - **Layout & navigation:** `BbAccordion`, `BbCollapsible`, `BbTab`, `BbBreadcrumbs`, `BbPagination`,`BbSmoothHeight`
76
+ - **Forms & actions:** `BbTextInput`, `BbTextarea`, `BbNumberInput`, `BbSelect`, `BbSelectPopover`, `BbCheckbox`, `BbCheckboxGroup`, `BbRadio`, `BbRadioGroup`, `BbSwitch`, `BbSwitchGroup`, `BbSlider`, `BbRating`, `BbColorInput`, `BbColorPalette`, `BbDatePicker`, `BbDatePickerInput`, `BbTimePicker`, `BbTimePickerInput`, `BbButton`, `BbBadge`, `BbBadgeButton`, `BbIndicator`, `BbTag`, `BbDropdown`, `BbDropdownGroup`, `BbDropdownButton`, `BbAsterisk`
77
+ - **Feedback:** `BbAlert`, `BbProgress`, `BbSpinner`, `BbToast`, `BbToastPortal`, `BbTooltip`
78
+ - **Layout & navigation:** `BbAccordion`, `BbCollapsible`, `BbTabs` (+ `BbTabsRoot`, `BbTabsList`, `BbTabsPanes`), `BbBreadcrumbs`, `BbPagination`, `BbSmoothHeight`
68
79
  - **Overlays & panels:** `BbDialog`, `BbConfirm`, `BbConfirmPortal`, `BbOffCanvas`, `BbPopover`
69
80
  - **Data:** `BbTable`, `BbTree`
70
81
  - **Media & files:** `BbAvatar`, `BbDropzone`, `BbIcon`
71
82
 
72
- ### Shared input shells _(internal layout primitives - not for direct consumer use)_
73
-
74
- - **`CommonInputWrapper`** — the internal input-chrome primitive (label, prepend/append, prefix/suffix, clear button, spacing) that every `Bb*` input composes. Not exported; use the full public inputs (`BbTextInput`, `BbSelect`, …).
75
-
76
83
  ### Exported component types
77
84
 
78
- For most **Base\*** and **Bb\*** components, the package exports matching **props**, **events**, and (where relevant) **slots** types (for example `BbSelectProps`, `BaseSelectEvents`). Use them for typed wrappers and design-system layers; the docs list the full set per component.
85
+ For the public **Bb\*** components, the package exports matching **props**, **events**, and (where relevant) **slots** types (for example `BbSelectProps`, `BbTableEvents`), plus supporting shapes like `BbDropdownItem` and `DropdownGroupItemsGetter`. Use them for typed wrappers and design-system layers; the docs list the full set per component.
79
86
 
80
87
  ---
81
88
 
@@ -309,9 +309,12 @@ state in the handler. Prefer `secondary` / `outline` for filter chips; reserve
309
309
  ```
310
310
 
311
311
  The clear button inherits the variant's foreground, so it reads on every surface
312
- — light on a filled `primary`, dark on a `secondary`/`outline`. Set
313
- `clearable-label` for the button's accessible name (defaults to the localized
314
- `badge.clearLabel`).
312
+ — light on a filled `primary`, dark on a `secondary`/`outline`. By default its
313
+ accessible name composes the localized verb with the badge's own text a chip
314
+ reading "Italy" announces "Remove Italy", with no per-chip wiring. Set
315
+ `clearable-label` only when that composition is wrong for the context (it
316
+ replaces the whole name). With a `BbBadgeButton` body the composition is
317
+ skipped and the button falls back to the bare localized `badge.clearLabel`.
315
318
 
316
319
  Icons combine with `clearable`: a **`prepend:icon`** stays (it leads the label);
317
320
  an **`append:icon`** shares the trailing slot with the clear button — the icon
@@ -695,8 +698,10 @@ selectors like `.bb-badge > .bb-badge__content`, which no longer match.
695
698
  - An icon-only badge (`icon`) has no visible text; the default slot is rendered
696
699
  as a screen-reader-only label — never leave it empty. In button mode that
697
700
  label is also the **button's accessible name**, so it is doubly required.
698
- - The `clearable` button has an accessible name from `clearable-label` (or the
699
- localized `badge.clearLabel`).
701
+ - The `clearable` button's accessible name is composed by default: the
702
+ localized `badge.clearLabel` verb plus the badge body's text ("Remove
703
+ Italy"). `clearable-label` replaces the whole name; with a `BbBadgeButton`
704
+ body the composition is skipped (bare verb only).
700
705
  - A clickable **and** clearable badge is two tab stops (body, then clear). That
701
706
  is intended: two actions, two controls.
702
707
  - Keyboard focus on either control rings the whole pill, so the focused target
@@ -1212,6 +1212,14 @@ Shipped behavior — never reimplement it:
1212
1212
  library default) — `direction="horizontal"` gives a label-beside-field row.
1213
1213
  Only `floating`/`inside` label modes force the vertical layout, since they
1214
1214
  embed the label in the field itself.
1215
+ - **A long `placeholder` or a long selected label never widens the control's
1216
+ track.** The trigger is a button, not an `<input>`, so the placeholder is
1217
+ real text rather than a paint-only `::placeholder` — but the field's minimum
1218
+ size is capped so that text cannot become the floor of a grid or flex track.
1219
+ Put a select with a paragraph-length placeholder in
1220
+ `grid-template-columns: repeat(3, 1fr)` and you still get three equal
1221
+ columns, with the text ellipsised inside its field. You do **not** need
1222
+ `min-w-0` on the item or `minmax(0, 1fr)` on the track to get this.
1215
1223
 
1216
1224
  ### Adaptive mobile sheet
1217
1225