@synopackageland/ui 0.25.5 → 0.25.7

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,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.25.7 (2026-11-11)
4
+
5
+ ### Grid
6
+
7
+ - **A width change no longer renders every row's selection box again.** While a split pane or the window was resized, each move rendered the grid again (its column widths changed), and with it the reason Tooltip of every row that `rowSelectable` disables: in a test grid of 100 rows, 34 of them disabled, 20 width changes rendered `Tooltip` 680 times and its Reka parts about 8,800 more. Each row's box is now a props-only `DataGridSelectBox` with the grid's `toggleRow` as its one handler, so it renders only when its own row's checked state, disabled state, reason or label changes; the same 20 width changes render no box, checkbox or tooltip. `tests/DataGridSelectRenders.test.ts` counts them
8
+ - **A disabled row's reason shows in the grid's one shared tooltip.** The reason (`rowSelectDisabledReason`) is a `data-ui-tooltip-hint` on the box's focusable wrapper, which the grid's OverflowTooltip already serves: it opens after the hover delay, at once on keyboard focus, and on a tap. No tooltip is mounted per row. The wrapper keeps `tabindex="0"`, `role="img"` and the reason as its `aria-label`; the disabled box inside keeps `tabindex="-1"`. No API change
9
+
10
+ ## 0.25.6 (2026-11-10)
11
+
12
+ ### Grid
13
+
14
+ - **A scrolling grid ends with room for its scrollbar.** Scrolled to the end, the last row and the last column lay under an overlay scrollbar (macOS): the scroller's content was exactly the rows' and columns' size. An axis that scrolls now ends `SCROLL_END_GAP` (20 px) past its last row or column, and rows that end under the horizontal bar get it too. Columns that fit get none, so a grid sized to its width never scrolls sideways for it. No API change
15
+
3
16
  ## 0.25.5 (2026-11-10)
4
17
 
5
18
  Opening or closing the phone's navigation drawer, the aside sheet or the FAB speed dial no longer restyles the whole page. AppLayout made the page column `inert` while one was open, and Chrome restyles every element under an element whose `inert` changes. Pages look the same: a computed-style comparison of every element and property in each state, and the screenshots, differ only in Chrome's `interactivity` (the `inert` itself). No API change.
package/dist/cli.js CHANGED
File without changes
@@ -0,0 +1,15 @@
1
+ type __VLS_Props = {
2
+ rowKey: string;
3
+ checked: boolean;
4
+ disabled: boolean;
5
+ /** Why the box is disabled; the box is then reachable by keyboard to read it. */
6
+ reason?: string;
7
+ label: string;
8
+ };
9
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ toggle: (key: string, checked: boolean) => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onToggle?: ((key: string, checked: boolean) => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -8,6 +8,11 @@ import { IGridTheme } from '../../grid-core/theme';
8
8
  import { IColumnResizeState, IDragState, IGridColumn, IMouseState, IPosition, IRowControlItem, IScrollState } from '../../grid-core/types';
9
9
  import { GridCell, GridColumn, GridDraggable, GridEditTrigger, GridRange, GridRect, GridRowControl, GridSelectable, GridSelectionState, GridVisibleRange } from '../contracts';
10
10
  import { GridFillRequest } from '../range/fill';
11
+ /**
12
+ * Blank space after the last row and column of a scrolling grid: wider than an
13
+ * overlay scrollbar at its widest (about 15 px when hovered) plus a little air.
14
+ */
15
+ export declare const SCROLL_END_GAP = 20;
11
16
  export interface GridHostConfig {
12
17
  columns: readonly GridColumn[];
13
18
  /** Data rows to lay out (skeleton rows while the first page loads). */
@@ -122,7 +127,14 @@ export declare class GridHostController {
122
127
  width: number;
123
128
  height: number;
124
129
  };
125
- /** Scrollable content size for the scroller's spacer. */
130
+ /**
131
+ * Scrollable content size for the scroller's spacer. An axis that scrolls ends
132
+ * `SCROLL_END_GAP` past its last row or column, so an overlay scrollbar (macOS)
133
+ * lies over blank space at the end instead of over the last row or column.
134
+ * Rows that end under the horizontal bar get the gap too. Columns that fit get
135
+ * none, so a grid sized to its width never scrolls sideways for it; its host
136
+ * keeps room for a vertical overlay bar beside them.
137
+ */
126
138
  get contentSize(): {
127
139
  width: number;
128
140
  height: number;