@synopackageland/ui 0.25.16 → 0.25.17

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,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.25.17 (2026-11-14)
6
+
7
+ ### Grid
8
+
9
+ - **A click on the row number opens the record.** In `@synopackageland/ui/grid`, a mouse click on the row header outside its controls now emits `row-expand(row)`, the event the expand control and Space already send. The cursor there is a pointer. The checkbox keeps toggling the selection and never opens.
10
+ - Only when a `row-expand` listener is bound. Without one, the click keeps the old behaviour (nothing opens, the selection stays), so Apps that do not open records are unaffected.
11
+ - With only a `checkbox` control, the checkbox covers the number, so a click there still selects.
12
+ - `GridHostController` takes an optional `canExpandRow()` hook, asked at click time.
13
+ - Touch is unchanged: a tap on the row header follows the finger rules.
14
+
3
15
  ## 0.25.16 (2026-11-14)
4
16
 
5
17
  ### Phone shell
@@ -48,6 +48,13 @@ export interface GridHostHooks {
48
48
  clearRequest: (selection: GridSelectionState) => void;
49
49
  /** Open the row's record. `columnIndex`: the tapped field, on a phone (scroll the record to it). */
50
50
  rowExpand: (rowIndex: number, columnIndex?: number) => void;
51
+ /**
52
+ * Whether anyone opens records (`GridHost`: a `row-expand` listener is
53
+ * bound). True: a click on the row header outside its controls (on the row
54
+ * number) opens the record. False or absent: that click selects nothing and
55
+ * opens nothing, as before.
56
+ */
57
+ canExpandRow?: () => boolean;
51
58
  headerMenu: (columnIndex: number, rect: GridRect) => void;
52
59
  columnResize: (columnIndex: number, width: number, done: boolean) => void;
53
60
  reorder: (kind: 'columns' | 'rows', ranges: readonly GridRange[], dropIndex: number) => void;
@@ -158,6 +165,8 @@ export declare class GridHostController {
158
165
  private get isFillEnabled();
159
166
  /** No resize handle on touch: a 5 px edge is no finger target. */
160
167
  private get isResizeEnabled();
168
+ /** A click on the row number opens the record (someone listens for `rowExpand`). */
169
+ private get canExpandRow();
161
170
  /** True while the fill handle is dragged. */
162
171
  get isFilling(): boolean;
163
172
  /**