From aca92bd94faf85de299458f91093a8d7cda09ae9 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 7 Aug 2026 15:28:23 +0000
Subject: [PATCH] chore: release
---
.changeset/add-color-picker.md | 7 ---
.changeset/board-selection-and-group-move.md | 55 -----------------
.changeset/fix-collection-item-types.md | 5 --
CHANGELOG.md | 64 ++++++++++++++++++++
package.json | 2 +-
5 files changed, 65 insertions(+), 68 deletions(-)
delete mode 100644 .changeset/add-color-picker.md
delete mode 100644 .changeset/board-selection-and-group-move.md
delete mode 100644 .changeset/fix-collection-item-types.md
diff --git a/.changeset/add-color-picker.md b/.changeset/add-color-picker.md
deleted file mode 100644
index bcffa4bd7..000000000
--- a/.changeset/add-color-picker.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@cube-dev/ui-kit': minor
----
-
-Add `ColorPicker` — a form-attachable color input. The field shows the current color as a swatch, accepts hex, `rgb()`, `hsl()`, `okhsl()`, `okhst()` and `oklch()` text, and opens a popover where the color can be tuned on three axes: HST (OKHST hue/saturation/tone), LCH (OKLCH lightness/chroma/hue) or RGB. Every conversion runs through Glaze, so the value is always a real, in-gamut color.
-
-`formatMode` controls how the text relates to the value: `forced` (default) rewrites the text in `format`, `derive` keeps the notation the user typed but normalizes the value, and `free` passes the text through verbatim after verifying it parses. Also adds a `PipetteIcon`.
diff --git a/.changeset/board-selection-and-group-move.md b/.changeset/board-selection-and-group-move.md
deleted file mode 100644
index 816abd9e2..000000000
--- a/.changeset/board-selection-and-group-move.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-'@cube-dev/ui-kit': minor
----
-
-Add widget selection and rigid group movement to `Board`.
-
-Set `selectionMode="single" | "multiple"` and read the selection with
-`selectedKeys` / `defaultSelectedKeys` / `onSelectionChange` (keys are layout item
-ids, always returned in layout order).
-
-Pressing a widget selects it on pointer-down and arms a drag of the selection —
-selecting and grabbing are one gesture, so move the pointer and it drags, stay
-still and it was only a selection. Shift (or Cmd/
-Ctrl) toggles membership, dragging from empty canvas lassos
-(`allowMarqueeSelection`), Space toggles the focused widget, and
-Escape clears.
-
-Selection behaves like focus: it tracks what the user is working with and moves on
-as soon as they touch something else — pressing another widget makes that the
-selection, and pressing an interactive control inside a widget or moving focus off
-the board drops it entirely.
-
-With `"multiple"`, dragging any selected widget moves the whole selection as a
-rigid block that reflows by the board's own rules — the same compaction a single
-widget gets, so a group can never be parked in empty space on a `vertical` board
-and the widgets around it close the gap in the same frame. Every widget travels by the same delta, the group clamps against the
-grid edge as a unit instead of collapsing into it, a frame that cannot be placed
-is rejected outright rather than partially applied, and the move commits through a
-single `onLayoutChange`. Arrow keys move the group too. `BoardInteractionInfo`
-gains `items`, `oldItems` and `placeholders` describing the whole gesture; the
-existing `item` / `oldItem` / `placeholder` fields are unchanged, and a board with
-no selection behaves exactly as before.
-
-The `selectionCancel` selector (board- or widget-level, defaulting to the exported
-`BOARD_SELECTION_CANCEL`) marks interactive descendants; `[data-no-select]` opts
-out a custom control. On a selectable board it also gates dragging, which fixes a
-long-standing trap: `useMove`'s pointer-down calls `preventDefault()`, so without
-a `dragCancel` an `input` inside a widget could not be focused or typed into.
-Selected widgets are drawn with a `#primary-border` border and a `#primary` ring —
-an edge treatment rather than a fill, since selection reads as a focus-like state;
-`outline` stays reserved for the real focus ring. Widgets get a `selected`
-modifier you can restyle through `widgetProps.styles`.
-
-`onWidgetsDelete` reports a Delete/Backspace press with a
-non-empty selection. Board never mutates the layout itself, so removal stays
-yours to implement and to make undoable.
-
-Accessibility: widget hosts are now `role="group"` with an accessible name from
-the new `Board.Widget` `aria-label` prop (falling back to `qa`, then the layout
-id). `aria-roledescription` is now localized rather than hardcoded English — it
-was previously also invalid, sitting on a role-less element. Selected widgets are
-described as "Selected", and selection changes are announced through a polite live
-region.
-
-Widget hosts also expose `data-board-widget-id` and `data-selected`.
diff --git a/.changeset/fix-collection-item-types.md b/.changeset/fix-collection-item-types.md
deleted file mode 100644
index 8327105d5..000000000
--- a/.changeset/fix-collection-item-types.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@cube-dev/ui-kit': patch
----
-
-Fix the types of `FilterListBox.Item` and `CommandMenu.Item`. Both were declared as React Stately's bare `Item`, so `Item` props such as `icon`, `rightIcon`, `description`, `hotkeys` and `actions` were rejected by TypeScript even though they worked at runtime. They now use `CollectionItem`, matching `ListBox.Item`, `Menu.Item` and the other collection components.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2022eb8e4..a3da17d5f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,69 @@
# @cube-dev/ui-kit
+## 0.156.0
+
+### Minor Changes
+
+- [#1287](https://github.com/cube-js/cube-ui-kit/pull/1287) [`946f6b85`](https://github.com/cube-js/cube-ui-kit/commit/946f6b8570acd63d97d9e9ba8ebf91459e315e48) Thanks [@tenphi](https://github.com/tenphi)! - Add `ColorPicker` — a form-attachable color input. The field shows the current color as a swatch, accepts hex, `rgb()`, `hsl()`, `okhsl()`, `okhst()` and `oklch()` text, and opens a popover where the color can be tuned on three axes: HST (OKHST hue/saturation/tone), LCH (OKLCH lightness/chroma/hue) or RGB. Every conversion runs through Glaze, so the value is always a real, in-gamut color.
+
+ `formatMode` controls how the text relates to the value: `forced` (default) rewrites the text in `format`, `derive` keeps the notation the user typed but normalizes the value, and `free` passes the text through verbatim after verifying it parses. Also adds a `PipetteIcon`.
+
+- [#1286](https://github.com/cube-js/cube-ui-kit/pull/1286) [`272a9e9b`](https://github.com/cube-js/cube-ui-kit/commit/272a9e9bc424b8b09be268640ff81be016540c9a) Thanks [@tenphi](https://github.com/tenphi)! - Add widget selection and rigid group movement to `Board`.
+
+ Set `selectionMode="single" | "multiple"` and read the selection with
+ `selectedKeys` / `defaultSelectedKeys` / `onSelectionChange` (keys are layout item
+ ids, always returned in layout order).
+
+ Pressing a widget selects it on pointer-down and arms a drag of the selection —
+ selecting and grabbing are one gesture, so move the pointer and it drags, stay
+ still and it was only a selection. Shift (or Cmd/
+ Ctrl) toggles membership, dragging from empty canvas lassos
+ (`allowMarqueeSelection`), Space toggles the focused widget, and
+ Escape clears.
+
+ Selection behaves like focus: it tracks what the user is working with and moves on
+ as soon as they touch something else — pressing another widget makes that the
+ selection, and pressing an interactive control inside a widget or moving focus off
+ the board drops it entirely.
+
+ With `"multiple"`, dragging any selected widget moves the whole selection as a
+ rigid block that reflows by the board's own rules — the same compaction a single
+ widget gets, so a group can never be parked in empty space on a `vertical` board
+ and the widgets around it close the gap in the same frame. Every widget travels by the same delta, the group clamps against the
+ grid edge as a unit instead of collapsing into it, a frame that cannot be placed
+ is rejected outright rather than partially applied, and the move commits through a
+ single `onLayoutChange`. Arrow keys move the group too. `BoardInteractionInfo`
+ gains `items`, `oldItems` and `placeholders` describing the whole gesture; the
+ existing `item` / `oldItem` / `placeholder` fields are unchanged, and a board with
+ no selection behaves exactly as before.
+
+ The `selectionCancel` selector (board- or widget-level, defaulting to the exported
+ `BOARD_SELECTION_CANCEL`) marks interactive descendants; `[data-no-select]` opts
+ out a custom control. On a selectable board it also gates dragging, which fixes a
+ long-standing trap: `useMove`'s pointer-down calls `preventDefault()`, so without
+ a `dragCancel` an `input` inside a widget could not be focused or typed into.
+ Selected widgets are drawn with a `#primary-border` border and a `#primary` ring —
+ an edge treatment rather than a fill, since selection reads as a focus-like state;
+ `outline` stays reserved for the real focus ring. Widgets get a `selected`
+ modifier you can restyle through `widgetProps.styles`.
+
+ `onWidgetsDelete` reports a Delete/Backspace press with a
+ non-empty selection. Board never mutates the layout itself, so removal stays
+ yours to implement and to make undoable.
+
+ Accessibility: widget hosts are now `role="group"` with an accessible name from
+ the new `Board.Widget` `aria-label` prop (falling back to `qa`, then the layout
+ id). `aria-roledescription` is now localized rather than hardcoded English — it
+ was previously also invalid, sitting on a role-less element. Selected widgets are
+ described as "Selected", and selection changes are announced through a polite live
+ region.
+
+ Widget hosts also expose `data-board-widget-id` and `data-selected`.
+
+### Patch Changes
+
+- [#1284](https://github.com/cube-js/cube-ui-kit/pull/1284) [`fc517477`](https://github.com/cube-js/cube-ui-kit/commit/fc5174777e4d330d5d4be98cf5547daa038dc9f0) Thanks [@tenphi](https://github.com/tenphi)! - Fix the types of `FilterListBox.Item` and `CommandMenu.Item`. Both were declared as React Stately's bare `Item`, so `Item` props such as `icon`, `rightIcon`, `description`, `hotkeys` and `actions` were rejected by TypeScript even though they worked at runtime. They now use `CollectionItem`, matching `ListBox.Item`, `Menu.Item` and the other collection components.
+
## 0.155.0
### Minor Changes
diff --git a/package.json b/package.json
index 084df103c..e38406c6b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@cube-dev/ui-kit",
- "version": "0.155.0",
+ "version": "0.156.0",
"type": "module",
"description": "UIKit for Cube Projects",
"repository": {