Make the theme control a circle and the sidebar sections collapsible The theme control was a rounded square holding a round glyph. It is an icon-only button, so the target should be the shape of the thing inside it. Width is pinned to the height rather than left to padding, because padding alone turns the box into an oval the moment the glyph changes size. Sidebar categories are now native <details>. That means no JavaScript, no ARIA to keep in sync by hand, and keyboard operation for free. Because the sidebar patches rather than remounts, the element survives navigation and so does whatever the reader collapsed -- collapsible sections built on remount would reopen on every click and be worse than no collapsing at all. The section holding the current page opens itself: collapsing the section you are reading would hide your own location. The caret rotates rather than swapping between two glyphs, which keeps one icon in the vendored set instead of two. The catalog test caught sidebar_section/1 shipping without a page, so it is catalogued with a demo that documents the patch-survives-collapse behaviour.
Make the theme control a circle and the sidebar sections collapsible
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
added
.impeccable/live/config.json -
added
PRODUCT.md -
modified
assets/css/app.css -
modified
assets/css/openagents.css -
modified
lib/openagents_web/component_catalog.ex -
modified
lib/openagents_web/components/layouts.ex -
modified
lib/openagents_web/components/layouts/components.html.heex -
modified
lib/openagents_web/live/components_live.ex
Diff
8 files changed, +204 -7
.impeccable/live/config.json added +6
PRODUCT.md added +55
@@ -0,0 +1,55 @@
| 1 |
|
|
| 2 |
|
|
| 3 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
| 9 |
|
|
| 10 |
|
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
|
| 14 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
|
|
| 21 |
|
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
|
|
| 29 |
|
|
| 30 |
|
|
| 31 |
|
|
| 32 |
|
|
| 33 |
|
|
| 34 |
|
|
| 35 |
|
|
| 36 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
|
| 50 |
|
|
| 51 |
|
|
| 52 |
|
|
| 53 |
|
|
| 54 |
|
|
| 55 |
|
assets/css/app.css modified +19
@@ -610,12 +610,31 @@
| 610 | 610 |
|
| 611 | 611 |
|
| 612 | 612 |
|
| 613 |
|
|
| 614 |
|
|
| 615 |
|
|
| 616 |
|
|
| 613 | 617 |
|
| 618 |
|
|
| 619 |
|
|
| 620 |
|
|
| 621 |
|
|
| 622 |
|
|
| 623 |
|
|
| 624 |
|
|
| 625 |
|
|
| 614 | 626 |
|
| 615 | 627 |
|
| 616 | 628 |
|
| 629 |
|
|
| 630 |
|
|
| 631 |
|
|
| 632 |
|
|
| 633 |
|
|
| 634 |
|
|
| 617 | 635 |
|
| 618 | 636 |
|
| 637 |
|
|
| 619 | 638 |
|
| 620 | 639 |
|
| 621 | 640 |
|
assets/css/openagents.css modified +57
@@ -2075,3 +2075,60 @@
| 2075 | 2075 |
|
| 2076 | 2076 |
|
| 2077 | 2077 |
|
| 2078 |
|
|
| 2079 |
|
|
| 2080 |
|
|
| 2081 |
|
|
| 2082 |
|
|
| 2083 |
|
|
| 2084 |
|
|
| 2085 |
|
|
| 2086 |
|
|
| 2087 |
|
|
| 2088 |
|
|
| 2089 |
|
|
| 2090 |
|
|
| 2091 |
|
|
| 2092 |
|
|
| 2093 |
|
|
| 2094 |
|
|
| 2095 |
|
|
| 2096 |
|
|
| 2097 |
|
|
| 2098 |
|
|
| 2099 |
|
|
| 2100 |
|
|
| 2101 |
|
|
| 2102 |
|
|
| 2103 |
|
|
| 2104 |
|
|
| 2105 |
|
|
| 2106 |
|
|
| 2107 |
|
|
| 2108 |
|
|
| 2109 |
|
|
| 2110 |
|
|
| 2111 |
|
|
| 2112 |
|
|
| 2113 |
|
|
| 2114 |
|
|
| 2115 |
|
|
| 2116 |
|
|
| 2117 |
|
|
| 2118 |
|
|
| 2119 |
|
|
| 2120 |
|
|
| 2121 |
|
|
| 2122 |
|
|
| 2123 |
|
|
| 2124 |
|
|
| 2125 |
|
|
| 2126 |
|
|
| 2127 |
|
|
| 2128 |
|
|
| 2129 |
|
|
| 2130 |
|
|
| 2131 |
|
|
| 2132 |
|
|
| 2133 |
|
|
| 2134 |
|
lib/openagents_web/component_catalog.ex modified +7
@@ -189,6 +189,13 @@ defmodule OpenAgentsWeb.ComponentCatalog do
| 189 | 189 |
|
| 190 | 190 |
|
| 191 | 191 |
|
| 192 |
|
|
| 193 |
|
|
| 194 |
|
|
| 195 |
|
|
| 196 |
|
|
| 197 |
|
|
| 198 |
|
|
| 192 | 199 |
|
| 193 | 200 |
|
| 194 | 201 |
|
lib/openagents_web/components/layouts.ex modified +29
@@ -135,6 +135,35 @@ defmodule OpenAgentsWeb.Layouts do
| 135 | 135 |
|
| 136 | 136 |
|
| 137 | 137 |
|
| 138 |
|
|
| 139 |
|
|
| 140 |
|
|
| 141 |
|
|
| 142 |
|
|
| 143 |
|
|
| 144 |
|
|
| 145 |
|
|
| 146 |
|
|
| 147 |
|
|
| 148 |
|
|
| 149 |
|
|
| 150 |
|
|
| 151 |
|
|
| 152 |
|
|
| 153 |
|
|
| 154 |
|
|
| 155 |
|
|
| 156 |
|
|
| 157 |
|
|
| 158 |
|
|
| 159 |
|
|
| 160 |
|
|
| 161 |
|
|
| 162 |
|
|
| 163 |
|
|
| 164 |
|
|
| 165 |
|
|
| 166 |
|
|
| 138 | 167 |
|
| 139 | 168 |
|
| 140 | 169 |
|
lib/openagents_web/components/layouts/components.html.heex modified +6 -7
@@ -23,11 +23,11 @@
| 23 | 23 |
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 |
|
|
| 26 |
|
|
| 27 | 27 |
|
| 28 |
|
|
| 28 |
|
|
| 29 |
|
|
| 29 | 30 |
|
| 30 |
|
|
| 31 | 31 |
|
| 32 | 32 |
|
| 33 | 33 |
|
@@ -36,10 +36,9 @@
| 36 | 36 |
|
| 37 | 37 |
|
| 38 | 38 |
|
| 39 |
|
|
| 39 |
|
|
| 40 | 40 |
|
| 41 |
|
|
| 42 |
|
|
| 41 |
|
|
| 43 | 42 |
|
| 44 | 43 |
|
| 45 | 44 |
|
lib/openagents_web/live/components_live.ex modified +25
@@ -616,6 +616,31 @@ defmodule OpenAgentsWeb.ComponentsLive do
| 616 | 616 |
|
| 617 | 617 |
|
| 618 | 618 |
|
| 619 |
|
|
| 620 |
|
|
| 621 |
|
|
| 622 |
|
|
| 623 |
|
|
| 624 |
|
|
| 625 |
|
|
| 626 |
|
|
| 627 |
|
|
| 628 |
|
|
| 629 |
|
|
| 630 |
|
|
| 631 |
|
|
| 632 |
|
|
| 633 |
|
|
| 634 |
|
|
| 635 |
|
|
| 636 |
|
|
| 637 |
|
|
| 638 |
|
|
| 639 |
|
|
| 640 |
|
|
| 641 |
|
|
| 642 |
|
|
| 643 |
|
|
| 619 | 644 |
|
| 620 | 645 |
|
| 621 | 646 |
|