1// Code generated by templ - DO NOT EDIT.
2
3package systemviews
4
5//lint:file-ignore SA4006 This context is only used if a nested component is present.
6
7import "github.com/a-h/templ"
8import templruntime "github.com/a-h/templ/runtime"
9
10import (
11 "github.com/bnema/dumber/internal/application/dto"
12 "github.com/bnema/dumber/internal/application/port"
13)
14
15func ConfigView(data configRenderData) templ.Component {
16 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
17 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
18 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
19 return templ_7745c5c3_CtxErr
20 }
21 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
22 if !templ_7745c5c3_IsBuffer {
23 defer func() {
24 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
25 if templ_7745c5c3_Err == nil {
26 templ_7745c5c3_Err = templ_7745c5c3_BufErr
27 }
28 }()
29 }
30 ctx = templ.InitializeContext(ctx)
31 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
32 if templ_7745c5c3_Var1 == nil {
33 templ_7745c5c3_Var1 = templ.NopComponent
34 }
35 ctx = templ.ClearChildren(ctx)
36 templ_7745c5c3_Err = Alert("success", data.Notice).Render(ctx, templ_7745c5c3_Buffer)
37 if templ_7745c5c3_Err != nil {
38 return templ_7745c5c3_Err
39 }
40 templ_7745c5c3_Err = Alert("error", data.Error).Render(ctx, templ_7745c5c3_Buffer)
41 if templ_7745c5c3_Err != nil {
42 return templ_7745c5c3_Err
43 }
44 templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
45 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
46 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
47 if !templ_7745c5c3_IsBuffer {
48 defer func() {
49 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
50 if templ_7745c5c3_Err == nil {
51 templ_7745c5c3_Err = templ_7745c5c3_BufErr
52 }
53 }()
54 }
55 ctx = templ.InitializeContext(ctx)
56 templ_7745c5c3_Err = AppearanceForm(data.Config).Render(ctx, templ_7745c5c3_Buffer)
57 if templ_7745c5c3_Err != nil {
58 return templ_7745c5c3_Err
59 }
60 return nil
61 })
62 templ_7745c5c3_Err = Section("sv-config-appearance", "Appearance").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
63 if templ_7745c5c3_Err != nil {
64 return templ_7745c5c3_Err
65 }
66 templ_7745c5c3_Var3 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
67 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
68 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
69 if !templ_7745c5c3_IsBuffer {
70 defer func() {
71 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
72 if templ_7745c5c3_Err == nil {
73 templ_7745c5c3_Err = templ_7745c5c3_BufErr
74 }
75 }()
76 }
77 ctx = templ.InitializeContext(ctx)
78 templ_7745c5c3_Err = SearchSettings(data.Config).Render(ctx, templ_7745c5c3_Buffer)
79 if templ_7745c5c3_Err != nil {
80 return templ_7745c5c3_Err
81 }
82 return nil
83 })
84 templ_7745c5c3_Err = Section("sv-config-search", "Search").Render(templ.WithChildren(ctx, templ_7745c5c3_Var3), templ_7745c5c3_Buffer)
85 if templ_7745c5c3_Err != nil {
86 return templ_7745c5c3_Err
87 }
88 templ_7745c5c3_Var4 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
89 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
90 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
91 if !templ_7745c5c3_IsBuffer {
92 defer func() {
93 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
94 if templ_7745c5c3_Err == nil {
95 templ_7745c5c3_Err = templ_7745c5c3_BufErr
96 }
97 }()
98 }
99 ctx = templ.InitializeContext(ctx)
100 templ_7745c5c3_Err = PerformanceSettings(data.Config).Render(ctx, templ_7745c5c3_Buffer)
101 if templ_7745c5c3_Err != nil {
102 return templ_7745c5c3_Err
103 }
104 return nil
105 })
106 templ_7745c5c3_Err = Section("sv-config-performance", "Performance").Render(templ.WithChildren(ctx, templ_7745c5c3_Var4), templ_7745c5c3_Buffer)
107 if templ_7745c5c3_Err != nil {
108 return templ_7745c5c3_Err
109 }
110 templ_7745c5c3_Var5 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
111 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
112 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
113 if !templ_7745c5c3_IsBuffer {
114 defer func() {
115 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
116 if templ_7745c5c3_Err == nil {
117 templ_7745c5c3_Err = templ_7745c5c3_BufErr
118 }
119 }()
120 }
121 ctx = templ.InitializeContext(ctx)
122 templ_7745c5c3_Err = Meta(configKeybindingSummary(data.Keybindings)).Render(ctx, templ_7745c5c3_Buffer)
123 if templ_7745c5c3_Err != nil {
124 return templ_7745c5c3_Err
125 }
126 templ_7745c5c3_Err = ConfigKeybindings(data.Keybindings).Render(ctx, templ_7745c5c3_Buffer)
127 if templ_7745c5c3_Err != nil {
128 return templ_7745c5c3_Err
129 }
130 return nil
131 })
132 templ_7745c5c3_Err = Section("sv-config-keybindings", "Keybindings").Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
133 if templ_7745c5c3_Err != nil {
134 return templ_7745c5c3_Err
135 }
136 templ_7745c5c3_Var6 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
137 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
138 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
139 if !templ_7745c5c3_IsBuffer {
140 defer func() {
141 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
142 if templ_7745c5c3_Err == nil {
143 templ_7745c5c3_Err = templ_7745c5c3_BufErr
144 }
145 }()
146 }
147 ctx = templ.InitializeContext(ctx)
148 templ_7745c5c3_Err = KV(flattenValues(data.Config)).Render(ctx, templ_7745c5c3_Buffer)
149 if templ_7745c5c3_Err != nil {
150 return templ_7745c5c3_Err
151 }
152 return nil
153 })
154 templ_7745c5c3_Err = Section("sv-config-values", "Current payload").Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
155 if templ_7745c5c3_Err != nil {
156 return templ_7745c5c3_Err
157 }
158 return nil
159 })
160}
161
162func AppearanceForm(config dto.SystemviewConfigPayload) templ.Component {
163 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
164 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
165 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
166 return templ_7745c5c3_CtxErr
167 }
168 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
169 if !templ_7745c5c3_IsBuffer {
170 defer func() {
171 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
172 if templ_7745c5c3_Err == nil {
173 templ_7745c5c3_Err = templ_7745c5c3_BufErr
174 }
175 }()
176 }
177 ctx = templ.InitializeContext(ctx)
178 templ_7745c5c3_Var7 := templ.GetChildren(ctx)
179 if templ_7745c5c3_Var7 == nil {
180 templ_7745c5c3_Var7 = templ.NopComponent
181 }
182 ctx = templ.ClearChildren(ctx)
183 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<form class=\"sv-card-form sv-config-form\" data-sv-action=\"config.appearance.save\"><label><span>Sans font</span><input name=\"sans_font\" type=\"text\" value=\"")
184 if templ_7745c5c3_Err != nil {
185 return templ_7745c5c3_Err
186 }
187 var templ_7745c5c3_Var8 string
188 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.SansFont)
189 if templ_7745c5c3_Err != nil {
190 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 31, Col: 101}
191 }
192 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var8)
193 if templ_7745c5c3_Err != nil {
194 return templ_7745c5c3_Err
195 }
196 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\" required></label> <label><span>Serif font</span><input name=\"serif_font\" type=\"text\" value=\"")
197 if templ_7745c5c3_Err != nil {
198 return templ_7745c5c3_Err
199 }
200 var templ_7745c5c3_Var9 string
201 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.SerifFont)
202 if templ_7745c5c3_Err != nil {
203 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 32, Col: 104}
204 }
205 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9)
206 if templ_7745c5c3_Err != nil {
207 return templ_7745c5c3_Err
208 }
209 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" required></label> <label><span>Monospace font</span><input name=\"monospace_font\" type=\"text\" value=\"")
210 if templ_7745c5c3_Err != nil {
211 return templ_7745c5c3_Err
212 }
213 var templ_7745c5c3_Var10 string
214 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.MonospaceFont)
215 if templ_7745c5c3_Err != nil {
216 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 33, Col: 116}
217 }
218 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
219 if templ_7745c5c3_Err != nil {
220 return templ_7745c5c3_Err
221 }
222 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\" required></label> <label><span>GTK UI font</span><input name=\"gtk_font\" type=\"text\" value=\"")
223 if templ_7745c5c3_Err != nil {
224 return templ_7745c5c3_Err
225 }
226 var templ_7745c5c3_Var11 string
227 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.GtkFont)
228 if templ_7745c5c3_Err != nil {
229 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 34, Col: 101}
230 }
231 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var11)
232 if templ_7745c5c3_Err != nil {
233 return templ_7745c5c3_Err
234 }
235 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "\" required></label> <label><span>Default font size</span><input name=\"default_font_size\" type=\"number\" min=\"1\" max=\"72\" value=\"")
236 if templ_7745c5c3_Err != nil {
237 return templ_7745c5c3_Err
238 }
239 var templ_7745c5c3_Var12 string
240 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Appearance.DefaultFontSize))
241 if templ_7745c5c3_Err != nil {
242 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 35, Col: 160}
243 }
244 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var12)
245 if templ_7745c5c3_Err != nil {
246 return templ_7745c5c3_Err
247 }
248 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\" required></label> <label><span>UI scale</span><input name=\"default_ui_scale\" type=\"number\" min=\"0.5\" max=\"3\" step=\"0.05\" value=\"")
249 if templ_7745c5c3_Err != nil {
250 return templ_7745c5c3_Err
251 }
252 var templ_7745c5c3_Var13 string
253 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigFloat(config.DefaultUIScale))
254 if templ_7745c5c3_Err != nil {
255 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 36, Col: 153}
256 }
257 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
258 if templ_7745c5c3_Err != nil {
259 return templ_7745c5c3_Err
260 }
261 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\" required></label> <label><span>Color scheme</span><select name=\"color_scheme\"><option value=\"default\"")
262 if templ_7745c5c3_Err != nil {
263 return templ_7745c5c3_Err
264 }
265 if colorSchemeSelected(config.Appearance.ColorScheme, "default") {
266 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " selected")
267 if templ_7745c5c3_Err != nil {
268 return templ_7745c5c3_Err
269 }
270 }
271 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, ">System default</option> <option value=\"prefer-light\"")
272 if templ_7745c5c3_Err != nil {
273 return templ_7745c5c3_Err
274 }
275 if colorSchemeSelected(config.Appearance.ColorScheme, "prefer-light") {
276 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " selected")
277 if templ_7745c5c3_Err != nil {
278 return templ_7745c5c3_Err
279 }
280 }
281 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, ">Prefer light</option> <option value=\"prefer-dark\"")
282 if templ_7745c5c3_Err != nil {
283 return templ_7745c5c3_Err
284 }
285 if colorSchemeSelected(config.Appearance.ColorScheme, "prefer-dark") {
286 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " selected")
287 if templ_7745c5c3_Err != nil {
288 return templ_7745c5c3_Err
289 }
290 }
291 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, ">Prefer dark</option></select></label><fieldset class=\"sv-fieldset\"><legend>External theme</legend><p class=\"sv-meta\">Provider noctalia supports colors-json (default Noctalia colors.json) and dumber-json (advanced user template).</p><label><span>Enable external theme</span><input name=\"external_theme_enabled\" type=\"checkbox\"")
292 if templ_7745c5c3_Err != nil {
293 return templ_7745c5c3_Err
294 }
295 if config.Appearance.ExternalTheme.Enabled {
296 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " checked")
297 if templ_7745c5c3_Err != nil {
298 return templ_7745c5c3_Err
299 }
300 }
301 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "></label> <label><span>Provider</span><input name=\"external_theme_provider\" type=\"text\" value=\"")
302 if templ_7745c5c3_Err != nil {
303 return templ_7745c5c3_Err
304 }
305 var templ_7745c5c3_Var14 string
306 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.ExternalTheme.Provider)
307 if templ_7745c5c3_Err != nil {
308 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 46, Col: 129}
309 }
310 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
311 if templ_7745c5c3_Err != nil {
312 return templ_7745c5c3_Err
313 }
314 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\" placeholder=\"noctalia\"></label> <label><span>Format</span><input name=\"external_theme_format\" type=\"text\" value=\"")
315 if templ_7745c5c3_Err != nil {
316 return templ_7745c5c3_Err
317 }
318 var templ_7745c5c3_Var15 string
319 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.ExternalTheme.Format)
320 if templ_7745c5c3_Err != nil {
321 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 47, Col: 123}
322 }
323 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
324 if templ_7745c5c3_Err != nil {
325 return templ_7745c5c3_Err
326 }
327 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\" placeholder=\"colors-json\"></label> <label><span>Path</span><input name=\"external_theme_path\" type=\"text\" value=\"")
328 if templ_7745c5c3_Err != nil {
329 return templ_7745c5c3_Err
330 }
331 var templ_7745c5c3_Var16 string
332 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.Appearance.ExternalTheme.Path)
333 if templ_7745c5c3_Err != nil {
334 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 48, Col: 117}
335 }
336 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)
337 if templ_7745c5c3_Err != nil {
338 return templ_7745c5c3_Err
339 }
340 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\" placeholder=\"~/.config/noctalia/colors.json\"></label></fieldset>")
341 if templ_7745c5c3_Err != nil {
342 return templ_7745c5c3_Err
343 }
344 templ_7745c5c3_Err = PaletteFields("Light palette", "light", config.Appearance.LightPalette).Render(ctx, templ_7745c5c3_Buffer)
345 if templ_7745c5c3_Err != nil {
346 return templ_7745c5c3_Err
347 }
348 templ_7745c5c3_Err = PaletteFields("Dark palette", "dark", config.Appearance.DarkPalette).Render(ctx, templ_7745c5c3_Buffer)
349 if templ_7745c5c3_Err != nil {
350 return templ_7745c5c3_Err
351 }
352 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<div class=\"sv-button-row sv-form-actions\"><button class=\"sv-button\" type=\"submit\">")
353 if templ_7745c5c3_Err != nil {
354 return templ_7745c5c3_Err
355 }
356 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save appearance").Render(ctx, templ_7745c5c3_Buffer)
357 if templ_7745c5c3_Err != nil {
358 return templ_7745c5c3_Err
359 }
360 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "</button> <button class=\"sv-button sv-button-secondary\" type=\"button\" data-sv-action=\"config.appearance.reset\" data-sv-confirm=\"Reset appearance settings to defaults?\">")
361 if templ_7745c5c3_Err != nil {
362 return templ_7745c5c3_Err
363 }
364 templ_7745c5c3_Err = ButtonIconLabel(iconRotateCCW, "Reset appearance").Render(ctx, templ_7745c5c3_Buffer)
365 if templ_7745c5c3_Err != nil {
366 return templ_7745c5c3_Err
367 }
368 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</button></div></form>")
369 if templ_7745c5c3_Err != nil {
370 return templ_7745c5c3_Err
371 }
372 return nil
373 })
374}
375
376func PaletteFields(title string, prefix string, palette dto.ColorPalette) templ.Component {
377 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
378 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
379 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
380 return templ_7745c5c3_CtxErr
381 }
382 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
383 if !templ_7745c5c3_IsBuffer {
384 defer func() {
385 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
386 if templ_7745c5c3_Err == nil {
387 templ_7745c5c3_Err = templ_7745c5c3_BufErr
388 }
389 }()
390 }
391 ctx = templ.InitializeContext(ctx)
392 templ_7745c5c3_Var17 := templ.GetChildren(ctx)
393 if templ_7745c5c3_Var17 == nil {
394 templ_7745c5c3_Var17 = templ.NopComponent
395 }
396 ctx = templ.ClearChildren(ctx)
397 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<fieldset class=\"sv-fieldset\"><legend>")
398 if templ_7745c5c3_Err != nil {
399 return templ_7745c5c3_Err
400 }
401 var templ_7745c5c3_Var18 string
402 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(title)
403 if templ_7745c5c3_Err != nil {
404 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 61, Col: 17}
405 }
406 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
407 if templ_7745c5c3_Err != nil {
408 return templ_7745c5c3_Err
409 }
410 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</legend> <label><span>Background</span><input name=\"")
411 if templ_7745c5c3_Err != nil {
412 return templ_7745c5c3_Err
413 }
414 var templ_7745c5c3_Var19 string
415 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_background")
416 if templ_7745c5c3_Err != nil {
417 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 62, Col: 68}
418 }
419 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var19)
420 if templ_7745c5c3_Err != nil {
421 return templ_7745c5c3_Err
422 }
423 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\" type=\"text\" value=\"")
424 if templ_7745c5c3_Err != nil {
425 return templ_7745c5c3_Err
426 }
427 var templ_7745c5c3_Var20 string
428 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Background)
429 if templ_7745c5c3_Err != nil {
430 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 62, Col: 109}
431 }
432 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var20)
433 if templ_7745c5c3_Err != nil {
434 return templ_7745c5c3_Err
435 }
436 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "\" required></label> <label><span>Surface</span><input name=\"")
437 if templ_7745c5c3_Err != nil {
438 return templ_7745c5c3_Err
439 }
440 var templ_7745c5c3_Var21 string
441 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_surface")
442 if templ_7745c5c3_Err != nil {
443 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 63, Col: 62}
444 }
445 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var21)
446 if templ_7745c5c3_Err != nil {
447 return templ_7745c5c3_Err
448 }
449 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "\" type=\"text\" value=\"")
450 if templ_7745c5c3_Err != nil {
451 return templ_7745c5c3_Err
452 }
453 var templ_7745c5c3_Var22 string
454 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Surface)
455 if templ_7745c5c3_Err != nil {
456 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 63, Col: 100}
457 }
458 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var22)
459 if templ_7745c5c3_Err != nil {
460 return templ_7745c5c3_Err
461 }
462 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\" required></label> <label><span>Surface variant</span><input name=\"")
463 if templ_7745c5c3_Err != nil {
464 return templ_7745c5c3_Err
465 }
466 var templ_7745c5c3_Var23 string
467 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_surface_variant")
468 if templ_7745c5c3_Err != nil {
469 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 64, Col: 78}
470 }
471 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
472 if templ_7745c5c3_Err != nil {
473 return templ_7745c5c3_Err
474 }
475 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\" type=\"text\" value=\"")
476 if templ_7745c5c3_Err != nil {
477 return templ_7745c5c3_Err
478 }
479 var templ_7745c5c3_Var24 string
480 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.SurfaceVariant)
481 if templ_7745c5c3_Err != nil {
482 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 64, Col: 123}
483 }
484 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var24)
485 if templ_7745c5c3_Err != nil {
486 return templ_7745c5c3_Err
487 }
488 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "\" required></label> <label><span>Text</span><input name=\"")
489 if templ_7745c5c3_Err != nil {
490 return templ_7745c5c3_Err
491 }
492 var templ_7745c5c3_Var25 string
493 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_text")
494 if templ_7745c5c3_Err != nil {
495 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 65, Col: 56}
496 }
497 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var25)
498 if templ_7745c5c3_Err != nil {
499 return templ_7745c5c3_Err
500 }
501 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\" type=\"text\" value=\"")
502 if templ_7745c5c3_Err != nil {
503 return templ_7745c5c3_Err
504 }
505 var templ_7745c5c3_Var26 string
506 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Text)
507 if templ_7745c5c3_Err != nil {
508 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 65, Col: 91}
509 }
510 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var26)
511 if templ_7745c5c3_Err != nil {
512 return templ_7745c5c3_Err
513 }
514 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "\" required></label> <label><span>Muted</span><input name=\"")
515 if templ_7745c5c3_Err != nil {
516 return templ_7745c5c3_Err
517 }
518 var templ_7745c5c3_Var27 string
519 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_muted")
520 if templ_7745c5c3_Err != nil {
521 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 66, Col: 58}
522 }
523 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
524 if templ_7745c5c3_Err != nil {
525 return templ_7745c5c3_Err
526 }
527 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "\" type=\"text\" value=\"")
528 if templ_7745c5c3_Err != nil {
529 return templ_7745c5c3_Err
530 }
531 var templ_7745c5c3_Var28 string
532 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Muted)
533 if templ_7745c5c3_Err != nil {
534 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 66, Col: 94}
535 }
536 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
537 if templ_7745c5c3_Err != nil {
538 return templ_7745c5c3_Err
539 }
540 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\" required></label> <label><span>Accent</span><input name=\"")
541 if templ_7745c5c3_Err != nil {
542 return templ_7745c5c3_Err
543 }
544 var templ_7745c5c3_Var29 string
545 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_accent")
546 if templ_7745c5c3_Err != nil {
547 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 67, Col: 60}
548 }
549 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var29)
550 if templ_7745c5c3_Err != nil {
551 return templ_7745c5c3_Err
552 }
553 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "\" type=\"text\" value=\"")
554 if templ_7745c5c3_Err != nil {
555 return templ_7745c5c3_Err
556 }
557 var templ_7745c5c3_Var30 string
558 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Accent)
559 if templ_7745c5c3_Err != nil {
560 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 67, Col: 97}
561 }
562 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var30)
563 if templ_7745c5c3_Err != nil {
564 return templ_7745c5c3_Err
565 }
566 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" required></label> <label><span>Border</span><input name=\"")
567 if templ_7745c5c3_Err != nil {
568 return templ_7745c5c3_Err
569 }
570 var templ_7745c5c3_Var31 string
571 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.ResolveAttributeValue(prefix + "_border")
572 if templ_7745c5c3_Err != nil {
573 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 68, Col: 60}
574 }
575 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var31)
576 if templ_7745c5c3_Err != nil {
577 return templ_7745c5c3_Err
578 }
579 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\" type=\"text\" value=\"")
580 if templ_7745c5c3_Err != nil {
581 return templ_7745c5c3_Err
582 }
583 var templ_7745c5c3_Var32 string
584 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(palette.Border)
585 if templ_7745c5c3_Err != nil {
586 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 68, Col: 97}
587 }
588 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
589 if templ_7745c5c3_Err != nil {
590 return templ_7745c5c3_Err
591 }
592 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "\" required></label></fieldset>")
593 if templ_7745c5c3_Err != nil {
594 return templ_7745c5c3_Err
595 }
596 return nil
597 })
598}
599
600func SearchSettings(config dto.SystemviewConfigPayload) templ.Component {
601 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
602 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
603 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
604 return templ_7745c5c3_CtxErr
605 }
606 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
607 if !templ_7745c5c3_IsBuffer {
608 defer func() {
609 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
610 if templ_7745c5c3_Err == nil {
611 templ_7745c5c3_Err = templ_7745c5c3_BufErr
612 }
613 }()
614 }
615 ctx = templ.InitializeContext(ctx)
616 templ_7745c5c3_Var33 := templ.GetChildren(ctx)
617 if templ_7745c5c3_Var33 == nil {
618 templ_7745c5c3_Var33 = templ.NopComponent
619 }
620 ctx = templ.ClearChildren(ctx)
621 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<form class=\"sv-card-form\" data-sv-action=\"config.search.save\"><label><span>Default search engine</span><input name=\"default_search_engine\" type=\"text\" value=\"")
622 if templ_7745c5c3_Err != nil {
623 return templ_7745c5c3_Err
624 }
625 var templ_7745c5c3_Var34 string
626 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(config.DefaultSearchEngine)
627 if templ_7745c5c3_Err != nil {
628 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 74, Col: 125}
629 }
630 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
631 if templ_7745c5c3_Err != nil {
632 return templ_7745c5c3_Err
633 }
634 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "\" placeholder=\"https://duckduckgo.com/?q=%s\" required></label> <button class=\"sv-button\" type=\"submit\">")
635 if templ_7745c5c3_Err != nil {
636 return templ_7745c5c3_Err
637 }
638 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save search default").Render(ctx, templ_7745c5c3_Buffer)
639 if templ_7745c5c3_Err != nil {
640 return templ_7745c5c3_Err
641 }
642 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</button></form><div class=\"sv-group\"><div class=\"sv-group-header\"><h4>Search shortcuts</h4></div><p class=\"sv-meta\">Shortcut URLs must include the %s placeholder for the search query.</p><form class=\"sv-inline-form\" data-sv-action=\"config.searchShortcut.create\"><label><span>Key</span><input name=\"key\" type=\"text\" placeholder=\"ddg\" required></label> <label><span>URL</span><input name=\"url\" type=\"text\" placeholder=\"https://duckduckgo.com/?q=%s\" pattern=\".*%s.*\" required></label> <label><span>Description</span><input name=\"description\" type=\"text\" placeholder=\"DuckDuckGo\"></label> <button class=\"sv-button sv-button-secondary\" type=\"submit\">")
643 if templ_7745c5c3_Err != nil {
644 return templ_7745c5c3_Err
645 }
646 templ_7745c5c3_Err = ButtonIconLabel(iconPlus, "Add shortcut").Render(ctx, templ_7745c5c3_Buffer)
647 if templ_7745c5c3_Err != nil {
648 return templ_7745c5c3_Err
649 }
650 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</button></form>")
651 if templ_7745c5c3_Err != nil {
652 return templ_7745c5c3_Err
653 }
654 shortcuts := searchShortcutRows(config.SearchShortcuts)
655 if len(shortcuts) == 0 {
656 templ_7745c5c3_Err = EmptyState("No search shortcuts configured").Render(ctx, templ_7745c5c3_Buffer)
657 if templ_7745c5c3_Err != nil {
658 return templ_7745c5c3_Err
659 }
660 } else {
661 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<ul class=\"sv-list\">")
662 if templ_7745c5c3_Err != nil {
663 return templ_7745c5c3_Err
664 }
665 for _, shortcut := range shortcuts {
666 templ_7745c5c3_Err = SearchShortcutItem(shortcut).Render(ctx, templ_7745c5c3_Buffer)
667 if templ_7745c5c3_Err != nil {
668 return templ_7745c5c3_Err
669 }
670 }
671 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</ul>")
672 if templ_7745c5c3_Err != nil {
673 return templ_7745c5c3_Err
674 }
675 }
676 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</div>")
677 if templ_7745c5c3_Err != nil {
678 return templ_7745c5c3_Err
679 }
680 return nil
681 })
682}
683
684func SearchShortcutItem(shortcut searchShortcutRow) templ.Component {
685 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
686 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
687 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
688 return templ_7745c5c3_CtxErr
689 }
690 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
691 if !templ_7745c5c3_IsBuffer {
692 defer func() {
693 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
694 if templ_7745c5c3_Err == nil {
695 templ_7745c5c3_Err = templ_7745c5c3_BufErr
696 }
697 }()
698 }
699 ctx = templ.InitializeContext(ctx)
700 templ_7745c5c3_Var35 := templ.GetChildren(ctx)
701 if templ_7745c5c3_Var35 == nil {
702 templ_7745c5c3_Var35 = templ.NopComponent
703 }
704 ctx = templ.ClearChildren(ctx)
705 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<li class=\"sv-list-row\"><form class=\"sv-inline-form\" data-sv-action=\"config.searchShortcut.update\"><input type=\"hidden\" name=\"key\" value=\"")
706 if templ_7745c5c3_Err != nil {
707 return templ_7745c5c3_Err
708 }
709 var templ_7745c5c3_Var36 string
710 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(shortcut.Key)
711 if templ_7745c5c3_Err != nil {
712 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 102, Col: 55}
713 }
714 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
715 if templ_7745c5c3_Err != nil {
716 return templ_7745c5c3_Err
717 }
718 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\"> <label><span>Key</span><input name=\"new_key\" type=\"text\" value=\"")
719 if templ_7745c5c3_Err != nil {
720 return templ_7745c5c3_Err
721 }
722 var templ_7745c5c3_Var37 string
723 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(shortcut.Key)
724 if templ_7745c5c3_Err != nil {
725 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 103, Col: 80}
726 }
727 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37)
728 if templ_7745c5c3_Err != nil {
729 return templ_7745c5c3_Err
730 }
731 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\" required></label> <label><span>URL</span><input name=\"url\" type=\"text\" value=\"")
732 if templ_7745c5c3_Err != nil {
733 return templ_7745c5c3_Err
734 }
735 var templ_7745c5c3_Var38 string
736 templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(shortcut.URL)
737 if templ_7745c5c3_Err != nil {
738 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 104, Col: 76}
739 }
740 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38)
741 if templ_7745c5c3_Err != nil {
742 return templ_7745c5c3_Err
743 }
744 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "\" pattern=\".*%s.*\" required></label> <label><span>Description</span><input name=\"description\" type=\"text\" value=\"")
745 if templ_7745c5c3_Err != nil {
746 return templ_7745c5c3_Err
747 }
748 var templ_7745c5c3_Var39 string
749 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(shortcut.Description)
750 if templ_7745c5c3_Err != nil {
751 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 105, Col: 100}
752 }
753 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39)
754 if templ_7745c5c3_Err != nil {
755 return templ_7745c5c3_Err
756 }
757 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "\"></label> <button class=\"sv-button sv-button-secondary\" type=\"submit\">")
758 if templ_7745c5c3_Err != nil {
759 return templ_7745c5c3_Err
760 }
761 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save").Render(ctx, templ_7745c5c3_Buffer)
762 if templ_7745c5c3_Err != nil {
763 return templ_7745c5c3_Err
764 }
765 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</button> <button class=\"sv-button sv-button-secondary sv-button-danger sv-button-icon-only\" type=\"button\" data-sv-action=\"config.searchShortcut.delete\" data-key=\"")
766 if templ_7745c5c3_Err != nil {
767 return templ_7745c5c3_Err
768 }
769 var templ_7745c5c3_Var40 string
770 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(shortcut.Key)
771 if templ_7745c5c3_Err != nil {
772 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 107, Col: 169}
773 }
774 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40)
775 if templ_7745c5c3_Err != nil {
776 return templ_7745c5c3_Err
777 }
778 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "\" data-sv-confirm=\"Delete this search shortcut?\" aria-label=\"")
779 if templ_7745c5c3_Err != nil {
780 return templ_7745c5c3_Err
781 }
782 var templ_7745c5c3_Var41 string
783 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.ResolveAttributeValue("Delete search shortcut " + shortcut.Key)
784 if templ_7745c5c3_Err != nil {
785 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 107, Col: 272}
786 }
787 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var41)
788 if templ_7745c5c3_Err != nil {
789 return templ_7745c5c3_Err
790 }
791 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\">")
792 if templ_7745c5c3_Err != nil {
793 return templ_7745c5c3_Err
794 }
795 templ_7745c5c3_Err = IconOnly(iconTrash, "Delete search shortcut "+shortcut.Key).Render(ctx, templ_7745c5c3_Buffer)
796 if templ_7745c5c3_Err != nil {
797 return templ_7745c5c3_Err
798 }
799 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</button></form></li>")
800 if templ_7745c5c3_Err != nil {
801 return templ_7745c5c3_Err
802 }
803 return nil
804 })
805}
806
807func PerformanceSettings(config dto.SystemviewConfigPayload) templ.Component {
808 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
809 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
810 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
811 return templ_7745c5c3_CtxErr
812 }
813 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
814 if !templ_7745c5c3_IsBuffer {
815 defer func() {
816 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
817 if templ_7745c5c3_Err == nil {
818 templ_7745c5c3_Err = templ_7745c5c3_BufErr
819 }
820 }()
821 }
822 ctx = templ.InitializeContext(ctx)
823 templ_7745c5c3_Var42 := templ.GetChildren(ctx)
824 if templ_7745c5c3_Var42 == nil {
825 templ_7745c5c3_Var42 = templ.NopComponent
826 }
827 ctx = templ.ClearChildren(ctx)
828 customProfile := performanceProfileSelected(config.Performance.Profile, "custom")
829 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<form class=\"sv-card-form sv-config-form\" data-sv-action=\"config.performance.save\" data-sv-performance-form><label><span>Profile</span><select name=\"profile\" data-sv-performance-profile><option value=\"default\"")
830 if templ_7745c5c3_Err != nil {
831 return templ_7745c5c3_Err
832 }
833 if performanceProfileSelected(config.Performance.Profile, "default") {
834 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, " selected")
835 if templ_7745c5c3_Err != nil {
836 return templ_7745c5c3_Err
837 }
838 }
839 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, ">Default</option> <option value=\"balanced\"")
840 if templ_7745c5c3_Err != nil {
841 return templ_7745c5c3_Err
842 }
843 if performanceProfileSelected(config.Performance.Profile, "balanced") {
844 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, " selected")
845 if templ_7745c5c3_Err != nil {
846 return templ_7745c5c3_Err
847 }
848 }
849 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, ">Balanced</option> <option value=\"lite\"")
850 if templ_7745c5c3_Err != nil {
851 return templ_7745c5c3_Err
852 }
853 if performanceProfileSelected(config.Performance.Profile, "lite") {
854 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, " selected")
855 if templ_7745c5c3_Err != nil {
856 return templ_7745c5c3_Err
857 }
858 }
859 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, ">Lite</option> <option value=\"max\"")
860 if templ_7745c5c3_Err != nil {
861 return templ_7745c5c3_Err
862 }
863 if performanceProfileSelected(config.Performance.Profile, "max") {
864 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, " selected")
865 if templ_7745c5c3_Err != nil {
866 return templ_7745c5c3_Err
867 }
868 }
869 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, ">Max</option> <option value=\"custom\"")
870 if templ_7745c5c3_Err != nil {
871 return templ_7745c5c3_Err
872 }
873 if performanceProfileSelected(config.Performance.Profile, "custom") {
874 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, " selected")
875 if templ_7745c5c3_Err != nil {
876 return templ_7745c5c3_Err
877 }
878 }
879 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, ">Custom</option></select></label><p class=\"sv-meta\">Choose Custom to edit individual performance values.</p><label><span>Skia CPU threads</span><input name=\"skia_cpu_threads\" type=\"number\" min=\"0\" max=\"8\" value=\"")
880 if templ_7745c5c3_Err != nil {
881 return templ_7745c5c3_Err
882 }
883 var templ_7745c5c3_Var43 string
884 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Performance.Custom.SkiaCPUThreads))
885 if templ_7745c5c3_Err != nil {
886 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 123, Col: 164}
887 }
888 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var43)
889 if templ_7745c5c3_Err != nil {
890 return templ_7745c5c3_Err
891 }
892 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\"")
893 if templ_7745c5c3_Err != nil {
894 return templ_7745c5c3_Err
895 }
896 if !customProfile {
897 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, " disabled")
898 if templ_7745c5c3_Err != nil {
899 return templ_7745c5c3_Err
900 }
901 }
902 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, " data-sv-performance-custom></label> <label><span>Skia GPU threads</span><input name=\"skia_gpu_threads\" type=\"number\" min=\"-1\" max=\"8\" value=\"")
903 if templ_7745c5c3_Err != nil {
904 return templ_7745c5c3_Err
905 }
906 var templ_7745c5c3_Var44 string
907 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Performance.Custom.SkiaGPUThreads))
908 if templ_7745c5c3_Err != nil {
909 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 124, Col: 165}
910 }
911 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var44)
912 if templ_7745c5c3_Err != nil {
913 return templ_7745c5c3_Err
914 }
915 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "\"")
916 if templ_7745c5c3_Err != nil {
917 return templ_7745c5c3_Err
918 }
919 if !customProfile {
920 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, " disabled")
921 if templ_7745c5c3_Err != nil {
922 return templ_7745c5c3_Err
923 }
924 }
925 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, " data-sv-performance-custom></label> <label><span>Web process memory MB</span><input name=\"web_process_memory_mb\" type=\"number\" min=\"0\" max=\"16384\" value=\"")
926 if templ_7745c5c3_Err != nil {
927 return templ_7745c5c3_Err
928 }
929 var templ_7745c5c3_Var45 string
930 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Performance.Custom.WebProcessMemoryMB))
931 if templ_7745c5c3_Err != nil {
932 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 125, Col: 182}
933 }
934 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var45)
935 if templ_7745c5c3_Err != nil {
936 return templ_7745c5c3_Err
937 }
938 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "\"")
939 if templ_7745c5c3_Err != nil {
940 return templ_7745c5c3_Err
941 }
942 if !customProfile {
943 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, " disabled")
944 if templ_7745c5c3_Err != nil {
945 return templ_7745c5c3_Err
946 }
947 }
948 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, " data-sv-performance-custom></label> <label><span>Network process memory MB</span><input name=\"network_process_memory_mb\" type=\"number\" min=\"0\" max=\"4096\" value=\"")
949 if templ_7745c5c3_Err != nil {
950 return templ_7745c5c3_Err
951 }
952 var templ_7745c5c3_Var46 string
953 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Performance.Custom.NetworkProcessMemoryMB))
954 if templ_7745c5c3_Err != nil {
955 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 126, Col: 193}
956 }
957 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var46)
958 if templ_7745c5c3_Err != nil {
959 return templ_7745c5c3_Err
960 }
961 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "\"")
962 if templ_7745c5c3_Err != nil {
963 return templ_7745c5c3_Err
964 }
965 if !customProfile {
966 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, " disabled")
967 if templ_7745c5c3_Err != nil {
968 return templ_7745c5c3_Err
969 }
970 }
971 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, " data-sv-performance-custom></label> <label><span>WebView pool prewarm</span><input name=\"webview_pool_prewarm\" type=\"number\" min=\"0\" max=\"20\" value=\"")
972 if templ_7745c5c3_Err != nil {
973 return templ_7745c5c3_Err
974 }
975 var templ_7745c5c3_Var47 string
976 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(formatConfigInt(config.Performance.Custom.WebViewPoolPrewarm))
977 if templ_7745c5c3_Err != nil {
978 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 127, Col: 177}
979 }
980 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
981 if templ_7745c5c3_Err != nil {
982 return templ_7745c5c3_Err
983 }
984 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\"")
985 if templ_7745c5c3_Err != nil {
986 return templ_7745c5c3_Err
987 }
988 if !customProfile {
989 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " disabled")
990 if templ_7745c5c3_Err != nil {
991 return templ_7745c5c3_Err
992 }
993 }
994 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " data-sv-performance-custom></label> <button class=\"sv-button\" type=\"submit\">")
995 if templ_7745c5c3_Err != nil {
996 return templ_7745c5c3_Err
997 }
998 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save performance").Render(ctx, templ_7745c5c3_Buffer)
999 if templ_7745c5c3_Err != nil {
1000 return templ_7745c5c3_Err
1001 }
1002 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</button></form><div class=\"sv-stat-grid\"><div class=\"sv-stat-card\"><span class=\"sv-stat-value\">")
1003 if templ_7745c5c3_Err != nil {
1004 return templ_7745c5c3_Err
1005 }
1006 var templ_7745c5c3_Var48 string
1007 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(formatConfigInt(config.Performance.Hardware.CPUThreads))
1008 if templ_7745c5c3_Err != nil {
1009 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 131, Col: 113}
1010 }
1011 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
1012 if templ_7745c5c3_Err != nil {
1013 return templ_7745c5c3_Err
1014 }
1015 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</span><span class=\"sv-stat-label\">CPU threads</span></div><div class=\"sv-stat-card\"><span class=\"sv-stat-value\">")
1016 if templ_7745c5c3_Err != nil {
1017 return templ_7745c5c3_Err
1018 }
1019 var templ_7745c5c3_Var49 string
1020 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(formatConfigInt(config.Performance.Hardware.TotalRAMMB))
1021 if templ_7745c5c3_Err != nil {
1022 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 132, Col: 113}
1023 }
1024 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
1025 if templ_7745c5c3_Err != nil {
1026 return templ_7745c5c3_Err
1027 }
1028 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</span><span class=\"sv-stat-label\">RAM MB</span></div><div class=\"sv-stat-card\"><span class=\"sv-stat-value\">")
1029 if templ_7745c5c3_Err != nil {
1030 return templ_7745c5c3_Err
1031 }
1032 var templ_7745c5c3_Var50 string
1033 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(config.Performance.Hardware.GPUName)
1034 if templ_7745c5c3_Err != nil {
1035 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 133, Col: 93}
1036 }
1037 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
1038 if templ_7745c5c3_Err != nil {
1039 return templ_7745c5c3_Err
1040 }
1041 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "</span><span class=\"sv-stat-label\">GPU</span></div><div class=\"sv-stat-card\"><span class=\"sv-stat-value\">")
1042 if templ_7745c5c3_Err != nil {
1043 return templ_7745c5c3_Err
1044 }
1045 var templ_7745c5c3_Var51 string
1046 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(config.EngineType)
1047 if templ_7745c5c3_Err != nil {
1048 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 134, Col: 75}
1049 }
1050 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
1051 if templ_7745c5c3_Err != nil {
1052 return templ_7745c5c3_Err
1053 }
1054 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</span><span class=\"sv-stat-label\">Engine</span></div></div>")
1055 if templ_7745c5c3_Err != nil {
1056 return templ_7745c5c3_Err
1057 }
1058 if !engineIsWebKit(config.EngineType) {
1059 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<p class=\"sv-meta\">Performance tuning applies only to the WebKit engine.</p>")
1060 if templ_7745c5c3_Err != nil {
1061 return templ_7745c5c3_Err
1062 }
1063 } else {
1064 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<p class=\"sv-meta\">Performance profile changes may require restarting the browser to affect existing engine processes.</p>")
1065 if templ_7745c5c3_Err != nil {
1066 return templ_7745c5c3_Err
1067 }
1068 }
1069 return nil
1070 })
1071}
1072
1073func ConfigKeybindings(keybindings port.KeybindingsConfig) templ.Component {
1074 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1075 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1076 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1077 return templ_7745c5c3_CtxErr
1078 }
1079 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1080 if !templ_7745c5c3_IsBuffer {
1081 defer func() {
1082 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1083 if templ_7745c5c3_Err == nil {
1084 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1085 }
1086 }()
1087 }
1088 ctx = templ.InitializeContext(ctx)
1089 templ_7745c5c3_Var52 := templ.GetChildren(ctx)
1090 if templ_7745c5c3_Var52 == nil {
1091 templ_7745c5c3_Var52 = templ.NopComponent
1092 }
1093 ctx = templ.ClearChildren(ctx)
1094 groups := configKeybindingGroups(keybindings)
1095 if groups == nil {
1096 templ_7745c5c3_Err = EmptyState("Keybindings unavailable").Render(ctx, templ_7745c5c3_Buffer)
1097 if templ_7745c5c3_Err != nil {
1098 return templ_7745c5c3_Err
1099 }
1100 } else if len(groups) == 0 {
1101 templ_7745c5c3_Err = EmptyState("No keybindings configured").Render(ctx, templ_7745c5c3_Buffer)
1102 if templ_7745c5c3_Err != nil {
1103 return templ_7745c5c3_Err
1104 }
1105 } else {
1106 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<div class=\"sv-button-row\"><button class=\"sv-button sv-button-secondary sv-button-danger\" type=\"button\" data-sv-action=\"config.keybinding.resetAll\" data-sv-confirm=\"Reset all keybindings to defaults?\">")
1107 if templ_7745c5c3_Err != nil {
1108 return templ_7745c5c3_Err
1109 }
1110 templ_7745c5c3_Err = ButtonIconLabel(iconRotateCCW, "Reset all keybindings").Render(ctx, templ_7745c5c3_Buffer)
1111 if templ_7745c5c3_Err != nil {
1112 return templ_7745c5c3_Err
1113 }
1114 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "</button></div>")
1115 if templ_7745c5c3_Err != nil {
1116 return templ_7745c5c3_Err
1117 }
1118 for _, group := range groups {
1119 templ_7745c5c3_Err = ConfigKeybindingGroup(group).Render(ctx, templ_7745c5c3_Buffer)
1120 if templ_7745c5c3_Err != nil {
1121 return templ_7745c5c3_Err
1122 }
1123 }
1124 }
1125 return nil
1126 })
1127}
1128
1129func ConfigKeybindingGroup(group renderedKeybindingGroup) templ.Component {
1130 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1131 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1132 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1133 return templ_7745c5c3_CtxErr
1134 }
1135 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1136 if !templ_7745c5c3_IsBuffer {
1137 defer func() {
1138 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1139 if templ_7745c5c3_Err == nil {
1140 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1141 }
1142 }()
1143 }
1144 ctx = templ.InitializeContext(ctx)
1145 templ_7745c5c3_Var53 := templ.GetChildren(ctx)
1146 if templ_7745c5c3_Var53 == nil {
1147 templ_7745c5c3_Var53 = templ.NopComponent
1148 }
1149 ctx = templ.ClearChildren(ctx)
1150 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "<div class=\"sv-group\"><div class=\"sv-group-header\"><div><h4>")
1151 if templ_7745c5c3_Err != nil {
1152 return templ_7745c5c3_Err
1153 }
1154 var templ_7745c5c3_Var54 string
1155 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(keybindingGroupTitle(group))
1156 if templ_7745c5c3_Err != nil {
1157 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 163, Col: 37}
1158 }
1159 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
1160 if templ_7745c5c3_Err != nil {
1161 return templ_7745c5c3_Err
1162 }
1163 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</h4>")
1164 if templ_7745c5c3_Err != nil {
1165 return templ_7745c5c3_Err
1166 }
1167 if keybindingGroupMeta(group) != "" {
1168 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<p class=\"sv-meta\">")
1169 if templ_7745c5c3_Err != nil {
1170 return templ_7745c5c3_Err
1171 }
1172 var templ_7745c5c3_Var55 string
1173 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(keybindingGroupMeta(group))
1174 if templ_7745c5c3_Err != nil {
1175 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 165, Col: 52}
1176 }
1177 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1178 if templ_7745c5c3_Err != nil {
1179 return templ_7745c5c3_Err
1180 }
1181 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</p>")
1182 if templ_7745c5c3_Err != nil {
1183 return templ_7745c5c3_Err
1184 }
1185 }
1186 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</div></div><div class=\"sv-group-body\">")
1187 if templ_7745c5c3_Err != nil {
1188 return templ_7745c5c3_Err
1189 }
1190 if len(group.Bindings) == 0 {
1191 templ_7745c5c3_Err = EmptyState("No bindings in this group").Render(ctx, templ_7745c5c3_Buffer)
1192 if templ_7745c5c3_Err != nil {
1193 return templ_7745c5c3_Err
1194 }
1195 } else {
1196 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<ul class=\"sv-list\">")
1197 if templ_7745c5c3_Err != nil {
1198 return templ_7745c5c3_Err
1199 }
1200 for _, binding := range group.Bindings {
1201 templ_7745c5c3_Err = ConfigKeybinding(group, binding).Render(ctx, templ_7745c5c3_Buffer)
1202 if templ_7745c5c3_Err != nil {
1203 return templ_7745c5c3_Err
1204 }
1205 }
1206 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "</ul>")
1207 if templ_7745c5c3_Err != nil {
1208 return templ_7745c5c3_Err
1209 }
1210 }
1211 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</div></div>")
1212 if templ_7745c5c3_Err != nil {
1213 return templ_7745c5c3_Err
1214 }
1215 return nil
1216 })
1217}
1218
1219func ConfigKeybinding(group renderedKeybindingGroup, binding renderedKeybinding) templ.Component {
1220 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1221 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1222 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1223 return templ_7745c5c3_CtxErr
1224 }
1225 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1226 if !templ_7745c5c3_IsBuffer {
1227 defer func() {
1228 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1229 if templ_7745c5c3_Err == nil {
1230 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1231 }
1232 }()
1233 }
1234 ctx = templ.InitializeContext(ctx)
1235 templ_7745c5c3_Var56 := templ.GetChildren(ctx)
1236 if templ_7745c5c3_Var56 == nil {
1237 templ_7745c5c3_Var56 = templ.NopComponent
1238 }
1239 ctx = templ.ClearChildren(ctx)
1240 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<li class=\"sv-list-row\"><div class=\"sv-keybinding-row\"><div><strong>")
1241 if templ_7745c5c3_Err != nil {
1242 return templ_7745c5c3_Err
1243 }
1244 var templ_7745c5c3_Var57 string
1245 templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(keybindingDescription(binding))
1246 if templ_7745c5c3_Err != nil {
1247 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 187, Col: 44}
1248 }
1249 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1250 if templ_7745c5c3_Err != nil {
1251 return templ_7745c5c3_Err
1252 }
1253 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "</strong><p class=\"sv-meta\">")
1254 if templ_7745c5c3_Err != nil {
1255 return templ_7745c5c3_Err
1256 }
1257 var templ_7745c5c3_Var58 string
1258 templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(keybindingAction(binding))
1259 if templ_7745c5c3_Err != nil {
1260 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 188, Col: 50}
1261 }
1262 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1263 if templ_7745c5c3_Err != nil {
1264 return templ_7745c5c3_Err
1265 }
1266 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</p><div class=\"sv-binding-keys\">")
1267 if templ_7745c5c3_Err != nil {
1268 return templ_7745c5c3_Err
1269 }
1270 templ_7745c5c3_Err = KeyList(binding.Keys).Render(ctx, templ_7745c5c3_Buffer)
1271 if templ_7745c5c3_Err != nil {
1272 return templ_7745c5c3_Err
1273 }
1274 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "<span class=\"sv-badge\">")
1275 if templ_7745c5c3_Err != nil {
1276 return templ_7745c5c3_Err
1277 }
1278 var templ_7745c5c3_Var59 string
1279 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(keybindingStatus(binding))
1280 if templ_7745c5c3_Err != nil {
1281 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 191, Col: 55}
1282 }
1283 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1284 if templ_7745c5c3_Err != nil {
1285 return templ_7745c5c3_Err
1286 }
1287 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "</span> ")
1288 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err
1290 }
1291 if keybindingIsCustom(binding) && len(binding.DefaultKeys) > 0 {
1292 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "<span class=\"sv-meta\">default:</span>")
1293 if templ_7745c5c3_Err != nil {
1294 return templ_7745c5c3_Err
1295 }
1296 templ_7745c5c3_Err = KeyList(binding.DefaultKeys).Render(ctx, templ_7745c5c3_Buffer)
1297 if templ_7745c5c3_Err != nil {
1298 return templ_7745c5c3_Err
1299 }
1300 }
1301 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "</div></div><form class=\"sv-inline-form\" data-sv-action=\"config.keybinding.set\"><input type=\"hidden\" name=\"mode\" value=\"")
1302 if templ_7745c5c3_Err != nil {
1303 return templ_7745c5c3_Err
1304 }
1305 var templ_7745c5c3_Var60 string
1306 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.ResolveAttributeValue(group.Mode)
1307 if templ_7745c5c3_Err != nil {
1308 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 199, Col: 55}
1309 }
1310 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var60)
1311 if templ_7745c5c3_Err != nil {
1312 return templ_7745c5c3_Err
1313 }
1314 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"> <input type=\"hidden\" name=\"action\" value=\"")
1315 if templ_7745c5c3_Err != nil {
1316 return templ_7745c5c3_Err
1317 }
1318 var templ_7745c5c3_Var61 string
1319 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.ResolveAttributeValue(binding.Action)
1320 if templ_7745c5c3_Err != nil {
1321 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 200, Col: 61}
1322 }
1323 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var61)
1324 if templ_7745c5c3_Err != nil {
1325 return templ_7745c5c3_Err
1326 }
1327 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\"> <label><span>Keys</span><input name=\"keys\" type=\"text\" value=\"")
1328 if templ_7745c5c3_Err != nil {
1329 return templ_7745c5c3_Err
1330 }
1331 var templ_7745c5c3_Var62 string
1332 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue(keybindingKeysValue(binding.Keys))
1333 if templ_7745c5c3_Err != nil {
1334 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 201, Col: 100}
1335 }
1336 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
1337 if templ_7745c5c3_Err != nil {
1338 return templ_7745c5c3_Err
1339 }
1340 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "\" placeholder=\"ctrl+h, ctrl+shift+h\" required></label> <button class=\"sv-button sv-button-secondary\" type=\"submit\">")
1341 if templ_7745c5c3_Err != nil {
1342 return templ_7745c5c3_Err
1343 }
1344 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save").Render(ctx, templ_7745c5c3_Buffer)
1345 if templ_7745c5c3_Err != nil {
1346 return templ_7745c5c3_Err
1347 }
1348 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "</button> <button class=\"sv-button sv-button-secondary\" type=\"button\" data-sv-action=\"config.keybinding.reset\" data-mode=\"")
1349 if templ_7745c5c3_Err != nil {
1350 return templ_7745c5c3_Err
1351 }
1352 var templ_7745c5c3_Var63 string
1353 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(group.Mode)
1354 if templ_7745c5c3_Err != nil {
1355 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 203, Col: 127}
1356 }
1357 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63)
1358 if templ_7745c5c3_Err != nil {
1359 return templ_7745c5c3_Err
1360 }
1361 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "\" data-action=\"")
1362 if templ_7745c5c3_Err != nil {
1363 return templ_7745c5c3_Err
1364 }
1365 var templ_7745c5c3_Var64 string
1366 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(binding.Action)
1367 if templ_7745c5c3_Err != nil {
1368 return templ.Error{Err: templ_7745c5c3_Err, FileName: `config.templ`, Line: 203, Col: 158}
1369 }
1370 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
1371 if templ_7745c5c3_Err != nil {
1372 return templ_7745c5c3_Err
1373 }
1374 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "\">")
1375 if templ_7745c5c3_Err != nil {
1376 return templ_7745c5c3_Err
1377 }
1378 templ_7745c5c3_Err = ButtonIconLabel(iconRotateCCW, "Reset").Render(ctx, templ_7745c5c3_Buffer)
1379 if templ_7745c5c3_Err != nil {
1380 return templ_7745c5c3_Err
1381 }
1382 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</button></form></div></li>")
1383 if templ_7745c5c3_Err != nil {
1384 return templ_7745c5c3_Err
1385 }
1386 return nil
1387 })
1388}
1389
1390var _ = templruntime.GeneratedTemplate