bitboss-ui 3.0.0-beta.52 → 3.0.0-beta.53

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 (86) hide show
  1. package/bin/bitboss-ui-mcp.mjs +16 -8
  2. package/dist/ai/BbBadge.md +3 -2
  3. package/dist/ai/BbColorPalette.md +4 -3
  4. package/dist/ai/BbDatePicker.md +1 -1
  5. package/dist/ai/BbDropdown.md +6 -2
  6. package/dist/ai/BbForm.md +25 -17
  7. package/dist/ai/BbHoverCard.md +1 -1
  8. package/dist/ai/BbPopover.md +5 -3
  9. package/dist/ai/BbSelectPopover.md +1 -1
  10. package/dist/ai/BbTable.md +120 -28
  11. package/dist/ai/BbTimePicker.md +1 -1
  12. package/dist/ai/BbTooltip.md +1 -1
  13. package/dist/ai/CommonPopover.md +1 -1
  14. package/dist/ai/changelog.json +52 -3
  15. package/dist/ai/components.json +14 -14
  16. package/dist/ai/guides/component-picker.md +1 -1
  17. package/dist/ai/guides/migration/from-async-validator.md +60 -46
  18. package/dist/ai/guides/migration/v2-to-v3.md +24 -0
  19. package/dist/ai/guides/options-items-playbook.md +5 -5
  20. package/dist/ai/guides/validated-forms.md +19 -8
  21. package/dist/ai/helpers/inertia/manifest.json +1 -1
  22. package/dist/ai/manifest/components/BbBadge.json +1 -1
  23. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  24. package/dist/ai/manifest/components/BbDatePicker.json +1 -1
  25. package/dist/ai/manifest/components/BbDropdown.json +1 -1
  26. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  27. package/dist/ai/manifest/components/BbPopover.json +1 -1
  28. package/dist/ai/manifest/components/BbSelectPopover.json +1 -1
  29. package/dist/ai/manifest/components/BbTable.json +4 -4
  30. package/dist/ai/manifest/components/BbTable.tree.json +18 -0
  31. package/dist/ai/manifest/components/BbTimePicker.json +1 -1
  32. package/dist/ai/manifest/components/BbTooltip.json +1 -1
  33. package/dist/ai/manifest/components/CommonPopover.json +1 -1
  34. package/dist/ai/manifest/index.json +2 -2
  35. package/dist/ai/manifest/types.api.json +1 -1
  36. package/dist/ai/recipes/inertia/approvals-inbox.md +1 -1
  37. package/dist/ai/recipes/nuxt/approvals-inbox.md +1 -1
  38. package/dist/ai/recipes/vue/approvals-inbox.md +1 -1
  39. package/dist/ai/source/BbBadge.md +3 -4
  40. package/dist/ai/source/BbBadgeButton.md +3 -4
  41. package/dist/ai/source/BbColorPalette.md +3 -1
  42. package/dist/ai/source/BbDatePicker.md +4 -1
  43. package/dist/ai/source/BbDropdown.md +5 -3
  44. package/dist/ai/source/BbDropdownGroup.md +5 -3
  45. package/dist/ai/source/BbHoverCard.md +3 -2
  46. package/dist/ai/source/BbHoverCardPortal.md +3 -2
  47. package/dist/ai/source/BbPopover.md +3 -2
  48. package/dist/ai/source/BbPopoverPortal.md +3 -2
  49. package/dist/ai/source/BbSelectPopover.md +3 -1
  50. package/dist/ai/source/BbTable.md +315 -59
  51. package/dist/ai/source/BbTimePicker.md +4 -1
  52. package/dist/ai/source/BbTooltip.md +3 -2
  53. package/dist/ai/source/CommonPopover.md +11 -8
  54. package/dist/components/BbBadge/types.d.ts +3 -4
  55. package/dist/components/BbColorPalette/types.d.ts +3 -1
  56. package/dist/components/BbDatePicker/types.d.ts +4 -1
  57. package/dist/components/BbDropdown/types.d.ts +5 -3
  58. package/dist/components/BbHoverCard/types.d.ts +3 -2
  59. package/dist/components/BbPopover/types.d.ts +3 -2
  60. package/dist/components/BbSelectPopover/types.d.ts +3 -1
  61. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +931 -891
  62. package/dist/components/BbTable/BbTableDataRow.js +76 -78
  63. package/dist/components/BbTable/types.d.ts +21 -6
  64. package/dist/components/BbTable/useRowReorder.js +217 -195
  65. package/dist/components/BbTable/utils.d.ts +21 -0
  66. package/dist/components/BbTable/utils.js +19 -16
  67. package/dist/components/BbTable/warroom/harness.d.ts +7 -0
  68. package/dist/components/BbTimePicker/types.d.ts +4 -1
  69. package/dist/components/BbTooltip/types.d.ts +3 -2
  70. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +1 -1
  71. package/dist/components/CommonPopover/types.d.ts +4 -4
  72. package/dist/composables/useBaseOptions.d.ts +3 -3
  73. package/dist/composables/useBaseOptions.js +11 -11
  74. package/dist/composables/useItemText.d.ts +5 -0
  75. package/dist/composables/useItemText.js +14 -14
  76. package/dist/composables/useItemValue.js +9 -9
  77. package/dist/composables/useItemsGetter.js +55 -51
  78. package/dist/composables/useSegmentedFields.js +6 -1
  79. package/dist/composables/useTableWidthContext.d.ts +6 -0
  80. package/dist/composables/useTableWidthContext.js +2 -1
  81. package/dist/llms-full.txt +281 -124
  82. package/dist/llms-medium.txt +1 -1
  83. package/dist/styles.css +2 -2
  84. package/dist/utils/versionCheck.js +1 -1
  85. package/package.json +2 -1
  86. package/scripts/lib/hand-roll-hints.mjs +11 -2
@@ -134,7 +134,12 @@ const resolveBoundary = (
134
134
  return extractDomContainer(boundary) ?? undefined;
135
135
  };
136
136
 
137
- // Positioning boundary: keeps flip/shift inside these bounds.
137
+ // Positioning boundary: `shift` keeps the bubble inside it alongside the
138
+ // anchor (sideways under a menu, up/down beside a submenu). `flip` never reads
139
+ // it: the bubble is in the top layer, so nothing clips it at a container's
140
+ // edge, and flipping there only moved a table's last-row menu above its row.
141
+ // Away from the anchor the bubble may pass the boundary; `flip` still turns it
142
+ // at the viewport (the clipping ancestors).
138
143
  const boundaryElement = computed(() => resolveBoundary(props.boundary));
139
144
  // Sizing boundary: measured by `size` for availableHeight/Width. Undefined lets
140
145
  // floating-ui fall back to clippingAncestors (the viewport) so a short
@@ -168,9 +173,7 @@ const middleware = computed(() => {
168
173
  const boundary = boundaryElement.value;
169
174
  const overflowBoundary = overflowBoundaryElement.value;
170
175
  return [
171
- ...(props.disableFlip
172
- ? []
173
- : [flipMiddleware(boundary ? { boundary } : undefined)]),
176
+ ...(props.disableFlip ? [] : [flipMiddleware()]),
174
177
  offset(props.offset),
175
178
  shift({ padding: props.padding, ...(boundary ? { boundary } : {}) }),
176
179
  sizeMiddleware({
@@ -629,10 +632,10 @@ export type CommonPopoverProps = {
629
632
  */
630
633
  anchor?: any;
631
634
  /**
632
- * Constrains the popover's placement (`flip` / `shift` keep it inside); it
633
- * never clamps the size, so a short boundary never collapses the bubble:
634
- * use `overflowBoundary` for that. An HTMLElement, a component ref or a CSS
635
- * selector.
635
+ * Keeps the popover inside this element alongside its anchor (sideways
636
+ * above or below, vertically beside it); away from the anchor it may pass
637
+ * the edge, and only the viewport flips it. It never clamps the size
638
+ * (that is `overflowBoundary`). An HTMLElement, component ref or selector.
636
639
  */
637
640
  boundary?: HTMLElement | Record<string, any> | string | null;
638
641
  /**
@@ -78,10 +78,9 @@ export type BbBadgeProps = {
78
78
  size?: keyof Sizes;
79
79
  /**
80
80
  * Visual variant: `primary`, `secondary`, `destructive`, or `outline`.
81
- * Register more via the vite plugin `badgeVariants` option and style
82
- * `.bb-badge--<variant>` (set `--bg` / `--fg`). `'none'` renders no
83
- * variant class — an escape hatch for a one-off look set through `--bg` /
84
- * `--fg` on the element.
81
+ * Status colours are a registration (vite plugin `badgeVariants`, the
82
+ * `soft-*` palette in design-language.md) styled as `.bb-badge--<variant>`.
83
+ * `'none'` renders no variant class: set `--bg` / `--fg` on the element.
85
84
  * @defaultValue `'primary'`
86
85
  */
87
86
  variant?: BadgeVariantType;
@@ -78,7 +78,9 @@ export type BbColorPaletteProps = {
78
78
  */
79
79
  anchor?: ElementOrComponentRef;
80
80
  /**
81
- * Constrains the popover within a bounding element.
81
+ * Constrains the popover within a bounding element: it stays inside it
82
+ * alongside its trigger (sideways for a popover above or below); away from
83
+ * the trigger it may pass the edge, and it flips at the viewport only.
82
84
  * Accepts an HTMLElement, a Vue component ref, or a CSS selector string.
83
85
  */
84
86
  boundary?: ElementOrComponentRefOrSelector;
@@ -183,7 +183,10 @@ export type BbDatePickerProps = {
183
183
  offset?: number;
184
184
  /** Minimum empty space to keep from the edge of the page. */
185
185
  padding?: number;
186
- /** Constrains the popover within a bounding element or CSS selector. */
186
+ /**
187
+ * Constrains the popover within a bounding element or CSS selector:
188
+ * sideways only, alongside the trigger; it flips at the viewport.
189
+ */
187
190
  boundary?: ElementOrComponentRefOrSelector;
188
191
  /** Disable the automatic flip to the opposite side on overflow. */
189
192
  disableFlip?: boolean;
@@ -251,7 +251,7 @@ export type InternalGroup = DropdownEntryBase & {
251
251
  items: Array<InternalItem | InternalItem[]> | any[] | DropdownGroupItemsGetter;
252
252
  /**
253
253
  * Pipeline groups only. Path/getter producing each item's display text
254
- * (a string item is its own text).
254
+ * (a primitive item is its own text; a getter still maps it).
255
255
  *
256
256
  * Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
257
257
  *
@@ -586,8 +586,10 @@ export type BbDropdownProps = {
586
586
  */
587
587
  anchor?: HTMLElement | Record<string, any> | null;
588
588
  /**
589
- * Constrains the dropdown within a bounding element.
590
- * Accepts an HTMLElement, a Vue component ref, or a CSS selector string.
589
+ * Keeps the panel inside this element alongside its trigger (sideways for
590
+ * a menu above or below); away from the trigger it may pass the edge, and
591
+ * only the viewport flips it. An HTMLElement, a component ref or a CSS
592
+ * selector: a `useTemplateRef`, never `$refs.x` (not reactive).
591
593
  */
592
594
  boundary?: HTMLElement | Record<string, any> | string | null;
593
595
  /**
@@ -42,8 +42,9 @@ export type BbHoverCardProps = {
42
42
  */
43
43
  activator?: ElementOrComponentRef;
44
44
  /**
45
- * Constrains the card within a bounding element.
46
- * When provided, the card will not overflow this container's bounds (e.g. a sidebar).
45
+ * Constrains the card within a bounding element: it stays inside it
46
+ * alongside its trigger (sideways for a card above or below); away from
47
+ * the trigger it may pass the edge, and it flips at the viewport only.
47
48
  * Accepts an HTMLElement, a Vue component ref, or a CSS selector string.
48
49
  */
49
50
  boundary?: ElementOrComponentRefOrSelector;
@@ -54,8 +54,9 @@ export type BbPopoverProps = {
54
54
  */
55
55
  adaptive?: boolean;
56
56
  /**
57
- * Constrains the popover within a bounding element.
58
- * When provided, the popover will not overflow this container's bounds (e.g. a sidebar).
57
+ * Constrains the popover within a bounding element: it stays inside it
58
+ * alongside its trigger (sideways for a popover above or below); away from
59
+ * the trigger it may pass the edge, and it flips at the viewport only.
59
60
  * Accepts an HTMLElement, a Vue component ref, or a CSS selector string.
60
61
  */
61
62
  boundary?: ElementOrComponentRefOrSelector;
@@ -143,7 +143,9 @@ export type BbSelectPopoverProps<Item> = {
143
143
  */
144
144
  autocomplete?: InputHTMLAttributes['autocomplete'];
145
145
  /**
146
- * Constrains the popover to a specific boundary element.
146
+ * Constrains the popover to a specific boundary element: it stays inside
147
+ * it alongside its trigger (sideways for a popover above or below); away
148
+ * from the trigger it may pass the edge, and it flips at the viewport only.
147
149
  */
148
150
  boundary?: HTMLElement | Record<string, any> | string | null;
149
151
  /**