studio-engine 0.76.0 → 0.76.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 +4 -4
- data/CHANGELOG.md +17 -0
- data/app/views/components/_link_sidebar.html.erb +16 -2
- data/lib/studio/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9898d95f3e063d74ac32653ac8bfdcd9df98553dfd7e068f491c442a9cd59590
|
|
4
|
+
data.tar.gz: 0a27da01e654e2fbce90049f1d50fba76450d3d4ca634fa708f36fbcf63e5532
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8610ebf83d8a5cacf20df1260579e84bf9d3bd340e4706f8e29e3f429cc2f39639134e9af5393481cf8bf349f9ea00f86d07a3959457a94c58f89baad29921ea
|
|
7
|
+
data.tar.gz: ca1b6a2e1f8eca18efa637a4896fee8d2b4f72863f31effa964c96c20ca85356d2946cf2cf9d72bf000b2f24444abd85b924b855cd39c6897168b9e9ccf5db07
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,23 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.76.1 — 2026-09-19
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **A host's own sidebar panel can be closed again.** `components/_sidebar_panel`
|
|
12
|
+
is shared, and it stamps `data-link-sidebar-close` on every panel's close
|
|
13
|
+
button; `components/_link_sidebar`'s click bridge claimed that attribute
|
|
14
|
+
anywhere on the page, in the capture phase, with `stopImmediatePropagation`.
|
|
15
|
+
So on any panel other than the link sidebar the × never reached its own
|
|
16
|
+
handler: the button did nothing, silently, and the link sidebar closed
|
|
17
|
+
instead. The bridge is now scoped to the two panels it renders
|
|
18
|
+
(`#studio-link-sidebar`, `#studio-link-sidebar-mobile`); its own close button,
|
|
19
|
+
trigger and outside-click are unchanged. Consumers that worked around this with
|
|
20
|
+
a close button of their own can drop it. Held by
|
|
21
|
+
`e2e/sidebar_panel_close.spec.js` (a host panel beside the link sidebar) and
|
|
22
|
+
`test/views/link_sidebar_test.rb`.
|
|
23
|
+
|
|
7
24
|
## 0.76.0 — 2026-09-17
|
|
8
25
|
|
|
9
26
|
## 0.75.0 — 2026-09-17
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
// page is closed. The document-level capture handlers make the trigger
|
|
29
29
|
// work even for clicks that land before Alpine initializes.
|
|
30
30
|
(function () {
|
|
31
|
+
// The panels this component renders — the scope for every handler below that
|
|
32
|
+
// claims a click. Declared once so the selector cannot drift from the ids.
|
|
33
|
+
var LINK_SIDEBAR_PANELS = '#studio-link-sidebar, #studio-link-sidebar-mobile';
|
|
34
|
+
|
|
31
35
|
function ensureLinkSidebarStore() {
|
|
32
36
|
if (!window.Alpine) return null;
|
|
33
37
|
|
|
@@ -54,8 +58,18 @@
|
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
function handleLinkSidebarClick(event) {
|
|
61
|
+
// SCOPED TO THIS COMPONENT'S OWN PANELS, and that scope is the whole of it.
|
|
62
|
+
// components/_sidebar_panel is SHARED: every panel built on it stamps its close
|
|
63
|
+
// button data-link-sidebar-close, so an unscoped match here claimed the close
|
|
64
|
+
// click of EVERY other panel on the page — stopImmediatePropagation in the
|
|
65
|
+
// capture phase, before that panel's own @click could run — and closed this
|
|
66
|
+
// sidebar instead. The other panel's × then did nothing at all: no error, no
|
|
67
|
+
// console line. Measured 2026-09-18 on the hub's /deployments summary sidebars,
|
|
68
|
+
// where the click never reached a document-level listener and the panel stayed
|
|
69
|
+
// open (mcritchie-studio worked around it with a close button of its own).
|
|
70
|
+
// The two ids are the panels this file renders, below.
|
|
57
71
|
var closeTrigger = event.target.closest('[data-link-sidebar-close]');
|
|
58
|
-
if (closeTrigger) {
|
|
72
|
+
if (closeTrigger && closeTrigger.closest(LINK_SIDEBAR_PANELS)) {
|
|
59
73
|
event.preventDefault();
|
|
60
74
|
event.stopPropagation();
|
|
61
75
|
event.stopImmediatePropagation();
|
|
@@ -77,7 +91,7 @@
|
|
|
77
91
|
|
|
78
92
|
var sidebars = ensureLinkSidebarStore();
|
|
79
93
|
if (!sidebars || !sidebars.linkTreeOpen) return;
|
|
80
|
-
if (event.target.closest(
|
|
94
|
+
if (event.target.closest(LINK_SIDEBAR_PANELS)) return;
|
|
81
95
|
|
|
82
96
|
closeLinkSidebar();
|
|
83
97
|
}
|
data/lib/studio/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: studio-engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.76.
|
|
4
|
+
version: 0.76.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex McRitchie
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|