@synopackageland/ui 0.25.1 → 0.25.3
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 +21 -1
- package/dist/grid-core/renderer/layout.d.ts +7 -1
- package/dist/grid.js +1 -1
- package/dist/theme.css +1 -1
- package/dist/themes/dsm7-embedded-theme.css +1 -1
- package/dist/themes/dsm7-embedded.css +1 -1
- package/dist/themes/dsm7.css +1 -1
- package/docs/mobile-native.md +2 -2
- package/package.json +1 -95
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.25.3 (2026-11-09)
|
|
4
|
+
|
|
5
|
+
### Grid
|
|
6
|
+
|
|
7
|
+
- **Cell text follows a short pan.** The canvas grid (`@synopackageland/ui/grid`) redrew its cached cell text only when the visible rows or columns changed, while backgrounds, lines and column headers followed every frame. A pan that stayed within the same columns (a finger on a tablet, a short trackpad move) left the text behind its column, so headers and cells no longer lined up. Any change of the scroll offset now redraws the cell text. No API change
|
|
8
|
+
|
|
9
|
+
## 0.25.2 (2026-11-09)
|
|
10
|
+
|
|
11
|
+
On a touch phone, "selected" is now the accent instead of ink, so a choice and the primary action are the same blue. A DSM window, a desktop page and a touch tablet are unchanged. No API change.
|
|
12
|
+
|
|
13
|
+
### Touch phone
|
|
14
|
+
|
|
15
|
+
- **Segmented control.** The selected segment (and the thumb that slides to it) is the primary button's fill, accent step 10 (`#0075db` in DSM blue), with the accent's contrast colour (white) on it. White on accent step 10 is 4.60:1 in light and dark, the same as a primary button. The mist track, 44px targets, column rule and reduced-motion behaviour are unchanged
|
|
16
|
+
- **Tab bar.** The current tab's round pad is accent step 10 and its icon is the accent's contrast colour (4.60:1, light and dark); the pad's size and place are unchanged. A tab with a label and no icon keeps the mist pad and shows its label in accent step 10 (4.60:1 on the white bar)
|
|
17
|
+
- An App's own accent (`AppRoot` `accent`) is followed: both use its step 10 and its contrast colour
|
|
18
|
+
- The 0.25.1 press feedback is unchanged
|
|
19
|
+
|
|
20
|
+
### Migration notes
|
|
21
|
+
|
|
22
|
+
- `--ui-phone-ink` and `--ui-phone-ink-foreground` (0.25.0) are removed; use `--ui-accent-10` and `--ui-accent-contrast`
|
|
23
|
+
- Phone screenshots of a segmented control or the tab bar need new baselines
|
|
4
24
|
|
|
5
25
|
## 0.25.1 (2026-11-09)
|
|
6
26
|
|
|
@@ -118,7 +118,13 @@ export declare const drawRowDraggingRegion: (ctx: CanvasRenderingContext2D, p: I
|
|
|
118
118
|
export declare const drawColumnFreezeHandler: (ctx: CanvasRenderingContext2D, p: IResolvedProps) => void;
|
|
119
119
|
/** Line after the frozen columns; a soft shadow once the body scrolls under it. */
|
|
120
120
|
export declare const drawFreezeRegionDivider: (ctx: CanvasRenderingContext2D, p: IResolvedProps) => void;
|
|
121
|
-
/**
|
|
121
|
+
/**
|
|
122
|
+
* Whether cached cell content must be redrawn. Any scroll offset counts, not
|
|
123
|
+
* only a change of the visible cell range: the cache holds the text at the
|
|
124
|
+
* offset it was drawn at, while backgrounds, lines and headers follow every
|
|
125
|
+
* frame, so a pan that stays within the same columns (a finger on a tablet)
|
|
126
|
+
* left the text behind its column.
|
|
127
|
+
*/
|
|
122
128
|
export declare const computeShouldRerender: (current: IGridRenderProps, last?: IGridRenderProps) => boolean;
|
|
123
129
|
/**
|
|
124
130
|
* Paints one frame. `mainCanvas` is the visible canvas; `cacheCanvas` is an
|
package/dist/grid.js
CHANGED
|
@@ -680,7 +680,7 @@ const ro = (e, t) => t ? Math.max(t - (e.iconSizeMD - e.iconSizeXS) / 2, 0) : 0,
|
|
|
680
680
|
return;
|
|
681
681
|
}
|
|
682
682
|
e.save(), e.beginPath(), e.shadowColor = r, e.shadowBlur = 5, e.shadowOffsetX = 3, e.strokeStyle = r, e.moveTo(a + 0.5, 0), e.lineTo(a + 0.5, s), e.stroke(), e.restore();
|
|
683
|
-
}, ta = (e, t) => t == null ? !0 : !(e.theme === t.theme && e.columns === t.columns && e.getLinearRow === t.getLinearRow && e.real2RowIndex === t.real2RowIndex && e.drawCell === t.drawCell && e.coordInstance === t.coordInstance && e.visibleRegion === t.visibleRegion && e.forceRenderFlag === t.forceRenderFlag), na = (e, t) => {
|
|
683
|
+
}, ta = (e, t) => t == null ? !0 : !(e.scrollState.scrollLeft === t.scrollState.scrollLeft && e.scrollState.scrollTop === t.scrollState.scrollTop && e.theme === t.theme && e.columns === t.columns && e.getLinearRow === t.getLinearRow && e.real2RowIndex === t.real2RowIndex && e.drawCell === t.drawCell && e.coordInstance === t.coordInstance && e.visibleRegion === t.visibleRegion && e.forceRenderFlag === t.forceRenderFlag), na = (e, t) => {
|
|
684
684
|
const { containerWidth: n, containerHeight: o, pixelRatio: i, shouldRerender: a, draw: s } = t, r = Math.ceil(n * i), c = Math.ceil(o * i);
|
|
685
685
|
(e.width !== r || e.height !== c) && (e.width = r, e.height = c);
|
|
686
686
|
const l = e.getContext("2d");
|