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