@botiverse/raft-ui 0.57.0 → 0.57.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [0.57.1](https://github.com/botiverse/raft-design/compare/v0.57.0...v0.57.1) (2026-11-02)
2
+
3
+ ### Fixed
4
+
5
+ - **SidebarSectionControls**: a section's controls are always shown, with a mouse as on a touch screen. ([#942](https://github.com/botiverse/raft-design/pull/942))
6
+ - Why: shown only on hover, they hid what the header can do, and a long title's room changed as the pointer passed (stdrc).
7
+ - Affects: the controls are no longer hidden at rest with a mouse; a collapsed section's attention mark sits before them in the row and hides only while the section is open.
8
+ - Docs: https://raft-design.botiverse.build/components/sidebar/
9
+ - **Edge pull of a header's first and last control** (sidebar section controls, panel and dialog heads, Lightbox actions): it holds while that control's menu is open. ([#942](https://github.com/botiverse/raft-design/pull/942))
10
+ - Why: an open menu puts Base UI focus guards and a hidden portal span beside its trigger, so the trigger stopped being the last child, lost its 5px pull and moved left.
11
+ - Affects: the pull now skips `[data-base-ui-focus-guard]` and `[aria-owns]` siblings.
12
+ - Docs: https://raft-design.botiverse.build/foundations/alignment/
13
+
1
14
  ## [0.57.0](https://github.com/botiverse/raft-design/compare/v0.56.1...v0.57.0) (2026-11-01)
2
15
 
3
16
  ### Breaking Changes
@@ -45,7 +45,7 @@ const lightbox = tv({ slots: {
45
45
  actions: [
46
46
  "flex shrink-0 items-center",
47
47
  "gap-1",
48
- "[&>[data-icon-inset]:last-child]:-mr-icon-inset"
48
+ "[&>[data-icon-inset]:nth-last-child(1_of_:not([data-base-ui-focus-guard],[aria-owns]))]:-mr-icon-inset"
49
49
  ],
50
50
  stage: ["pointer-events-none relative flex min-h-0 flex-1 items-center justify-center overflow-hidden"],
51
51
  media: ["pointer-events-auto max-h-[80vh] max-w-[86vw] border-0 bg-transparent shadow-none"],
@@ -26,23 +26,9 @@ const sidebarSectionRecipe = tv({ slots: {
26
26
  ],
27
27
  sidebarSectionTitle: ["min-w-0 truncate"],
28
28
  sidebarSectionCount: ["font-mono text-mono-meta font-normal tabular-nums text-foreground-hint"],
29
- sidebarSectionAttention: [
30
- "inline-flex min-w-4.5 shrink-0 items-center justify-center",
31
- "pointer-fine:absolute pointer-fine:top-1/2 pointer-fine:right-0 pointer-fine:-translate-y-1/2",
32
- "group-data-open/section:hidden",
33
- "group-data-popup-open/section-header:hidden",
34
- "group-hover/section-header:hidden"
35
- ],
29
+ sidebarSectionAttention: ["inline-flex min-w-4.5 shrink-0 items-center justify-center", "group-data-open/section:hidden"],
36
30
  sidebarSectionTrailing: ["relative flex min-w-4.5 shrink-0 items-center justify-end"],
37
- sidebarSectionControls: [
38
- "flex shrink-0 items-center gap-1",
39
- "pointer-events-none opacity-0",
40
- "not-pointer-fine:pointer-events-auto not-pointer-fine:opacity-100",
41
- "pointer-fine:group-hover/section-header:pointer-events-auto pointer-fine:group-hover/section-header:opacity-100",
42
- "pointer-fine:focus-within:pointer-events-auto pointer-fine:focus-within:opacity-100",
43
- "pointer-fine:has-data-popup-open:pointer-events-auto pointer-fine:has-data-popup-open:opacity-100",
44
- "[&>[data-icon-inset]:last-child]:-mr-icon-inset"
45
- ],
31
+ sidebarSectionControls: ["flex shrink-0 items-center gap-1", "[&>[data-icon-inset]:nth-last-child(1_of_:not([data-base-ui-focus-guard],[aria-owns]))]:-mr-icon-inset"],
46
32
  sidebarSectionControl: [
47
33
  "relative flex h-6 w-auto min-w-6 shrink-0 items-center justify-center p-0 -my-1",
48
34
  "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5",
@@ -19,7 +19,7 @@
19
19
  * the pull holds when its last action is hidden at some width.
20
20
  */
21
21
  /** The pull alone, for a head whose padding is already its margin (a dialog's 20px). */
22
- const headEdgePull = ["[&>[data-icon-inset]:first-child]:-ml-icon-inset", "[&>[data-icon-inset]:last-child]:-mr-icon-inset"];
22
+ const headEdgePull = ["[&>[data-icon-inset]:nth-child(1_of_:not([data-base-ui-focus-guard],[aria-owns]))]:-ml-icon-inset", "[&>[data-icon-inset]:nth-last-child(1_of_:not([data-base-ui-focus-guard],[aria-owns]))]:-mr-icon-inset"];
23
23
  /**
24
24
  * A panel's head: its column's margin, and the pull. The margin is
25
25
  * `--column-margin` (styles.css): 20px on a desktop and 16px on a phone,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/raft-ui",
3
- "version": "0.57.0",
3
+ "version": "0.57.1",
4
4
  "description": "React components and CSS foundations for the Raft Design System.",
5
5
  "keywords": [
6
6
  "agent-skills",