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 "fmt"
12 "github.com/bnema/dumber/internal/domain/entity"
13)
14
15func FavoritesView(data favoritesRenderData) 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 = FavoritesControls(data).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-favorites-controls", "Manage favorites").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 = Meta(favoritesSummary(data)).Render(ctx, templ_7745c5c3_Buffer)
79 if templ_7745c5c3_Err != nil {
80 return templ_7745c5c3_Err
81 }
82 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " ")
83 if templ_7745c5c3_Err != nil {
84 return templ_7745c5c3_Err
85 }
86 if len(data.Favorites) == 0 {
87 templ_7745c5c3_Err = EmptyState("No favorites").Render(ctx, templ_7745c5c3_Buffer)
88 if templ_7745c5c3_Err != nil {
89 return templ_7745c5c3_Err
90 }
91 } else {
92 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<ul class=\"sv-list\">")
93 if templ_7745c5c3_Err != nil {
94 return templ_7745c5c3_Err
95 }
96 for _, favorite := range data.Favorites {
97 if favorite != nil {
98 templ_7745c5c3_Err = FavoriteItem(favorite, data.Tags).Render(ctx, templ_7745c5c3_Buffer)
99 if templ_7745c5c3_Err != nil {
100 return templ_7745c5c3_Err
101 }
102 }
103 }
104 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</ul>")
105 if templ_7745c5c3_Err != nil {
106 return templ_7745c5c3_Err
107 }
108 }
109 return nil
110 })
111 templ_7745c5c3_Err = Section("sv-favorites-list", "Favorites").Render(templ.WithChildren(ctx, templ_7745c5c3_Var3), templ_7745c5c3_Buffer)
112 if templ_7745c5c3_Err != nil {
113 return templ_7745c5c3_Err
114 }
115 templ_7745c5c3_Var4 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
116 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
117 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
118 if !templ_7745c5c3_IsBuffer {
119 defer func() {
120 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
121 if templ_7745c5c3_Err == nil {
122 templ_7745c5c3_Err = templ_7745c5c3_BufErr
123 }
124 }()
125 }
126 ctx = templ.InitializeContext(ctx)
127 templ_7745c5c3_Err = Meta(tagsSummary(data)).Render(ctx, templ_7745c5c3_Buffer)
128 if templ_7745c5c3_Err != nil {
129 return templ_7745c5c3_Err
130 }
131 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ")
132 if templ_7745c5c3_Err != nil {
133 return templ_7745c5c3_Err
134 }
135 templ_7745c5c3_Err = TagCreateForm().Render(ctx, templ_7745c5c3_Buffer)
136 if templ_7745c5c3_Err != nil {
137 return templ_7745c5c3_Err
138 }
139 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " ")
140 if templ_7745c5c3_Err != nil {
141 return templ_7745c5c3_Err
142 }
143 if len(data.Tags) == 0 {
144 templ_7745c5c3_Err = EmptyState("No tags").Render(ctx, templ_7745c5c3_Buffer)
145 if templ_7745c5c3_Err != nil {
146 return templ_7745c5c3_Err
147 }
148 } else {
149 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<ul class=\"sv-list\">")
150 if templ_7745c5c3_Err != nil {
151 return templ_7745c5c3_Err
152 }
153 for _, tag := range data.Tags {
154 if tag != nil {
155 templ_7745c5c3_Err = TagItem(tag).Render(ctx, templ_7745c5c3_Buffer)
156 if templ_7745c5c3_Err != nil {
157 return templ_7745c5c3_Err
158 }
159 }
160 }
161 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</ul>")
162 if templ_7745c5c3_Err != nil {
163 return templ_7745c5c3_Err
164 }
165 }
166 return nil
167 })
168 templ_7745c5c3_Err = Section("sv-tags-list", "Tags").Render(templ.WithChildren(ctx, templ_7745c5c3_Var4), templ_7745c5c3_Buffer)
169 if templ_7745c5c3_Err != nil {
170 return templ_7745c5c3_Err
171 }
172 return nil
173 })
174}
175
176func FavoritesControls(data favoritesRenderData) templ.Component {
177 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
178 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
179 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
180 return templ_7745c5c3_CtxErr
181 }
182 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
183 if !templ_7745c5c3_IsBuffer {
184 defer func() {
185 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
186 if templ_7745c5c3_Err == nil {
187 templ_7745c5c3_Err = templ_7745c5c3_BufErr
188 }
189 }()
190 }
191 ctx = templ.InitializeContext(ctx)
192 templ_7745c5c3_Var5 := templ.GetChildren(ctx)
193 if templ_7745c5c3_Var5 == nil {
194 templ_7745c5c3_Var5 = templ.NopComponent
195 }
196 ctx = templ.ClearChildren(ctx)
197 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<form class=\"sv-card-form\" data-sv-action=\"favorite.create\"><label><span>URL</span><input name=\"url\" type=\"url\" placeholder=\"https://example.com\" required></label> <label><span>Title</span><input name=\"title\" type=\"text\" placeholder=\"Optional title\"></label>")
198 if templ_7745c5c3_Err != nil {
199 return templ_7745c5c3_Err
200 }
201 templ_7745c5c3_Err = FavoriteCreateTagPicker(data.Tags).Render(ctx, templ_7745c5c3_Buffer)
202 if templ_7745c5c3_Err != nil {
203 return templ_7745c5c3_Err
204 }
205 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<button class=\"sv-button\" type=\"submit\">")
206 if templ_7745c5c3_Err != nil {
207 return templ_7745c5c3_Err
208 }
209 templ_7745c5c3_Err = ButtonIconLabel(iconPlus, "Add favorite").Render(ctx, templ_7745c5c3_Buffer)
210 if templ_7745c5c3_Err != nil {
211 return templ_7745c5c3_Err
212 }
213 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</button></form><div class=\"sv-filter-panel\"><div class=\"sv-button-row\"><span class=\"sv-meta\">Tags</span> ")
214 if templ_7745c5c3_Err != nil {
215 return templ_7745c5c3_Err
216 }
217 var templ_7745c5c3_Var6 = []any{favoriteFilterClass(favoriteAllFilterActive(data))}
218 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var6...)
219 if templ_7745c5c3_Err != nil {
220 return templ_7745c5c3_Err
221 }
222 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<button type=\"button\" class=\"")
223 if templ_7745c5c3_Err != nil {
224 return templ_7745c5c3_Err
225 }
226 var templ_7745c5c3_Var7 string
227 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var6).String())
228 if templ_7745c5c3_Err != nil {
229 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 1, Col: 0}
230 }
231 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var7)
232 if templ_7745c5c3_Err != nil {
233 return templ_7745c5c3_Err
234 }
235 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\" aria-pressed=\"")
236 if templ_7745c5c3_Err != nil {
237 return templ_7745c5c3_Err
238 }
239 var templ_7745c5c3_Var8 string
240 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%t", favoriteAllFilterActive(data)))
241 if templ_7745c5c3_Err != nil {
242 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 55, Col: 149}
243 }
244 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var8)
245 if templ_7745c5c3_Err != nil {
246 return templ_7745c5c3_Err
247 }
248 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "\" data-sv-action=\"favorite.clearFilters\">All</button> ")
249 if templ_7745c5c3_Err != nil {
250 return templ_7745c5c3_Err
251 }
252 var templ_7745c5c3_Var9 = []any{favoriteFilterClass(favoriteUntaggedFilterActive(data))}
253 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var9...)
254 if templ_7745c5c3_Err != nil {
255 return templ_7745c5c3_Err
256 }
257 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "<button type=\"button\" class=\"")
258 if templ_7745c5c3_Err != nil {
259 return templ_7745c5c3_Err
260 }
261 var templ_7745c5c3_Var10 string
262 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var9).String())
263 if templ_7745c5c3_Err != nil {
264 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 1, Col: 0}
265 }
266 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
267 if templ_7745c5c3_Err != nil {
268 return templ_7745c5c3_Err
269 }
270 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "\" aria-pressed=\"")
271 if templ_7745c5c3_Err != nil {
272 return templ_7745c5c3_Err
273 }
274 var templ_7745c5c3_Var11 string
275 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%t", favoriteUntaggedFilterActive(data)))
276 if templ_7745c5c3_Err != nil {
277 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 56, Col: 159}
278 }
279 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var11)
280 if templ_7745c5c3_Err != nil {
281 return templ_7745c5c3_Err
282 }
283 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\" data-sv-action=\"favorite.filterUntagged\">Untagged</button> ")
284 if templ_7745c5c3_Err != nil {
285 return templ_7745c5c3_Err
286 }
287 for _, tag := range data.Tags {
288 if tag != nil {
289 var templ_7745c5c3_Var12 = []any{favoriteFilterClass(favoriteTagFilterActive(data, tag.ID))}
290 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var12...)
291 if templ_7745c5c3_Err != nil {
292 return templ_7745c5c3_Err
293 }
294 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<button type=\"button\" class=\"")
295 if templ_7745c5c3_Err != nil {
296 return templ_7745c5c3_Err
297 }
298 var templ_7745c5c3_Var13 string
299 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var12).String())
300 if templ_7745c5c3_Err != nil {
301 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 1, Col: 0}
302 }
303 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
304 if templ_7745c5c3_Err != nil {
305 return templ_7745c5c3_Err
306 }
307 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\" aria-pressed=\"")
308 if templ_7745c5c3_Err != nil {
309 return templ_7745c5c3_Err
310 }
311 var templ_7745c5c3_Var14 string
312 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%t", favoriteTagFilterActive(data, tag.ID)))
313 if templ_7745c5c3_Err != nil {
314 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 59, Col: 167}
315 }
316 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
317 if templ_7745c5c3_Err != nil {
318 return templ_7745c5c3_Err
319 }
320 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "\" data-sv-action=\"favorite.filterTag\" data-tag-id=\"")
321 if templ_7745c5c3_Err != nil {
322 return templ_7745c5c3_Err
323 }
324 var templ_7745c5c3_Var15 string
325 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", tag.ID))
326 if templ_7745c5c3_Err != nil {
327 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 59, Col: 245}
328 }
329 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
330 if templ_7745c5c3_Err != nil {
331 return templ_7745c5c3_Err
332 }
333 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\"><span class=\"sv-tag-dot\" style=\"")
334 if templ_7745c5c3_Err != nil {
335 return templ_7745c5c3_Err
336 }
337 var templ_7745c5c3_Var16 string
338 templ_7745c5c3_Var16, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("background:" + safeTagColor(tag.Color))
339 if templ_7745c5c3_Err != nil {
340 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 60, Col: 78}
341 }
342 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
343 if templ_7745c5c3_Err != nil {
344 return templ_7745c5c3_Err
345 }
346 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\"></span>")
347 if templ_7745c5c3_Err != nil {
348 return templ_7745c5c3_Err
349 }
350 var templ_7745c5c3_Var17 string
351 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(tag.Name)
352 if templ_7745c5c3_Err != nil {
353 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 60, Col: 98}
354 }
355 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
356 if templ_7745c5c3_Err != nil {
357 return templ_7745c5c3_Err
358 }
359 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</button>")
360 if templ_7745c5c3_Err != nil {
361 return templ_7745c5c3_Err
362 }
363 }
364 }
365 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</div></div><p class=\"sv-meta sv-key-hints\">Keys: <kbd>j</kbd>/<kbd>k</kbd> move, <kbd>Enter</kbd> open, <kbd>e</kbd> edit title, <kbd>d</kbd> delete focused favorite.</p>")
366 if templ_7745c5c3_Err != nil {
367 return templ_7745c5c3_Err
368 }
369 return nil
370 })
371}
372
373func FavoriteCreateTagPicker(tags []*entity.Tag) templ.Component {
374 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
375 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
376 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
377 return templ_7745c5c3_CtxErr
378 }
379 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
380 if !templ_7745c5c3_IsBuffer {
381 defer func() {
382 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
383 if templ_7745c5c3_Err == nil {
384 templ_7745c5c3_Err = templ_7745c5c3_BufErr
385 }
386 }()
387 }
388 ctx = templ.InitializeContext(ctx)
389 templ_7745c5c3_Var18 := templ.GetChildren(ctx)
390 if templ_7745c5c3_Var18 == nil {
391 templ_7745c5c3_Var18 = templ.NopComponent
392 }
393 ctx = templ.ClearChildren(ctx)
394 if len(tags) > 0 {
395 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<fieldset class=\"sv-tag-picker\"><legend>Tags</legend><div class=\"sv-tag-controls\">")
396 if templ_7745c5c3_Err != nil {
397 return templ_7745c5c3_Err
398 }
399 for _, tag := range tags {
400 if tag != nil {
401 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<label class=\"sv-tag-toggle\"><input type=\"checkbox\" name=\"tags\" value=\"")
402 if templ_7745c5c3_Err != nil {
403 return templ_7745c5c3_Err
404 }
405 var templ_7745c5c3_Var19 string
406 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", tag.ID))
407 if templ_7745c5c3_Err != nil {
408 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 77, Col: 75}
409 }
410 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var19)
411 if templ_7745c5c3_Err != nil {
412 return templ_7745c5c3_Err
413 }
414 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "\"> <span><span class=\"sv-tag-dot\" style=\"")
415 if templ_7745c5c3_Err != nil {
416 return templ_7745c5c3_Err
417 }
418 var templ_7745c5c3_Var20 string
419 templ_7745c5c3_Var20, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("background:" + safeTagColor(tag.Color))
420 if templ_7745c5c3_Err != nil {
421 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 78, Col: 85}
422 }
423 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
424 if templ_7745c5c3_Err != nil {
425 return templ_7745c5c3_Err
426 }
427 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\"></span>")
428 if templ_7745c5c3_Err != nil {
429 return templ_7745c5c3_Err
430 }
431 var templ_7745c5c3_Var21 string
432 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(tag.Name)
433 if templ_7745c5c3_Err != nil {
434 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 78, Col: 105}
435 }
436 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
437 if templ_7745c5c3_Err != nil {
438 return templ_7745c5c3_Err
439 }
440 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</span></label>")
441 if templ_7745c5c3_Err != nil {
442 return templ_7745c5c3_Err
443 }
444 }
445 }
446 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</div></fieldset>")
447 if templ_7745c5c3_Err != nil {
448 return templ_7745c5c3_Err
449 }
450 }
451 return nil
452 })
453}
454
455func FavoriteItem(favorite *entity.Favorite, tags []*entity.Tag) templ.Component {
456 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
457 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
458 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
459 return templ_7745c5c3_CtxErr
460 }
461 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
462 if !templ_7745c5c3_IsBuffer {
463 defer func() {
464 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
465 if templ_7745c5c3_Err == nil {
466 templ_7745c5c3_Err = templ_7745c5c3_BufErr
467 }
468 }()
469 }
470 ctx = templ.InitializeContext(ctx)
471 templ_7745c5c3_Var22 := templ.GetChildren(ctx)
472 if templ_7745c5c3_Var22 == nil {
473 templ_7745c5c3_Var22 = templ.NopComponent
474 }
475 ctx = templ.ClearChildren(ctx)
476 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "<li class=\"sv-list-row\"><article class=\"sv-favorite-item\" data-sv-favorite-row data-favorite-id=\"")
477 if templ_7745c5c3_Err != nil {
478 return templ_7745c5c3_Err
479 }
480 var templ_7745c5c3_Var23 string
481 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", favorite.ID))
482 if templ_7745c5c3_Err != nil {
483 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 89, Col: 106}
484 }
485 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
486 if templ_7745c5c3_Err != nil {
487 return templ_7745c5c3_Err
488 }
489 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "\"><div class=\"sv-favorite-header\"><div><a class=\"sv-link sv-favorite-open\" href=\"")
490 if templ_7745c5c3_Err != nil {
491 return templ_7745c5c3_Err
492 }
493 var templ_7745c5c3_Var24 templ.SafeURL
494 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(sanitizeHref(favorite.URL)))
495 if templ_7745c5c3_Err != nil {
496 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 92, Col: 89}
497 }
498 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
499 if templ_7745c5c3_Err != nil {
500 return templ_7745c5c3_Err
501 }
502 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "\">")
503 if templ_7745c5c3_Err != nil {
504 return templ_7745c5c3_Err
505 }
506 var templ_7745c5c3_Var25 string
507 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(favoriteItemLabel(favorite))
508 if templ_7745c5c3_Err != nil {
509 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 92, Col: 121}
510 }
511 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
512 if templ_7745c5c3_Err != nil {
513 return templ_7745c5c3_Err
514 }
515 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</a><p class=\"sv-history-url\">")
516 if templ_7745c5c3_Err != nil {
517 return templ_7745c5c3_Err
518 }
519 var templ_7745c5c3_Var26 string
520 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(favorite.URL)
521 if templ_7745c5c3_Err != nil {
522 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 93, Col: 45}
523 }
524 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
525 if templ_7745c5c3_Err != nil {
526 return templ_7745c5c3_Err
527 }
528 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</p>")
529 if templ_7745c5c3_Err != nil {
530 return templ_7745c5c3_Err
531 }
532 if favoriteMetaText(favorite) != "" {
533 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "<p class=\"sv-meta\">")
534 if templ_7745c5c3_Err != nil {
535 return templ_7745c5c3_Err
536 }
537 var templ_7745c5c3_Var27 string
538 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(favoriteMetaText(favorite))
539 if templ_7745c5c3_Err != nil {
540 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 95, Col: 53}
541 }
542 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
543 if templ_7745c5c3_Err != nil {
544 return templ_7745c5c3_Err
545 }
546 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</p>")
547 if templ_7745c5c3_Err != nil {
548 return templ_7745c5c3_Err
549 }
550 }
551 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</div><div class=\"sv-history-row-actions\"><a class=\"sv-button sv-button-secondary\" href=\"")
552 if templ_7745c5c3_Err != nil {
553 return templ_7745c5c3_Err
554 }
555 var templ_7745c5c3_Var28 templ.SafeURL
556 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(sanitizeHref(favorite.URL)))
557 if templ_7745c5c3_Err != nil {
558 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 99, Col: 94}
559 }
560 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
561 if templ_7745c5c3_Err != nil {
562 return templ_7745c5c3_Err
563 }
564 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "\">")
565 if templ_7745c5c3_Err != nil {
566 return templ_7745c5c3_Err
567 }
568 templ_7745c5c3_Err = ButtonIconLabel(iconExternal, "Open").Render(ctx, templ_7745c5c3_Buffer)
569 if templ_7745c5c3_Err != nil {
570 return templ_7745c5c3_Err
571 }
572 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</a> <button type=\"button\" class=\"sv-button sv-button-secondary sv-button-danger sv-button-icon-only\" data-sv-action=\"favorite.delete\" data-id=\"")
573 if templ_7745c5c3_Err != nil {
574 return templ_7745c5c3_Err
575 }
576 var templ_7745c5c3_Var29 string
577 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", favorite.ID))
578 if templ_7745c5c3_Err != nil {
579 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 100, Col: 175}
580 }
581 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var29)
582 if templ_7745c5c3_Err != nil {
583 return templ_7745c5c3_Err
584 }
585 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "\" data-sv-confirm=\"Delete this favorite?\" aria-label=\"Delete this favorite\">")
586 if templ_7745c5c3_Err != nil {
587 return templ_7745c5c3_Err
588 }
589 templ_7745c5c3_Err = IconOnly(iconTrash, "Delete this favorite").Render(ctx, templ_7745c5c3_Buffer)
590 if templ_7745c5c3_Err != nil {
591 return templ_7745c5c3_Err
592 }
593 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</button></div></div>")
594 if templ_7745c5c3_Err != nil {
595 return templ_7745c5c3_Err
596 }
597 templ_7745c5c3_Err = FavoriteEditForm(favorite).Render(ctx, templ_7745c5c3_Buffer)
598 if templ_7745c5c3_Err != nil {
599 return templ_7745c5c3_Err
600 }
601 templ_7745c5c3_Err = FavoriteTagControls(favorite, tags).Render(ctx, templ_7745c5c3_Buffer)
602 if templ_7745c5c3_Err != nil {
603 return templ_7745c5c3_Err
604 }
605 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</article></li>")
606 if templ_7745c5c3_Err != nil {
607 return templ_7745c5c3_Err
608 }
609 return nil
610 })
611}
612
613func FavoriteEditForm(favorite *entity.Favorite) templ.Component {
614 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
615 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
616 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
617 return templ_7745c5c3_CtxErr
618 }
619 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
620 if !templ_7745c5c3_IsBuffer {
621 defer func() {
622 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
623 if templ_7745c5c3_Err == nil {
624 templ_7745c5c3_Err = templ_7745c5c3_BufErr
625 }
626 }()
627 }
628 ctx = templ.InitializeContext(ctx)
629 templ_7745c5c3_Var30 := templ.GetChildren(ctx)
630 if templ_7745c5c3_Var30 == nil {
631 templ_7745c5c3_Var30 = templ.NopComponent
632 }
633 ctx = templ.ClearChildren(ctx)
634 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<form class=\"sv-inline-form\" data-sv-action=\"favorite.update\"><input type=\"hidden\" name=\"id\" value=\"")
635 if templ_7745c5c3_Err != nil {
636 return templ_7745c5c3_Err
637 }
638 var templ_7745c5c3_Var31 string
639 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", favorite.ID))
640 if templ_7745c5c3_Err != nil {
641 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 111, Col: 71}
642 }
643 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var31)
644 if templ_7745c5c3_Err != nil {
645 return templ_7745c5c3_Err
646 }
647 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\"> <label><span>Title</span><input name=\"title\" type=\"text\" value=\"")
648 if templ_7745c5c3_Err != nil {
649 return templ_7745c5c3_Err
650 }
651 var templ_7745c5c3_Var32 string
652 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(favorite.Title)
653 if templ_7745c5c3_Err != nil {
654 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 112, Col: 81}
655 }
656 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
657 if templ_7745c5c3_Err != nil {
658 return templ_7745c5c3_Err
659 }
660 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\"></label> <label><span>Favicon</span><input name=\"favicon_url\" type=\"url\" value=\"")
661 if templ_7745c5c3_Err != nil {
662 return templ_7745c5c3_Err
663 }
664 var templ_7745c5c3_Var33 string
665 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(favorite.FaviconURL)
666 if templ_7745c5c3_Err != nil {
667 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 113, Col: 93}
668 }
669 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33)
670 if templ_7745c5c3_Err != nil {
671 return templ_7745c5c3_Err
672 }
673 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\"></label>")
674 if templ_7745c5c3_Err != nil {
675 return templ_7745c5c3_Err
676 }
677 templ_7745c5c3_Err = ShortcutSelect(favorite.ShortcutKey).Render(ctx, templ_7745c5c3_Buffer)
678 if templ_7745c5c3_Err != nil {
679 return templ_7745c5c3_Err
680 }
681 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<button class=\"sv-button sv-button-secondary\" type=\"submit\">")
682 if templ_7745c5c3_Err != nil {
683 return templ_7745c5c3_Err
684 }
685 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save").Render(ctx, templ_7745c5c3_Buffer)
686 if templ_7745c5c3_Err != nil {
687 return templ_7745c5c3_Err
688 }
689 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</button></form>")
690 if templ_7745c5c3_Err != nil {
691 return templ_7745c5c3_Err
692 }
693 return nil
694 })
695}
696
697func FavoriteTagControls(favorite *entity.Favorite, tags []*entity.Tag) templ.Component {
698 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
699 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
700 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
701 return templ_7745c5c3_CtxErr
702 }
703 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
704 if !templ_7745c5c3_IsBuffer {
705 defer func() {
706 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
707 if templ_7745c5c3_Err == nil {
708 templ_7745c5c3_Err = templ_7745c5c3_BufErr
709 }
710 }()
711 }
712 ctx = templ.InitializeContext(ctx)
713 templ_7745c5c3_Var34 := templ.GetChildren(ctx)
714 if templ_7745c5c3_Var34 == nil {
715 templ_7745c5c3_Var34 = templ.NopComponent
716 }
717 ctx = templ.ClearChildren(ctx)
718 if len(tags) > 0 {
719 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<div class=\"sv-tag-controls\"><span class=\"sv-meta\">Tags</span> ")
720 if templ_7745c5c3_Err != nil {
721 return templ_7745c5c3_Err
722 }
723 for _, tag := range tags {
724 if tag != nil {
725 var templ_7745c5c3_Var35 = []any{favoriteTagButtonClass(favorite, tag)}
726 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var35...)
727 if templ_7745c5c3_Err != nil {
728 return templ_7745c5c3_Err
729 }
730 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "<button type=\"button\" class=\"")
731 if templ_7745c5c3_Err != nil {
732 return templ_7745c5c3_Err
733 }
734 var templ_7745c5c3_Var36 string
735 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var35).String())
736 if templ_7745c5c3_Err != nil {
737 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 1, Col: 0}
738 }
739 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
740 if templ_7745c5c3_Err != nil {
741 return templ_7745c5c3_Err
742 }
743 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "\" data-sv-action=\"")
744 if templ_7745c5c3_Err != nil {
745 return templ_7745c5c3_Err
746 }
747 var templ_7745c5c3_Var37 string
748 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(favoriteTagButtonAction(favorite, tag))
749 if templ_7745c5c3_Err != nil {
750 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 125, Col: 130}
751 }
752 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37)
753 if templ_7745c5c3_Err != nil {
754 return templ_7745c5c3_Err
755 }
756 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\" data-favorite-id=\"")
757 if templ_7745c5c3_Err != nil {
758 return templ_7745c5c3_Err
759 }
760 var templ_7745c5c3_Var38 string
761 templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", favorite.ID))
762 if templ_7745c5c3_Err != nil {
763 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 125, Col: 182}
764 }
765 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38)
766 if templ_7745c5c3_Err != nil {
767 return templ_7745c5c3_Err
768 }
769 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\" data-tag-id=\"")
770 if templ_7745c5c3_Err != nil {
771 return templ_7745c5c3_Err
772 }
773 var templ_7745c5c3_Var39 string
774 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", tag.ID))
775 if templ_7745c5c3_Err != nil {
776 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 125, Col: 224}
777 }
778 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39)
779 if templ_7745c5c3_Err != nil {
780 return templ_7745c5c3_Err
781 }
782 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "\"><span class=\"sv-tag-dot\" style=\"")
783 if templ_7745c5c3_Err != nil {
784 return templ_7745c5c3_Err
785 }
786 var templ_7745c5c3_Var40 string
787 templ_7745c5c3_Var40, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("background:" + safeTagColor(tag.Color))
788 if templ_7745c5c3_Err != nil {
789 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 126, Col: 78}
790 }
791 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
792 if templ_7745c5c3_Err != nil {
793 return templ_7745c5c3_Err
794 }
795 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\"></span>")
796 if templ_7745c5c3_Err != nil {
797 return templ_7745c5c3_Err
798 }
799 var templ_7745c5c3_Var41 string
800 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(favoriteTagButtonLabel(favorite, tag))
801 if templ_7745c5c3_Err != nil {
802 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 126, Col: 127}
803 }
804 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
805 if templ_7745c5c3_Err != nil {
806 return templ_7745c5c3_Err
807 }
808 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</button>")
809 if templ_7745c5c3_Err != nil {
810 return templ_7745c5c3_Err
811 }
812 }
813 }
814 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</div>")
815 if templ_7745c5c3_Err != nil {
816 return templ_7745c5c3_Err
817 }
818 }
819 return nil
820 })
821}
822
823func TagCreateForm() templ.Component {
824 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
825 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
826 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
827 return templ_7745c5c3_CtxErr
828 }
829 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
830 if !templ_7745c5c3_IsBuffer {
831 defer func() {
832 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
833 if templ_7745c5c3_Err == nil {
834 templ_7745c5c3_Err = templ_7745c5c3_BufErr
835 }
836 }()
837 }
838 ctx = templ.InitializeContext(ctx)
839 templ_7745c5c3_Var42 := templ.GetChildren(ctx)
840 if templ_7745c5c3_Var42 == nil {
841 templ_7745c5c3_Var42 = templ.NopComponent
842 }
843 ctx = templ.ClearChildren(ctx)
844 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<form class=\"sv-inline-form\" data-sv-action=\"tag.create\"><label><span>Name</span><input name=\"name\" type=\"text\" required></label> <label><span>Color</span><input name=\"color\" type=\"text\" placeholder=\"#808080\"></label> <button class=\"sv-button sv-button-secondary\" type=\"submit\">")
845 if templ_7745c5c3_Err != nil {
846 return templ_7745c5c3_Err
847 }
848 templ_7745c5c3_Err = ButtonIconLabel(iconTag, "Create tag").Render(ctx, templ_7745c5c3_Buffer)
849 if templ_7745c5c3_Err != nil {
850 return templ_7745c5c3_Err
851 }
852 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</button></form>")
853 if templ_7745c5c3_Err != nil {
854 return templ_7745c5c3_Err
855 }
856 return nil
857 })
858}
859
860func TagItem(tag *entity.Tag) templ.Component {
861 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
862 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
863 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
864 return templ_7745c5c3_CtxErr
865 }
866 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
867 if !templ_7745c5c3_IsBuffer {
868 defer func() {
869 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
870 if templ_7745c5c3_Err == nil {
871 templ_7745c5c3_Err = templ_7745c5c3_BufErr
872 }
873 }()
874 }
875 ctx = templ.InitializeContext(ctx)
876 templ_7745c5c3_Var43 := templ.GetChildren(ctx)
877 if templ_7745c5c3_Var43 == nil {
878 templ_7745c5c3_Var43 = templ.NopComponent
879 }
880 ctx = templ.ClearChildren(ctx)
881 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<li class=\"sv-list-row\"><form class=\"sv-inline-form\" data-sv-action=\"tag.update\"><input type=\"hidden\" name=\"id\" value=\"")
882 if templ_7745c5c3_Err != nil {
883 return templ_7745c5c3_Err
884 }
885 var templ_7745c5c3_Var44 string
886 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", tag.ID))
887 if templ_7745c5c3_Err != nil {
888 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 145, Col: 67}
889 }
890 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var44)
891 if templ_7745c5c3_Err != nil {
892 return templ_7745c5c3_Err
893 }
894 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "\"> <span class=\"sv-tag-dot\" style=\"")
895 if templ_7745c5c3_Err != nil {
896 return templ_7745c5c3_Err
897 }
898 var templ_7745c5c3_Var45 string
899 templ_7745c5c3_Var45, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("background:" + safeTagColor(tag.Color))
900 if templ_7745c5c3_Err != nil {
901 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 146, Col: 75}
902 }
903 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))
904 if templ_7745c5c3_Err != nil {
905 return templ_7745c5c3_Err
906 }
907 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\"></span> <label><span>Name</span><input name=\"name\" type=\"text\" value=\"")
908 if templ_7745c5c3_Err != nil {
909 return templ_7745c5c3_Err
910 }
911 var templ_7745c5c3_Var46 string
912 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.ResolveAttributeValue(tag.Name)
913 if templ_7745c5c3_Err != nil {
914 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 147, Col: 74}
915 }
916 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var46)
917 if templ_7745c5c3_Err != nil {
918 return templ_7745c5c3_Err
919 }
920 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\" required></label> <label><span>Color</span><input name=\"color\" type=\"text\" value=\"")
921 if templ_7745c5c3_Err != nil {
922 return templ_7745c5c3_Err
923 }
924 var templ_7745c5c3_Var47 string
925 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(tag.Color)
926 if templ_7745c5c3_Err != nil {
927 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 148, Col: 77}
928 }
929 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
930 if templ_7745c5c3_Err != nil {
931 return templ_7745c5c3_Err
932 }
933 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "\"></label> <button class=\"sv-button sv-button-secondary\" type=\"submit\">")
934 if templ_7745c5c3_Err != nil {
935 return templ_7745c5c3_Err
936 }
937 templ_7745c5c3_Err = ButtonIconLabel(iconSave, "Save").Render(ctx, templ_7745c5c3_Buffer)
938 if templ_7745c5c3_Err != nil {
939 return templ_7745c5c3_Err
940 }
941 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</button> <button type=\"button\" class=\"sv-button sv-button-secondary sv-button-danger sv-button-icon-only\" data-sv-action=\"tag.delete\" data-id=\"")
942 if templ_7745c5c3_Err != nil {
943 return templ_7745c5c3_Err
944 }
945 var templ_7745c5c3_Var48 string
946 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", tag.ID))
947 if templ_7745c5c3_Err != nil {
948 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 150, Col: 163}
949 }
950 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var48)
951 if templ_7745c5c3_Err != nil {
952 return templ_7745c5c3_Err
953 }
954 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\" data-sv-confirm=\"Delete this tag?\" aria-label=\"Delete this tag\">")
955 if templ_7745c5c3_Err != nil {
956 return templ_7745c5c3_Err
957 }
958 templ_7745c5c3_Err = IconOnly(iconTrash, "Delete this tag").Render(ctx, templ_7745c5c3_Buffer)
959 if templ_7745c5c3_Err != nil {
960 return templ_7745c5c3_Err
961 }
962 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</button></form></li>")
963 if templ_7745c5c3_Err != nil {
964 return templ_7745c5c3_Err
965 }
966 return nil
967 })
968}
969
970func ShortcutSelect(selected *int) templ.Component {
971 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
972 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
973 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
974 return templ_7745c5c3_CtxErr
975 }
976 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
977 if !templ_7745c5c3_IsBuffer {
978 defer func() {
979 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
980 if templ_7745c5c3_Err == nil {
981 templ_7745c5c3_Err = templ_7745c5c3_BufErr
982 }
983 }()
984 }
985 ctx = templ.InitializeContext(ctx)
986 templ_7745c5c3_Var49 := templ.GetChildren(ctx)
987 if templ_7745c5c3_Var49 == nil {
988 templ_7745c5c3_Var49 = templ.NopComponent
989 }
990 ctx = templ.ClearChildren(ctx)
991 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<label><span>Shortcut</span><select name=\"shortcut_key\"><option value=\"\">None</option> ")
992 if templ_7745c5c3_Err != nil {
993 return templ_7745c5c3_Err
994 }
995 for i := 1; i <= 9; i++ {
996 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<option value=\"")
997 if templ_7745c5c3_Err != nil {
998 return templ_7745c5c3_Err
999 }
1000 var templ_7745c5c3_Var50 string
1001 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.ResolveAttributeValue(fmt.Sprintf("%d", i))
1002 if templ_7745c5c3_Err != nil {
1003 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 159, Col: 39}
1004 }
1005 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var50)
1006 if templ_7745c5c3_Err != nil {
1007 return templ_7745c5c3_Err
1008 }
1009 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "\"")
1010 if templ_7745c5c3_Err != nil {
1011 return templ_7745c5c3_Err
1012 }
1013 if shortcutSelected(selected, i) {
1014 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, " selected")
1015 if templ_7745c5c3_Err != nil {
1016 return templ_7745c5c3_Err
1017 }
1018 }
1019 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, ">")
1020 if templ_7745c5c3_Err != nil {
1021 return templ_7745c5c3_Err
1022 }
1023 var templ_7745c5c3_Var51 string
1024 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(fmt.Sprintf("%d", i))
1025 if templ_7745c5c3_Err != nil {
1026 return templ.Error{Err: templ_7745c5c3_Err, FileName: `favorites.templ`, Line: 159, Col: 108}
1027 }
1028 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
1029 if templ_7745c5c3_Err != nil {
1030 return templ_7745c5c3_Err
1031 }
1032 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</option>")
1033 if templ_7745c5c3_Err != nil {
1034 return templ_7745c5c3_Err
1035 }
1036 }
1037 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</select></label>")
1038 if templ_7745c5c3_Err != nil {
1039 return templ_7745c5c3_Err
1040 }
1041 return nil
1042 })
1043}
1044
1045var _ = templruntime.GeneratedTemplate