1from typing import Literal, Iterable, Mapping
2
3from ..attributes import GlobalAttrs
4from ..base_attribute import BaseAttribute
5from ..base_element import BaseElement
6from ..base_types import Resolvable, StrLike
7
8# This file is generated by tools/generate_elements.py
9
10
11class nav(BaseElement):
12 """
13 The 'nav' element.
14 Description: Section with navigational links
15 Categories: flow sectioning palpable
16 Parents: flow
17 Children: flow
18 Interface: HTMLElement
19 Documentation: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav
20 """ # fmt: skip
21
22 tag = "nav"
23 categories = ["flow", "sectioning", "palpable"]
24
25 class hint(GlobalAttrs):
26 """
27 Type hints for "nav" attrs
28 This class holds functions which return BaseAttributes
29 Which you can add to your element attrs
30 """ # fmt: skip
31
32 pass
33
34 _ = hint
35
36 def __init__(
37 self,
38 attrs: Iterable[BaseAttribute]
39 | Mapping[str, Resolvable]
40 | Iterable[
41 BaseAttribute | Iterable[BaseAttribute] | Mapping[str, Resolvable]
42 ]
43 | None = None,
44 id: StrLike | None = None,
45 class_: Resolvable | None = None,
46 accesskey: Resolvable | StrLike | None = None,
47 autocapitalize: Literal[
48 "on", "off", "none", "sentences", "words", "characters"
49 ]
50 | StrLike
51 | None = None,
52 autocorrect: Literal["on", "off"] | StrLike | None = None,
53 autofocus: bool | StrLike | None = None,
54 contenteditable: Literal["true", "plaintext-only", "false"]
55 | StrLike
56 | None = None,
57 dir: Literal["ltr", "rtl", "auto"] | StrLike | None = None,
58 draggable: Literal["true", "false"] | StrLike | None = None,
59 enterkeyhint: Literal[
60 "enter", "done", "go", "next", "previous", "search", "send"
61 ]
62 | StrLike
63 | None = None,
64 hidden: Literal["until-found", "hidden", ""] | StrLike | None = None,
65 inert: bool | StrLike | None = None,
66 inputmode: Literal[
67 "none",
68 "text",
69 "tel",
70 "email",
71 "url",
72 "numeric",
73 "decimal",
74 "search",
75 ]
76 | StrLike
77 | None = None,
78 is_: StrLike | None = None,
79 itemid: StrLike | None = None,
80 itemprop: Resolvable | StrLike | None = None,
81 itemref: Resolvable | StrLike | None = None,
82 itemscope: bool | StrLike | None = None,
83 itemtype: Resolvable | StrLike | None = None,
84 lang: StrLike | None = None,
85 nonce: StrLike | None = None,
86 onauxclick: StrLike | None = None,
87 onbeforeinput: StrLike | None = None,
88 onbeforematch: StrLike | None = None,
89 onbeforetoggle: StrLike | None = None,
90 onblur: StrLike | None = None,
91 oncancel: StrLike | None = None,
92 oncanplay: StrLike | None = None,
93 oncanplaythrough: StrLike | None = None,
94 onchange: StrLike | None = None,
95 onclick: StrLike | None = None,
96 onclose: StrLike | None = None,
97 oncontextlost: StrLike | None = None,
98 oncontextmenu: StrLike | None = None,
99 oncontextrestored: StrLike | None = None,
100 oncopy: StrLike | None = None,
101 oncuechange: StrLike | None = None,
102 oncut: StrLike | None = None,
103 ondblclick: StrLike | None = None,
104 ondrag: StrLike | None = None,
105 ondragend: StrLike | None = None,
106 ondragenter: StrLike | None = None,
107 ondragleave: StrLike | None = None,
108 ondragover: StrLike | None = None,
109 ondragstart: StrLike | None = None,
110 ondrop: StrLike | None = None,
111 ondurationchange: StrLike | None = None,
112 onemptied: StrLike | None = None,
113 onended: StrLike | None = None,
114 onerror: StrLike | None = None,
115 onfocus: StrLike | None = None,
116 onformdata: StrLike | None = None,
117 oninput: StrLike | None = None,
118 oninvalid: StrLike | None = None,
119 onkeydown: StrLike | None = None,
120 onkeypress: StrLike | None = None,
121 onkeyup: StrLike | None = None,
122 onload: StrLike | None = None,
123 onloadeddata: StrLike | None = None,
124 onloadedmetadata: StrLike | None = None,
125 onloadstart: StrLike | None = None,
126 onmousedown: StrLike | None = None,
127 onmouseenter: StrLike | None = None,
128 onmouseleave: StrLike | None = None,
129 onmousemove: StrLike | None = None,
130 onmouseout: StrLike | None = None,
131 onmouseover: StrLike | None = None,
132 onmouseup: StrLike | None = None,
133 onpaste: StrLike | None = None,
134 onpause: StrLike | None = None,
135 onplay: StrLike | None = None,
136 onplaying: StrLike | None = None,
137 onprogress: StrLike | None = None,
138 onratechange: StrLike | None = None,
139 onreset: StrLike | None = None,
140 onresize: StrLike | None = None,
141 onscroll: StrLike | None = None,
142 onscrollend: StrLike | None = None,
143 onsecuritypolicyviolation: StrLike | None = None,
144 onseeked: StrLike | None = None,
145 onseeking: StrLike | None = None,
146 onselect: StrLike | None = None,
147 onslotchange: StrLike | None = None,
148 onstalled: StrLike | None = None,
149 onsubmit: StrLike | None = None,
150 onsuspend: StrLike | None = None,
151 ontimeupdate: StrLike | None = None,
152 ontoggle: StrLike | None = None,
153 onvolumechange: StrLike | None = None,
154 onwaiting: StrLike | None = None,
155 onwheel: StrLike | None = None,
156 popover: Literal["auto", "manual"] | StrLike | None = None,
157 slot: StrLike | None = None,
158 spellcheck: Literal["true", "false", ""] | StrLike | None = None,
159 style: Resolvable | Mapping[StrLike, StrLike] | None = None,
160 tabindex: int | StrLike | None = None,
161 title: StrLike | None = None,
162 translate: Literal["yes", "no"] | StrLike | None = None,
163 writingsuggestions: Literal["true", "false", ""]
164 | StrLike
165 | None = None,
166 children: list | None = None,
167 ) -> None:
168 """
169 Initialize 'nav' (Section with navigational links) element.
170 Documentation: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav
171
172 Args:
173 attrs:
174 A list or dictionary of attributes for the element
175
176 id:
177 The element's ID
178
179 class_:
180 Classes to which the element belongs
181
182 accesskey:
183 Keyboard shortcut to activate or focus element
184
185 autocapitalize:
186 Recommended autocapitalization behavior (for supported input methods)
187
188 autocorrect:
189 Recommended autocorrection behavior (for supported input methods)
190
191 autofocus:
192 Automatically focus the element when the page is loaded
193
194 contenteditable:
195 Whether the element is editable
196
197 dir:
198 The text directionality of the element
199
200 draggable:
201 Whether the element is draggable
202
203 enterkeyhint:
204 Hint for selecting an enter key action
205
206 hidden:
207 Whether the element is relevant
208
209 inert:
210 Whether the element is inert.
211
212 inputmode:
213 Hint for selecting an input modality
214
215 is_:
216 Creates a customized built-in element.
217 Value hint: Valid custom element name of a defined customized built-in element
218
219 itemid:
220 Global identifier for a microdata item.
221 Value hint: Valid URL potentially surrounded by spaces
222
223 itemprop:
224 Property names of a microdata item
225
226 itemref:
227 Referenced elements
228
229 itemscope:
230 Introduces a microdata item
231
232 itemtype:
233 Item types of a microdata item
234
235 lang:
236 Language of the element.
237 Value hint: Valid BCP 47 language tag or the empty string
238
239 nonce:
240 Cryptographic nonce used in Content Security Policy checks [CSP]
241
242 onauxclick:
243 auxclick event handler.
244 Value hint: Event handler content attribute
245
246 onbeforeinput:
247 beforeinput event handler.
248 Value hint: Event handler content attribute
249
250 onbeforematch:
251 beforematch event handler.
252 Value hint: Event handler content attribute
253
254 onbeforetoggle:
255 beforetoggle event handler.
256 Value hint: Event handler content attribute
257
258 onblur:
259 blur event handler.
260 Value hint: Event handler content attribute
261
262 oncancel:
263 cancel event handler.
264 Value hint: Event handler content attribute
265
266 oncanplay:
267 canplay event handler.
268 Value hint: Event handler content attribute
269
270 oncanplaythrough:
271 canplaythrough event handler.
272 Value hint: Event handler content attribute
273
274 onchange:
275 change event handler.
276 Value hint: Event handler content attribute
277
278 onclick:
279 click event handler.
280 Value hint: Event handler content attribute
281
282 onclose:
283 close event handler.
284 Value hint: Event handler content attribute
285
286 oncontextlost:
287 contextlost event handler.
288 Value hint: Event handler content attribute
289
290 oncontextmenu:
291 contextmenu event handler.
292 Value hint: Event handler content attribute
293
294 oncontextrestored:
295 contextrestored event handler.
296 Value hint: Event handler content attribute
297
298 oncopy:
299 copy event handler.
300 Value hint: Event handler content attribute
301
302 oncuechange:
303 cuechange event handler.
304 Value hint: Event handler content attribute
305
306 oncut:
307 cut event handler.
308 Value hint: Event handler content attribute
309
310 ondblclick:
311 dblclick event handler.
312 Value hint: Event handler content attribute
313
314 ondrag:
315 drag event handler.
316 Value hint: Event handler content attribute
317
318 ondragend:
319 dragend event handler.
320 Value hint: Event handler content attribute
321
322 ondragenter:
323 dragenter event handler.
324 Value hint: Event handler content attribute
325
326 ondragleave:
327 dragleave event handler.
328 Value hint: Event handler content attribute
329
330 ondragover:
331 dragover event handler.
332 Value hint: Event handler content attribute
333
334 ondragstart:
335 dragstart event handler.
336 Value hint: Event handler content attribute
337
338 ondrop:
339 drop event handler.
340 Value hint: Event handler content attribute
341
342 ondurationchange:
343 durationchange event handler.
344 Value hint: Event handler content attribute
345
346 onemptied:
347 emptied event handler.
348 Value hint: Event handler content attribute
349
350 onended:
351 ended event handler.
352 Value hint: Event handler content attribute
353
354 onerror:
355 error event handler.
356 Value hint: Event handler content attribute
357
358 onfocus:
359 focus event handler.
360 Value hint: Event handler content attribute
361
362 onformdata:
363 formdata event handler.
364 Value hint: Event handler content attribute
365
366 oninput:
367 input event handler.
368 Value hint: Event handler content attribute
369
370 oninvalid:
371 invalid event handler.
372 Value hint: Event handler content attribute
373
374 onkeydown:
375 keydown event handler.
376 Value hint: Event handler content attribute
377
378 onkeypress:
379 keypress event handler.
380 Value hint: Event handler content attribute
381
382 onkeyup:
383 keyup event handler.
384 Value hint: Event handler content attribute
385
386 onload:
387 load event handler.
388 Value hint: Event handler content attribute
389
390 onloadeddata:
391 loadeddata event handler.
392 Value hint: Event handler content attribute
393
394 onloadedmetadata:
395 loadedmetadata event handler.
396 Value hint: Event handler content attribute
397
398 onloadstart:
399 loadstart event handler.
400 Value hint: Event handler content attribute
401
402 onmousedown:
403 mousedown event handler.
404 Value hint: Event handler content attribute
405
406 onmouseenter:
407 mouseenter event handler.
408 Value hint: Event handler content attribute
409
410 onmouseleave:
411 mouseleave event handler.
412 Value hint: Event handler content attribute
413
414 onmousemove:
415 mousemove event handler.
416 Value hint: Event handler content attribute
417
418 onmouseout:
419 mouseout event handler.
420 Value hint: Event handler content attribute
421
422 onmouseover:
423 mouseover event handler.
424 Value hint: Event handler content attribute
425
426 onmouseup:
427 mouseup event handler.
428 Value hint: Event handler content attribute
429
430 onpaste:
431 paste event handler.
432 Value hint: Event handler content attribute
433
434 onpause:
435 pause event handler.
436 Value hint: Event handler content attribute
437
438 onplay:
439 play event handler.
440 Value hint: Event handler content attribute
441
442 onplaying:
443 playing event handler.
444 Value hint: Event handler content attribute
445
446 onprogress:
447 progress event handler.
448 Value hint: Event handler content attribute
449
450 onratechange:
451 ratechange event handler.
452 Value hint: Event handler content attribute
453
454 onreset:
455 reset event handler.
456 Value hint: Event handler content attribute
457
458 onresize:
459 resize event handler.
460 Value hint: Event handler content attribute
461
462 onscroll:
463 scroll event handler.
464 Value hint: Event handler content attribute
465
466 onscrollend:
467 scrollend event handler.
468 Value hint: Event handler content attribute
469
470 onsecuritypolicyviolation:
471 securitypolicyviolation event handler.
472 Value hint: Event handler content attribute
473
474 onseeked:
475 seeked event handler.
476 Value hint: Event handler content attribute
477
478 onseeking:
479 seeking event handler.
480 Value hint: Event handler content attribute
481
482 onselect:
483 select event handler.
484 Value hint: Event handler content attribute
485
486 onslotchange:
487 slotchange event handler.
488 Value hint: Event handler content attribute
489
490 onstalled:
491 stalled event handler.
492 Value hint: Event handler content attribute
493
494 onsubmit:
495 submit event handler.
496 Value hint: Event handler content attribute
497
498 onsuspend:
499 suspend event handler.
500 Value hint: Event handler content attribute
501
502 ontimeupdate:
503 timeupdate event handler.
504 Value hint: Event handler content attribute
505
506 ontoggle:
507 toggle event handler.
508 Value hint: Event handler content attribute
509
510 onvolumechange:
511 volumechange event handler.
512 Value hint: Event handler content attribute
513
514 onwaiting:
515 waiting event handler.
516 Value hint: Event handler content attribute
517
518 onwheel:
519 wheel event handler.
520 Value hint: Event handler content attribute
521
522 popover:
523 Makes the element a popover element
524
525 slot:
526 The element's desired slot
527
528 spellcheck:
529 Whether the element is to have its spelling and grammar checked
530
531 style:
532 Presentational and formatting instructions.
533 Value hint: CSS declarations*
534
535 tabindex:
536 Whether the element is focusable and sequentially focusable, and the relative order of the element for the purposes of sequential focus navigation
537
538 title:
539 Advisory information for the element
540
541 translate:
542 Whether the element is to be translated when the page is localized
543
544 writingsuggestions:
545 Whether the element can offer writing suggestions or not.
546
547 """ # fmt: skip
548 super().__init__(
549 "nav", void_element=False, attrs=attrs, children=children
550 )
551 if not (id is None or id is False):
552 self._process_attr("id", id)
553 if not (class_ is None or class_ is False):
554 self._process_attr("class", class_)
555 if not (accesskey is None or accesskey is False):
556 self._process_attr("accesskey", accesskey)
557 if not (autocapitalize is None or autocapitalize is False):
558 self._process_attr("autocapitalize", autocapitalize)
559 if not (autocorrect is None or autocorrect is False):
560 self._process_attr("autocorrect", autocorrect)
561 if not (autofocus is None or autofocus is False):
562 self._process_attr("autofocus", autofocus)
563 if not (contenteditable is None or contenteditable is False):
564 self._process_attr("contenteditable", contenteditable)
565 if not (dir is None or dir is False):
566 self._process_attr("dir", dir)
567 if not (draggable is None or draggable is False):
568 self._process_attr("draggable", draggable)
569 if not (enterkeyhint is None or enterkeyhint is False):
570 self._process_attr("enterkeyhint", enterkeyhint)
571 if not (hidden is None or hidden is False):
572 self._process_attr("hidden", hidden)
573 if not (inert is None or inert is False):
574 self._process_attr("inert", inert)
575 if not (inputmode is None or inputmode is False):
576 self._process_attr("inputmode", inputmode)
577 if not (is_ is None or is_ is False):
578 self._process_attr("is", is_)
579 if not (itemid is None or itemid is False):
580 self._process_attr("itemid", itemid)
581 if not (itemprop is None or itemprop is False):
582 self._process_attr("itemprop", itemprop)
583 if not (itemref is None or itemref is False):
584 self._process_attr("itemref", itemref)
585 if not (itemscope is None or itemscope is False):
586 self._process_attr("itemscope", itemscope)
587 if not (itemtype is None or itemtype is False):
588 self._process_attr("itemtype", itemtype)
589 if not (lang is None or lang is False):
590 self._process_attr("lang", lang)
591 if not (nonce is None or nonce is False):
592 self._process_attr("nonce", nonce)
593 if not (onauxclick is None or onauxclick is False):
594 self._process_attr("onauxclick", onauxclick)
595 if not (onbeforeinput is None or onbeforeinput is False):
596 self._process_attr("onbeforeinput", onbeforeinput)
597 if not (onbeforematch is None or onbeforematch is False):
598 self._process_attr("onbeforematch", onbeforematch)
599 if not (onbeforetoggle is None or onbeforetoggle is False):
600 self._process_attr("onbeforetoggle", onbeforetoggle)
601 if not (onblur is None or onblur is False):
602 self._process_attr("onblur", onblur)
603 if not (oncancel is None or oncancel is False):
604 self._process_attr("oncancel", oncancel)
605 if not (oncanplay is None or oncanplay is False):
606 self._process_attr("oncanplay", oncanplay)
607 if not (oncanplaythrough is None or oncanplaythrough is False):
608 self._process_attr("oncanplaythrough", oncanplaythrough)
609 if not (onchange is None or onchange is False):
610 self._process_attr("onchange", onchange)
611 if not (onclick is None or onclick is False):
612 self._process_attr("onclick", onclick)
613 if not (onclose is None or onclose is False):
614 self._process_attr("onclose", onclose)
615 if not (oncontextlost is None or oncontextlost is False):
616 self._process_attr("oncontextlost", oncontextlost)
617 if not (oncontextmenu is None or oncontextmenu is False):
618 self._process_attr("oncontextmenu", oncontextmenu)
619 if not (oncontextrestored is None or oncontextrestored is False):
620 self._process_attr("oncontextrestored", oncontextrestored)
621 if not (oncopy is None or oncopy is False):
622 self._process_attr("oncopy", oncopy)
623 if not (oncuechange is None or oncuechange is False):
624 self._process_attr("oncuechange", oncuechange)
625 if not (oncut is None or oncut is False):
626 self._process_attr("oncut", oncut)
627 if not (ondblclick is None or ondblclick is False):
628 self._process_attr("ondblclick", ondblclick)
629 if not (ondrag is None or ondrag is False):
630 self._process_attr("ondrag", ondrag)
631 if not (ondragend is None or ondragend is False):
632 self._process_attr("ondragend", ondragend)
633 if not (ondragenter is None or ondragenter is False):
634 self._process_attr("ondragenter", ondragenter)
635 if not (ondragleave is None or ondragleave is False):
636 self._process_attr("ondragleave", ondragleave)
637 if not (ondragover is None or ondragover is False):
638 self._process_attr("ondragover", ondragover)
639 if not (ondragstart is None or ondragstart is False):
640 self._process_attr("ondragstart", ondragstart)
641 if not (ondrop is None or ondrop is False):
642 self._process_attr("ondrop", ondrop)
643 if not (ondurationchange is None or ondurationchange is False):
644 self._process_attr("ondurationchange", ondurationchange)
645 if not (onemptied is None or onemptied is False):
646 self._process_attr("onemptied", onemptied)
647 if not (onended is None or onended is False):
648 self._process_attr("onended", onended)
649 if not (onerror is None or onerror is False):
650 self._process_attr("onerror", onerror)
651 if not (onfocus is None or onfocus is False):
652 self._process_attr("onfocus", onfocus)
653 if not (onformdata is None or onformdata is False):
654 self._process_attr("onformdata", onformdata)
655 if not (oninput is None or oninput is False):
656 self._process_attr("oninput", oninput)
657 if not (oninvalid is None or oninvalid is False):
658 self._process_attr("oninvalid", oninvalid)
659 if not (onkeydown is None or onkeydown is False):
660 self._process_attr("onkeydown", onkeydown)
661 if not (onkeypress is None or onkeypress is False):
662 self._process_attr("onkeypress", onkeypress)
663 if not (onkeyup is None or onkeyup is False):
664 self._process_attr("onkeyup", onkeyup)
665 if not (onload is None or onload is False):
666 self._process_attr("onload", onload)
667 if not (onloadeddata is None or onloadeddata is False):
668 self._process_attr("onloadeddata", onloadeddata)
669 if not (onloadedmetadata is None or onloadedmetadata is False):
670 self._process_attr("onloadedmetadata", onloadedmetadata)
671 if not (onloadstart is None or onloadstart is False):
672 self._process_attr("onloadstart", onloadstart)
673 if not (onmousedown is None or onmousedown is False):
674 self._process_attr("onmousedown", onmousedown)
675 if not (onmouseenter is None or onmouseenter is False):
676 self._process_attr("onmouseenter", onmouseenter)
677 if not (onmouseleave is None or onmouseleave is False):
678 self._process_attr("onmouseleave", onmouseleave)
679 if not (onmousemove is None or onmousemove is False):
680 self._process_attr("onmousemove", onmousemove)
681 if not (onmouseout is None or onmouseout is False):
682 self._process_attr("onmouseout", onmouseout)
683 if not (onmouseover is None or onmouseover is False):
684 self._process_attr("onmouseover", onmouseover)
685 if not (onmouseup is None or onmouseup is False):
686 self._process_attr("onmouseup", onmouseup)
687 if not (onpaste is None or onpaste is False):
688 self._process_attr("onpaste", onpaste)
689 if not (onpause is None or onpause is False):
690 self._process_attr("onpause", onpause)
691 if not (onplay is None or onplay is False):
692 self._process_attr("onplay", onplay)
693 if not (onplaying is None or onplaying is False):
694 self._process_attr("onplaying", onplaying)
695 if not (onprogress is None or onprogress is False):
696 self._process_attr("onprogress", onprogress)
697 if not (onratechange is None or onratechange is False):
698 self._process_attr("onratechange", onratechange)
699 if not (onreset is None or onreset is False):
700 self._process_attr("onreset", onreset)
701 if not (onresize is None or onresize is False):
702 self._process_attr("onresize", onresize)
703 if not (onscroll is None or onscroll is False):
704 self._process_attr("onscroll", onscroll)
705 if not (onscrollend is None or onscrollend is False):
706 self._process_attr("onscrollend", onscrollend)
707 if not (
708 onsecuritypolicyviolation is None
709 or onsecuritypolicyviolation is False
710 ):
711 self._process_attr(
712 "onsecuritypolicyviolation", onsecuritypolicyviolation
713 )
714 if not (onseeked is None or onseeked is False):
715 self._process_attr("onseeked", onseeked)
716 if not (onseeking is None or onseeking is False):
717 self._process_attr("onseeking", onseeking)
718 if not (onselect is None or onselect is False):
719 self._process_attr("onselect", onselect)
720 if not (onslotchange is None or onslotchange is False):
721 self._process_attr("onslotchange", onslotchange)
722 if not (onstalled is None or onstalled is False):
723 self._process_attr("onstalled", onstalled)
724 if not (onsubmit is None or onsubmit is False):
725 self._process_attr("onsubmit", onsubmit)
726 if not (onsuspend is None or onsuspend is False):
727 self._process_attr("onsuspend", onsuspend)
728 if not (ontimeupdate is None or ontimeupdate is False):
729 self._process_attr("ontimeupdate", ontimeupdate)
730 if not (ontoggle is None or ontoggle is False):
731 self._process_attr("ontoggle", ontoggle)
732 if not (onvolumechange is None or onvolumechange is False):
733 self._process_attr("onvolumechange", onvolumechange)
734 if not (onwaiting is None or onwaiting is False):
735 self._process_attr("onwaiting", onwaiting)
736 if not (onwheel is None or onwheel is False):
737 self._process_attr("onwheel", onwheel)
738 if not (popover is None or popover is False):
739 self._process_attr("popover", popover)
740 if not (slot is None or slot is False):
741 self._process_attr("slot", slot)
742 if not (spellcheck is None or spellcheck is False):
743 self._process_attr("spellcheck", spellcheck)
744 if not (style is None or style is False):
745 self._process_attr("style", style)
746 if not (tabindex is None or tabindex is False):
747 self._process_attr("tabindex", tabindex)
748 if not (title is None or title is False):
749 self._process_attr("title", title)
750 if not (translate is None or translate is False):
751 self._process_attr("translate", translate)
752 if not (writingsuggestions is None or writingsuggestions is False):
753 self._process_attr("writingsuggestions", writingsuggestions)