studio-engine 0.119.0 → 0.119.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: 10f7eaf25386391e9c922bd4f6937c17bfba9edfd56c2d66fb0b7efbc47f0b0e
4
- data.tar.gz: 6db5f0a4e76c6f40e7c24cc8411774c835c8a4a3bbd7187df19579b6d5d4b459
3
+ metadata.gz: 327664450f0c0b1de0a01b75231b2f2fa470ab66d865f3b585eb55281e3318d3
4
+ data.tar.gz: 0634a4d5e519e0a808558cd3341d192ab7c0162373ad46d376e6cd6753a1f432
5
5
  SHA512:
6
- metadata.gz: c881adcf7be3fd52979932145acbd8c4b51d213950a48d95f302bbebad10f7bbf2cde647e50bb6cca267b4f3b7ca81613969aa2e86d606e28ca9bdc692f1af7c
7
- data.tar.gz: d0e05f2556bb259a9e05b704da3374e638c70fdba0cf6d634948922ad5a72203488239d62e07ce65ac1e0d3b73cc9cf590df3936c8f64086feaf85f57ed09530
6
+ metadata.gz: 75317c813644a660eb548ddd2ee7727371b7df3520867ef0037449a7d68bb57a72c5e0c87eb767b56426459f627809f17dd2dacd8d56baf9ffd41226337c7368
7
+ data.tar.gz: ba9ee2c20c1edf6659186b89a30a44a80c5cc3e4c4afd3b44910bdc934922c82d0250995996746b8ecc12976690d6ca5f8880dcae6f1caab7a149471a8808307
data/CHANGELOG.md CHANGED
@@ -4,6 +4,22 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.119.1 — 2026-10-29
8
+
9
+ ### Fixed
10
+
11
+ - **The theme toggle names itself.** `components/_theme_toggle` now renders
12
+ `type="button"` (it no longer submits a form it sits inside),
13
+ `aria-label="Dark theme"` and an `aria-pressed` bound to the theme store
14
+ (`$store.theme.isDark`), so a screen reader hears a toggle button and its
15
+ state, and the state flips with the theme. The `title` tooltip, classes and
16
+ icons are unchanged. With `Studio.navbar_name_in_rows` on, the truncating name
17
+ control carries the full name as its `title`. Hosts that patched these in at
18
+ runtime (turf-monster `app/javascript/nav_labels.js`) can drop the patch once
19
+ they lock this version. This is a deliberate change to the unset navbar's
20
+ bytes: `test/fixtures/files/navbar_unset_baseline` was regenerated, and the
21
+ toggle's button line is the only line that moved.
22
+
7
23
  ## 0.119.0 — 2026-10-29
8
24
 
9
25
  ### Added
@@ -1,4 +1,4 @@
1
- <button @click="$store.theme.toggle()" class="flex text-secondary hover:text-heading transition" title="Toggle theme">
1
+ <button type="button" @click="$store.theme.toggle()" class="flex text-secondary hover:text-heading transition" title="Toggle theme" aria-label="Dark theme" :aria-pressed="$store.theme.isDark ? 'true' : 'false'">
2
2
  <!-- Moon icon (shown in dark mode) — Heroicons v2 outline -->
3
3
  <svg x-show="$store.theme.isDark" xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
4
4
  <path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z" />
@@ -8,3 +8,7 @@
8
8
  <path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z" />
9
9
  </svg>
10
10
  </button>
11
+ <%# A toggle button: a fixed name ("Dark theme") with its state beside it in
12
+ aria-pressed, bound to the theme store so it flips with the theme. The
13
+ title stays for the pointer tooltip. type="button" keeps it from submitting
14
+ a form it may sit inside. %>
@@ -144,21 +144,25 @@
144
144
  so its control is not rendered there at all (hidden, never a
145
145
  0x0 tab stop announcing the name a second time): the avatar,
146
146
  labelled with the name, is the account below md. %>
147
+ <%# The name truncates from md, so each control carries the full name as
148
+ its title for a pointer reader; its accessible name was always the
149
+ full text. %>
150
+ <% name_title = nav_user_name.to_s.squish %>
147
151
  <% name_classes = "group min-w-0 flex-shrink rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40#{" hidden md:block" unless phone_name}" %>
148
152
  <% if account_sidebar %>
149
153
  <% name_js = studio_navbar_account_sidebar_expressions(account_sidebar) %>
150
- <%= tag.button type: "button", class: "#{name_classes} cursor-pointer",
154
+ <%= tag.button type: "button", class: "#{name_classes} cursor-pointer", title: name_title,
151
155
  data: { nav_name_trigger: "", profile_image_toggle: "" },
152
156
  aria: { controls: account_sidebar[:controls], haspopup: "dialog" },
153
157
  ":aria-expanded": name_js[:expanded], "@click.stop": name_js[:toggle] do %><%= name_html %><% end %>
154
158
  <% elsif account_opens_sidebar %>
155
- <button type="button" class="<%= name_classes %> cursor-pointer" data-nav-name-trigger data-profile-image-toggle
159
+ <button type="button" class="<%= name_classes %> cursor-pointer" title="<%= name_title %>" data-nav-name-trigger data-profile-image-toggle
156
160
  aria-controls="studio-link-sidebar studio-link-sidebar-mobile" aria-haspopup="dialog"
157
161
  :aria-expanded="$store.sidebars && $store.sidebars.linkTreeOpen ? 'true' : 'false'"><%= name_html %></button>
158
162
  <% elsif studio_nav_destination %>
159
- <%= link_to name_html, studio_nav_destination, class: name_classes, "data-nav-name-trigger": "" %>
163
+ <%= link_to name_html, studio_nav_destination, class: name_classes, title: name_title, "data-nav-name-trigger": "" %>
160
164
  <% else %>
161
- <span class="<%= name_classes %>" data-nav-name-trigger><%= name_html %></span>
165
+ <span class="<%= name_classes %>" title="<%= name_title %>" data-nav-name-trigger><%= name_html %></span>
162
166
  <% end %>
163
167
  <% end %>
164
168
  </div>
@@ -1,3 +1,3 @@
1
1
  module Studio
2
- VERSION = "0.119.0"
2
+ VERSION = "0.119.1"
3
3
  end
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.119.0
4
+ version: 0.119.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-10-29 00:00:00.000000000 Z
11
+ date: 2026-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails