| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -5,6 +5,7 @@ tag app-edit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def open data | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							link = data | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							new_link_text = value=api.construct_link_text(link) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							active = yes | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def close | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -16,11 +17,7 @@ tag app-edit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							imba.commit! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_click_set_default_bang | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							unless link.is_bang | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return err "setting default bang", "Link is not a bang." | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							config.data.default_bang = link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							config.save! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							api.sort_links! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							config.set_default_bang link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							close! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_delete | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -32,75 +29,62 @@ tag app-edit | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def save | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							try | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if /\s/.test link.name.trim! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									throw "Link name may not contain spaces." | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								api.update_link link, api.construct_link_text link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								api.update_link link, new_link_text | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								close! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							catch e | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								err "saving link", e | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						get new_link_text | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							"wip" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def cycle_focus | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if document.activeElement is $dn | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$n.focus! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							elif document.activeElement is $n | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$u.focus! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$dn.focus! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def render | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							<self> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								css d:flex fld:column gap:20px w:100% | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								<div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<input$dn bind=new_link_text> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								<app-tips> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<.tip-row> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<.tip | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@click=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@hotkey('esc').capture.if(!state.loading)=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-hotkey> "Esc" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-content> "Cancel" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<.tip | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@click=handle_delete | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@hotkey('shift+backspace').capture.if(!state.loading)=handle_delete | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											css fl:2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-hotkey> "Shift + Backspace" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-content> "Delete Link" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if link.is_bang | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip @click=handle_click_set_default_bang> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												css fl:2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-content> "Set Default Bang" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<.tip | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@click=save | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@hotkey('shift+return').capture.if(!state.loading)=save | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@hotkey('return').capture.if(!state.loading)=save | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											css fl:2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-hotkey> "Return" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-content> "Update Link" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<.tip.noclick | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@hotkey('tab').capture.if(!state.loading)=cycle_focus | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-hotkey> "Tab" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip-content> "Next" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if link.is_bang | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip @click=handle_click_set_default_bang> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-hotkey> "Click" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-content> "Set Default Bang" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												@click=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												@hotkey('esc').capture.if(!state.loading)=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-hotkey> "Esc" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-content> "Cancel" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if link.is_bang | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<app-tips-more> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								<.inputs> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									css d:flex fld:column gap:20px | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<.tip-row> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<input$dn bind=link.display_name> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												@click=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												@hotkey('esc').capture.if(!state.loading)=close | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-hotkey> "Esc" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<.tip-content> "Cancel" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<input$n bind=link.name> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip.placeholder> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									<div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<input$u bind=link.url> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.tip.placeholder> | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |