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