bitboss-ui 3.0.0-beta.62 → 3.0.0-beta.63

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 (46) hide show
  1. package/dist/ai/BbConfirm.md +46 -22
  2. package/dist/ai/BbForm.md +66 -4
  3. package/dist/ai/BbHost.md +11 -13
  4. package/dist/ai/BbPtScope.md +6 -4
  5. package/dist/ai/BbTable.md +65 -5
  6. package/dist/ai/changelog.json +28 -4
  7. package/dist/ai/components.json +5 -5
  8. package/dist/ai/composables/useConfirm.md +8 -5
  9. package/dist/ai/guides/agent-contract.md +3 -2
  10. package/dist/ai/guides/migration/components/bb-host.md +4 -2
  11. package/dist/ai/guides/migration/components/use-confirm.md +15 -15
  12. package/dist/ai/guides/migration/v2-to-v3.md +9 -0
  13. package/dist/ai/guides/passthrough.md +57 -57
  14. package/dist/ai/guides/validated-forms.md +5 -0
  15. package/dist/ai/helpers/inertia/manifest.json +1 -1
  16. package/dist/ai/manifest/components/BbHost.tree.json +1 -2
  17. package/dist/ai/manifest/components/BbTable.json +2 -0
  18. package/dist/ai/manifest/index.json +2 -2
  19. package/dist/ai/manifest/types.advanced.json +1 -1
  20. package/dist/ai/source/BbConfirm.md +33 -21
  21. package/dist/ai/source/BbConfirmPortal.md +7 -16
  22. package/dist/ai/source/BbHost.md +3 -3
  23. package/dist/ai/source/BbTable.md +37 -9
  24. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +83 -74
  25. package/dist/components/BbConfirm/BbConfirmHost.d.ts +10 -0
  26. package/dist/components/BbConfirm/BbConfirmHost.js +32 -0
  27. package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +8 -12
  28. package/dist/components/BbConfirm/confirmEntry.d.ts +4 -0
  29. package/dist/components/BbConfirm/confirmEntry.js +4 -0
  30. package/dist/components/BbConfirm/types.d.ts +2 -2
  31. package/dist/components/BbHost/BbHost.vue_vue_type_script_setup_true_lang.js +2 -2
  32. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +426 -380
  33. package/dist/components/BbTable/BbTableDataRow.js +17 -12
  34. package/dist/components/BbTable/BbTableSelectToggle.d.ts +1 -1
  35. package/dist/components/BbTable/types.d.ts +14 -3
  36. package/dist/components/BbTable/types.js +2 -0
  37. package/dist/composables/useBbFormContext.d.ts +7 -3
  38. package/dist/composables/useConfirm.d.ts +327 -33
  39. package/dist/composables/useConfirm.js +93 -71
  40. package/dist/llms-full.txt +295 -129
  41. package/dist/llms-medium.txt +3 -2
  42. package/dist/styles.css +1 -1
  43. package/dist/types/passthrough.d.ts +1 -1
  44. package/dist/types/ptComponentMap.d.ts +1 -1
  45. package/dist/utils/versionCheck.js +1 -1
  46. package/package.json +1 -1
@@ -9,9 +9,10 @@ type: composable
9
9
  ## Summary
10
10
 
11
11
  `useConfirm` opens a modal confirm dialog and returns a promise that resolves
12
- with the user's decision. **A new `confirm()` replaces the open dialog**: the
13
- superseded promise resolves `false` and no callback runs. Dialogs do not queue,
14
- so `await` one before opening the next.
12
+ with the user's decision. **Every call opens its own dialog**: a new
13
+ `confirm()` covers the open one, which stays pending and comes back when the
14
+ newer one closes, so two un-awaited calls ask both, newest first. The dialog
15
+ takes the pt scope and tokens of the component that called `useConfirm()`.
15
16
  Per the design language, every `destructive` action must pass through a confirm.
16
17
 
17
18
  **Requires exactly one `<BbHost />`, mounted at the app root** (`App.vue`
@@ -65,7 +66,8 @@ behavior belongs in `no.onClick`, not the `if (!ok)` branch.
65
66
  declare function close(): void;
66
67
  ```
67
68
 
68
- Hides the current dialog without resolving anything. Its purpose is multi-step
69
+ Hides the newest open dialog opened through the same `useConfirm()` (never
70
+ another component's) without resolving anything. Its purpose is multi-step
69
71
  flows: with `autoClose: false` the dialog stays open after the promise resolves,
70
72
  and you call `close()` when your flow is done. Don't use it as a substitute for
71
73
  the buttons — a `confirm()` closed this way before any button ran leaves its
@@ -77,7 +79,7 @@ promise pending.
77
79
  declare function dismissAll(): void;
78
80
  ```
79
81
 
80
- Quietly dismisses the open dialog, regardless of owner:
82
+ Quietly dismisses every open dialog, regardless of owner:
81
83
  pending promises resolve `false`, no callback runs. An imperative escape hatch
82
84
  for app-level events — logout, a global error boundary, or router wiring in
83
85
  apps that want route-based dismissal.
@@ -103,6 +105,7 @@ At least one of `title`, `text`, `portal` should be set (dev warning otherwise).
103
105
  | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl'` | — | Maximum dialog width preset. |
104
106
  | `fullscreen` | `boolean \| 'mobile'` | — | Fullscreen dialog; `'mobile'` restricts it to small screens. |
105
107
  | `focusTarget` | `string` | — | CSS selector to focus after opening (default: first tabbable element). |
108
+ | `stack` | `string` | — | The `BbDialog` stack to join instead of the confirms' own: a dialog's `stack` name replaces that dialog's view; a name nothing else uses shows it on top of the other confirms. |
106
109
  | `portal` | `Component \| string` | — | Custom body content. See **Portal modes**. |
107
110
  | `data` | `Record<string, any>` | — | Data for the portal content. |
108
111
 
@@ -295,7 +295,8 @@ page is `BbCalendar`. See [BbCalendar](../BbCalendar.md) § When to use.
295
295
  areas that each wrap their pages in a `<BbPtScope>` (a backoffice and a member
296
296
  area — see [passthrough](./passthrough.md) § Named scopes), mount one
297
297
  `<BbHost />` **inside each area's layout** and none at
298
- the app root, so messages take that area's scope and tokens. It holds only if
298
+ the app root, so toasts take that area's scope and tokens (a confirm already
299
+ takes the scope of the component that called `useConfirm()`). It holds only if
299
300
  **every** page renders inside exactly one of those layouts — a login page or
300
301
  error page with no area layout gets one too — so there is still exactly one
301
302
  host at a time; a message fired while switching areas waits for the next
@@ -416,6 +417,6 @@ case is not decidable from markup and has no hint.
416
417
  - [ ] Avoids reference-only imports unless explicitly requested.
417
418
  - [ ] Uses declarative coherence/dependencies before manual watchers.
418
419
  - [ ] An always-visible calendar is `BbCalendar` (named with `aria-label`) — never a `BbDatePicker` forced open; a date field is `BbDatePickerInput` (see § Date Controls Rule).
419
- - [ ] Mounts exactly one `<BbHost />`, at the app root — never inside a page or component (areas scoped with `<BbPtScope>`: one per area layout instead, see § Global Host Rule).
420
+ - [ ] Mounts exactly one `<BbHost />`, at the app root — never inside a page or component (areas scoped with `<BbPtScope>` whose toasts need the area's look: one per area layout instead, see § Global Host Rule).
420
421
  - [ ] Confirmed the plugin's `locale` is set explicitly if the app isn't English (default is `'en'`) — see Setup-First Rule.
421
422
  - [ ] Ran the Rebuild Check over the hand-written markup — nothing reimplements `BbAvatar`, `BbSpinner` or `BbBadge`.
@@ -37,5 +37,7 @@ app.use(bitbossUiPlugin, {
37
37
  | toasts with no host stay queued | unchanged |
38
38
 
39
39
  Unchanged: `<BbConfirmPortal>`, `<BbToastPortal>`, `confirm()`, `toast()`, the
40
- per-message `size` / `position`, and the per-area host pattern (one
41
- `<BbHost />` per area layout when areas use `<BbPtScope>`).
40
+ per-message `size` / `position`, and the per-area host pattern for toasts (one
41
+ `<BbHost />` per area layout when areas use `<BbPtScope>`). A confirm takes
42
+ the scope of the component that called `useConfirm()` (after
43
+ 3.0.0-beta.62, [use-confirm](./use-confirm.md)).
@@ -7,21 +7,21 @@ summary: yesText/onYes/noText/onNo collapse into yes/no configs, actions becomes
7
7
 
8
8
  ## Options
9
9
 
10
- | v2 | v3 | Kind |
11
- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
12
- | `yes?: boolean`, `yesText?: string`, `onYes?: () => …` | `yes?: false \| string \| ConfirmButtonConfig` (`{ text, variant, size, icon?, onClick? }`) | collapsed — **`yes: false` still hides the button, unchanged from v2.** Leave it alone; only `yesText`/`onYes` move into the config |
13
- | `no?: boolean`, `noText?: string`, `onNo?: () => …` | `no?: false \| string \| ConfirmButtonConfig` | collapsed — same: **`no: false` is a no-op migration**, it hides the button exactly as in v2 |
14
- | `actions?: boolean` | `actions?: false \| ConfirmButtonConfig[]` | `false` hides the footer; an array replaces the yes/no pair with custom buttons |
15
- | default labels `"OK"` / `"Annulla"` (hard-coded) | localized via the active `locale` | **⚠ silent** — English apps stop showing Italian "Annulla"; apps that _wanted_ the literals must pass them |
16
- | footer buttons `lg` | footer buttons default `md` | visual |
17
- | `size` | `size?: keyof DialogSizes` — forwards to `BbDialog` | see the dialog width change in [main guide §2](../v2-to-v3.md) |
18
- | `theme?: string` | `variant?: ConfirmVariantType` (built-ins `default`, `destructive`) | typed rename — unregistered names are a compile error; add yours via the plugin's `confirmVariants` |
19
- | `timeout?: number` | `duration?: number` | rename — auto-dismisses, resolves `false` quietly (no `no.onClick`), and implicitly forces `autoClose: true` |
20
- | `autoClose?: boolean` — **opt-in**, omitted means the dialog stays open | `autoClose?: boolean` — **default `true`** | **⚠ silent behavior flip** — a v2 multi-step flow that kept the dialog open after resolve must now pass `autoClose: false` |
21
- | `hideHeader?: boolean` (a union that made `title` required when `false`) | removed — `title` is plain optional; omit it and no header renders | removed |
22
- | `useConfirm().setLoading(value)` | removed — busy state is driven by the button's `onClick` promise | removed — `useConfirm()` now returns `{ confirm, close, dismissAll }` |
23
- | — | `hideClose`, `portal` / `data` (mutually exclusive with `text`) | additive |
24
- | second `confirm()` while one is open: first promise **never settled** (hung forever) | the superseded promise resolves `false` (implicit dismiss, no callbacks) | **⚠ behavioral** (bugfix 2026-07-18; the replace-not-queue semantics are unchanged) |
10
+ | v2 | v3 | Kind |
11
+ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
12
+ | `yes?: boolean`, `yesText?: string`, `onYes?: () => …` | `yes?: false \| string \| ConfirmButtonConfig` (`{ text, variant, size, icon?, onClick? }`) | collapsed — **`yes: false` still hides the button, unchanged from v2.** Leave it alone; only `yesText`/`onYes` move into the config |
13
+ | `no?: boolean`, `noText?: string`, `onNo?: () => …` | `no?: false \| string \| ConfirmButtonConfig` | collapsed — same: **`no: false` is a no-op migration**, it hides the button exactly as in v2 |
14
+ | `actions?: boolean` | `actions?: false \| ConfirmButtonConfig[]` | `false` hides the footer; an array replaces the yes/no pair with custom buttons |
15
+ | default labels `"OK"` / `"Annulla"` (hard-coded) | localized via the active `locale` | **⚠ silent** — English apps stop showing Italian "Annulla"; apps that _wanted_ the literals must pass them |
16
+ | footer buttons `lg` | footer buttons default `md` | visual |
17
+ | `size` | `size?: keyof DialogSizes` — forwards to `BbDialog` | see the dialog width change in [main guide §2](../v2-to-v3.md) |
18
+ | `theme?: string` | `variant?: ConfirmVariantType` (built-ins `default`, `destructive`) | typed rename — unregistered names are a compile error; add yours via the plugin's `confirmVariants` |
19
+ | `timeout?: number` | `duration?: number` | rename — auto-dismisses, resolves `false` quietly (no `no.onClick`), and implicitly forces `autoClose: true` |
20
+ | `autoClose?: boolean` — **opt-in**, omitted means the dialog stays open | `autoClose?: boolean` — **default `true`** | **⚠ silent behavior flip** — a v2 multi-step flow that kept the dialog open after resolve must now pass `autoClose: false` |
21
+ | `hideHeader?: boolean` (a union that made `title` required when `false`) | removed — `title` is plain optional; omit it and no header renders | removed |
22
+ | `useConfirm().setLoading(value)` | removed — busy state is driven by the button's `onClick` promise | removed — `useConfirm()` now returns `{ confirm, close, dismissAll }` |
23
+ | — | `hideClose`, `portal` / `data` (mutually exclusive with `text`) | additive |
24
+ | second `confirm()` while one is open: first promise **never settled** (hung forever) | the second covers the first, which stays pending and comes back when the second closes; both are asked, newest first | **⚠ behavioral** (after 3.0.0-beta.62; it used to resolve the first `false`) |
25
25
 
26
26
  `title`, `text`, and the returned promise semantics otherwise carry over.
27
27
  `autoClose` does **not** — see its row above.
@@ -2174,6 +2174,15 @@ Nothing here fails to compile — these change what existing code does.
2174
2174
  change width, so screenshots move. Most `whitespace-nowrap` `td-class`
2175
2175
  entries and a `whitespace-normal` header `pt` class are now redundant:
2176
2176
  drop them where they only fought the old squeeze.
2177
+ 97. **Every `confirm()` opens its own dialog** (after 3.0.0-beta.62). A
2178
+ `confirm()` while another is open covers it instead of resolving it
2179
+ `false`: the first stays pending and comes back when the second closes,
2180
+ so two un-awaited calls ask both, newest first. `close()` hides the
2181
+ newest open confirm of its own `useConfirm()`, `dismissAll()` every open
2182
+ one. A confirm takes the pt scope and tokens of the component that called
2183
+ `useConfirm()`, not of the host: the one-host-per-area layout is no
2184
+ longer needed for confirms. New message option `stack`. Code that relied
2185
+ on a second call silently answering the first `false` now waits for it.
2177
2186
 
2178
2187
  ## 7. Class overrides → variants
2179
2188
 
@@ -211,7 +211,7 @@ the dialog closing; it observes it.
211
211
  one in this list wins, on every component:
212
212
 
213
213
  ```
214
- hasValue → nearLimit → atLimit → empty → outside → today → inRange → sorted → sortedDesc → selected → rangeStart → rangeEnd → checked → indeterminate → pressed → readonly → disabled → warnings → errors → active → expanded → open → fullscreen → focused → focusVisible → highlighted → loading
214
+ hasValue → value → placeholder → nearLimit → atLimit → empty → outside → today → inRange → sorted → sortedDesc → selected → rangeStart → rangeEnd → checked → indeterminate → pressed → readonly → disabled → warnings → errors → active → expanded → open → fullscreen → focused → focusVisible → highlighted → loading
215
215
  ```
216
216
 
217
217
  It is ordered by meaning — the more temporary state wins: a spinner replaces
@@ -885,62 +885,62 @@ _Passthrough parts and states_ table in that component's contract
885
885
  (`<Component>.md`, or the `pt` field of `manifest/components/<Component>.json` / MCP
886
886
  `get_component`).
887
887
 
888
- | component | parts | states |
889
- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
890
- | `BbAccordion` | `root`, `header`, `title`, `icon`, `panel` | `open` |
891
- | `BbAlert` | `root`, `icon`, `title`, `text`, `close` | — |
892
- | `BbAsterisk` | `root` | — |
893
- | `BbAvatar` | `root`, `icon` | — |
894
- | `BbBadge` | `root`, `icon`, `spinner`, `text`, `clear` | `loading` |
895
- | `BbBaseButton` | `root` | `disabled` |
896
- | `BbBaseCheckboxIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
897
- | `BbBaseRadioIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `focused`, `focusVisible` |
898
- | `BbBaseSwitchIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
899
- | `BbBreadcrumbs` | `root`, `item`, `icon`, `text` | `active`, `disabled` _(per crumb)_ |
900
- | `BbButton` | `root`, `icon`, `spinner`, `text` | `loading`, `disabled`, `pressed` |
901
- | `BbCalendar` | `root`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(the time rail's entries)_ | `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_ |
902
- | `BbCheckbox` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
903
- | `BbCheckboxGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
904
- | `BbCollapsible` | `root`, `content` | `open` |
905
- | `BbColorInput` | family: `root`, `label`, `description`, `message`, `hint`, `box`, `input`, `icon`, `spinner`, `prefix`, `suffix`, `clear`, `indicator`, `panel`, `sheet`, `swatch` | family: `errors`, `warnings`, `loading`, `disabled`, `readonly`, `hasValue`; `selected` _(on the swatch only)_ |
906
- | `BbColorPalette` | `root`, `panel`, `sheet`, `swatch` | `open`, `selected` _(per swatch)_ |
907
- | `BbConfirm` | `root`, `sheet`, `header`, `title`, `content`, `footer`, `close` _(forwarded to its dialog)_, `text`, `action` | `open` |
908
- | `BbDatePicker` | `root`, `panel`, `sheet`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(forwarded to the calendar)_ | `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_, `open` |
909
- | `BbDatePickerInput` | family + `activator`, `panel`, `sheet`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(forwarded to the calendar)_ | family + `open`, `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_ |
910
- | `BbDialog` | `root`, `sheet`, `header`, `title`, `description`, `content`, `footer`, `close` | `open`, `fullscreen` |
911
- | `BbDropdown` | `root`, `panel`, `sheet`, `header`, `footer`, `input` _(every searchable group's field)_, `list`, `item`, `itemText`, `itemIcon`, `itemDescription` | `open`, `selected`, `disabled` _(per entry)_ |
912
- | `BbDropdownButton` | `root`, `main`, `toggle` _(the two halves)_, `icon`, `spinner`, `text` _(the main button's)_, `panel`, `sheet`, `header`, `footer`, `input`, `item`, `itemText`, `itemIcon`, `itemDescription` _(the menu's)_ | `loading`, `disabled`, `open`; `selected` _(entry parts only)_ |
913
- | `BbDropzone` | `root`, `content`, `message` | `active`, `errors`, `warnings`, `disabled`, `readonly` |
914
- | `BbHoverCard` | `root`, `panel`, `header`, `content`, `footer` | `open` |
915
- | `BbIcon` | `root` | — |
916
- | `BbIndicator` | `root`, `bubble` | — |
917
- | `BbNumberInput` | family | family |
918
- | `BbOffCanvas` | `root`, `header`, `title`, `description`, `content`, `footer`, `close` | `open`, `fullscreen` |
919
- | `BbPagination` | `root`, `item`, `arrow`, `ellipsis`, `icon` | `active` _(the current page)_, `disabled` _(per control)_ |
920
- | `BbPopover` | `root`, `panel`, `sheet`, `header`, `content`, `footer` | `open` |
921
- | `BbProgress` | `root`, `bar` | `indeterminate` |
922
- | `BbRadio` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `focused`, `focusVisible` |
923
- | `BbRadioGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
924
- | `BbRating` | `root`, `label`, `description`, `message`, `hint`, `item` | `errors`, `warnings`, `disabled`, `readonly`, `hasValue`, `selected` _(per star)_ |
925
- | `BbSelect` | `root`, `label`, `description`, `message`, `hint`, `box`, `activator`, `icon`, `spinner`, `prefix`, `suffix`, `clear`, `panel`, `sheet`, `header`, `footer`, `input` _(the search field)_, `list`, `option`, `itemText`, `itemIcon`, `itemDescription` _(forwarded to the popover)_, `badge`, `comma` _(each selected value)_ | family + `open`, `selected` _(per option)_ |
926
- | `BbSelectPopover` | `root`, `panel`, `sheet`, `input`, `clear`, `list`, `option`, `itemText`, `itemIcon`, `itemDescription`, `header`, `footer` | `open`, `selected`, `disabled` _(per option)_ |
927
- | `BbSlider` | `root`, `label`, `description`, `message`, `hint`, `box`, `track`, `bar`, `ticks`, `tick`, `thumb` | `errors`, `warnings`, `disabled`, `readonly`, `active`, `inRange` _(per tick)_ |
928
- | `BbSmoothHeight` | `root` | — |
929
- | `BbSpinner` | `root` | — |
930
- | `BbSwitch` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
931
- | `BbSwitchGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
932
- | `BbTable` | `root`, `caption`, `table`, `head`, `headerRow`, `cellColumnHeader`, `sortIcon`, `body`, `row`, `cell`, `expand`, `firstRow`, `lastRow`, `selectIcon`, `dragIcon`, `dragHandle`, `foot` | `loading`, `empty`; `sorted`, `sortedDesc` _(per header)_; `selected`, `highlighted`, `expanded`, `disabled` _(per row)_; `indeterminate` _(select-all)_ |
933
- | `BbTabs` | `root`, `wrapper`, `list`, `item`, `indicator`, `panels`, `panel` | `disabled`; `active`, `disabled` _(per tab)_ |
934
- | `BbTabsList` | `root` _(BbTabs’s wrapper)_, `list`, `item`, `indicator` | `disabled`; `active`, `disabled` _(per tab)_ |
935
- | `BbTabsPanels` | `root` _(BbTabs’s panels)_, `panel` | `disabled`; `active` _(per panel)_ |
936
- | `BbTag` | family + `badge`, `comma` _(one tag)_ | family; `highlighted` _(per tag)_ |
937
- | `BbTextarea` | family + `counter` | family + `nearLimit`, `atLimit` _(with the counter on)_ |
938
- | `BbTextInput` | family + `counter` | family + `nearLimit`, `atLimit` _(with the counter on)_ |
939
- | `BbTimePicker` | `root`, `panel`, `sheet`, `header`, `cellColumnHeader`, `item` | `open`, `disabled`; `selected`, `disabled` _(per entry)_ |
940
- | `BbTimePickerInput` | family + `activator`, `panel`, `sheet`, `header`, `cellColumnHeader`, `item` | family + `open`, `selected`, `disabled` _(per entry)_ |
941
- | `BbToast` | `root` _(a region)_, `panel` _(a card)_, `icon`, `content`, `title`, `text`, `footer`, `action`, `close` | `loading` _(per toast)_ |
942
- | `BbTooltip` | `root`, `panel` | `open` |
943
- | `BbTree` | `root`, `item` | `expanded` _(per node)_ |
888
+ | component | parts | states |
889
+ | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
890
+ | `BbAccordion` | `root`, `header`, `title`, `icon`, `panel` | `open` |
891
+ | `BbAlert` | `root`, `icon`, `title`, `text`, `close` | — |
892
+ | `BbAsterisk` | `root` | — |
893
+ | `BbAvatar` | `root`, `icon` | — |
894
+ | `BbBadge` | `root`, `icon`, `spinner`, `text`, `clear` | `loading` |
895
+ | `BbBaseButton` | `root` | `disabled` |
896
+ | `BbBaseCheckboxIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
897
+ | `BbBaseRadioIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `focused`, `focusVisible` |
898
+ | `BbBaseSwitchIcon` | `root` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
899
+ | `BbBreadcrumbs` | `root`, `item`, `icon`, `text` | `active`, `disabled` _(per crumb)_ |
900
+ | `BbButton` | `root`, `icon`, `spinner`, `text` | `loading`, `disabled`, `pressed` |
901
+ | `BbCalendar` | `root`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(the time rail's entries)_ | `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_ |
902
+ | `BbCheckbox` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
903
+ | `BbCheckboxGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
904
+ | `BbCollapsible` | `root`, `content` | `open` |
905
+ | `BbColorInput` | family: `root`, `label`, `description`, `message`, `hint`, `box`, `input`, `icon`, `spinner`, `prefix`, `suffix`, `clear`, `indicator`, `panel`, `sheet`, `swatch` | family: `errors`, `warnings`, `loading`, `disabled`, `readonly`, `hasValue`; `selected` _(on the swatch only)_ |
906
+ | `BbColorPalette` | `root`, `panel`, `sheet`, `swatch` | `open`, `selected` _(per swatch)_ |
907
+ | `BbConfirm` | `root`, `sheet`, `header`, `title`, `content`, `footer`, `close` _(forwarded to its dialog)_, `text`, `action` | `open` |
908
+ | `BbDatePicker` | `root`, `panel`, `sheet`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(forwarded to the calendar)_ | `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_, `open` |
909
+ | `BbDatePickerInput` | family + `activator`, `panel`, `sheet`, `header`, `arrow`, `month`, `year`, `cellColumnHeader`, `day`, `dayButton`, `monthItem`, `yearItem`, `item` _(forwarded to the calendar)_ | family + `open`, `outside`, `today`, `inRange`, `selected`, `rangeStart`, `rangeEnd`, `disabled`, `highlighted` _(per cell)_, `active` _(month / year)_ |
910
+ | `BbDialog` | `root`, `sheet`, `header`, `title`, `description`, `content`, `footer`, `close` | `open`, `fullscreen` |
911
+ | `BbDropdown` | `root`, `panel`, `sheet`, `header`, `footer`, `input` _(every searchable group's field)_, `list`, `item`, `itemText`, `itemIcon`, `itemDescription` | `open`, `selected`, `disabled` _(per entry)_ |
912
+ | `BbDropdownButton` | `root`, `main`, `toggle` _(the two halves)_, `icon`, `spinner`, `text` _(the main button's)_, `panel`, `sheet`, `header`, `footer`, `input`, `item`, `itemText`, `itemIcon`, `itemDescription` _(the menu's)_ | `loading`, `disabled`, `open`; `selected` _(entry parts only)_ |
913
+ | `BbDropzone` | `root`, `content`, `message` | `active`, `errors`, `warnings`, `disabled`, `readonly` |
914
+ | `BbHoverCard` | `root`, `panel`, `header`, `content`, `footer` | `open` |
915
+ | `BbIcon` | `root` | — |
916
+ | `BbIndicator` | `root`, `bubble` | — |
917
+ | `BbNumberInput` | family | family |
918
+ | `BbOffCanvas` | `root`, `header`, `title`, `description`, `content`, `footer`, `close` | `open`, `fullscreen` |
919
+ | `BbPagination` | `root`, `item`, `arrow`, `ellipsis`, `icon` | `active` _(the current page)_, `disabled` _(per control)_ |
920
+ | `BbPopover` | `root`, `panel`, `sheet`, `header`, `content`, `footer` | `open` |
921
+ | `BbProgress` | `root`, `bar` | `indeterminate` |
922
+ | `BbRadio` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `focused`, `focusVisible` |
923
+ | `BbRadioGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
924
+ | `BbRating` | `root`, `label`, `description`, `message`, `hint`, `item` | `errors`, `warnings`, `disabled`, `readonly`, `hasValue`, `selected` _(per star)_ |
925
+ | `BbSelect` | `root`, `label`, `description`, `message`, `hint`, `box`, `activator`, `icon`, `spinner`, `prefix`, `suffix`, `clear`, `panel`, `sheet`, `header`, `footer`, `input` _(the search field)_, `list`, `option`, `itemText`, `itemIcon`, `itemDescription` _(forwarded to the popover)_, `badge`, `comma` _(each selected value)_ | family + `open`, `selected` _(per option)_ |
926
+ | `BbSelectPopover` | `root`, `panel`, `sheet`, `input`, `clear`, `list`, `option`, `itemText`, `itemIcon`, `itemDescription`, `header`, `footer` | `open`, `selected`, `disabled` _(per option)_ |
927
+ | `BbSlider` | `root`, `label`, `description`, `message`, `hint`, `box`, `track`, `bar`, `ticks`, `tick`, `thumb` | `errors`, `warnings`, `disabled`, `readonly`, `active`, `inRange` _(per tick)_ |
928
+ | `BbSmoothHeight` | `root` | — |
929
+ | `BbSpinner` | `root` | — |
930
+ | `BbSwitch` | `root`, `label`, `description`, `message`, `hint`, `icon` | `errors`, `warnings`, `disabled`, `readonly`, `checked`, `indeterminate`, `focused`, `focusVisible` |
931
+ | `BbSwitchGroup` | `root`, `legend`, `description`, `message`, `hint`, `list`, `item`, `icon`, `label`, `itemDescription` | `errors`, `warnings`, `disabled`, `readonly`, `loading`, `hasValue`; `checked`, `focused`, `focusVisible` _(row parts only)_ |
932
+ | `BbTable` | `root`, `caption`, `table`, `head`, `headerRow`, `cellColumnHeader`, `sortIcon`, `body`, `row`, `cell`, `expand`, `firstRow`, `lastRow`, `selectIcon`, `dragIcon`, `dragHandle`, `foot` | `loading`, `empty`; `sorted`, `sortedDesc` _(per header)_; `selected`, `highlighted`, `expanded`, `disabled` _(per row)_; `indeterminate` _(select-all)_; `value`, `placeholder` _(per data cell)_ |
933
+ | `BbTabs` | `root`, `wrapper`, `list`, `item`, `indicator`, `panels`, `panel` | `disabled`; `active`, `disabled` _(per tab)_ |
934
+ | `BbTabsList` | `root` _(BbTabs’s wrapper)_, `list`, `item`, `indicator` | `disabled`; `active`, `disabled` _(per tab)_ |
935
+ | `BbTabsPanels` | `root` _(BbTabs’s panels)_, `panel` | `disabled`; `active` _(per panel)_ |
936
+ | `BbTag` | family + `badge`, `comma` _(one tag)_ | family; `highlighted` _(per tag)_ |
937
+ | `BbTextarea` | family + `counter` | family + `nearLimit`, `atLimit` _(with the counter on)_ |
938
+ | `BbTextInput` | family + `counter` | family + `nearLimit`, `atLimit` _(with the counter on)_ |
939
+ | `BbTimePicker` | `root`, `panel`, `sheet`, `header`, `cellColumnHeader`, `item` | `open`, `disabled`; `selected`, `disabled` _(per entry)_ |
940
+ | `BbTimePickerInput` | family + `activator`, `panel`, `sheet`, `header`, `cellColumnHeader`, `item` | family + `open`, `selected`, `disabled` _(per entry)_ |
941
+ | `BbToast` | `root` _(a region)_, `panel` _(a card)_, `icon`, `content`, `title`, `text`, `footer`, `action`, `close` | `loading` _(per toast)_ |
942
+ | `BbTooltip` | `root`, `panel` | `open` |
943
+ | `BbTree` | `root`, `item` | `expanded` _(per node)_ |
944
944
 
945
945
  _family_ = the text-like form-control vocabulary: parts `root`, `label`,
946
946
  `description`, `message`, `hint`, `box`, `input`, `icon`, `spinner` (the box's
@@ -456,6 +456,11 @@ brackets). It returns nothing; the form state is the answer:
456
456
  on the next `setErrors`.
457
457
  - They never share a path: `{ ...errors, ...unmatchedErrors }` is every
458
458
  error. `fields[path].errors` is one field's full list.
459
+ - `setErrors` never takes a field message back: it stays until the field is
460
+ edited or validated again (a submit validates every field), whatever a
461
+ later call says. A message your page adds and removes itself (a cross-field check)
462
+ goes in a computed `:field-errors` instead
463
+ ([BbForm § A message of your own](../BbForm.md#a-message-of-your-own-that-comes-and-goes)).
459
464
  - Focus moves to the first failing field on screen, like a failed submit,
460
465
  while focus is still the form's: inside it, or on its own submit button
461
466
  outside it (a dialog footer's `<BbButton form="id" type="submit">`)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": 1,
3
- "version": "3.0.0-beta.62",
3
+ "version": "3.0.0-beta.63",
4
4
  "canon": "bb-canon/1",
5
5
  "folder": "inertia-helpers",
6
6
  "helpers": {
@@ -2,8 +2,7 @@
2
2
  "name": "BbHost",
3
3
  "tree": {
4
4
  "nodes": [
5
- {"name":"BbConfirm","kind":"internal","vocabulary":"BbConfirm","bindings":[{"part":"text","target":"div.bb-confirm__text"},{"part":"action","target":"BbButton"}],"forwards":[{"to":"BbDialog","mapping":"passthrough.forward(DIALOG_PARTS, BB_DIALOG_PT.states)"}],"children":[{"name":"BbDialog","kind":"public","vocabulary":"BbDialog","bindings":[{"part":"header","target":"div.bb-dialog__header"},{"part":"title","target":"span.bb-dialog__title"},{"part":"description","target":"p.bb-dialog__description"},{"part":"close","target":"CloseButton"},{"part":"content","target":"div.bb-dialog__content"},{"part":"footer","target":"div.bb-dialog__footer"}],"forwards":[{"to":"BbOffCanvas","mapping":"{ root: 'root', header: 'header', title: 'title', description: 'description', content: 'content', footer: 'footer', close: 'close', sheet: 'root', }"}],"cssProps":[{"name":"--px","documented":true,"readBy":["bb-dialog__header","bb-close-button","bb-dialog__content","bb-dialog__footer"]},{"name":"--py","documented":false,"readBy":["bb-dialog__header","bb-close-button","bb-dialog__content","bb-dialog__footer"]},{"name":"--page-padding","documented":false,"readBy":["bb-dialog","bb-dialog--fullscreen"]},{"name":"--transition-timing-function","documented":false,"readBy":["bb-dialog","bb-dialog--fullscreen"]},{"name":"--bg","documented":false,"readBy":["bb-dialog"]},{"name":"--fg","documented":false,"readBy":["bb-dialog"]},{"name":"--close-size","documented":true,"readBy":["bb-close-button"]},{"name":"--gap","documented":false,"readBy":["bb-dialog__footer"]}],"children":[{"name":"CloseButton","kind":"internal","cssProps":[{"name":"--size","documented":true,"readBy":["bb-close-button"]},{"name":"--p","documented":true,"readBy":["bb-close-button"]}]},{"name":"BbOffCanvas","kind":"public","vocabulary":"BbOffCanvas","bindings":[{"part":"header","target":"div.bb-offcanvas__header"},{"part":"title","target":"span.bb-offcanvas__title"},{"part":"description","target":"p.bb-offcanvas__description"},{"part":"close","target":"CloseButton"},{"part":"content","target":"div.bb-offcanvas__content"},{"part":"footer","target":"div.bb-offcanvas__footer"}],"cssProps":[{"name":"--translate-x","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate","documented":false,"readBy":["bb-offcanvas"]},{"name":"--stack-x","documented":true,"readBy":["bb-offcanvas"]},{"name":"--stack-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--snap-y","documented":true,"readBy":["bb-offcanvas","bb-offcanvas__footer","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--snap-floor","documented":false,"readBy":["bb-offcanvas__footer"]},{"name":"--stack-fill","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom"]},{"name":"--stack-transition-duration","documented":true,"readBy":["bb-offcanvas"]},{"name":"--px","documented":true,"readBy":["bb-offcanvas__header","bb-close-button","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--py","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content","bb-offcanvas__header","bb-close-button"]},{"name":"--handle-w","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-h","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-bg","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--transition-timing-function","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--open"]},{"name":"--bg","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--fg","documented":false,"readBy":["bb-offcanvas"]},{"name":"--safe-top","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--fullscreen"]},{"name":"--safe-right","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-bottom","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-left","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--inset-top","documented":false,"readBy":["bb-offcanvas__content","bb-offcanvas__header"]},{"name":"--inset-right","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--inset-bottom","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content"]},{"name":"--inset-left","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--close-size","documented":true,"readBy":["bb-close-button"]},{"name":"--gap","documented":false,"readBy":["bb-offcanvas__footer"]}],"children":[{"name":"CloseButton","kind":"internal","repeated":true,"cssProps":[{"name":"--size","documented":true,"readBy":["bb-close-button"]},{"name":"--p","documented":true,"readBy":["bb-close-button"]}]}]}]},{"name":"BbButton","kind":"public","vocabulary":"BbButton","bindings":[{"part":"root","target":"BbBaseButton"},{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"BbIcon"},{"part":"text","target":"span.bb-button__text"}],"cssProps":[{"name":"--h-xs","documented":true,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--icon-size-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--px-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--fs-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--r-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--gap-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--h-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--icon-size-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--px-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--fs-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--r-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--gap-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--h-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--icon-size-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--px-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--fs-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--r-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--gap-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--h-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--icon-size-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--px-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--fs-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--r-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--gap-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--h-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--icon-size-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--px-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--fs-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--r-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--gap-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--h-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--icon-size-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--px-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--fs-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--r-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--gap-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--h","documented":true,"readBy":["bb-button","bb-button--icon"]},{"name":"--icon-size","documented":true,"readBy":["bb-button__text","bb-spinner","bb-button__icon","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--px","documented":true,"readBy":["bb-button","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--fs","documented":true,"readBy":["bb-button"]},{"name":"--r","documented":true,"readBy":["bb-button"]},{"name":"--gap","documented":true,"readBy":["bb-button","bb-button__text","bb-spinner"]},{"name":"--bg","documented":true,"readBy":["bb-button"]},{"name":"--bg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg","documented":true,"readBy":["bb-button"]},{"name":"--border-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-size","documented":true,"readBy":["bb-button"]},{"name":"--bw","documented":true,"readBy":["bb-button"]},{"name":"--fg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--opacity-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--elev-tier","documented":true,"readBy":["bb-button--primary","bb-button--secondary","bb-button--outline","bb-button--destructive"]},{"name":"--elev","documented":true,"readBy":["bb-button"]}],"children":[{"name":"BbIcon","kind":"public","cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbBaseButton","kind":"public","vocabulary":"BbBaseButton","bindings":[{"part":"root","target":"RouterComponent"},{"part":"root","target":"a"},{"part":"root","target":"component"}],"children":[{"name":"RouterComponent","kind":"internal"}]},{"name":"BbSpinner","kind":"public","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]}]}]},
6
- {"name":"BbToast","kind":"internal","cssProps":[{"name":"--gap","documented":true,"readBy":["bb-toast__panel"]},{"name":"--offset","documented":true,"readBy":["bb-toast--top-left","bb-toast--top-center","bb-toast--top-right","bb-toast--bottom-left","bb-toast--bottom-center","bb-toast--bottom-right","bb-toast"]},{"name":"--width","documented":true,"readBy":["bb-toast"]},{"name":"--lift","documented":true,"readBy":["bb-toast__panel","bb-toast__panel--mounted","bb-toast__panel--removed"]},{"name":"--stack-y","documented":true,"readBy":["bb-toast__panel"]},{"name":"--stack-scale","documented":true,"readBy":["bb-toast__panel"]},{"name":"--enter-y","documented":true,"readBy":["bb-toast__panel"]},{"name":"--swipe-amount","documented":true,"readBy":["bb-toast__panel"]},{"name":"--z","documented":true,"readBy":["bb-toast__panel"]},{"name":"--r","documented":true,"readBy":["bb-toast__panel"]},{"name":"--ring-size","documented":true,"readBy":["bb-toast__close"]},{"name":"--bg","documented":true,"readBy":["bb-toast__panel","bb-toast__close"]},{"name":"--border-color","documented":true,"readBy":["bb-toast__panel"]},{"name":"--fg","documented":true,"readBy":["bb-toast__panel","bb-toast__title","bb-toast__text","bb-toast__close"]},{"name":"--icon-color","documented":true,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]}],"children":[{"name":"BbToastRegion","kind":"internal","vocabulary":"BbToast","bindings":[{"part":"root","target":"ol.bb-toast"}],"children":[{"name":"BbToastMessage","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true},{"name":"BbButton","kind":"public","repeated":true,"cssProps":[{"name":"--h-xs","documented":true,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--icon-size-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--px-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--fs-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--r-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--gap-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--h-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--icon-size-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--px-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--fs-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--r-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--gap-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--h-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--icon-size-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--px-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--fs-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--r-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--gap-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--h-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--icon-size-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--px-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--fs-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--r-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--gap-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--h-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--icon-size-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--px-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--fs-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--r-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--gap-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--h-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--icon-size-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--px-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--fs-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--r-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--gap-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--h","documented":true,"readBy":["bb-button","bb-button--icon"]},{"name":"--icon-size","documented":true,"readBy":["bb-button__text","bb-spinner","bb-button__icon","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--px","documented":true,"readBy":["bb-button","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--fs","documented":true,"readBy":["bb-button"]},{"name":"--r","documented":true,"readBy":["bb-button"]},{"name":"--gap","documented":true,"readBy":["bb-button","bb-button__text","bb-spinner"]},{"name":"--bg","documented":true,"readBy":["bb-button"]},{"name":"--bg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg","documented":true,"readBy":["bb-button"]},{"name":"--border-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-size","documented":true,"readBy":["bb-button"]},{"name":"--bw","documented":true,"readBy":["bb-button"]},{"name":"--fg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--opacity-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--elev-tier","documented":true,"readBy":["bb-button--primary","bb-button--secondary","bb-button--outline","bb-button--destructive"]},{"name":"--elev","documented":true,"readBy":["bb-button"]}]}]}]}]}
5
+ {"name":"BbToast","kind":"internal","cssProps":[{"name":"--gap","documented":true,"readBy":["bb-toast__panel"]},{"name":"--offset","documented":true,"readBy":["bb-toast--top-left","bb-toast--top-center","bb-toast--top-right","bb-toast--bottom-left","bb-toast--bottom-center","bb-toast--bottom-right","bb-toast"]},{"name":"--width","documented":true,"readBy":["bb-toast"]},{"name":"--lift","documented":true,"readBy":["bb-toast__panel","bb-toast__panel--mounted","bb-toast__panel--removed"]},{"name":"--stack-y","documented":true,"readBy":["bb-toast__panel"]},{"name":"--stack-scale","documented":true,"readBy":["bb-toast__panel"]},{"name":"--enter-y","documented":true,"readBy":["bb-toast__panel"]},{"name":"--swipe-amount","documented":true,"readBy":["bb-toast__panel"]},{"name":"--z","documented":true,"readBy":["bb-toast__panel"]},{"name":"--r","documented":true,"readBy":["bb-toast__panel"]},{"name":"--ring-size","documented":true,"readBy":["bb-toast__close"]},{"name":"--bg","documented":true,"readBy":["bb-toast__panel","bb-toast__close"]},{"name":"--border-color","documented":true,"readBy":["bb-toast__panel"]},{"name":"--fg","documented":true,"readBy":["bb-toast__panel","bb-toast__title","bb-toast__text","bb-toast__close"]},{"name":"--icon-color","documented":true,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]},{"name":"--icon-color","documented":false,"readBy":["bb-toast__icon"]}],"children":[{"name":"BbToastRegion","kind":"internal","vocabulary":"BbToast","bindings":[{"part":"root","target":"ol.bb-toast"}],"children":[{"name":"BbToastMessage","kind":"internal","children":[{"name":"BbIcon","kind":"public","cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"BbButton","kind":"public","vocabulary":"BbButton","bindings":[{"part":"root","target":"BbBaseButton"},{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"BbIcon"},{"part":"text","target":"span.bb-button__text"}],"cssProps":[{"name":"--h-xs","documented":true,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--icon-size-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--px-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--fs-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--r-xs","documented":false,"readBy":["bb-button","bb-button--xs"]},{"name":"--gap-xs","documented":false,"readBy":["bb-button","bb-button--xs","bb-button--sm-xs","bb-button--md-xs","bb-button--lg-xs","bb-button--xl-xs","bb-button--2xl-xs"]},{"name":"--h-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--icon-size-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--px-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--fs-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--r-sm","documented":false,"readBy":["bb-button","bb-button--sm"]},{"name":"--gap-sm","documented":false,"readBy":["bb-button","bb-button--sm","bb-button--sm-sm","bb-button--md-sm","bb-button--lg-sm","bb-button--xl-sm","bb-button--2xl-sm"]},{"name":"--h-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--icon-size-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--px-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--fs-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--r-md","documented":false,"readBy":["bb-button","bb-button--md"]},{"name":"--gap-md","documented":false,"readBy":["bb-button","bb-button--md","bb-button--sm-md","bb-button--md-md","bb-button--lg-md","bb-button--xl-md","bb-button--2xl-md"]},{"name":"--h-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--icon-size-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--px-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--fs-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--r-lg","documented":false,"readBy":["bb-button","bb-button--lg"]},{"name":"--gap-lg","documented":false,"readBy":["bb-button","bb-button--lg","bb-button--sm-lg","bb-button--md-lg","bb-button--lg-lg","bb-button--xl-lg","bb-button--2xl-lg"]},{"name":"--h-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--icon-size-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--px-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--fs-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--r-xl","documented":false,"readBy":["bb-button","bb-button--xl"]},{"name":"--gap-xl","documented":false,"readBy":["bb-button","bb-button--xl","bb-button--sm-xl","bb-button--md-xl","bb-button--lg-xl","bb-button--xl-xl","bb-button--2xl-xl"]},{"name":"--h-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--icon-size-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--px-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--fs-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--r-2xl","documented":false,"readBy":["bb-button","bb-button--2xl"]},{"name":"--gap-2xl","documented":false,"readBy":["bb-button","bb-button--2xl","bb-button--sm-2xl","bb-button--md-2xl","bb-button--lg-2xl","bb-button--xl-2xl","bb-button--2xl-2xl"]},{"name":"--h","documented":true,"readBy":["bb-button","bb-button--icon"]},{"name":"--icon-size","documented":true,"readBy":["bb-button__text","bb-spinner","bb-button__icon","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--px","documented":true,"readBy":["bb-button","bb-button__prepend-icon","bb-button__append-icon"]},{"name":"--fs","documented":true,"readBy":["bb-button"]},{"name":"--r","documented":true,"readBy":["bb-button"]},{"name":"--gap","documented":true,"readBy":["bb-button","bb-button__text","bb-spinner"]},{"name":"--bg","documented":true,"readBy":["bb-button"]},{"name":"--bg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg","documented":true,"readBy":["bb-button"]},{"name":"--border-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-color","documented":true,"readBy":["bb-button"]},{"name":"--ring-size","documented":true,"readBy":["bb-button"]},{"name":"--bw","documented":true,"readBy":["bb-button"]},{"name":"--fg-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-hover","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--fg-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--border-pressed","documented":true,"readBy":["bb-button","bb-base-button--disabled"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--opacity-disabled","documented":true,"readBy":["bb-button","bb-base-button--disabled","bb-button--loading"]},{"name":"--elev-tier","documented":true,"readBy":["bb-button--primary","bb-button--secondary","bb-button--outline","bb-button--destructive"]},{"name":"--elev","documented":true,"readBy":["bb-button"]}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbBaseButton","kind":"public","vocabulary":"BbBaseButton","bindings":[{"part":"root","target":"RouterComponent"},{"part":"root","target":"a"},{"part":"root","target":"component"}],"children":[{"name":"RouterComponent","kind":"internal"}]},{"name":"BbSpinner","kind":"public","repeated":true}]}]}]}]}
7
6
  ]
8
7
  }
9
8
  }
@@ -134,6 +134,8 @@
134
134
  {"name":"foot","description":"The footer row group (the `tfoot` slot's container)."}
135
135
  ],
136
136
  "states": [
137
+ {"name":"value","description":"Per node, on a DATA `cell`: the formatter / placeholder pipeline produced a value (not `null` / `undefined`), slot cells included (`bb-table__cell--value`). Not on the select, drag or actions cells."},
138
+ {"name":"placeholder","description":"Per node, on a DATA `cell`: the value was empty and the column's `placeholder` shows instead, whatever its text (`bb-table__cell--placeholder`). A cell with an empty value and no `placeholder` has neither state."},
137
139
  {"name":"empty","description":"Component-wide: there are no rows (`bb-table--empty`)."},
138
140
  {"name":"sorted","description":"Per node, on `cellColumnHeader` and `sortIcon`: the column is sorted, either direction (`bb-table__cell-column-header--sorted`)."},
139
141
  {"name":"sortedDesc","description":"Per node, on `cellColumnHeader` and `sortIcon`: sorted descending (`bb-table__cell-column-header--sorted-desc`). Ascending is `sorted` alone."},
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "library": "bitboss-ui",
4
- "version": "3.0.0-beta.62",
5
- "generatedAt": "2026-10-22T09:17:56.843Z",
4
+ "version": "3.0.0-beta.63",
5
+ "generatedAt": "2026-10-22T21:18:03.397Z",
6
6
  "about": "The bitboss-ui API for agents: open components/<Name>.json for one component (every prop, event, slot, v-model, pt part and state, and the public types its API uses; one member per line; a row or pt part written { name, common: true } is whole once in common.json, read it once). components/<Name>.tree.json has its component tree and CSS internals; files.removed the old names. The machine file with everything in one place is ../components.json.",
7
7
  "reading": {
8
8
  "components[]": "one row per component; description = its first sentence. Its API file is files.component with <Name> = name; its components/<Name>.tree.json (component tree, css classes, CSS custom properties) exists unless the row says tree: false.",
@@ -4,7 +4,7 @@
4
4
  {"name":"AlertVariantType","usage":"advanced","component":null,"usedBy":[],"definition":"type AlertVariantType = AlertVariantFromRegistry;","values":["outline","primary","destructive","warning"],"extensibleVia":"AlertVariantRegistry"},
5
5
  {"name":"BadgeVariantRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface BadgeVariantRegistry { primary: true; secondary: true; destructive: true; outline: true; }","values":["primary","secondary","destructive","outline"],"extensibleVia":"BadgeVariantRegistry"},
6
6
  {"name":"BbColorDirectiveValue","usage":"advanced","component":null,"usedBy":[],"fields":["eager?: boolean","transitionDuration?: number","disabled?: boolean","label?: string","readonly?: boolean","placement?: Placement","adaptive?: boolean","offCanvasProps?: Partial<BbOffCanvasProps>","offset?: number","padding?: number","anchor?: ElementOrComponentRef","alpha?: boolean","boundary?: ElementOrComponentRefOrSelector","disableFlip?: boolean","eyeDropper?: boolean","swatches?: boolean | string[][]","modelValue: string | null","onUpdate:modelValue?: ((value: string) => void)"]},
7
- {"name":"BbConfirmMessage","usage":"advanced","component":null,"usedBy":[],"definition":"type BbConfirmMessage = { actions?: false | readonly ConfirmButtonConfig[]; autoClose?: boolean; dismissAsNo?: boolean; no?: false | string | ConfirmButtonConfig; yes?: false | string | ConfirmButtonConfig; focusTarget?: string; fullscreen?: boolean | 'mobile'; hideClose?: boolean; persistent?: boolean; portal?: Component | string; data?: Record<string, any>; returning?: boolean; size?: keyof BbDialogSizes; text?: string; variant?: ConfirmVariantType; duration?: number; title?: string; };"},
7
+ {"name":"BbConfirmMessage","usage":"advanced","component":null,"usedBy":[],"definition":"type BbConfirmMessage = { actions?: false | readonly ConfirmButtonConfig[]; autoClose?: boolean; dismissAsNo?: boolean; no?: false | string | ConfirmButtonConfig; yes?: false | string | ConfirmButtonConfig; focusTarget?: string; fullscreen?: boolean | 'mobile'; hideClose?: boolean; persistent?: boolean; portal?: Component | string; data?: Record<string, any>; returning?: boolean; size?: keyof BbDialogSizes; stack?: string; text?: string; variant?: ConfirmVariantType; duration?: number; title?: string; };"},
8
8
  {"name":"BbDateDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDateDirectiveValue = BbDateDirectiveSingle | BbDateDirectiveRange | BbDateDirectiveMultiple;","members":{"BbDateDirectiveSingle":["eager?: boolean","transitionDuration?: number","disabled?: boolean","step?: number","time?: string | string[] | null","label?: string","type?: DatePickerType","readonly?: boolean","floating?: boolean","placement?: Placement","adaptive?: boolean","offCanvasProps?: Partial<BbOffCanvasProps>","offset?: number","padding?: number","max?: string","anchor?: ElementOrComponentRef","selectable?: ((date: string) => boolean)","boundary?: ElementOrComponentRefOrSelector","disableFlip?: boolean","activeSegment?: BbCalendarSegment","seconds?: boolean","ampm?: boolean","min?: string","firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6","utc?: boolean","range?: false","multiple?: false","modelValue: string | null","onUpdate:modelValue?: ((value: string | null) => void)","onUpdate:time?: ((value: string | null) => void)"],"BbDateDirectiveRange":["eager?: boolean","transitionDuration?: number","disabled?: boolean","step?: number","time?: string | string[] | null","label?: string","type?: DatePickerType","readonly?: boolean","floating?: boolean","placement?: Placement","adaptive?: boolean","offCanvasProps?: Partial<BbOffCanvasProps>","offset?: number","padding?: number","max?: string","anchor?: ElementOrComponentRef","selectable?: ((date: string) => boolean)","boundary?: ElementOrComponentRefOrSelector","disableFlip?: boolean","activeSegment?: BbCalendarSegment","seconds?: boolean","ampm?: boolean","min?: string","firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6","utc?: boolean","range: true","multiple?: false","modelValue: string[] | null","onUpdate:modelValue?: ((value: string[]) => void)","onUpdate:time?: ((value: string[]) => void)"],"BbDateDirectiveMultiple":["eager?: boolean","transitionDuration?: number","disabled?: boolean","step?: number","time?: string | string[] | null","label?: string","type?: DatePickerType","readonly?: boolean","floating?: boolean","placement?: Placement","adaptive?: boolean","offCanvasProps?: Partial<BbOffCanvasProps>","offset?: number","padding?: number","max?: string","anchor?: ElementOrComponentRef","selectable?: ((date: string) => boolean)","boundary?: ElementOrComponentRefOrSelector","disableFlip?: boolean","activeSegment?: BbCalendarSegment","seconds?: boolean","ampm?: boolean","min?: string","firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6","utc?: boolean","multiple: true","range?: false","modelValue: string[]","onUpdate:modelValue?: ((value: string[]) => void)","onUpdate:time?: ((value: string | string[] | null) => void)"]}},
9
9
  {"name":"BbDatePickerSegment","usage":"advanced","component":"BbDatePicker","usedBy":[],"definition":"type BbDatePickerSegment = BbCalendarSegment;","values":["start","end"]},
10
10
  {"name":"BbDialogContext","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDialogContext<T = any, Out = any> = { isReady: ComputedRef<boolean>; open: ComputedRef<boolean>; data: ComputedRef<T | undefined>; show: (data?: T, options?: BbShowOptions<Out>) => Promise<BbDialogResult<Out>>; hide: () => void; complete: (...value: BbCompleteArgs<Out>) => Promise<void>; reset: () => void; };","fields":["isReady: ComputedRef<boolean>","open: ComputedRef<boolean>","data: ComputedRef<T | undefined>","show: (data?: T | undefined, options?: BbShowOptions<Out> | undefined) => Promise<BbDialogResult<Out>>","hide: () => void","complete: (...value: BbCompleteArgs<Out>) => Promise<void>","reset: () => void"]},