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.
- package/bin/bitboss-ui.mjs +133 -12
- package/dist/ai/changelog.json +1 -1
- package/dist/ai/components.json +2 -2
- package/dist/ai/guides/ai-router.md +2 -2
- package/dist/ai/guides/design-tokens.md +46 -6
- package/dist/ai/guides/installation-and-plugin-setup.md +71 -5
- package/dist/ai/guides/migration/components/bb-alert.md +37 -0
- package/dist/ai/guides/migration/components/bb-avatar.md +47 -8
- package/dist/ai/guides/migration/components/bb-badge.md +23 -1
- package/dist/ai/guides/migration/components/bb-button.md +64 -0
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +55 -1
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +9 -2
- package/dist/ai/guides/migration/components/bb-dialog.md +121 -11
- package/dist/ai/guides/migration/components/bb-icon.md +42 -0
- package/dist/ai/guides/migration/components/bb-offcanvas.md +35 -1
- package/dist/ai/guides/migration/components/bb-rating.md +52 -1
- package/dist/ai/guides/migration/components/bb-select.md +48 -0
- package/dist/ai/guides/migration/components/bb-table.md +156 -10
- package/dist/ai/guides/migration/components/bb-tabs.md +79 -1
- package/dist/ai/guides/migration/components/bb-text-input.md +23 -1
- package/dist/ai/guides/migration/components/bb-toast.md +44 -10
- package/dist/ai/guides/migration/components/use-confirm.md +48 -13
- package/dist/ai/guides/migration/v2-to-v3.md +626 -108
- package/dist/ai/index.md +9 -9
- package/dist/ai/source/BbDialog.md +0 -3
- package/dist/ai/source/BbDropdown.md +24 -1
- package/dist/ai/source/BbDropdownGroup.md +24 -1
- package/dist/index.d.ts +2 -1
- package/dist/llms-full.txt +1814 -367
- package/dist/llms-medium.txt +82 -16
- package/dist/llms.txt +11 -11
- package/dist/styles.css +1 -1
- package/llms.txt +12 -12
- package/package.json +2 -1
- package/scripts/lib/validate-bb-markup.mjs +105 -17
package/dist/llms-medium.txt
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
> how to choose a component, and the design language — plus a catalogue
|
|
6
6
|
> of every public component.
|
|
7
7
|
|
|
8
|
-
Canonical URL: https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
8
|
+
Canonical URL: https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/llms-medium.txt
|
|
9
9
|
|
|
10
10
|
Need more? Fetch the specific component contract you need — one hop, not
|
|
11
|
-
the whole catalogue: https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
12
|
-
Machine-readable API surface: https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
11
|
+
the whole catalogue: https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/<ComponentName>.md
|
|
12
|
+
Machine-readable API surface: https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/components.json
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- dist/ai/guides/ai-router.md -->
|
|
17
|
-
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
17
|
+
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/guides/ai-router.md -->
|
|
18
18
|
|
|
19
19
|
# AI Router
|
|
20
20
|
|
|
@@ -28,9 +28,9 @@ Package export entry: `bitboss-ui/ai` → `dist/ai/index.md`.
|
|
|
28
28
|
Subpaths: `bitboss-ui/ai/components.json`, `bitboss-ui/ai/guides/…`, etc.
|
|
29
29
|
|
|
30
30
|
**Not installed, or can only fetch URLs?** The same files are served from the
|
|
31
|
-
published package at `https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
31
|
+
published package at `https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/…`.
|
|
32
32
|
If you can make only one request, fetch
|
|
33
|
-
[`…@
|
|
33
|
+
[`…@beta/dist/llms-medium.txt`](https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/llms-medium.txt)
|
|
34
34
|
— this router plus the agent contract, setup, component picker, design language
|
|
35
35
|
and the full component catalogue, in ~110 KB.
|
|
36
36
|
|
|
@@ -133,7 +133,7 @@ nothing else); the command names them if they are missing.
|
|
|
133
133
|
---
|
|
134
134
|
|
|
135
135
|
<!-- dist/ai/guides/agent-contract.md -->
|
|
136
|
-
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
136
|
+
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/guides/agent-contract.md -->
|
|
137
137
|
|
|
138
138
|
# Agent Contract
|
|
139
139
|
|
|
@@ -391,7 +391,7 @@ case is not decidable from markup and has no hint.
|
|
|
391
391
|
---
|
|
392
392
|
|
|
393
393
|
<!-- dist/ai/guides/installation-and-plugin-setup.md -->
|
|
394
|
-
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
394
|
+
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/guides/installation-and-plugin-setup.md -->
|
|
395
395
|
|
|
396
396
|
# Installation and Plugin Setup
|
|
397
397
|
|
|
@@ -403,16 +403,21 @@ Source of truth for integrating `bitboss-ui`. Two pieces are always required:
|
|
|
403
403
|
## 1) Install
|
|
404
404
|
|
|
405
405
|
```bash
|
|
406
|
-
# v3 is a prerelease —
|
|
406
|
+
# v3 is a prerelease — a dist-tag is REQUIRED.
|
|
407
407
|
# A bare `npm install bitboss-ui` still resolves to v2, which has no build
|
|
408
408
|
# plugin and no `dist/ai` knowledge base, so everything below silently fails.
|
|
409
|
-
npm install bitboss-ui@
|
|
409
|
+
npm install bitboss-ui@beta
|
|
410
410
|
# recommended default icon set (any @iconify-json/* works)
|
|
411
411
|
npm install -D @iconify-json/lucide
|
|
412
412
|
```
|
|
413
413
|
|
|
414
414
|
Confirm you got v3 before continuing — `npm ls bitboss-ui` must report a
|
|
415
|
-
`3.0.0
|
|
415
|
+
`3.0.0-*` version. If it reports `2.x`, nothing in this guide applies.
|
|
416
|
+
|
|
417
|
+
**`@beta` is the current v3 channel.** `@alpha` still resolves, but it is
|
|
418
|
+
frozen at the last alpha and does not receive fixes — it is not simply an older
|
|
419
|
+
copy of the same line. `@latest` is the **v2** line and always will be until v3
|
|
420
|
+
goes stable, so never reach for it here.
|
|
416
421
|
|
|
417
422
|
Peer dependency: `vue ^3.5.12` — the only required one. `@inertiajs/vue3` is an **optional** peer, needed only in Inertia apps.
|
|
418
423
|
|
|
@@ -609,6 +614,48 @@ import 'bitboss-ui/styles.css';
|
|
|
609
614
|
import 'bitboss-ui/reset.css';
|
|
610
615
|
```
|
|
611
616
|
|
|
617
|
+
**Exception — an app that needs its own CSS to load _before_ the library.**
|
|
618
|
+
Auto-injection is library-first and not configurable: the runtime plugin
|
|
619
|
+
inserts its `<style>` **before the first** `style`/`link[rel="stylesheet"]`
|
|
620
|
+
already in `<head>` (`src/utils/injectLibraryStyles.ts`), so the guaranteed
|
|
621
|
+
order above is exactly what you get and every app stylesheet — your Tailwind
|
|
622
|
+
entry included — lands after the library. There is no option to inject later.
|
|
623
|
+
|
|
624
|
+
That is the order most apps want. It is the wrong order if you need library
|
|
625
|
+
rules to beat Tailwind's Preflight **by source order**, which is the case on
|
|
626
|
+
**Tailwind v3**: `@tailwind base` compiles to ordinary unlayered CSS, so under
|
|
627
|
+
auto-injection Preflight sits after the library sheet and its element resets
|
|
628
|
+
(`button`, `input`, `h1`, …) win every equal-specificity tie. `injectStyles:
|
|
629
|
+
false` + `resetCss: false` (the default) disables injection entirely and hands
|
|
630
|
+
you the order:
|
|
631
|
+
|
|
632
|
+
```ts
|
|
633
|
+
// vite.config.ts / the `bitboss` key in nuxt.config.ts
|
|
634
|
+
bitbossUi({ iconDir: '…', injectStyles: false, resetCss: false });
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
```ts
|
|
638
|
+
// app entry — order is yours now
|
|
639
|
+
import './app.css'; // your Tailwind entry
|
|
640
|
+
import 'bitboss-ui/styles.css'; // after Tailwind, so library rules win the ties
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
Leave `resetCss` at `false` here — Preflight already reset everything.
|
|
644
|
+
Nothing else about the plugin changes; `injectStyles` controls only whether the
|
|
645
|
+
library injects its own `<style>`.
|
|
646
|
+
|
|
647
|
+
**Tailwind v4 apps do not need this** — source order does not decide their ties
|
|
648
|
+
at all. `@import 'tailwindcss'` puts Preflight in a real `@layer base` and
|
|
649
|
+
utilities in `@layer utilities`, and layered rules lose to unlayered rules of
|
|
650
|
+
equal specificity **regardless of source order**. `dist/styles.css` declares no
|
|
651
|
+
`@layer`, so the library wins those ties wherever it is injected: leave
|
|
652
|
+
auto-injection on. The same mechanic bites the other way, and silently — a
|
|
653
|
+
utility cannot re-size a Bb component either. `<BbButton class="h-12 px-6">`
|
|
654
|
+
loses to the library's own `.bb-button { height: var(--h); padding-left:
|
|
655
|
+
var(--px); padding-right: var(--px) }` (equal specificity, unlayered), with no
|
|
656
|
+
warning from anything. Size Bb components through their props and tokens, never
|
|
657
|
+
utilities. (Same trap as the scoped-`<style>` case above, one level up.)
|
|
658
|
+
|
|
612
659
|
## 6) Icons
|
|
613
660
|
|
|
614
661
|
- `iconDir` (required) is scanned recursively for `.svg` files; each file becomes `local:<basename>`.
|
|
@@ -650,6 +697,15 @@ When `true`, the **dev server** adds `./node_modules/.bitboss-ui/local-icons.jso
|
|
|
650
697
|
|
|
651
698
|
When `true`, the **dev server** registers the bitboss-ui MCP server in each project-scoped agent-harness config on boot — `.mcp.json` (Claude Code), `.cursor/mcp.json` (Cursor), and `.vscode/mcp.json` (VS Code / Copilot) — so agents can query the knowledge base with no manual setup. The write is merge-safe (leaves other servers alone) and idempotent (only logs when it actually changes a file). Windsurf is intentionally **not** written here: its config is global (`~/.codeium`), and silently editing a home-dir file that affects every project on the machine from a dev-server boot would be surprising — run `npx bitboss-ui ai-init --mcp` to register Windsurf too. This flag is the zero-command equivalent of that command's project-scoped writes. The MCP server's own runtime — `@modelcontextprotocol/sdk` and `zod` — ships as **optional peer dependencies** (~12 MB, more than every runtime dependency of the library combined, and loaded by nothing else), so install them with `npm i -D @modelcontextprotocol/sdk zod` before the harness first launches the server; both this flag and `ai-init --mcp` warn when they are missing.
|
|
652
699
|
|
|
700
|
+
**MCP is a convenience, not a requirement, and skipping it costs no
|
|
701
|
+
knowledge.** The server is a reader over files the install already put on disk
|
|
702
|
+
— every tool `readFileSync`s out of `node_modules/bitboss-ui/dist/ai/` (plus
|
|
703
|
+
`dist/styles.css` for the token lookup). An agent that opens that directory
|
|
704
|
+
itself has the identical knowledge base, `npx bitboss-ui check` runs without the
|
|
705
|
+
peers, and `ai-init` (no `--mcp`) still writes the harness pointers. If you are
|
|
706
|
+
migrating under a "no new dependencies" constraint, leave `mcp` at `false`,
|
|
707
|
+
skip `--mcp`, and point your agent at `dist/ai/guides/ai-router.md`.
|
|
708
|
+
|
|
653
709
|
### `inertiaLinkName?: string` (default: `'Link'`)
|
|
654
710
|
|
|
655
711
|
Global component name used for Inertia links. **Optional** — when nothing is
|
|
@@ -828,7 +884,17 @@ than inventing hues.
|
|
|
828
884
|
|
|
829
885
|
The package ships its agent docs in `node_modules/bitboss-ui/dist/ai/`. **Start at** `guides/ai-router.md`, then the catalogue `index.md`. Run `npx bitboss-ui ai-init` in the consumer project to inject harness-agnostic pointers (AGENTS.md, Cursor rules, Copilot instructions, Claude skill, Windsurf rules) so coding agents discover them without a vendor lock-in. After generating Bb\* markup, run `npx bitboss-ui check` (supports `--json`) so unknown props fail before review.
|
|
830
886
|
|
|
831
|
-
|
|
887
|
+
**Three tiers ship under `dist/ai/`**, and the third one is easy to miss:
|
|
888
|
+
`guides/` + `recipes/` are the authored prose; `<Name>.md` at the root is the
|
|
889
|
+
generated typed contract for each component (props, slots, events, examples);
|
|
890
|
+
`source/<Name>.md` is that same component's **complete implementation** —
|
|
891
|
+
`.vue` template, `types.ts` and `index.css` in one file, one per component
|
|
892
|
+
including the internal ones the package does not export. Read the source tier
|
|
893
|
+
when the contract cannot answer the question — the usual case is rebuilding
|
|
894
|
+
chrome around a control the library does not ship, since the class names such a
|
|
895
|
+
template emits are already styled by the public `bitboss-ui/styles.css`.
|
|
896
|
+
|
|
897
|
+
Add `--mcp` to also register a live MCP server (`npx bitboss-ui@<installed version> mcp`, pinned so npx can never fetch a different version from the registry) the harness launches on demand — it merges the entry (never overwriting other servers) into `.mcp.json` (Claude Code), `.cursor/mcp.json` (Cursor), `.vscode/mcp.json` (VS Code / Copilot), and `~/.codeium/windsurf/mcp_config.json` (Windsurf). **Windsurf's config is global** — it has no per-project scope, so registering it affects every project on the machine; that is why only the explicit `ai-init --mcp` command writes it, while the plugin's `mcp: true` dev-server flag (§7) auto-registers the project-scoped harnesses only. Install the server's optional peers first — `npm i -D @modelcontextprotocol/sdk zod` — they are not dependencies of the library (~12 MB used only by the MCP server); the command warns if they are absent. **`--mcp` is optional and skipping it loses you nothing but the transport** — the server only reads the `dist/ai/` files listed above, so run plain `ai-init` and let the agent read that directory if you cannot add the peers (see `mcp?: boolean` in §7).
|
|
832
898
|
|
|
833
899
|
For a human-in-the-loop (and agent) safety net, add the `bitboss-ui/eslint-plugin` flat-config plugin (`...bitbossUi.configs.recommended`) so unknown/removed `Bb*` props surface as ESLint errors in the editor and CI — the same manifest checks as `bitboss-ui check`, reusing your `eslint-plugin-vue` parser. Real HTML attributes fall through untouched; escape hatches are the standard `<!-- eslint-disable-next-line bitboss-ui/no-unknown-attributes -->` and the rule's `allowAttributes` / `allowComponents` options. **`eslint --fix` also auto-migrates deprecated v2 props** (renames, boolean-polarity inversions like `allowWriting`→`disableWriting`, value remaps like BbToast `placement`→`position`, and deletion of inert removed props); structural migrations that need a slot/directive/CSS are reported but left by hand. **This library is TS-first (recipes ship `<script setup lang="ts">`, some with `generic="T"`), so wire `@typescript-eslint/parser` for both `.ts` and `.vue` files** — without it `vue-eslint-parser` throws a `Parsing error` on those files, which means no rule (including `no-unknown-attributes`) runs on them at all. See the README "ESLint plugin" section for the full config snippet (both parser blocks + the `npm i -D @typescript-eslint/parser` line) and the fix table. `recommended` also enables `bitboss-ui/no-active-class-on-root-link`: `active-class` on a link-capable `Bb*` component (`BbButton`/`BbBaseButton`/`BbBadgeButton`) matches by path PREFIX, so a link whose target is the literal root (`href="/"` / `to="/"`) reads as "active" on every URL — the rule flags that combination and points you at `exact-active-class` instead.
|
|
834
900
|
|
|
@@ -848,7 +914,7 @@ It also enables `bitboss-ui/require-partner-prop`: an opt-in prop set without it
|
|
|
848
914
|
- [ ] build plugin configured: `bitboss-ui/vite` plugin or `bitboss-ui/nuxt` module (`bitboss` config key);
|
|
849
915
|
- [ ] `iconDir` points at an existing SVG folder;
|
|
850
916
|
- [ ] runtime plugin installed: `app.use(bitbossUiPlugin)` (automatic in Nuxt);
|
|
851
|
-
- [ ] style strategy chosen: auto injection (default) or `injectStyles: false` + `import 'bitboss-ui/styles.css'
|
|
917
|
+
- [ ] style strategy chosen: auto injection (default) or `injectStyles: false` + `import 'bitboss-ui/styles.css'` — auto injection is always library-first, so a Tailwind **v3** app that needs Preflight to load before the library must take the second option (§5);
|
|
852
918
|
- [ ] if a reset is required: `resetCss: true` or `import 'bitboss-ui/reset.css'`;
|
|
853
919
|
- [ ] Inertia apps: `@inertiajs/vue3` installed (no link registration needed; set `inertiaLinkName` only if you register your own link wrapper).
|
|
854
920
|
- [ ] building the [Layout Scaffold](../recipes/vue/layout-scaffold.md)? `npm i @vueuse/core` — `usePageShellContext.ts` imports `injectLocal`/`provideLocal` from it. This library depends on it too, so it can resolve via hoisting without being declared — don't rely on that; declare it in your own `package.json` or a strict installer (pnpm, Yarn PnP) will fail to resolve it.
|
|
@@ -861,7 +927,7 @@ If one of the checks fails, fix setup before creating component examples.
|
|
|
861
927
|
---
|
|
862
928
|
|
|
863
929
|
<!-- dist/ai/guides/component-picker.md -->
|
|
864
|
-
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
930
|
+
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/guides/component-picker.md -->
|
|
865
931
|
|
|
866
932
|
# Component Picker
|
|
867
933
|
|
|
@@ -1136,7 +1202,7 @@ See:
|
|
|
1136
1202
|
---
|
|
1137
1203
|
|
|
1138
1204
|
<!-- dist/ai/guides/design-language.md -->
|
|
1139
|
-
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
1205
|
+
<!-- https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/guides/design-language.md -->
|
|
1140
1206
|
|
|
1141
1207
|
# Design Language
|
|
1142
1208
|
|
|
@@ -1721,7 +1787,7 @@ text, `--bb-label-weight`
|
|
|
1721
1787
|
|
|
1722
1788
|
## Component catalogue
|
|
1723
1789
|
|
|
1724
|
-
Every public component. Open one contract at `https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
1790
|
+
Every public component. Open one contract at `https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/ai/<Name>.md` before using it — never guess a prop name.
|
|
1725
1791
|
|
|
1726
1792
|
- **BbAccordion** — Expands and collapses a content panel.
|
|
1727
1793
|
- **BbAlert** — Shows contextual status messages.
|
package/dist/llms.txt
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
## AI Knowledge Base
|
|
6
6
|
|
|
7
|
-
- [Core knowledge base](https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
8
|
-
- [Complete knowledge base](https://cdn.jsdelivr.net/npm/bitboss-ui@
|
|
7
|
+
- [Core knowledge base](https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/llms-medium.txt): **Fetch this if you can only fetch one file** — hard rules, setup, component picker, design language, and the full component catalogue in ~70 KB.
|
|
8
|
+
- [Complete knowledge base](https://cdn.jsdelivr.net/npm/bitboss-ui@beta/dist/llms-full.txt): Everything concatenated (~2 MB). Bulk ingestion only — too large to prompt with.
|
|
9
9
|
- [AI Router](ai/guides/ai-router.md): **Start here** — tiny hop map for any coding agent (which file to open next).
|
|
10
10
|
- [Component index](ai/index.md): Full component catalogue with agent rules, grouped by category. Each entry links a typed contract (props/events/slots/v-model).
|
|
11
11
|
- [Component manifest](ai/components.json): Machine-readable API surface of every component, for programmatic validation.
|
|
@@ -25,40 +25,40 @@
|
|
|
25
25
|
- [Inertia Helpers](ai/guides/inertia-helpers.md): App-side toolkit for Laravel + Inertia apps — typed page props, lazy props, URL-driven filters, paginated/selection page contexts, promise forms, and navigation guards that pair with bitboss-ui pages.
|
|
26
26
|
- [Migration v2 → v3](ai/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.
|
|
27
27
|
- [Migration v2→v3: BbAlert](ai/guides/migration/components/bb-alert.md): showClose inverted to hideClose, theme replaced by typed variant.
|
|
28
|
-
- [Migration v2→v3: BbAvatar](ai/guides/migration/components/bb-avatar.md): The color prop is removed — the
|
|
28
|
+
- [Migration v2→v3: BbAvatar](ai/guides/migration/components/bb-avatar.md): The color prop is removed — retheme the fallback through the --bg-color / --text-color locals.
|
|
29
29
|
- [Migration v2→v3: BbBadge (and where your v2 badges went)](ai/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.
|
|
30
30
|
- [Migration v2→v3: BbBreadcrumbs](ai/guides/migration/components/bb-breadcrumbs.md): Item keys must be strings, the text divider prop is gone, per-item slot names are normalized.
|
|
31
31
|
- [Migration v2→v3: BbButton](ai/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.
|
|
32
32
|
- [Migration v2→v3: BbCheckbox / BbRadio / BbSwitch](ai/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.
|
|
33
|
-
- [Migration v2→v3: BbCheckboxGroup / BbRadioGroup / BbSwitchGroup](ai/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.
|
|
33
|
+
- [Migration v2→v3: BbCheckboxGroup / BbRadioGroup / BbSwitchGroup](ai/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.
|
|
34
34
|
- [Migration v2→v3: BbChip (removed)](ai/guides/migration/components/bb-chip.md): BbChip is gone — BbBadge with clearable is the replacement; non-clearable chips were badges all along.
|
|
35
35
|
- [Migration v2→v3: BbCollapsible](ai/guides/migration/components/bb-collapsible.md): The tag prop is removed; the root is always a div.
|
|
36
36
|
- [Migration v2→v3: BbColorInput](ai/guides/migration/components/bb-color-input.md): picker renamed to eyeDropper.
|
|
37
37
|
- [Migration v2→v3: BbColorPalette](ai/guides/migration/components/bb-color-palette.md): flip inverted to disableFlip, showArrow removed, picker renamed eyeDropper, update:open dropped, model updates never emit null.
|
|
38
38
|
- [Migration v2→v3: BbDatePickerInput](ai/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).
|
|
39
|
-
- [Migration v2→v3: BbDialog](ai/guides/migration/components/bb-dialog.md): showClose inverted to hideClose, several presentation props removed, default widths changed, adaptive bottom sheet on mobile by default.
|
|
39
|
+
- [Migration v2→v3: BbDialog](ai/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.
|
|
40
40
|
- [Migration v2→v3: BbDropdown](ai/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.
|
|
41
41
|
- [Migration v2→v3: BbDropdownButton](ai/guides/migration/components/bb-dropdown-button.md): autoLoading renamed to disableAutoLoading, disabledWhileLoading and theme removed.
|
|
42
42
|
- [Migration v2→v3: BbDropzone](ai/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.
|
|
43
43
|
- [Migration v2→v3: BbIcon](ai/guides/migration/components/bb-icon.md): The required prop is renamed type→icon, color is removed, and the xxl size key becomes 2xl.
|
|
44
44
|
- [Migration v2→v3: BbIntersection](ai/guides/migration/components/bb-intersection.md): Removed with no replacement — it wrapped IntersectionObserver and carried no styling; use @vueuse/core's useIntersectionObserver.
|
|
45
|
-
- [Migration v2→v3: BbOffCanvas](ai/guides/migration/components/bb-offcanvas.md): direction→side; showClose→hideClose; size defaults change; adaptive drawer configs unify on offCanvasProps.
|
|
45
|
+
- [Migration v2→v3: BbOffCanvas](ai/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.
|
|
46
46
|
- [Migration v2→v3: BbPagination](ai/guides/migration/components/bb-pagination.md): querykey renamed to queryKey; the loading prop is removed.
|
|
47
47
|
- [Migration v2→v3: BbPopover](ai/guides/migration/components/bb-popover.md): Built-in close button, restoreFocus, theme, and the arrow are gone; close affordances move into your content.
|
|
48
|
-
- [Migration v2→v3: BbRating](ai/guides/migration/components/bb-rating.md): color removed; name no longer required.
|
|
48
|
+
- [Migration v2→v3: BbRating](ai/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.
|
|
49
49
|
- [Migration v2→v3: BbSelect](ai/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).
|
|
50
50
|
- [Migration v2→v3: BbSelectPopover](ai/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.
|
|
51
51
|
- [Migration v2→v3: BbSlider](ai/guides/migration/components/bb-slider.md): thumbTranslate inverted to disableThumbTranslate; string model values and color removed.
|
|
52
52
|
- [Migration v2→v3: BbSmoothHeight](ai/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>`.
|
|
53
53
|
- [Migration v2→v3: BbSpinner](ai/guides/migration/components/bb-spinner.md): The color prop is removed; spinners follow currentColor.
|
|
54
|
-
- [Migration v2→v3: BbTable](ai/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.
|
|
55
|
-
- [Migration v2→v3: BbTabs (was BbTab)](ai/guides/migration/components/bb-tabs.md): Component renamed; querykey→queryKey; animations default on; label slots renamed and all dynamic names/URL slugs normalized.
|
|
54
|
+
- [Migration v2→v3: BbTable](ai/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.
|
|
55
|
+
- [Migration v2→v3: BbTabs (was BbTab)](ai/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.
|
|
56
56
|
- [Migration v2→v3: BbTag](ai/guides/migration/components/bb-tag.md): modelValue is strictly string[] now, multiple is removed, and duplicates are rejected case-insensitively by default.
|
|
57
|
-
- [Migration v2→v3: BbTextInput](ai/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.
|
|
57
|
+
- [Migration v2→v3: BbTextInput](ai/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".
|
|
58
58
|
- [Migration v2→v3: BbToast and toast()](ai/guides/migration/components/bb-toast.md): Host placement becomes position with a corner-based value set; toast() options rewritten (variant, duration, actions, portal).
|
|
59
59
|
- [Migration v2→v3: BbTooltip](ai/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.
|
|
60
60
|
- [Migration v2→v3: BbTree](ai/guides/migration/components/bb-tree.md): Item model rewritten — payload moves under meta, open becomes expanded, identifier becomes itemValue, expansion is a v-model.
|
|
61
|
-
- [Migration v2→v3: confirm() / useConfirm](ai/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.
|
|
61
|
+
- [Migration v2→v3: confirm() / useConfirm](ai/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.
|
|
62
62
|
- [Migration v2→v3: useBroadcastChannelInstance](ai/guides/migration/components/use-broadcast-channel-instance.md): Removed — cross-tab messaging is not a UI concern; use useBroadcastChannel from @vueuse/core.
|
|
63
63
|
- [Page Shell](ai/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.
|
|
64
64
|
- [Validated Forms (vee-validate)](ai/guides/validated-forms.md): The `bitboss-ui/validated` entrypoint — form controls pre-wired to vee-validate. Global rules give an effort-free `rules="required|email"` string syntax; BbForm hosts the form; requiredAsterisk marks required fields.
|