bitboss-ui 3.0.0-beta.21 → 3.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -3
- package/bin/bitboss-ui-mcp.mjs +419 -9
- package/bin/bitboss-ui.mjs +293 -22
- package/dist/ai/BbAccordion.md +21 -23
- package/dist/ai/BbAlert.md +6 -12
- package/dist/ai/BbAvatar.md +60 -24
- package/dist/ai/BbBadge.md +12 -20
- package/dist/ai/BbBaseButton.md +14 -16
- package/dist/ai/BbBaseCheckboxIcon.md +6 -10
- package/dist/ai/BbBaseRadioIcon.md +6 -10
- package/dist/ai/BbBaseSwitchIcon.md +5 -9
- package/dist/ai/BbBreadcrumbs.md +23 -34
- package/dist/ai/BbButton.md +35 -47
- package/dist/ai/BbCheckbox.md +21 -37
- package/dist/ai/BbCheckboxGroup.md +13 -13
- package/dist/ai/BbCollapsible.md +14 -26
- package/dist/ai/BbColorInput.md +13 -23
- package/dist/ai/BbColorPalette.md +23 -35
- package/dist/ai/BbConfirm.md +17 -32
- package/dist/ai/BbDatePickerInput.md +15 -21
- package/dist/ai/BbDialog.md +159 -62
- package/dist/ai/BbDropdown.md +21 -25
- package/dist/ai/BbDropdownButton.md +13 -30
- package/dist/ai/BbDropzone.md +9 -11
- package/dist/ai/BbIcon.md +44 -33
- package/dist/ai/BbIndicator.md +2 -2
- package/dist/ai/BbNumberInput.md +18 -20
- package/dist/ai/BbOffCanvas.md +42 -42
- package/dist/ai/BbPagination.md +21 -23
- package/dist/ai/BbPopover.md +15 -17
- package/dist/ai/BbProgress.md +40 -51
- package/dist/ai/BbRadio.md +9 -9
- package/dist/ai/BbRadioGroup.md +7 -11
- package/dist/ai/BbRating.md +8 -12
- package/dist/ai/BbSelect.md +32 -36
- package/dist/ai/BbSelectPopover.md +19 -31
- package/dist/ai/BbSlider.md +15 -19
- package/dist/ai/BbSmoothHeight.md +16 -31
- package/dist/ai/BbSpinner.md +118 -74
- package/dist/ai/BbSwitch.md +25 -18
- package/dist/ai/BbSwitchGroup.md +9 -14
- package/dist/ai/BbTable.md +102 -55
- package/dist/ai/BbTabs.md +59 -82
- package/dist/ai/BbTag.md +12 -23
- package/dist/ai/BbTextInput.md +20 -26
- package/dist/ai/BbTextarea.md +28 -34
- package/dist/ai/BbToast.md +14 -34
- package/dist/ai/BbTooltip.md +22 -20
- package/dist/ai/BbTree.md +46 -72
- package/dist/ai/changelog.json +169 -62
- package/dist/ai/components.json +1467 -9
- package/dist/ai/composables/useConfirm.md +5 -2
- package/dist/ai/composables/useToast.md +4 -2
- package/dist/ai/guides/agent-contract.md +7 -4
- package/dist/ai/guides/ai-router.md +37 -22
- package/dist/ai/guides/component-picker.md +23 -18
- package/dist/ai/guides/design-language.md +141 -13
- package/dist/ai/guides/design-tokens.md +29 -4
- package/dist/ai/guides/icons-policy.md +46 -21
- package/dist/ai/guides/installation-and-plugin-setup.md +253 -17
- package/dist/ai/guides/migration/components/bb-rating.md +26 -1
- package/dist/ai/guides/migration/components/bb-tooltip.md +18 -0
- package/dist/ai/guides/migration/v2-to-v3.md +50 -23
- package/dist/ai/index.md +1 -1
- package/dist/ai/recipes/inertia/approvals-inbox.md +3 -3
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/inertia/onboarding.md +2 -2
- package/dist/ai/recipes/inertia/ownership-atlas.md +6 -6
- package/dist/ai/recipes/inertia/record-form.md +5 -5
- package/dist/ai/recipes/inertia/records-workspace.md +4 -4
- package/dist/ai/recipes/inertia/upload-center.md +6 -6
- package/dist/ai/recipes/inertia/wizard-form.md +5 -5
- package/dist/ai/recipes/nuxt/approvals-inbox.md +3 -3
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/nuxt/onboarding.md +2 -2
- package/dist/ai/recipes/nuxt/record-form.md +5 -5
- package/dist/ai/recipes/nuxt/records-workspace.md +4 -4
- package/dist/ai/recipes/nuxt/upload-center.md +6 -6
- package/dist/ai/recipes/nuxt/wizard-form.md +5 -5
- package/dist/ai/recipes/vue/approvals-inbox.md +3 -3
- package/dist/ai/recipes/vue/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/vue/onboarding.md +2 -2
- package/dist/ai/recipes/vue/record-form.md +10 -10
- package/dist/ai/recipes/vue/records-workspace.md +4 -4
- package/dist/ai/recipes/vue/upload-center.md +6 -6
- package/dist/ai/recipes/vue/wizard-form.md +5 -5
- package/dist/ai/source/BbBadge.md +1 -1
- package/dist/ai/source/BbBaseCheckbox.md +1 -1
- package/dist/ai/source/BbBaseDatePicker.md +5 -5
- package/dist/ai/source/BbBaseDatePickerInput.md +2 -2
- package/dist/ai/source/BbBaseRadio.md +1 -1
- package/dist/ai/source/BbBaseRating.md +5 -5
- package/dist/ai/source/BbBaseSelect.md +1 -1
- package/dist/ai/source/BbBaseSlider.md +5 -5
- package/dist/ai/source/BbBaseSwitch.md +1 -1
- package/dist/ai/source/BbBaseTimePickerInput.md +1 -1
- package/dist/ai/source/BbBreadcrumbs.md +20 -1
- package/dist/ai/source/BbButton.md +2 -2
- package/dist/ai/source/BbDialog.md +39 -8
- package/dist/ai/source/BbDropdown.md +1 -1
- package/dist/ai/source/BbDropzone.md +5 -5
- package/dist/ai/source/BbIcon.md +23 -10
- package/dist/ai/source/BbOffCanvas.md +50 -28
- package/dist/ai/source/BbPagination.md +2 -2
- package/dist/ai/source/BbPopover.md +12 -1
- package/dist/ai/source/BbSelectPopover.md +45 -7
- package/dist/ai/source/BbSpinner.md +2 -2
- package/dist/ai/source/BbTable.md +11 -11
- package/dist/ai/source/BbTooltip.md +57 -10
- package/dist/ai/source/ChipsBox.md +1 -1
- package/dist/ai/source/CommaBox.md +1 -1
- package/dist/ai/source/GuidesComponent.md +14 -7
- package/dist/ai/source/OptionsContainer.md +1 -1
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.d.ts +1 -1
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +71 -71
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +102 -97
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +58 -58
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +33 -35
- package/dist/components/BbIcon/iconCache.d.ts +30 -0
- package/dist/components/BbIcon/iconCache.js +21 -3
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +57 -56
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +138 -138
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +43 -43
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbSpinner/types.d.ts +1 -1
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbTable/BbTableDataRow.js +2 -2
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +62 -62
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +81 -78
- package/dist/components/BbTooltip/types.d.ts +8 -1
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/composables/useConfirm.d.ts +22 -0
- package/dist/composables/useConfirm.js +43 -40
- package/dist/composables/useSafeAreaInternal.js +1 -1
- package/dist/composables/useToast.d.ts +16 -0
- package/dist/composables/useToast.js +20 -16
- package/dist/composables/useViewportWidth.d.ts +20 -6
- package/dist/composables/useViewportWidth.js +8 -7
- package/dist/icon-scan.d.ts +276 -0
- package/dist/icon-scan.js +485 -0
- package/dist/icons-whitelist.d.ts +5 -4
- package/dist/llms-full.txt +1979 -1527
- package/dist/llms-medium.txt +461 -74
- package/dist/llms.txt +1 -1
- package/dist/nuxt.js +10 -7
- package/dist/plugin.js +1 -0
- package/dist/runtime/nuxt-plugin.js +2 -1
- package/dist/styles.css +1 -1
- package/dist/types/Config.d.ts +18 -0
- package/dist/utils/cssLayers.d.ts +91 -0
- package/dist/utils/cssLayers.js +43 -0
- package/dist/utils/injectLibraryStyles.d.ts +3 -1
- package/dist/utils/injectLibraryStyles.js +24 -23
- package/dist/vite-plugin.d.ts +74 -11
- package/dist/vite.js +292 -253
- package/llms.txt +1 -1
- package/package.json +7 -5
- package/scripts/lib/ensure-manifest.mjs +28 -5
- package/scripts/lib/eslint-plugin.d.ts +35 -0
- package/scripts/lib/eslint-plugin.mjs +299 -3
- package/scripts/lib/hand-roll-hints.mjs +50 -6
- package/scripts/lib/html-attributes.mjs +42 -0
- package/scripts/lib/mcp-config.mjs +38 -34
- package/scripts/lib/public-type-exports.mjs +246 -0
- package/scripts/lib/validate-bb-markup.mjs +205 -12
package/dist/ai/changelog.json
CHANGED
|
@@ -1,12 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
2
|
+
"schemaVersion": 2,
|
|
3
3
|
"library": "bitboss-ui",
|
|
4
|
-
"version": "3.0.0-beta.
|
|
4
|
+
"version": "3.0.0-beta.22",
|
|
5
5
|
"upgrade": "v2-to-v3",
|
|
6
6
|
"guide": "ai/guides/migration/v2-to-v3.md",
|
|
7
|
+
"releases": [
|
|
8
|
+
"3.0.0-alpha.1",
|
|
9
|
+
"3.0.0-alpha.2",
|
|
10
|
+
"3.0.0-alpha.3",
|
|
11
|
+
"3.0.0-alpha.4",
|
|
12
|
+
"3.0.0-alpha.5",
|
|
13
|
+
"3.0.0-alpha.6",
|
|
14
|
+
"3.0.0-alpha.7",
|
|
15
|
+
"3.0.0-alpha.8",
|
|
16
|
+
"3.0.0-alpha.9",
|
|
17
|
+
"3.0.0-beta.0",
|
|
18
|
+
"3.0.0-beta.1",
|
|
19
|
+
"3.0.0-beta.2",
|
|
20
|
+
"3.0.0-beta.3",
|
|
21
|
+
"3.0.0-beta.4",
|
|
22
|
+
"3.0.0-beta.5",
|
|
23
|
+
"3.0.0-beta.6",
|
|
24
|
+
"3.0.0-beta.7",
|
|
25
|
+
"3.0.0-beta.8",
|
|
26
|
+
"3.0.0-beta.9",
|
|
27
|
+
"3.0.0-beta.10",
|
|
28
|
+
"3.0.0-beta.11",
|
|
29
|
+
"3.0.0-beta.12",
|
|
30
|
+
"3.0.0-beta.13",
|
|
31
|
+
"3.0.0-beta.15",
|
|
32
|
+
"3.0.0-beta.16",
|
|
33
|
+
"3.0.0-beta.17",
|
|
34
|
+
"3.0.0-beta.18",
|
|
35
|
+
"3.0.0-beta.19",
|
|
36
|
+
"3.0.0-beta.20",
|
|
37
|
+
"3.0.0-beta.21",
|
|
38
|
+
"3.0.0-beta.22"
|
|
39
|
+
],
|
|
7
40
|
"summary": {
|
|
8
41
|
"renames": 9,
|
|
9
|
-
"behaviourBreaks":
|
|
42
|
+
"behaviourBreaks": 52,
|
|
43
|
+
"unreleased": 0
|
|
10
44
|
},
|
|
11
45
|
"breaking": [
|
|
12
46
|
{
|
|
@@ -17,7 +51,8 @@
|
|
|
17
51
|
"from": "querykey",
|
|
18
52
|
"to": "queryKey",
|
|
19
53
|
"since": "2026-07-15, unreleased",
|
|
20
|
-
"default": "'page'"
|
|
54
|
+
"default": "'page'",
|
|
55
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
21
56
|
},
|
|
22
57
|
{
|
|
23
58
|
"kind": "rename",
|
|
@@ -28,7 +63,8 @@
|
|
|
28
63
|
"from": "querykey",
|
|
29
64
|
"to": "queryKey",
|
|
30
65
|
"since": "2026-07-15, unreleased",
|
|
31
|
-
"default": "'tab'"
|
|
66
|
+
"default": "'tab'",
|
|
67
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
32
68
|
},
|
|
33
69
|
{
|
|
34
70
|
"kind": "rename",
|
|
@@ -38,7 +74,8 @@
|
|
|
38
74
|
"from": "direction",
|
|
39
75
|
"to": "side",
|
|
40
76
|
"since": "2026-07-19, unreleased",
|
|
41
|
-
"default": "'left'"
|
|
77
|
+
"default": "'left'",
|
|
78
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
42
79
|
},
|
|
43
80
|
{
|
|
44
81
|
"kind": "rename",
|
|
@@ -48,7 +85,8 @@
|
|
|
48
85
|
"from": "hidePopover",
|
|
49
86
|
"to": "disableCalendar",
|
|
50
87
|
"since": "2026-07-23, unreleased",
|
|
51
|
-
"default": "false"
|
|
88
|
+
"default": "false",
|
|
89
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
52
90
|
},
|
|
53
91
|
{
|
|
54
92
|
"kind": "rename",
|
|
@@ -59,7 +97,8 @@
|
|
|
59
97
|
"from": "datetime",
|
|
60
98
|
"to": "type",
|
|
61
99
|
"since": "2026-08-05, unreleased",
|
|
62
|
-
"default": "'date'"
|
|
100
|
+
"default": "'date'",
|
|
101
|
+
"firstReleasedIn": "3.0.0-alpha.5"
|
|
63
102
|
},
|
|
64
103
|
{
|
|
65
104
|
"kind": "rename",
|
|
@@ -70,7 +109,8 @@
|
|
|
70
109
|
"from": "enabledWhileLoading",
|
|
71
110
|
"to": "interactiveWhileLoading",
|
|
72
111
|
"since": "2026-07-24, unreleased",
|
|
73
|
-
"default": "false"
|
|
112
|
+
"default": "false",
|
|
113
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
74
114
|
},
|
|
75
115
|
{
|
|
76
116
|
"kind": "rename",
|
|
@@ -80,7 +120,8 @@
|
|
|
80
120
|
"from": "canvasProps",
|
|
81
121
|
"to": "offCanvasProps",
|
|
82
122
|
"since": "2026-07-19, unreleased",
|
|
83
|
-
"default": "{}"
|
|
123
|
+
"default": "{}",
|
|
124
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
84
125
|
},
|
|
85
126
|
{
|
|
86
127
|
"kind": "rename",
|
|
@@ -94,7 +135,8 @@
|
|
|
94
135
|
"from": "offcanvasProps",
|
|
95
136
|
"to": "offCanvasProps",
|
|
96
137
|
"since": "2026-07-19, unreleased",
|
|
97
|
-
"default": "{}"
|
|
138
|
+
"default": "{}",
|
|
139
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
98
140
|
},
|
|
99
141
|
{
|
|
100
142
|
"kind": "rename",
|
|
@@ -104,307 +146,372 @@
|
|
|
104
146
|
"from": "total",
|
|
105
147
|
"to": "totalItems",
|
|
106
148
|
"since": "2026-08-06, unreleased",
|
|
107
|
-
"default": "0"
|
|
149
|
+
"default": "0",
|
|
150
|
+
"firstReleasedIn": "3.0.0-alpha.5"
|
|
108
151
|
},
|
|
109
152
|
{
|
|
110
153
|
"kind": "behaviour",
|
|
111
154
|
"description": "Variant types locked to registries (8 components); IconRegistry export removed",
|
|
112
155
|
"ruling": "A#5",
|
|
113
|
-
"guide": "v2-to-v3.md §variants"
|
|
156
|
+
"guide": "v2-to-v3.md §variants",
|
|
157
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
114
158
|
},
|
|
115
159
|
{
|
|
116
160
|
"kind": "behaviour",
|
|
117
161
|
"description": "BbBase* input controls + CommonInputWrapper/CommonInputOuterContainer un-exported (reference-only); BbBaseButton + glyphs stay",
|
|
118
162
|
"ruling": "G3.3",
|
|
119
|
-
"guide": "v2-to-v3.md §5.1"
|
|
163
|
+
"guide": "v2-to-v3.md §5.1",
|
|
164
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
120
165
|
},
|
|
121
166
|
{
|
|
122
167
|
"kind": "behaviour",
|
|
123
168
|
"description": "hideArrow/showArrow/arrowPadding removed (BbPopover, BbSelectPopover, BbColorPalette, BbDropdown)",
|
|
124
169
|
"ruling": "B#10",
|
|
125
|
-
"guide": "components/bb-popover.md (+siblings)"
|
|
170
|
+
"guide": "components/bb-popover.md (+siblings)",
|
|
171
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
126
172
|
},
|
|
127
173
|
{
|
|
128
174
|
"kind": "behaviour",
|
|
129
175
|
"description": "BbTree ARIA tree roles removed; collapsed branches inert",
|
|
130
176
|
"ruling": "D#25",
|
|
131
|
-
"guide": "components/bb-tree.md"
|
|
177
|
+
"guide": "components/bb-tree.md",
|
|
178
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
132
179
|
},
|
|
133
180
|
{
|
|
134
181
|
"kind": "behaviour",
|
|
135
182
|
"description": "BbTag trims entries + case-folds duplicate matching (new case-sensitive)",
|
|
136
183
|
"ruling": "D#24 / F2.1b",
|
|
137
|
-
"guide": "components/bb-tag.md"
|
|
184
|
+
"guide": "components/bb-tag.md",
|
|
185
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
138
186
|
},
|
|
139
187
|
{
|
|
140
188
|
"kind": "behaviour",
|
|
141
189
|
"description": "BbBreadcrumbs item key narrowed string \\",
|
|
142
190
|
"ruling": "number → string",
|
|
143
|
-
"guide": "F2.1"
|
|
191
|
+
"guide": "F2.1",
|
|
192
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
144
193
|
},
|
|
145
194
|
{
|
|
146
195
|
"kind": "behaviour",
|
|
147
196
|
"description": "slotKey slot-name normalization (BbBreadcrumbs, BbTree, BbBaseDatePicker)",
|
|
148
197
|
"ruling": "A#7 / F2.2",
|
|
149
|
-
"guide": "per-component files"
|
|
198
|
+
"guide": "per-component files",
|
|
199
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
150
200
|
},
|
|
151
201
|
{
|
|
152
202
|
"kind": "behaviour",
|
|
153
203
|
"description": "BbTabs: label-<key> → label:<key>, pane slots + URL slug + DOM ids normalized",
|
|
154
204
|
"ruling": "A#7 / F2.2",
|
|
155
|
-
"guide": "components/bb-tabs.md"
|
|
205
|
+
"guide": "components/bb-tabs.md",
|
|
206
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
156
207
|
},
|
|
157
208
|
{
|
|
158
209
|
"kind": "behaviour",
|
|
159
210
|
"description": "enforce-coherence + seeded value prunes on mount",
|
|
160
211
|
"ruling": "E1",
|
|
161
|
-
"guide": "components/bb-select.md / bb-select-popover.md"
|
|
212
|
+
"guide": "components/bb-select.md / bb-select-popover.md",
|
|
213
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
162
214
|
},
|
|
163
215
|
{
|
|
164
216
|
"kind": "behaviour",
|
|
165
217
|
"description": "BbTable: #loading first-load-only; rows/header inert while loading",
|
|
166
218
|
"ruling": "E4",
|
|
167
|
-
"guide": "components/bb-table.md"
|
|
219
|
+
"guide": "components/bb-table.md",
|
|
220
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
168
221
|
},
|
|
169
222
|
{
|
|
170
223
|
"kind": "behaviour",
|
|
171
224
|
"description": "Single select: second click on the selected option no longer clears",
|
|
172
225
|
"ruling": "E5",
|
|
173
|
-
"guide": "components/bb-select.md / bb-select-popover.md"
|
|
226
|
+
"guide": "components/bb-select.md / bb-select-popover.md",
|
|
227
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
174
228
|
},
|
|
175
229
|
{
|
|
176
230
|
"kind": "behaviour",
|
|
177
231
|
"description": "prefill: false is search-first (was indistinguishable from 'interaction')",
|
|
178
232
|
"ruling": "E6",
|
|
179
|
-
"guide": "components/bb-select.md / bb-select-popover.md"
|
|
233
|
+
"guide": "components/bb-select.md / bb-select-popover.md",
|
|
234
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
180
235
|
},
|
|
181
236
|
{
|
|
182
237
|
"kind": "behaviour",
|
|
183
238
|
"description": "BbSwitchGroup multiple: false now honored — bare-value emit (was a silent no-op, always arrays)",
|
|
184
239
|
"ruling": "DECISIONS §G",
|
|
185
|
-
"guide": "components/bb-checkbox-group.md"
|
|
240
|
+
"guide": "components/bb-checkbox-group.md",
|
|
241
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
186
242
|
},
|
|
187
243
|
{
|
|
188
244
|
"kind": "behaviour",
|
|
189
245
|
"description": "BbSelect hidden inputs: empty selection posts no field (was name=null for single-empty)",
|
|
190
246
|
"ruling": "DECISIONS §G",
|
|
191
|
-
"guide": "components/bb-select.md"
|
|
247
|
+
"guide": "components/bb-select.md",
|
|
248
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
192
249
|
},
|
|
193
250
|
{
|
|
194
251
|
"kind": "behaviour",
|
|
195
252
|
"description": "BbPopover defineExpose (show/close/isOpen via template ref) removed → v-model",
|
|
196
253
|
"ruling": "F#/expose",
|
|
197
|
-
"guide": "components/bb-popover.md"
|
|
254
|
+
"guide": "components/bb-popover.md",
|
|
255
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
198
256
|
},
|
|
199
257
|
{
|
|
200
258
|
"kind": "behaviour",
|
|
201
259
|
"description": "BbTextInput defineExpose (focus/blur/select via template ref) removed → autofocus/native input",
|
|
202
260
|
"ruling": "F#/expose",
|
|
203
|
-
"guide": "components/bb-text-input.md"
|
|
261
|
+
"guide": "components/bb-text-input.md",
|
|
262
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
204
263
|
},
|
|
205
264
|
{
|
|
206
265
|
"kind": "behaviour",
|
|
207
266
|
"description": "BbNumberInput defineExpose (increase/decrease via template ref) removed → slot scope / v-model",
|
|
208
267
|
"ruling": "F#/expose",
|
|
209
|
-
"guide": "components/bb-text-input.md (sibling note)"
|
|
268
|
+
"guide": "components/bb-text-input.md (sibling note)",
|
|
269
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
210
270
|
},
|
|
211
271
|
{
|
|
212
272
|
"kind": "behaviour",
|
|
213
273
|
"description": "BbDropdown defineExpose (loading via template ref) removed → activator slot scope loading",
|
|
214
274
|
"ruling": "F#/expose",
|
|
215
|
-
"guide": "components/bb-dropdown.md"
|
|
275
|
+
"guide": "components/bb-dropdown.md",
|
|
276
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
216
277
|
},
|
|
217
278
|
{
|
|
218
279
|
"kind": "behaviour",
|
|
219
280
|
"description": "confirm(): a superseding call now resolves the previous promise false (was never settled — hung)",
|
|
220
281
|
"ruling": "DECISIONS §G",
|
|
221
|
-
"guide": "components/use-confirm.md"
|
|
282
|
+
"guide": "components/use-confirm.md",
|
|
283
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
222
284
|
},
|
|
223
285
|
{
|
|
224
286
|
"kind": "behaviour",
|
|
225
287
|
"description": "BbDropdown group heading text → label; new hideLabel keeps label without a heading (items keep text)",
|
|
226
288
|
"ruling": "F#/dropdown-label",
|
|
227
|
-
"guide": "components/bb-dropdown.md"
|
|
289
|
+
"guide": "components/bb-dropdown.md",
|
|
290
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
228
291
|
},
|
|
229
292
|
{
|
|
230
293
|
"kind": "behaviour",
|
|
231
294
|
"description": "tag props narrowed to per-family unions (BbButton/BbBaseButton, BbSmoothHeight, BbDropzone, BbBaseInputContainer tag+labelTag)",
|
|
232
295
|
"ruling": "F#/tag-unions",
|
|
233
|
-
"guide": "components/bb-button.md (+siblings)"
|
|
296
|
+
"guide": "components/bb-button.md (+siblings)",
|
|
297
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
234
298
|
},
|
|
235
299
|
{
|
|
236
300
|
"kind": "behaviour",
|
|
237
301
|
"description": "CommonPopover wrapper+bubble <span> → <div> (BbPopover/BbDropdown/submenus); BbTooltip + BbSelectPopover stay span",
|
|
238
302
|
"ruling": "F#/tag-unions",
|
|
239
|
-
"guide": "components/bb-popover.md, components/bb-dropdown.md"
|
|
303
|
+
"guide": "components/bb-popover.md, components/bb-dropdown.md",
|
|
304
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
240
305
|
},
|
|
241
306
|
{
|
|
242
307
|
"kind": "behaviour",
|
|
243
308
|
"description": "BbPopover panel PARTS <span> → <div> (__panel, __header, __content, __footer) — finishes the wrapper change one level in",
|
|
244
309
|
"ruling": "Q18.14",
|
|
245
|
-
"guide": "components/bb-popover.md"
|
|
310
|
+
"guide": "components/bb-popover.md",
|
|
311
|
+
"firstReleasedIn": "3.0.0-beta.17"
|
|
246
312
|
},
|
|
247
313
|
{
|
|
248
314
|
"kind": "behaviour",
|
|
249
315
|
"description": "BbSmoothHeight inner measuring element mirrors tag (was always <div>) — span now yields span-in-span",
|
|
250
316
|
"ruling": "F#/tag-unions",
|
|
251
|
-
"guide": "components/bb-smooth-height.md (new)"
|
|
317
|
+
"guide": "components/bb-smooth-height.md (new)",
|
|
318
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
252
319
|
},
|
|
253
320
|
{
|
|
254
321
|
"kind": "behaviour",
|
|
255
322
|
"description": "BbBadge DOM: label/icons now wrapped in .bb-badge__body + .bb-badge__trailing; only direct-child CSS selectors break",
|
|
256
323
|
"ruling": "F#/badge-sides",
|
|
257
|
-
"guide": "components/bb-badge.md"
|
|
324
|
+
"guide": "components/bb-badge.md",
|
|
325
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
258
326
|
},
|
|
259
327
|
{
|
|
260
328
|
"kind": "behaviour",
|
|
261
329
|
"description": "Checkbox/radio/switch **groups**: disabled and selectable: false now disable a SELECTED option too (it was interactive, so the selection could be cleared)",
|
|
262
330
|
"ruling": "Q18.1",
|
|
263
|
-
"guide": "components/bb-checkbox-group.md"
|
|
331
|
+
"guide": "components/bb-checkbox-group.md",
|
|
332
|
+
"firstReleasedIn": "3.0.0-beta.16"
|
|
264
333
|
},
|
|
265
334
|
{
|
|
266
335
|
"kind": "behaviour",
|
|
267
336
|
"description": "bitbossUiPlugin takes per-app config overrides (app.use(plugin, { locale })); setConfig from module scope now warns — it can only reach the build-time defaults",
|
|
268
337
|
"ruling": "Q18.2",
|
|
269
|
-
"guide": "v2-to-v3.md"
|
|
338
|
+
"guide": "v2-to-v3.md",
|
|
339
|
+
"firstReleasedIn": "3.0.0-beta.16"
|
|
270
340
|
},
|
|
271
341
|
{
|
|
272
342
|
"kind": "behaviour",
|
|
273
343
|
"description": "Segmented-field anatomy uses ONE neutral element family, bb-segmented-field__*, on BOTH the date and time inputs — __fields(--empty/--range), __placeholder, __field-sizer, __field (+ all segment modifiers), __separator(--range), __calendar-btn→__trigger-btn(--active), __calendar-icon→__trigger-icon. **Breaking for the DATE input**, whose element classes were previously bb-base-date-picker-input__*. Block names are unchanged (.bb-base-date-picker-input / .bb-base-time-picker-input are still the roots), so single-control rules stay expressible. Dropped: __calendar/__calendar--shown and __clock-btn (all styled nowhere)",
|
|
274
344
|
"ruling": "DECISIONS §I",
|
|
275
|
-
"guide": "components/bb-date-picker-input.md"
|
|
345
|
+
"guide": "components/bb-date-picker-input.md",
|
|
346
|
+
"firstReleasedIn": "3.0.0-alpha.6"
|
|
276
347
|
},
|
|
277
348
|
{
|
|
278
349
|
"kind": "behaviour",
|
|
279
350
|
"description": "bb-base-input-container__layout--hidden-label no longer rendered — it duplicated --reverse exactly and was styled nowhere",
|
|
280
351
|
"ruling": "DECISIONS §I",
|
|
281
|
-
"guide": "components/bb-text-input.md (family note)"
|
|
352
|
+
"guide": "components/bb-text-input.md (family note)",
|
|
353
|
+
"firstReleasedIn": "3.0.0-alpha.6"
|
|
282
354
|
},
|
|
283
355
|
{
|
|
284
356
|
"kind": "behaviour",
|
|
285
357
|
"description": "BbSpinner dot modifiers namespaced: .circle--N → .bb-spinner__circle--N",
|
|
286
358
|
"ruling": "DECISIONS §I",
|
|
287
|
-
"guide": "components/bb-spinner.md"
|
|
359
|
+
"guide": "components/bb-spinner.md",
|
|
360
|
+
"firstReleasedIn": "3.0.0-alpha.6"
|
|
288
361
|
},
|
|
289
362
|
{
|
|
290
363
|
"kind": "behaviour",
|
|
291
364
|
"description": "Listbox option rows drop their v2 autocomplete-option* class names; states and inner parts move onto bb-listbox__option* (--focused/--selected/--disabled, -label, -check)",
|
|
292
365
|
"ruling": "DECISIONS §I",
|
|
293
|
-
"guide": "components/bb-select.md (+ bb-select-popover.md pointer)"
|
|
366
|
+
"guide": "components/bb-select.md (+ bb-select-popover.md pointer)",
|
|
367
|
+
"firstReleasedIn": "3.0.0-alpha.6"
|
|
294
368
|
},
|
|
295
369
|
{
|
|
296
370
|
"kind": "behaviour",
|
|
297
371
|
"description": "BbTable #no-data fills the table's own full-width <td> (was: the slot replaced the empty-state <tr>)",
|
|
298
372
|
"ruling": "F#/no-data-shell",
|
|
299
|
-
"guide": "components/bb-table.md"
|
|
373
|
+
"guide": "components/bb-table.md",
|
|
374
|
+
"firstReleasedIn": "3.0.0-alpha.1"
|
|
300
375
|
},
|
|
301
376
|
{
|
|
302
377
|
"kind": "behaviour",
|
|
303
378
|
"description": "BbTable row events click:row / contextmenu:row / dblclick:row emit (event, item) with item the RAW record (was the internal row wrapper with the record at row.item) and no trailing selected boolean",
|
|
304
379
|
"ruling": "owner 2026-08-25, plans/BBTABLE-GRID.md",
|
|
305
|
-
"guide": "components/bb-table.md § Row events"
|
|
380
|
+
"guide": "components/bb-table.md § Row events",
|
|
381
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
306
382
|
},
|
|
307
383
|
{
|
|
308
384
|
"kind": "behaviour",
|
|
309
385
|
"description": "BbTable: hiding a column with thClass/tdClass + display: none (the v2/early-v3 narrow-screen recipe) no longer works — a hidden grid item keeps its track and shifts the following cells; set hidden: true on the column instead (filtering it out of columns was the beta.20 doctrine and lost the key from a partial order — DECISIONS § Column visibility, 2026-09-07)",
|
|
310
386
|
"ruling": "grid substrate, plans/BBTABLE-GRID.md",
|
|
311
|
-
"guide": "components/bb-table.md § Do not override; guide § Narrow screens"
|
|
387
|
+
"guide": "components/bb-table.md § Do not override; guide § Narrow screens",
|
|
388
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
312
389
|
},
|
|
313
390
|
{
|
|
314
391
|
"kind": "behaviour",
|
|
315
392
|
"description": "BbTable actions prop removed — the #actions slot creates the column (a prop without the slot rendered an empty column; now it renders nothing)",
|
|
316
393
|
"ruling": "DECISIONS § Column pins, 2026-09-07",
|
|
317
|
-
"guide": "components/bb-table.md § The #actions slot creates the actions column"
|
|
394
|
+
"guide": "components/bb-table.md § The #actions slot creates the actions column",
|
|
395
|
+
"firstReleasedIn": "3.0.0-beta.21"
|
|
318
396
|
},
|
|
319
397
|
{
|
|
320
398
|
"kind": "behaviour",
|
|
321
399
|
"description": "BbTable fixedColumns (rendered-slot indices) removed — fixed: 'left' \\",
|
|
322
400
|
"ruling": "'right' on the column definition + fixed-select / fixed-actions; pins follow the column through a reorder, sticky in place as before",
|
|
323
|
-
"guide": "DECISIONS § Column pins, 2026-09-07"
|
|
401
|
+
"guide": "DECISIONS § Column pins, 2026-09-07",
|
|
402
|
+
"firstReleasedIn": "3.0.0-beta.21"
|
|
324
403
|
},
|
|
325
404
|
{
|
|
326
405
|
"kind": "behaviour",
|
|
327
406
|
"description": "BbTable column snap takes the PARENT's column key ('select' / 'actions' by name, inclusive pairs, 'key.5' fractions) instead of a gridline index; --table-{id}-track-{index} became --table-{id}-track-{key} (slot-name spelling). Numeric snaps are ignored at runtime",
|
|
328
407
|
"ruling": "DECISIONS § Keyed snap, 2026-09-07",
|
|
329
|
-
"guide": "components/bb-table.md § snap names the parent column"
|
|
408
|
+
"guide": "components/bb-table.md § snap names the parent column",
|
|
409
|
+
"firstReleasedIn": "3.0.0-beta.21"
|
|
330
410
|
},
|
|
331
411
|
{
|
|
332
412
|
"kind": "behaviour",
|
|
333
413
|
"description": "BbTable highlight is opt-in: with highlighted unbound (or bound as undefined) clicking a row no longer applies bb-table-data__row--highlighted / aria-current — the table used to drive defineModel's local fallback, an unreadable state the app could not clear. Bind ref(null), not ref(); a context seed counts. click:row is unaffected",
|
|
334
414
|
"ruling": "owner 2026-08-27",
|
|
335
|
-
"guide": "components/bb-table.md § Highlight is opt-in"
|
|
415
|
+
"guide": "components/bb-table.md § Highlight is opt-in",
|
|
416
|
+
"firstReleasedIn": "3.0.0-beta.9"
|
|
336
417
|
},
|
|
337
418
|
{
|
|
338
419
|
"kind": "behaviour",
|
|
339
420
|
"description": "BbTable renders a CSS grid of divs with ARIA roles, not a <table>: every element selector under .bb-table (table/thead/tbody/tfoot/caption/tr/th/td/colgroup/col) matches nothing. Every .bb-table* class survives; .bb-table__table/__head/__body/__foot + [role=row]/[role=columnheader]/[role=cell] are the blessed translation (no data-* hooks, no shim classes)",
|
|
340
421
|
"ruling": "plans/BBTABLE-GRID.md § Migration & ecosystem",
|
|
341
|
-
"guide": "components/bb-table.md § Selector translation"
|
|
422
|
+
"guide": "components/bb-table.md § Selector translation",
|
|
423
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
342
424
|
},
|
|
343
425
|
{
|
|
344
426
|
"kind": "behaviour",
|
|
345
427
|
"description": "BbTable #thead / #tbody / #tfoot inner markup: role-complete <div role=\"row\"> holding <div role=\"columnheader\\",
|
|
346
428
|
"ruling": "cell\"> — never <tr>/<th>/<td>; #tfoot's columnCount now feeds grid-column: span N / 1 / -1 (+ aria-colspan), not colspan. A custom #thead over an empty table publishes no tracks",
|
|
347
|
-
"guide": "plans/BBTABLE-GRID.md § Non-negotiables (exception 1)"
|
|
429
|
+
"guide": "plans/BBTABLE-GRID.md § Non-negotiables (exception 1)",
|
|
430
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
348
431
|
},
|
|
349
432
|
{
|
|
350
433
|
"kind": "behaviour",
|
|
351
434
|
"description": "BbTable --fill custom property removed (not republished) — it fed the fixed-layout self-correction loop the grid does not have",
|
|
352
435
|
"ruling": "plans/BBTABLE-GRID.md § Tracks (RULED 2026-08-26)",
|
|
353
|
-
"guide": "components/bb-table.md § --fill and --natural-width are removed"
|
|
436
|
+
"guide": "components/bb-table.md § --fill and --natural-width are removed",
|
|
437
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
354
438
|
},
|
|
355
439
|
{
|
|
356
440
|
"kind": "behaviour",
|
|
357
441
|
"description": "BbTable --natural-width custom property removed (not republished) — republishing the resolved-track sum would publish the container width under a \"natural\" name",
|
|
358
442
|
"ruling": "plans/BBTABLE-GRID.md § Tracks (RULED 2026-08-26)",
|
|
359
|
-
"guide": "components/bb-table.md § --fill and --natural-width are removed"
|
|
443
|
+
"guide": "components/bb-table.md § --fill and --natural-width are removed",
|
|
444
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
360
445
|
},
|
|
361
446
|
{
|
|
362
447
|
"kind": "behaviour",
|
|
363
448
|
"description": "BbTable track-distribution drift: surplus split equally among auto columns (748/52 → 544/256), constrained wrapping grows tracks by equal increments (~22% narrower long column, taller rows), frozen+auto ≤ ~19px/column, all-frozen tables no longer inflate the select/actions columns, scroll-container cells no longer floor the column (max-width: 0 ellipsis trick breaks), % widths in an overflowing table resolve against min-content (30%: 181 → 303px), expand-row content never widens parent columns, orphan snap → auto. Overflow threshold, wrap floor, frozen px and fixed equal split are exact",
|
|
364
449
|
"ruling": "plans/BBTABLE-GRID.md § Tracks + § v2.1",
|
|
365
|
-
"guide": "components/bb-table.md § Column widths: what holds and what drifts"
|
|
450
|
+
"guide": "components/bb-table.md § Column widths: what holds and what drifts",
|
|
451
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
366
452
|
},
|
|
367
453
|
{
|
|
368
454
|
"kind": "behaviour",
|
|
369
455
|
"description": "BbTable copy-to-spreadsheet degrades: Chrome's selection serializer keys off computed display, so a selected grid pastes one value per line (was one cell per column). Accepted; sanctioned path = app-level \"copy as TSV from the items model\" recipe (queued, not shipped)",
|
|
370
456
|
"ruling": "plans/BBTABLE-GRID.md § Migration & ecosystem (7)",
|
|
371
|
-
"guide": "components/bb-table.md § Copy-to-spreadsheet degrades"
|
|
457
|
+
"guide": "components/bb-table.md § Copy-to-spreadsheet degrades",
|
|
458
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
372
459
|
},
|
|
373
460
|
{
|
|
374
461
|
"kind": "behaviour",
|
|
375
462
|
"description": "BbTable print header repetition lost — <thead> page-repetition has no grid equivalent; data rows get break-inside: avoid",
|
|
376
463
|
"ruling": "plans/BBTABLE-GRID.md § Migration & ecosystem (8)",
|
|
377
|
-
"guide": "components/bb-table.md § Print: header repetition is gone"
|
|
464
|
+
"guide": "components/bb-table.md § Print: header repetition is gone",
|
|
465
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
378
466
|
},
|
|
379
467
|
{
|
|
380
468
|
"kind": "behaviour",
|
|
381
469
|
"description": "BbTable: global element CSS (table/td resets, .prose table, stray td { padding }) silently stops reaching the table — immunity benefit AND a silent look change on pages that leaned on it",
|
|
382
470
|
"ruling": "plans/BBTABLE-GRID.md § Migration & ecosystem (9)",
|
|
383
|
-
"guide": "components/bb-table.md § Global element CSS no longer reaches the table"
|
|
471
|
+
"guide": "components/bb-table.md § Global element CSS no longer reaches the table",
|
|
472
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
384
473
|
},
|
|
385
474
|
{
|
|
386
475
|
"kind": "behaviour",
|
|
387
476
|
"description": "BbTable browser floor raised to subgrid engines (Chrome/Edge 117, Firefox 71, Safari 16), block align-content centring from Chrome 123 / Safari 17.4 / Firefox 125; no @supports fallback",
|
|
388
477
|
"ruling": "plans/BBTABLE-GRID.md § Non-negotiables + § CSS port rules",
|
|
389
|
-
"guide": "components/bb-table.md § Browser floor"
|
|
478
|
+
"guide": "components/bb-table.md § Browser floor",
|
|
479
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
390
480
|
},
|
|
391
481
|
{
|
|
392
482
|
"kind": "behaviour",
|
|
393
483
|
"description": "BbTable contain: inline-size (+ min-width: 0, grid-column: 1 / -1) on the expand / no-data / loading cells is load-bearing — overriding it lets full-span content resize the tracks (runaway loop with a nested inheriting table); joins gap: 0 on the root and nowrap on the actions cell in the do-not-override list",
|
|
394
484
|
"ruling": "plans/BBTABLE-GRID.md § Measurement & track publishing",
|
|
395
|
-
"guide": "components/bb-table.md § Do not override"
|
|
485
|
+
"guide": "components/bb-table.md § Do not override",
|
|
486
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
396
487
|
},
|
|
397
488
|
{
|
|
398
489
|
"kind": "behaviour",
|
|
399
490
|
"description": "BbTable caption reading-order micro-drift: .bb-table-caption is a div before the role=table root (named via aria-labelledby), no longer the table's first child",
|
|
400
491
|
"ruling": "plans/BBTABLE-GRID.md § Accessibility",
|
|
401
|
-
"guide": "components/bb-table.md § Small semantic and visual changes"
|
|
492
|
+
"guide": "components/bb-table.md § Small semantic and visual changes",
|
|
493
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
402
494
|
},
|
|
403
495
|
{
|
|
404
496
|
"kind": "behaviour",
|
|
405
497
|
"description": "BbTable busy bar now rides with the stuck header under fixed-headers (sticky moved to the .bb-table__head rowgroup; multi-row #thead heads stack instead of overlapping; aria-rowcount = totalItems + 1)",
|
|
406
498
|
"ruling": "plans/BBTABLE-GRID.md § Sticky + § v2.1",
|
|
407
|
-
"guide": "components/bb-table.md § Small semantic and visual changes"
|
|
499
|
+
"guide": "components/bb-table.md § Small semantic and visual changes",
|
|
500
|
+
"firstReleasedIn": "3.0.0-beta.6"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"kind": "behaviour",
|
|
504
|
+
"description": "BbTooltip width compiles to max-width, not width — the bubble wraps at the measure but still shrinks to short text (a 150px hint no longer sits in a 300px box). Unset bubbles gain a 40ch default cap (--max-w on .bb-tooltip) instead of running the viewport width. Values v2 mis-parsed now work: '20rem' was read as 20px, and 'auto'/calc()/min() threw during render. % is still measured against the activator. BbPopover / BbDropdown / BbSelectPopover width is untouched and still fixes",
|
|
505
|
+
"ruling": "owner 2026-09-09",
|
|
506
|
+
"guide": "components/bb-tooltip.md § width caps the bubble instead of fixing it",
|
|
507
|
+
"firstReleasedIn": "3.0.0-beta.22"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"kind": "behaviour",
|
|
511
|
+
"description": "Every component's visually-hidden helper class renamed .sr-only → .bb-sr-only (accessible names, status announcements, the clipped native inputs behind checkbox/radio/switch/rating/slider). Only a consumer selector reaching INTO a component for .sr-only breaks; a consumer's own Tailwind sr-only is untouched. Reason: the library must not share a class name with the consumer's utility layer — under cascade layers the consumer's utilities copy outranks ours, and a project redefining .sr-only would silently restyle our internals. Phase 0 of the cascade-layers work",
|
|
512
|
+
"ruling": "owner 2026-09-09 (Tailwind-name isolation)",
|
|
513
|
+
"guide": "v2-to-v3.md §5.6",
|
|
514
|
+
"firstReleasedIn": "3.0.0-beta.22"
|
|
408
515
|
}
|
|
409
516
|
]
|
|
410
517
|
}
|