@pieai/swimmer-ui-kit 1.11.3 → 2.1.0

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
@@ -3,7 +3,64 @@
3
3
  All notable changes to `@pieai/swimmer-ui-kit`.
4
4
  Format: [Keep a Changelog](https://keepachangelog.com); versioning: semver.
5
5
 
6
- ## Unreleased
6
+ ## 2.1.0 — 2026-09-02
7
+
8
+ ### Added
9
+
10
+ - **Opt-in clay scroll surfaces.** Product-owned overflow containers can use
11
+ `.game-ui-scroll-surface` and the four `--game-ui-scrollbar-*` semantic
12
+ tokens to share the kit's Firefox and Chromium/WebKit scrollbar treatment.
13
+
14
+ ### Changed
15
+
16
+ - **Build finalization is cross-platform.** The package build now uses a Node
17
+ script to copy the optional Tailwind bridge and remove `.DS_Store` files,
18
+ keeping the release path valid on Windows as well as POSIX hosts.
19
+
20
+ ## 2.0.0
21
+
22
+ Major, not minor. The release removes a member from a public union type, so a
23
+ consumer inside a `^1` range would have broken at compile time on an automatic
24
+ update — the exact failure semver's major bump exists to prevent. That the
25
+ removed member never worked makes the removal correct, not non-breaking.
26
+
27
+ ### Breaking
28
+
29
+ - **`LiquidGroup.Item` no longer accepts `effect="move"`.** The public union
30
+ listed `'move'` but the engine only understands Morph and Bend. Passing it
31
+ silently rendered Morph. Move already lives on the group as
32
+ `motion="follow"` (the selected indicator and progress leading edge). An API
33
+ that accepts a parameter and does nothing is worse than no API, so the
34
+ dead member is gone rather than implemented as a second Move entry. TypeScript
35
+ consumers who followed the donor README now get a type error. A leftover
36
+ string at runtime still warns, and `dissolve` on that leftover is still
37
+ ignored.
38
+
39
+ ### Fixed
40
+
41
+ - **Outer drop shadows left the SVG filter.** `--game-ui-shadow-button`'s
42
+ `0 13px 26px` layer was a full-region `feGaussianBlur` whose radius also
43
+ inflated the filter pad. The donor had already moved that class of shadow to
44
+ CSS `drop-shadow()` on the compositor (same math: blur-radius = 2σ) because
45
+ WebKit CPU-rasterises large SVG blurs. Inset and spread stay in SVG; they
46
+ are not expressible as `drop-shadow()` and they are cheap. The pad no longer
47
+ reserves the outer blur. Visual comparison of the segmented indicator and
48
+ the merged-blob story is in `SHADOW-COST.md`.
49
+
50
+ - **Two authoring warnings were still dead in the published bundle.** 1.11.2
51
+ unblocked the budget warnings; `LiquidGroup.Item` children-with-border and
52
+ dissolve-on-move were still gated on `import.meta.env.DEV`, which is false
53
+ in this package's build. `scripts/check-warnings-survive-build.mjs` now
54
+ covers those two messages and names which one is missing. Verified by
55
+ reintroducing the DEV gate and watching the check fail on `[item-border]`
56
+ and `[dissolve-on-move]`.
57
+
58
+ ### Changed
59
+
60
+ - `donors-individual.md` now records the compositor shadow split as adopted,
61
+ and lists the remaining missed donor capabilities as missed — not as if they
62
+ had been rejected. `will-change: filter, transform` on the silhouette is
63
+ included with the split.
7
64
 
8
65
  ## 1.11.3
9
66
 
package/NOTICE CHANGED
@@ -57,8 +57,11 @@ NOTICE pointer. We also adapted the donor's Move center spring, velocity-axis
57
57
  stretch, and lagging tail/mid-droplet physics for the selected segmented
58
58
  indicator and progress leading edge. This package directly adapts the donor's
59
59
  group-level `waviness` / `wavinessFreq` filter pass: a fixed-seed `feTurbulence`
60
- field and `feDisplacementMap` move the silhouette before its shadow passes
61
- consume it, so the shadow follows the same edge.
60
+ field and `feDisplacementMap` move the silhouette before its remaining SVG
61
+ shadow passes consume it. Blurred outer shadows without spread follow the
62
+ donor's compositor split: they are CSS `drop-shadow()` on the silhouette
63
+ element, so they are not in the SVG filter region or its pad. Inset and
64
+ spread layers remain SVG-resident.
62
65
 
63
66
  The local implementation also adapts the donor's pairwise image-melt engine in
64
67
  `src/liquidGooeyImageMelt.tsx`, including the two-item pairing, measured image
package/README.md CHANGED
@@ -20,7 +20,7 @@ assets may not be extracted, modified, or redistributed as a standalone pack.
20
20
  ```json
21
21
  {
22
22
  "dependencies": {
23
- "@pieai/swimmer-ui-kit": "1.0.0"
23
+ "@pieai/swimmer-ui-kit": "2.1.0"
24
24
  }
25
25
  }
26
26
  ```
@@ -69,6 +69,10 @@ import '@pieai/swimmer-ui-kit/tailwind.css';
69
69
  }
70
70
  ```
71
71
 
72
+ Product-owned overflow containers can opt into the kit's cross-browser clay
73
+ scrollbar treatment with `class="game-ui-scroll-surface"`; tune its size,
74
+ track, thumb, and hover colors through the `--game-ui-scrollbar-*` tokens.
75
+
72
76
  - **Type**: a HUD scale (`--game-ui-font-xs` … `-xxl`) plus the three things a
73
77
  HUD scale does not cover — `--game-ui-font-mono` for code, and
74
78
  `--game-ui-font-reading` / `--game-ui-line-reading` /
package/dist/index.d.ts CHANGED
@@ -422,6 +422,13 @@ export declare const CLAY_RADIUS_TOKENS: {
422
422
  readonly modal: "var(--game-ui-radius-modal)";
423
423
  };
424
424
 
425
+ export declare const CLAY_SCROLLBAR_TOKENS: {
426
+ readonly size: "var(--game-ui-scrollbar-size)";
427
+ readonly track: "var(--game-ui-scrollbar-track)";
428
+ readonly thumb: "var(--game-ui-scrollbar-thumb)";
429
+ readonly thumbHover: "var(--game-ui-scrollbar-thumb-hover)";
430
+ };
431
+
425
432
  export declare const CLAY_SEMANTIC_TOKENS: {
426
433
  readonly background: "var(--game-ui-bg)";
427
434
  readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
@@ -582,6 +589,12 @@ export declare const CLAY_UI_TOKENS: {
582
589
  readonly panel: "var(--game-ui-radius-panel)";
583
590
  readonly modal: "var(--game-ui-radius-modal)";
584
591
  };
592
+ readonly scrollbars: {
593
+ readonly size: "var(--game-ui-scrollbar-size)";
594
+ readonly track: "var(--game-ui-scrollbar-track)";
595
+ readonly thumb: "var(--game-ui-scrollbar-thumb)";
596
+ readonly thumbHover: "var(--game-ui-scrollbar-thumb-hover)";
597
+ };
585
598
  readonly elevation: {
586
599
  readonly button: "var(--game-ui-shadow-button)";
587
600
  readonly panel: "var(--game-ui-shadow-panel)";
@@ -1094,6 +1107,10 @@ export declare const GAME_UI_TOKENS: {
1094
1107
  readonly panel: "var(--game-ui-shadow-panel)";
1095
1108
  readonly inset: "var(--game-ui-shadow-inset)";
1096
1109
  readonly stroke: "var(--game-ui-stroke)";
1110
+ readonly scrollbarSize: "var(--game-ui-scrollbar-size)";
1111
+ readonly scrollbarTrack: "var(--game-ui-scrollbar-track)";
1112
+ readonly scrollbarThumb: "var(--game-ui-scrollbar-thumb)";
1113
+ readonly scrollbarThumbHover: "var(--game-ui-scrollbar-thumb-hover)";
1097
1114
  readonly bead: "var(--game-ui-radius-bead)";
1098
1115
  readonly control: "var(--game-ui-radius-control)";
1099
1116
  readonly card: "var(--game-ui-radius-card)";
@@ -2415,8 +2432,11 @@ export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElem
2415
2432
  delay?: number;
2416
2433
  /** Override the measured content border radius for the silhouette. */
2417
2434
  radius?: number | CornerRadii;
2418
- /** Select the adopted item surface behavior. Bend follows child geometry. */
2419
- effect?: 'morph' | 'move' | 'melt' | 'bend';
2435
+ /**
2436
+ * Select the adopted item surface behavior. Bend follows child geometry.
2437
+ * Move is a group gesture (`motion="follow"`), not an item effect.
2438
+ */
2439
+ effect?: 'morph' | 'melt' | 'bend';
2420
2440
  /** Morph shape, tempo, bounce, and content cross-blur tuning. */
2421
2441
  morph?: MorphTuning;
2422
2442
  /** Bend strengths for vertical bow and horizontal cap deformation. */