1919 <!-- Sidebar overlay for mobile -->
2020 < div id ="sidebar-overlay " class ="sidebar-overlay "> </ div >
2121
22- <!-- Bug Report FAB (floating action button) -->
23- < div id ="bug-report-fab " class ="bug-report-fab ">
24- < span class ="bug-report-fab-badge "> · alpha</ span >
25- < button id ="btn-bug-report " class ="bug-report-fab-btn " data-i18n-html ="bug.fab ">
26- 🐛 Report a bug
27- </ button >
28- </ div >
29-
3022 <!-- =======================================================================
3123 App Shell
3224 ======================================================================= -->
5850 </ button >
5951
6052 < div class ="sidebar-nav-label mt-4 " data-i18n ="nav.savedPlan "> Saved Plan</ div >
61- < div id ="sidebar-saved-plans ">
53+ < div id ="sidebar-saved-plans " data-bugdrop-mask >
6254 < div class ="text-xs text-muted " style ="padding: var(--space-2) var(--space-3); " data-i18n ="nav.noSavedPlans ">
6355 No saved plans yet
6456 </ div >
8072 < span class ="theme-toggle-label " id ="theme-toggle-label "> Dark</ span >
8173 </ button >
8274 </ div >
75+ < div id ="bug-report-fab " class ="bug-report-fab ">
76+ < span class ="bug-report-fab-badge " data-i18n ="bug.sectionLabel "> Feedback · alpha</ span >
77+ < button id ="btn-bug-report " class ="bug-report-fab-btn " data-i18n-html ="bug.fab ">
78+ 🐛 Report a bug
79+ </ button >
80+ </ div >
81+
8382 < div class ="health-indicator ">
8483 < span id ="health-dot " class ="health-dot "> </ span >
8584 < span id ="health-label " data-i18n ="health.checking "> API checking...</ span >
@@ -113,7 +112,7 @@ <h2 data-i18n="newTrip.title">Plan Your Trip</h2>
113112 < div class ="card " style ="max-width:720px; ">
114113 < div class ="form-group ">
115114 < label class ="form-label " for ="trip-input " data-i18n ="newTrip.whatsYourTrip "> What's your trip?</ label >
116- < textarea id ="trip-input " class ="form-textarea " rows ="8 "
115+ < textarea id ="trip-input " class ="form-textarea " rows ="8 " data-bugdrop-mask
117116 data-i18n-placeholder ="newTrip.tripPlaceholder "
118117 placeholder ="e.g. Drive to Kennedy Space Center from Orlando tomorrow — stop for lunch, stay overnight at a hotel near Cocoa Beach, and drive back the next morning. Need long-term parking at KSC. "> </ textarea >
119118 < div class ="form-hint " data-i18n ="newTrip.tripHint "> Include as many details as possible — venue, date, mode of travel (drive/fly), meal stops, hotel stays, long-term parking, return trip, and any special interests. The more you tell us, the better your itinerary.</ div >
@@ -122,13 +121,13 @@ <h2 data-i18n="newTrip.title">Plan Your Trip</h2>
122121 < div class ="grid-2 ">
123122 < div class ="form-group ">
124123 < label class ="form-label " for ="trip-departure " data-i18n ="newTrip.departureTime "> Departure Time</ label >
125- < div class ="time-input-group ">
124+ < div class ="time-input-group " data-bugdrop-mask >
126125 < input id ="trip-departure-hh " class ="form-input time-input-hh " type ="text "
127126 placeholder ="07 " maxlength ="2 " autocomplete ="off " />
128127 < span class ="time-colon "> :</ span >
129128 < input id ="trip-departure-mm " class ="form-input time-input-mm " type ="text "
130129 placeholder ="00 " maxlength ="2 " autocomplete ="off " />
131- < div class ="ampm-toggle " id ="trip-departure-ampm ">
130+ < div class ="ampm-toggle " id ="trip-departure-ampm " data-bugdrop-mask >
132131 < button type ="button " class ="ampm-btn active " data-period ="AM "> AM</ button >
133132 < button type ="button " class ="ampm-btn " data-period ="PM "> PM</ button >
134133 </ div >
@@ -137,15 +136,15 @@ <h2 data-i18n="newTrip.title">Plan Your Trip</h2>
137136 </ div >
138137 < div class ="form-group ">
139138 < label class ="form-label " for ="trip-start " data-i18n ="newTrip.startingLocation "> Starting Location (Street Address, City, State, Zip Code)</ label >
140- < input id ="trip-start " class ="form-input " type ="text "
139+ < input id ="trip-start " class ="form-input " type ="text " data-bugdrop-mask
141140 data-i18n-placeholder ="newTrip.startPlaceholder "
142141 placeholder ="e.g. 9801 International Dr, Orlando, Florida 32819 " />
143142 < div class ="form-hint " data-i18n ="newTrip.startHint "> Required if provided — must include street address, city, state, and zip code, separated by commas.</ div >
144143 </ div >
145144 </ div >
146145 < div class ="form-group ">
147146 < label class ="form-label " for ="trip-restaurants " data-i18n ="newTrip.restaurantPrefs "> Restaurant Preferences</ label >
148- < input id ="trip-restaurants " class ="form-input " type ="text "
147+ < input id ="trip-restaurants " class ="form-input " type ="text " data-bugdrop-mask
149148 data-i18n-placeholder ="newTrip.restaurantPlaceholder "
150149 placeholder ="e.g. vegetarian, Italian, $$-$$$ range " />
151150 < div class ="form-hint " data-i18n ="newTrip.restaurantHint "> Diet, cuisine, or price preferences for meal stops.</ div >
@@ -165,7 +164,7 @@ <h2 data-i18n="newTrip.title">Plan Your Trip</h2>
165164 </ div >
166165
167166 <!-- Result area (hidden until plan is generated) -->
168- < div id ="result-new-trip " class ="hidden " style ="margin-top: var(--space-8); "> </ div >
167+ < div id ="result-new-trip " class ="hidden " style ="margin-top: var(--space-8); " data-bugdrop-mask > </ div >
169168 </ section >
170169
171170 <!-- Page: My Plans -->
@@ -174,7 +173,7 @@ <h2 data-i18n="newTrip.title">Plan Your Trip</h2>
174173 < h2 data-i18n ="myPlans.title "> My Plans</ h2 >
175174 < p data-i18n ="myPlans.subtitle "> Previously generated itineraries stored in this session.</ p >
176175 </ div >
177- < div id ="plans-list "> </ div >
176+ < div id ="plans-list " data-bugdrop-mask > </ div >
178177 < div id ="plans-empty " class ="empty-state hidden ">
179178 < div class ="empty-state-icon "> 📋</ div >
180179 < div class ="empty-state-title " data-i18n ="myPlans.emptyTitle "> No saved plans</ div >
@@ -186,10 +185,10 @@ <h2 data-i18n="myPlans.title">My Plans</h2>
186185 < section id ="page-plan-detail " class ="page hidden ">
187186 < div class ="page-header ">
188187 < button class ="btn btn-sm btn-ghost mb-2 " id ="btn-back-plans "> ← < span data-i18n ="myPlans.title "> Back to Plans</ span > </ button >
189- < h2 id ="plan-detail-title " data-i18n ="topbar.itinerary "> Itinerary</ h2 >
190- < p id ="plan-detail-subtitle "> </ p >
188+ < h2 id ="plan-detail-title " data-i18n ="topbar.itinerary " data-bugdrop-mask > Itinerary</ h2 >
189+ < p id ="plan-detail-subtitle " data-bugdrop-mask > </ p >
191190 </ div >
192- < div id ="plan-detail-content "> </ div >
191+ < div id ="plan-detail-content " data-bugdrop-mask > </ div >
193192 </ section >
194193 </ main >
195194 </ div >
@@ -198,13 +197,26 @@ <h2 id="plan-detail-title" data-i18n="topbar.itinerary">Itinerary</h2>
198197 < div id ="toast-container " class ="toast-container "> </ div >
199198
200199 <!-- Modal Container (rendered dynamically) -->
201- < div id ="modal-container "> </ div >
200+ < div id ="modal-container " data-bugdrop-mask > </ div >
202201
203202 <!-- =======================================================================
204203 Application JavaScript
205204 ======================================================================= -->
206205 < script src ="/js/i18n.js "> </ script >
207206 < script src ="/js/app.js "> </ script >
207+ < script
208+ id ="planit-bugdrop "
209+ src ="https://bugdrop.neonwatty.workers.dev/widget.v1.js "
210+ data-repo ="jssturm/elevated-applicant-feedback "
211+ data-button ="false "
212+ data-theme ="auto "
213+ data-screenshot ="optional "
214+ data-send-console-logs ="false "
215+ data-show-name ="false "
216+ data-show-email ="false "
217+ data-show-issue-link ="never "
218+ data-welcome ="Describe the Plan-It problem. Screenshots are optional and are sent privately to our feedback intake through BugDrop. "
219+ > </ script >
208220
209221< script >
210222 // Only load Vercel Analytics in production (skip local/dev 404 noise)
0 commit comments