bitboss-ui 3.0.0-beta.22 → 3.0.0-beta.23

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 (92) hide show
  1. package/dist/ai/BbBaseColorInput.md +1 -0
  2. package/dist/ai/BbBaseDatePickerInput.md +1 -0
  3. package/dist/ai/BbBaseNumberInput.md +1 -0
  4. package/dist/ai/BbBaseSelect.md +1 -0
  5. package/dist/ai/BbBaseTag.md +1 -0
  6. package/dist/ai/BbBaseTextInput.md +2 -1
  7. package/dist/ai/BbBaseTextarea.md +1 -0
  8. package/dist/ai/BbBaseTimePickerInput.md +1 -0
  9. package/dist/ai/BbColorInput.md +14 -0
  10. package/dist/ai/BbDatePickerInput.md +14 -0
  11. package/dist/ai/BbNumberInput.md +14 -0
  12. package/dist/ai/BbSelect.md +14 -0
  13. package/dist/ai/BbTag.md +14 -0
  14. package/dist/ai/BbTextInput.md +43 -1
  15. package/dist/ai/BbTextarea.md +14 -0
  16. package/dist/ai/BbTimePickerInput.md +14 -0
  17. package/dist/ai/CommonInputWrapper.md +1 -0
  18. package/dist/ai/changelog.json +3 -2
  19. package/dist/ai/components.json +213 -4
  20. package/dist/ai/guides/design-language.md +10 -8
  21. package/dist/ai/guides/installation-and-plugin-setup.md +33 -0
  22. package/dist/ai/source/BbBaseColorInput.md +7 -0
  23. package/dist/ai/source/BbBaseDatePickerInput.md +7 -0
  24. package/dist/ai/source/BbBaseNumberInput.md +7 -0
  25. package/dist/ai/source/BbBaseSelect.md +7 -0
  26. package/dist/ai/source/BbBaseTag.md +7 -0
  27. package/dist/ai/source/BbBaseTextInput.md +7 -0
  28. package/dist/ai/source/BbBaseTextarea.md +7 -0
  29. package/dist/ai/source/BbBaseTimePickerInput.md +7 -0
  30. package/dist/ai/source/BbColorInput.md +14 -0
  31. package/dist/ai/source/BbDatePickerInput.md +14 -0
  32. package/dist/ai/source/BbNumberInput.md +14 -0
  33. package/dist/ai/source/BbSelect.md +14 -0
  34. package/dist/ai/source/BbTag.md +14 -0
  35. package/dist/ai/source/BbTextInput.md +14 -0
  36. package/dist/ai/source/BbTextarea.md +14 -0
  37. package/dist/ai/source/BbTimePickerInput.md +14 -0
  38. package/dist/ai/source/CommonInputWrapper.md +128 -33
  39. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +4 -1
  40. package/dist/components/BbBaseColorInput/types.d.ts +5 -0
  41. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +4 -1
  42. package/dist/components/BbBaseDatePickerInput/types.d.ts +5 -0
  43. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +4 -1
  44. package/dist/components/BbBaseNumberInput/types.d.ts +5 -0
  45. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +3 -0
  46. package/dist/components/BbBaseSelect/types.d.ts +5 -0
  47. package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +4 -1
  48. package/dist/components/BbBaseTag/types.d.ts +5 -0
  49. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +4 -1
  50. package/dist/components/BbBaseTextInput/types.d.ts +5 -0
  51. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +4 -1
  52. package/dist/components/BbBaseTextarea/types.d.ts +5 -0
  53. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +4 -1
  54. package/dist/components/BbBaseTimePickerInput/types.d.ts +5 -0
  55. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +5 -2
  56. package/dist/components/BbColorInput/types.d.ts +12 -0
  57. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +4 -2
  58. package/dist/components/BbDatePickerInput/types.d.ts +12 -0
  59. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +5 -2
  60. package/dist/components/BbNumberInput/types.d.ts +12 -0
  61. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +4 -2
  62. package/dist/components/BbSelect/types.d.ts +12 -0
  63. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +5 -2
  64. package/dist/components/BbTag/types.d.ts +12 -0
  65. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +5 -2
  66. package/dist/components/BbTextInput/types.d.ts +12 -0
  67. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +5 -2
  68. package/dist/components/BbTextarea/types.d.ts +12 -0
  69. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +4 -2
  70. package/dist/components/BbTimePickerInput/types.d.ts +12 -0
  71. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.d.ts +1 -0
  72. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +4 -2
  73. package/dist/components/CommonInputWrapper/types.d.ts +10 -0
  74. package/dist/index.d.ts +2 -0
  75. package/dist/input-variants.d.ts +18 -0
  76. package/dist/llms-full.txt +194 -10
  77. package/dist/llms-medium.txt +43 -8
  78. package/dist/nuxt-module.d.ts +1 -0
  79. package/dist/styles.css +1 -1
  80. package/dist/types/InputVariant.d.ts +22 -0
  81. package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +1 -0
  82. package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1 -0
  83. package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +1 -0
  84. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
  85. package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +1 -0
  86. package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +1 -0
  87. package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +1 -0
  88. package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +1 -0
  89. package/dist/validated/index.d.ts +1 -0
  90. package/dist/vite-plugin.d.ts +15 -1
  91. package/dist/vite.js +93 -82
  92. package/package.json +1 -1
@@ -38,6 +38,7 @@
38
38
  | `required` | `boolean \| undefined` | `false` | | Mark the input as required. |
39
39
  | `swatches` | `boolean \| string[][] \| undefined` | | | Controls swatches display in the picker: - `true` — show the built-in Material-palette swatches - `string[][]` — show custom swatches (each inner array = a column of shades) - `false` / omitted — no swatches section |
40
40
  | `transitionDuration` | `number \| undefined` | `250` | | Transition duration (ms) of the palette popover. Forwarded to `BbColorPalette`, which supplies the default. |
41
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
41
42
 
42
43
  ## Events
43
44
 
@@ -51,6 +51,7 @@
51
51
  | `transitionDuration` | `number \| undefined` | | | Transition duration, in milliseconds, for the popover appearance. |
52
52
  | `type` | `DatePickerType \| undefined` | `"date"` | | What the field edits, and therefore its segments and emitted shape. - `date` (default) — `DD/MM/YYYY`. - `datetime` — adds the time segments and the calendar's time rail. - `month` — `MM/YYYY`, emitting `YYYY-MM`. - `year` — `YYYY`, emittin… |
53
53
  | `utc` | `boolean \| undefined` | `false` | | Emits values as UTC ISO strings (`...Z`) instead of ISO strings carrying the local offset (`...+01:00`). Emission-only: incoming values are parsed identically either way, so the prop can be added or removed without touching stored values. F… |
54
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
54
55
 
55
56
  ## Events
56
57
 
@@ -37,6 +37,7 @@
37
37
  | `readonly` | `boolean \| undefined` | `false` | | Make the input read-only while keeping its value visible. |
38
38
  | `required` | `boolean \| undefined` | `false` | | Mark the input as required for form validation. |
39
39
  | `step` | `number \| undefined` | `1` | | Increment used by the `increase`/`decrease` helpers. Manual typing is never forced to this step. |
40
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
40
41
 
41
42
  ## Events
42
43
 
@@ -59,6 +59,7 @@
59
59
  | `selectedLabelsFn` | `((count: number) => string) \| undefined` | | | Function to generate a summary label when selected items exceed `maxSelectedLabels` or overflow the control width. |
60
60
  | `stash` | `boolean \| undefined` | `false` | | Accumulate selected items across searches. |
61
61
  | `transitionDuration` | `number \| undefined` | `250` | | Transition duration (ms) for dropdown animations. Forwarded to `BbSelectPopover`, which supplies the default. |
62
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
62
63
 
63
64
  ## Events
64
65
 
@@ -37,6 +37,7 @@
37
37
  | `prepend:icon` | `string \| undefined` | | | Name of the icon to render at the left hand side of the input. |
38
38
  | `readonly` | `boolean \| undefined` | `false` | | Make the input read-only while keeping tags visible. |
39
39
  | `required` | `boolean \| undefined` | `false` | | Mark the input as required for form validation. |
40
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
40
41
 
41
42
  ## Events
42
43
 
@@ -27,7 +27,7 @@
27
27
  | `hasErrors` | `boolean \| undefined` | `false` | | Apply error styling to the input and set `aria-invalid`. |
28
28
  | `hasWarning` | `boolean \| undefined` | `false` | | Apply warning styling (same chrome as errors, `--bb-warn` color). Suppressed when `hasErrors` is also set. |
29
29
  | `id` | `string \| undefined` | | | Explicit id for the input element. |
30
- | `inputMode` | `"text" \| "search" \| "email" \| "url" \| "tel" \| "none" \| "numeric" \| "decimal" \| undefined` | | | Input mode hint for mobile keyboards. |
30
+ | `inputMode` | `"text" \| "none" \| "search" \| "email" \| "url" \| "tel" \| "numeric" \| "decimal" \| undefined` | | | Input mode hint for mobile keyboards. |
31
31
  | `labelMode` | `"floating" \| "outside" \| "inside" \| undefined` | | | Label rendering mode, forwarded by wrapper components. |
32
32
  | `loading` | `boolean \| undefined` | `false` | | Display the loading state styles. |
33
33
  | `mask` | `MaskInputOptions \| undefined` | | | Input mask configuration. When provided, enables formatted input with validation. |
@@ -42,6 +42,7 @@
42
42
  | `required` | `boolean \| undefined` | `false` | | Mark the input as required for form validation. |
43
43
  | `step` | `string \| undefined` | | | Stepping interval for numeric and date inputs. |
44
44
  | `type` | `"text" \| "search" \| "email" \| "url" \| "tel" \| "password" \| undefined` | `"text"` | | HTML input type attribute. Restricted to the textual input types this component supports — use `BbNumberInput` for numbers and `BbDatePickerInput` for dates. |
45
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
45
46
 
46
47
  ## Events
47
48
 
@@ -35,6 +35,7 @@
35
35
  | `readonly` | `boolean \| undefined` | `false` | | Make the textarea read-only while keeping it visible. |
36
36
  | `required` | `boolean \| undefined` | `false` | | Mark the textarea as required for form validation. |
37
37
  | `rows` | `string \| number \| undefined` | | | Number of visible rows. Without `autoGrow` this is the fixed height; with `autoGrow` it becomes the minimum-height floor the field grows past but never shrinks below. |
38
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
38
39
 
39
40
  ## Events
40
41
 
@@ -43,6 +43,7 @@
43
43
  | `seconds` | `boolean \| undefined` | `false` | | Adds the seconds segment. Without it an incoming value carrying seconds displays truncated and zeroes out on the next user commit. |
44
44
  | `step` | `number \| undefined` | `1` | | Minute granularity for the minute column and its arrow stepping. Constrains what the columns produce, never what typing accepts. |
45
45
  | `transitionDuration` | `number \| undefined` | | | Transition duration, in milliseconds, for the popover appearance. |
46
+ | `variant` | `InputVariantType \| undefined` | | | Visual variant of the field box, forwarded to `CommonInputWrapper`. |
46
47
 
47
48
  ## Events
48
49
 
@@ -444,6 +444,19 @@ const form = useForm({ brandColor: '#4f46e5' });
444
444
  </template>
445
445
  ```
446
446
 
447
+ ### Variants
448
+
449
+ `variant` picks the field box's look and nothing else — height, padding and
450
+ border width are identical across variants. `outline` (default) is the raised
451
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
452
+ border, and `ghost` draws **no border in any state**: a hover wash is the
453
+ affordance, the focus ring still shows, and errors or warnings surface through
454
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
455
+ table cell (`<BbColorInput compact hide-label variant="ghost" />`) — no
456
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
457
+ register through the plugin's `inputVariants` option. The full ladder is in
458
+ the `BbTextInput` guide.
459
+
447
460
  ### Works well with
448
461
 
449
462
  - `BbColorPalette` — the same picker on your own trigger, when there's no form.
@@ -516,6 +529,7 @@ const form = useForm({ brandColor: '#4f46e5' });
516
529
  | `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
517
530
  | `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
518
531
  | `swatches` | `boolean \| string[][] \| undefined` | | | Controls swatches display in the picker: - `true` — show the built-in Material-palette swatches - `string[][]` — show custom swatches (each inner array = a column of shades) - `false` / omitted — no swatches section |
532
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
519
533
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
520
534
 
521
535
  ## Events
@@ -644,6 +644,19 @@ sheet), its events differ from a plain input:
644
644
  />
645
645
  ```
646
646
 
647
+ ### Variants
648
+
649
+ `variant` picks the field box's look and nothing else — height, padding and
650
+ border width are identical across variants. `outline` (default) is the raised
651
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
652
+ border, and `ghost` draws **no border in any state**: a hover wash is the
653
+ affordance, the focus ring still shows, and errors or warnings surface through
654
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
655
+ table cell (`<BbDatePickerInput compact hide-label variant="ghost" />`) — no
656
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
657
+ register through the plugin's `inputVariants` option. The full ladder is in
658
+ the `BbTextInput` guide.
659
+
647
660
  ### Works well with
648
661
 
649
662
  - `BbTextInput` / `BbTextarea` / `BbNumberInput` — same chrome; mix in one form.
@@ -739,6 +752,7 @@ label>')` matches nothing; query each segment by its own label instead. See
739
752
  | `transitionDuration` | `number \| undefined` | | | Transition duration, in milliseconds, for the popover appearance. |
740
753
  | `type` | `DatePickerType \| undefined` | `'date'` | | What the field edits, and therefore its segments and emitted shape. - `date` (default) — `DD/MM/YYYY`. - `datetime` — adds the time segments and the calendar's time rail. - `month` — `MM/YYYY`, emitting `YYYY-MM`. - `year` — `YYYY`, emittin… |
741
754
  | `utc` | `boolean \| undefined` | `false` | | Emits values as UTC ISO strings (`...Z`) instead of ISO strings carrying the local offset (`...+01:00`). Emission-only: incoming values are parsed identically either way, so the prop can be added or removed without touching stored values. F… |
755
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
742
756
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
743
757
 
744
758
  ## Events
@@ -615,6 +615,19 @@ const timeoutSeconds = ref<number | null>(30);
615
615
  />
616
616
  ```
617
617
 
618
+ ### Variants
619
+
620
+ `variant` picks the field box's look and nothing else — height, padding and
621
+ border width are identical across variants. `outline` (default) is the raised
622
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
623
+ border, and `ghost` draws **no border in any state**: a hover wash is the
624
+ affordance, the focus ring still shows, and errors or warnings surface through
625
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
626
+ table cell (`<BbNumberInput compact hide-label variant="ghost" />`) — no
627
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
628
+ register through the plugin's `inputVariants` option. The full ladder is in
629
+ the `BbTextInput` guide.
630
+
618
631
  ### Works well with
619
632
 
620
633
  - `BbSlider` — when a bounded number is better dragged than typed, or pair the
@@ -687,6 +700,7 @@ const timeoutSeconds = ref<number | null>(30);
687
700
  | `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
688
701
  | `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
689
702
  | `step` | `number \| undefined` | | | Incremental unit used in the exposed `increase` and `decrease` functions. It is NOT applied to manual input as a step of 5 would prevent the user from inserting a value like `115` because of rounding down. |
703
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
690
704
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
691
705
 
692
706
  ## Events
@@ -1348,6 +1348,19 @@ Platform notes:
1348
1348
  - The desktop panel is anchored to the control; the mobile sheet manages its
1349
1349
  own backdrop, Escape and focus.
1350
1350
 
1351
+ ### Variants
1352
+
1353
+ `variant` picks the field box's look and nothing else — height, padding and
1354
+ border width are identical across variants. `outline` (default) is the raised
1355
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
1356
+ border, and `ghost` draws **no border in any state**: a hover wash is the
1357
+ affordance, the focus ring still shows, and errors or warnings surface through
1358
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
1359
+ table cell (`<BbSelect compact hide-label variant="ghost" />`) — no
1360
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
1361
+ register through the plugin's `inputVariants` option. The full ladder is in
1362
+ the `BbTextInput` guide.
1363
+
1351
1364
  ### Works well with
1352
1365
 
1353
1366
  - `BbSelectPopover` — the same engine on a custom trigger (status pills,
@@ -1494,6 +1507,7 @@ Platform notes:
1494
1507
  | `selectedLabelsFn` | `((count: number) => string) \| undefined` | | | Function that returns a string to be displayed when the number of selected labels is greater than `maxSelectedLabels`. |
1495
1508
  | `stash` | `boolean \| undefined` | `false` | | Adds a stash to accumulate selected values across searches. |
1496
1509
  | `transitionDuration` | `number \| undefined` | `250` | | How long the transition has to last in milliseconds. |
1510
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
1497
1511
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
1498
1512
 
1499
1513
  ## Events
package/dist/ai/BbTag.md CHANGED
@@ -287,6 +287,19 @@ const topics = ref<string[]>(['Product updates', 'Engineering', 'Design']);
287
287
  with `errors` / `has-errors` for validation messaging; the input exposes
288
288
  `aria-invalid` in the error state.
289
289
 
290
+ ### Variants
291
+
292
+ `variant` picks the field box's look and nothing else — height, padding and
293
+ border width are identical across variants. `outline` (default) is the raised
294
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
295
+ border, and `ghost` draws **no border in any state**: a hover wash is the
296
+ affordance, the focus ring still shows, and errors or warnings surface through
297
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
298
+ table cell (`<BbTag compact hide-label variant="ghost" />`) — no
299
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
300
+ register through the plugin's `inputVariants` option. The full ladder is in
301
+ the `BbTextInput` guide.
302
+
290
303
  ### Works well with
291
304
 
292
305
  - `BbSelect` — when the values come from a known list instead of free text.
@@ -379,6 +392,7 @@ only sets the label's text alignment.
379
392
  | `readonly` | `boolean \| undefined` | `false` | | Sets the input in a readonly state. |
380
393
  | `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
381
394
  | `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
395
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
382
396
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
383
397
 
384
398
  ## Events
@@ -617,6 +617,47 @@ const barcode = ref<string | null>('0 12345 67890 5');
617
617
  </script>
618
618
  ```
619
619
 
620
+ ### Variants
621
+
622
+ `variant` picks the field box's look — and only its look. Height, padding and
623
+ border width are identical across variants, so mixing them in one view never
624
+ reflows anything. The names and tokens are the `BbButton` ones, so a page
625
+ reads one vocabulary for buttons and fields:
626
+
627
+ - **`outline`** (default) — the raised panel with the neutral border.
628
+ - **`secondary`** — a soft tinted surface with a faint border; fields that
629
+ should sit back on a busy panel.
630
+ - **`ghost`** — no border in **any** state, a hover wash as the affordance,
631
+ and the same wash under the focus ring (a ring around nothing reads as a
632
+ glitch). Errors and warnings do not tint it; the icon and
633
+ the message carry the state. This is the inline-edit table cell: the field
634
+ reads as text at rest and needs no `:deep()` to get there.
635
+ - **`none`** — structure only: every colour transparent and **no focus
636
+ ring**. An escape hatch for a fully custom look; prefer registering a
637
+ variant, which keeps the ring.
638
+
639
+ **The variant ladder**
640
+
641
+ ```vue
642
+ <template>
643
+ <div class="grid gap-3 sm:grid-cols-3">
644
+ <BbTextInput label="Outline" model-value="Ada Lovelace" />
645
+ <BbTextInput
646
+ label="Secondary"
647
+ model-value="Ada Lovelace"
648
+ variant="secondary"
649
+ />
650
+ <BbTextInput label="Ghost" model-value="Ada Lovelace" variant="ghost" />
651
+ </div>
652
+ </template>
653
+ ```
654
+
655
+ `variant` is the same prop on `BbTextarea`, `BbNumberInput`, `BbSelect`,
656
+ `BbTag`, `BbDatePickerInput`, `BbTimePickerInput` and `BbColorInput`. Extra
657
+ names are registered through the plugin's `inputVariants` option and styled
658
+ as a token block on `common-input-wrapper--<name>` — see the installation
659
+ guide.
660
+
620
661
  ### Global config & platforms
621
662
 
622
663
  - `config.defaultInputLabelMode` — project-wide default for `labelMode`
@@ -874,7 +915,7 @@ const formattedTotal = computed(() =>
874
915
  | `hideLabel` | `boolean \| undefined` | `false` | | Visually hides the label of the input while maintaining accessibility. |
875
916
  | `hint` | `string \| undefined` | | | Text box to be displayed near the input, usually to indicate instructions. |
876
917
  | `id` | `string \| undefined` | | | The identifier of the component. |
877
- | `inputMode` | `"text" \| "search" \| "email" \| "url" \| "tel" \| "none" \| "numeric" \| "decimal" \| undefined` | | | The inputmode of the input. |
918
+ | `inputMode` | `"text" \| "none" \| "search" \| "email" \| "url" \| "tel" \| "numeric" \| "decimal" \| undefined` | | | The inputmode of the input. |
878
919
  | `label` | `string` | | yes | Text content of the label of the element. |
879
920
  | `labelMode` | `"floating" \| "outside" \| "inside" \| undefined` | | | Label rendering mode. |
880
921
  | `labelPosition` | `"left" \| "center" \| "right" \| undefined` | | | Sets the text alignment of the label. |
@@ -889,6 +930,7 @@ const formattedTotal = computed(() =>
889
930
  | `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
890
931
  | `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
891
932
  | `type` | `"text" \| "search" \| "email" \| "url" \| "tel" \| "password" \| undefined` | | | Type of the input. Restricted to the textual input types this component supports — use `BbNumberInput` for numbers and `BbDatePickerInput` for dates. |
933
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
892
934
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
893
935
 
894
936
  ## Events
@@ -745,6 +745,19 @@ comment composer above).
745
745
  />
746
746
  ```
747
747
 
748
+ ### Variants
749
+
750
+ `variant` picks the field box's look and nothing else — height, padding and
751
+ border width are identical across variants. `outline` (default) is the raised
752
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
753
+ border, and `ghost` draws **no border in any state**: a hover wash is the
754
+ affordance, the focus ring still shows, and errors or warnings surface through
755
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
756
+ table cell (`<BbTextarea compact hide-label variant="ghost" />`) — no
757
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
758
+ register through the plugin's `inputVariants` option. The full ladder is in
759
+ the `BbTextInput` guide.
760
+
748
761
  ### Works well with
749
762
 
750
763
  - `BbTextInput` / `BbNumberInput` / `BbDatePickerInput` — same chrome and
@@ -823,6 +836,7 @@ comment composer above).
823
836
  | `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
824
837
  | `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
825
838
  | `rows` | `string \| number \| undefined` | | | Sets the number of visible text lines for the control. |
839
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
826
840
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
827
841
 
828
842
  ## Events
@@ -101,6 +101,19 @@ interaction.
101
101
  | `active`/`inactive` | — | focus enters / leaves the whole control |
102
102
  | `focus` | `FocusEvent` | a native field gains focus |
103
103
 
104
+ ### Variants
105
+
106
+ `variant` picks the field box's look and nothing else — height, padding and
107
+ border width are identical across variants. `outline` (default) is the raised
108
+ panel with the neutral border, `secondary` a soft tinted surface with a faint
109
+ border, and `ghost` draws **no border in any state**: a hover wash is the
110
+ affordance, the focus ring still shows, and errors or warnings surface through
111
+ the icon and the message rather than a tinted edge. `ghost` is the inline-edit
112
+ table cell (`<BbTimePickerInput compact hide-label variant="ghost" />`) — no
113
+ `:deep()` needed. The names and tokens are the `BbButton` ones; extra names
114
+ register through the plugin's `inputVariants` option. The full ladder is in
115
+ the `BbTextInput` guide.
116
+
104
117
  ### Gotchas & anti-patterns
105
118
 
106
119
  - **Don't parse the value with `new Date('14:30')`** — it's a wall-clock
@@ -165,6 +178,7 @@ Messages _also_ render in an `aria-live="polite"` region.
165
178
  | `seconds` | `boolean \| undefined` | `false` | | Adds the seconds segment. Without it an incoming value carrying seconds displays truncated and zeroes out on the next user commit. |
166
179
  | `step` | `number \| undefined` | `1` | | Minute granularity for the minute column and its arrow stepping. Constrains what the columns produce, never what typing accepts. |
167
180
  | `transitionDuration` | `number \| undefined` | | | Transition duration, in milliseconds, for the popover appearance. |
181
+ | `variant` | `InputVariantType \| undefined` | `'outline'` | | Visual variant of the field box — the same names and tokens as the `BbButton` variants. Colours only: height, padding and border width are identical across variants, so a form never reflows when one changes. `'ghost'` has no border in any s… |
168
182
  | `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-text-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are… |
169
183
 
170
184
  ## Events
@@ -25,6 +25,7 @@
25
25
  | `preventFocus` | `boolean \| undefined` | `false` | | Prevents the wrapper from focusing the inner input on click. |
26
26
  | `readonly` | `boolean \| undefined` | `false` | | Whether the input is readonly. |
27
27
  | `reserveAppendSpace` | `boolean \| undefined` | `false` | | Keeps trailing action/icon space reserved even when currently empty. |
28
+ | `variant` | `InputVariantType \| undefined` | `"outline"` | | Visual variant of the field box. Controls colours only — background, border colour, focus border — while height, padding and border WIDTH stay identical across variants, so switching one never reflows a form. Mirrors the equally named `BbBu… |
28
29
 
29
30
  ## Events
30
31
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "library": "bitboss-ui",
4
- "version": "3.0.0-beta.22",
4
+ "version": "3.0.0-beta.23",
5
5
  "upgrade": "v2-to-v3",
6
6
  "guide": "ai/guides/migration/v2-to-v3.md",
7
7
  "releases": [
@@ -35,7 +35,8 @@
35
35
  "3.0.0-beta.19",
36
36
  "3.0.0-beta.20",
37
37
  "3.0.0-beta.21",
38
- "3.0.0-beta.22"
38
+ "3.0.0-beta.22",
39
+ "3.0.0-beta.23"
39
40
  ],
40
41
  "summary": {
41
42
  "renames": 9,