studio-engine 0.55.0 → 0.56.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 203b2f8cf1001d19c7ffb24c778ab0f1bdcb0b9aafa59762ded0ea5689eb2423
4
- data.tar.gz: a6dbf4164a79cd6b5de2a9cbee178e5455e55c619dfa7197f0db08ba398aaf5b
3
+ metadata.gz: a79e19829850f00a9e8cc9d2957d1de612da3bfbc08729a1326aa42391d2d422
4
+ data.tar.gz: f81e213a68ac8e8ae4693cc6ace20965df25037f24d4d3173984ddf4c95efab0
5
5
  SHA512:
6
- metadata.gz: 0bb5c9bebe4977fef13ab139729ebbc5c560b52f31e573d153e63a00a8a40b970519ac783ad51b45773661e182f5dc848e424b4922e5748117c29560fdfc2b20
7
- data.tar.gz: 4e16f3663bb43a61139cac420af9a2c265f91c5c5a6f708c32edf1ad5d1e92c6a559b545b148b4e134afe90d614a81de527906988a122b8326b9ae9ef881e6be
6
+ metadata.gz: 99bb6489f03318e771373b6c00514b9cc5199a0182bd1d2a08f8310ea3ee60b1caa102f97f31bc96ee9d004471d77a34d5bb7ebf50a5c76354a4e579cf2abb91
7
+ data.tar.gz: 6021838ea445cd9bfaec0b6ade383a7e3f6d8bb5597f6fd5a22c415631ce8ca598564e4f5765bcde709f55260dc2b8775cc5e26edf92d08bc0a7a4702cfa731a
data/CHANGELOG.md CHANGED
@@ -6,6 +6,53 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
6
6
 
7
7
  ### Added
8
8
 
9
+ - **The hold-to-confirm button, with its fizz — a new ACTION family in
10
+ `engine-motion.css`.** A press-and-hold CTA for an action a host does not want
11
+ taken by accident, ported from Turf Monster where it confirms a contest entry.
12
+ Render `studio/hold_button`; the specimens are on `/admin/style` (Tricks →
13
+ "Hold to confirm").
14
+
15
+ What ships:
16
+
17
+ - **`.hold-btn`** — the face and its five states: idle, `.process` (holding,
18
+ with the ring filling over `--duration`), `.loading` (submitted, spinning
19
+ arc), `.success` (confirmed, white check) and `.error` (blocked). The idle
20
+ face is a gradient down the primary ramp; the confirmed face is a deeper cut
21
+ of the SAME ramp, because an off-family success color reads as a jump to
22
+ some other button.
23
+ - **`.hold-stack` / `.hold-fizz` / `.fizz-bit`** — the carbonation. The
24
+ bubbles are the button's SIBLING, never its child: the button's `transform`
25
+ makes it a stacking context, so a bubble inside it can never get behind its
26
+ background. They show only where they escape its edges.
27
+ - **Six zones, three colors each.** The button is cut into a 3×2 grid and a
28
+ bubble only wears the colors of its own zone, so a six-item palette reads as
29
+ six things standing around the button. Bind `--fizz-c-1..18` (three per zone,
30
+ in order) on the stack — statically with the `fizz_colors:` local, or live
31
+ with `fizz_bind:` (an Alpine expression). Turf Monster's board binds the six
32
+ picked teams' light / dark / alt colors. Anything unbound falls back to the
33
+ bubble's own hue, so the effect is never colorless.
34
+ - **Two levels.** `fizz_level: :lively` (the default) rests at a full boil and
35
+ on hover DOUBLES THE BUBBLE COUNT — a second layer, seeded apart so it lands
36
+ in the first one's gaps, fades in over it. `fizz_level: :calm` simmers at
37
+ rest and boils on hover, one layer.
38
+ - **Per-instance theming without new CSS.** Every color reads a `--hold-*`
39
+ input before its default, so an ancestor can restyle one button or a page of
40
+ them: `--hold-bg-from` / `--hold-bg-mid` / `--hold-bg-to` for the resting
41
+ face, `--hold-success-from` / `--hold-success-to` / `--hold-success-glow-rgb`
42
+ for the confirmed one.
43
+ - **`prefers-reduced-motion` switches the bubbles off**, with `!important`,
44
+ because the state rules are more specific than anything the media query can
45
+ write — without it a lively button keeps fizzing at someone who asked it not
46
+ to.
47
+
48
+ Per-instance behavior travels as `data-*` on the button and is evaluated
49
+ against the surrounding `x-data` scope: `guard`, `validate` / `validate_at`,
50
+ `early_action` / `early_action_at` / `early_action_guard`, `on_hold_start` and
51
+ `on_success`. `Studio::FizzHelper` owns the bubble table and is seeded per
52
+ `hold_id`, so a button scatters identically on every render (a Turbo-restored
53
+ page matches the one it replaced) and two buttons on a page do not fizz in
54
+ lockstep.
55
+
9
56
  - **`.studio-team-glow` rings a host that paints its own background**, and can
10
57
  carry **two colors**.
11
58