refactor Move Feedback into the profile menu

Place the app Feedback link inside the profile dropdown with Profile, Settings, and Sign out. Reuse menu-link semantics, active state, and SPA navigation. Remove the obsolete top-navigation-only Feedback styling.

Commit
46e56ef0982a0b500be95f8b925c1995013365c3
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
lib/web/assets/hito.css
index 2f84ebbf..aef1fbb5 100644..100644
@@ -1054,29 +1054,6 @@
1054 1054 .account { display: block; }
1055 1055 }
1056 1056
1057 Removed: /* The app-feedback header control sits beside the profile button and uses the
1058 Removed: same compact button treatment. */
1059 Removed: .app-feedback-button {
1060 Removed: display: inline-flex;
1061 Removed: align-items: center;
1062 Removed: min-height: 2.75rem;
1063 Removed: padding: 0.5rem 0.9rem;
1064 Removed: border: 1px solid var(--brass);
1065 Removed: border-radius: var(--radius);
1066 Removed: color: var(--brass);
1067 Removed: background: var(--brass-wash);
1068 Removed: font-weight: 700;
1069 Removed: text-decoration: none;
1070 Removed: }
1071 Removed: .app-feedback-button:hover {
1072 Removed: color: var(--paper-raised);
1073 Removed: background: var(--brass);
1074 Removed: }
1075 Removed: .app-feedback-button[aria-current] {
1076 Removed: color: var(--paper-raised);
1077 Removed: background: var(--oxblood);
1078 Removed: border-color: var(--oxblood-dark);
1079 Removed: }
1080 1057
1081 1058 /* The app-feedback page presents one active panel at a time through native
1082 1059 links, so both tabs remain usable without JavaScript. */
lib/web/pages.ml
index ef338eb4..65a367ca 100644..100644
@@ -74,22 +74,12 @@
74 74 in
75 75 tag "a" attrs [ txt "%s" label ]
76 76 in
77 Removed: let feedback_attrs =
78 Removed: [ class_ "app-feedback-button"; href Routes.app_feedback ]
79 Removed: @ if spa_client then [ Dream_html.attr "data-hito-app-link" ] else []
80 Removed: in
81 Removed: let feedback_attrs =
82 Removed: if String.equal "app-feedback" active then
83 Removed: Dream_html.string_attr "aria-current" "page" :: feedback_attrs
84 Removed: else feedback_attrs
85 Removed: in
86 77 let summary_attrs =
87 78 if String.equal "profile" active then
88 79 [ class_ "profile"; Dream_html.string_attr "aria-current" "page" ]
89 80 else [ class_ "profile" ]
90 81 in
91 82 [
92 Removed: tag "a" feedback_attrs [ txt "Feedback" ];
93 83 tag "details"
94 84 [ class_ "profile-menu" ]
95 85 [
@@ -104,6 +94,7 @@
104 94 [
105 95 menu_link "profile" Routes.profile "Profile";
106 96 menu_link "profile" Routes.profile "Settings";
97 Added: menu_link "app-feedback" Routes.app_feedback "Feedback";
107 98 tag "form"
108 99 [
109 100 action Routes.logout;