# Pastebin wzWUL4Hq method nav-items { do for @.items.map: *.kv -> ($name, $target) { given $target { when * ~~ External | Internal { $target.label = $name; li $target.HTML } when * ~~ Content { li a(:hx-get("$.url-part/$.id/" ~ $name), Safe.new: $name) } when * ~~ Page { li a(:href("/{.url-part}/{.id}"), Safe.new: $name) } } } } multi method HTML { self.style.HTML ~ ( nav [ { ul li :class, :href, $.logo } with $.logo; button( :class, :id, Safe.new: '☰' ); ul( :$!hx-target, :class, self.nav-items, do for @.widgets { li .HTML }, ); ul( :$!hx-target, :class, :id, self.nav-items, ); ] ) ~ self.script.HTML }