studio-engine 0.65.0 → 0.65.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: 8914b74430f105820bbc5a41f44d6c573ff88492bcd882534f769fa2c2a11608
4
- data.tar.gz: f3d1ffbec8dcb09ef354d21ab3786d2d5b9b0590a665ac95a949e7282668a66b
3
+ metadata.gz: 3aa4604073fec8349d92e58a72bfb14d5c87fbaf03081f4bcb3e430a0ec35bf6
4
+ data.tar.gz: 3653491831ad04c4cb7aad8f1950297655b42a0582864173c998cbf8ea005a06
5
5
  SHA512:
6
- metadata.gz: d52952922f19f864f97fd09297d8711c246ba54415bd40d60682569cbdfe0d51ccf7fb7673e7d921a361ab3657b35871f4999aad0baa80374dd3098cd3c267b2
7
- data.tar.gz: 82afd75d6a4e57bfbe3708b59c1c1e7eec188cf2bcfd5921e3eeb50e006090d1f0839e5fc280be8ee60c8d6dc999bb07bb148e7e2220b7d061559048e14b6225
6
+ metadata.gz: 38cd8f8eedcf34cb0cac87d4c7737bb3fd29af673651e4593a1a93f0e91e822e582500e62ffdb7172c6de1d6f8673fe6502da4717376b789ee91f0e9b9ed2fc4
7
+ data.tar.gz: 2ac51eaf964ad5ef2d9e026298dd0565466540de68ae68677c77eb2b802f17bc392691d63594794bd537282b2a9d315fc64c01e52800a72a82cc87cf5a1ed329
@@ -395,6 +395,28 @@ body.modal-open .studio-app-banner {
395
395
  x-data="navCollapse()" on it, and override only the endpoints that differ
396
396
  from the defaults below.
397
397
 
398
+ ADOPTING IT IN A FORK COSTS MORE THAN THE OPT-IN, corrected 2026-08-28 after
399
+ checking against a real forked header. Two attributes is what it takes to opt
400
+ IN; it is not the job. mcritchie-studio's inlined header needs, at minimum:
401
+
402
+ REMOVE the bindings that fight the primitive —
403
+ :class="scrolled ? 'py-2' : 'py-6'" on the row
404
+ x-bind:class="scrolled ? 'w-5 h-5' : …" on the logo
405
+ x-bind:class="scrolled ? 'text-base' : …" on the h1, which is a DISCRETE
406
+ swap and therefore the exact 1px reverse lurch this primitive exists to
407
+ remove — a fork that keeps it reproduces the bug it is adopting to fix
408
+ transition-all duration-300 in three places
409
+ ADD the hooks the band table actually keys on —
410
+ nav-row, nav-logo, nav-title, nav-logo-link
411
+ (nav-logo-link is MOBILE-ONLY: omit it and a desktop check still passes,
412
+ which is how an adoption ships half-done)
413
+ WRAP the h1's bare text node in a span so there is an element to size.
414
+
415
+ That is roughly fourteen edits across five elements. The SIZING LAYER does
416
+ reach every app — that is the win this block delivers and it is unaffected.
417
+ Only the cost sentence was wrong, and an understated cost is how an adoption
418
+ gets started and abandoned half-done.
419
+
398
420
  LAYERED ON PURPOSE. These are DEFAULTS, so a consuming app has to be able to
399
421
  beat them, and unlayered CSS beats every layered rule regardless of
400
422
  specificity — shipping them bare would make the engine's numbers
@@ -74,8 +74,17 @@
74
74
  rendering THIS partial got it. Three of six apps fork the navbar, so each
75
75
  was left to hand-write its own — the way four independent copies happened
76
76
  in the first place. It ships from engine.css now (every consuming app
77
- imports it), so a forking app adopts the collapse with `nav-shell` +
78
- x-data="navCollapse()" and overrides only the endpoints that differ. */
77
+ imports it), so a forking app OPTS IN with `nav-shell` +
78
+ x-data="navCollapse()" and overrides only the endpoints that differ.
79
+
80
+ THE OPT-IN IS NOT THE WHOLE JOB — this is the partial a forker actually
81
+ reads, so the caveat belongs here too rather than only beside the band
82
+ table. A hand-written header must also REMOVE the bindings that fight the
83
+ primitive (a :class size swap on the row, x-bind:class on the logo AND on
84
+ the title, transition-all alongside) and ADD the hooks the table keys on
85
+ (nav-row, nav-logo, nav-title, and the mobile-only nav-logo-link). The
86
+ title swap matters most: it is DISCRETE, which is the 1px reverse lurch
87
+ the primitive exists to delete. Full accounting in engine.css. */
79
88
  </style>
80
89
  <div class="nav-row flex items-center">
81
90
  <%# Left side: logo + nav %>
@@ -541,9 +541,10 @@
541
541
  // KEEP FRAMES COMING WHILE CATCHING UP. Nothing else will schedule
542
542
  // one: the finger is off, so no more scroll events arrive, and
543
543
  // without this the collapse freezes wherever the clamp left it. It
544
- // converges LINEARLY and lands exactly — about 4 frames (~67ms) from
545
- // a hard flick rather than crawling asymptotically the way the
546
- // 300ms ease this replaced did.
544
+ // converges LINEARLY and lands exactly — about 8 frames (~133ms) at
545
+ // the mobile --nav-ramp of 120, and about 10 (~167ms) at the default
546
+ // 144, from a hard flick — rather than crawling asymptotically the
547
+ // way the 300ms ease this replaced did.
547
548
  if (!snap && p !== target) {
548
549
  queued = true;
549
550
  requestAnimationFrame(apply);
@@ -1,3 +1,3 @@
1
1
  module Studio
2
- VERSION = "0.65.0"
2
+ VERSION = "0.65.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: studio-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.65.0
4
+ version: 0.65.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex McRitchie