tag app-edit active = no def mount $dn.setSelectionRange 0, 0 $dn.focus! def open data link = data new_link_text = value=api.construct_link_text(link) active = yes def close active = no def handle_click_set_default_bang config.set_default_bang link close! def handle_delete try await api.delete_link link close! catch e err "deleting link", e def save try api.update_link link, new_link_text close! catch e err "saving link", e get tips let result = [] result.push <> <.tip @click=handle_delete @hotkey('shift+backspace').force=handle_delete > <.tip-hotkey> "Shift + Backspace" <.tip-content> "Delete Link" result.push <> <.tip @click=save @hotkey('return').force=save > <.tip-hotkey> "Return" <.tip-content> "Update Link" if link.is_bang result.push <> <.tip @click=handle_click_set_default_bang> <.tip-hotkey> "Click" <.tip-content> "Set Default Bang" result.push <> <.tip @click=close @hotkey('esc').force=close > <.tip-hotkey> "Esc" <.tip-content> "Cancel" result def render css d:flex fld:column gap:20px w:100%