| 
						
						
							
								
							
						
						
					 | 
					@ -26,14 +26,14 @@ tag app-links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							s ||= state.query | 
					 | 
					 | 
							s ||= state.query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							await window.navigator.clipboard.writeText(s) | 
					 | 
					 | 
							await window.navigator.clipboard.writeText(s) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.query = '' | 
					 | 
					 | 
							state.query = '' | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							sort_links! | 
					 | 
					 | 
							api.sort_links! | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_add | 
					 | 
					 | 
						def handle_add | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.loading = yes | 
					 | 
					 | 
							state.loading = yes | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							try | 
					 | 
					 | 
							try | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								await api.add_link state.query | 
					 | 
					 | 
								await api.add_link state.query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								state.query = '' | 
					 | 
					 | 
								state.query = '' | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								sort_links! | 
					 | 
					 | 
								api.sort_links! | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							catch e | 
					 | 
					 | 
							catch e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								err "adding link", e | 
					 | 
					 | 
								err "adding link", e | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							state.loading = no | 
					 | 
					 | 
							state.loading = no | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -61,11 +61,6 @@ tag app-links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							else | 
					 | 
					 | 
							else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								api.navigate link | 
					 | 
					 | 
								api.navigate link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_del | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if state.query.length < 1 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								state.active_bang = no | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								api.sort_links! | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						def handle_click_delete link | 
					 | 
					 | 
						def handle_click_delete link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							return unless window.confirm "Do you really want to delete {link..display_name}?" | 
					 | 
					 | 
							return unless window.confirm "Do you really want to delete {link..display_name}?" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							handle_delete link | 
					 | 
					 | 
							handle_delete link | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -122,15 +117,6 @@ tag app-links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										<input$links-input | 
					 | 
					 | 
										<input$links-input | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											bind=state.query | 
					 | 
					 | 
											bind=state.query | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('return').capture.if(!state.loading)=handle_return | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('tab').capture.if(!state.loading)=api.toggle_effective_names | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('esc').capture.if(!state.loading)=toggle_settings | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('shift+return').capture.if(!state.loading)=handle_shift_return | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('esc').capture.if(!state.loading)=handle_esc | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('shift+backspace').capture.if(!state.loading)=handle_shift_backspace | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('down').capture.if(!state.loading)=api.increment_link_selection_index | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@hotkey('up').capture.if(!state.loading)=api.decrement_link_selection_index | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@keydown.del.if(!state.loading)=handle_del | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@input.if(!state.loading)=handle_input | 
					 | 
					 | 
											@input.if(!state.loading)=handle_input | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@paste.if(!state.loading)=handle_paste | 
					 | 
					 | 
											@paste.if(!state.loading)=handle_paste | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											@cut=handle_cut | 
					 | 
					 | 
											@cut=handle_cut | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -149,7 +135,7 @@ tag app-links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									if config.data.enable_tips | 
					 | 
					 | 
									if config.data.enable_tips | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										if state.active_bang | 
					 | 
					 | 
										if state.active_bang | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											<.tips> | 
					 | 
					 | 
											<app-tips> | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												<.tip | 
					 | 
					 | 
												<.tip | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
													@click=(state.active_bang = no) | 
					 | 
					 | 
													@click=(state.active_bang = no) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -160,39 +146,91 @@ tag app-links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										else | 
					 | 
					 | 
										else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											<.tips> | 
					 | 
					 | 
											<app-tips> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
												<.tip | 
					 | 
					 | 
												<.tip-row> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													@click=handle_click_link | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													@hotkey('return').force.if(!loading)=handle_click_link | 
					 | 
					 | 
													<.tip | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
												> | 
					 | 
					 | 
														@click=handle_click_link | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-hotkey> "Return" | 
					 | 
					 | 
														@hotkey('return').force.if(!loading)=handle_click_link | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-content> "Navigate To Link" | 
					 | 
					 | 
													> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					
 | 
					 | 
					 | 
														<.tip-hotkey> "Return" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
												<.tip[fl:2] @click=handle_shift_return> | 
					 | 
					 | 
														<.tip-content> "Navigate To Link" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-hotkey> "Shift + Return" | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-content.ellipsis> | 
					 | 
					 | 
													<.tip | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
														<span[ws:pre]> "Add New Link " | 
					 | 
					 | 
														@click=handle_shift_return | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
														let sq = state.query.trim!.split /\s+/ | 
					 | 
					 | 
														@hotkey('shift+return').capture.if(!state.loading)=handle_shift_return | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
														if sq.length >= 2 | 
					 | 
					 | 
													> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
															let url = sq.pop! | 
					 | 
					 | 
														<.tip-hotkey> "Shift + Return" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
															<span> '"' | 
					 | 
					 | 
														<.tip-content.ellipsis> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
															<span> sq.join " " | 
					 | 
					 | 
															<span[ws:pre]> "Create Link " | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
															<span[c:blue3 ws:pre]> " {url}" | 
					 | 
					 | 
															let sq = state.query.trim!.split /\s+/ | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
															<span> '"' | 
					 | 
					 | 
															if sq.length >= 2 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																let url = sq.pop! | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																<span> '"' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																<span> sq.join " " | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																<span[c:blue3 ws:pre]> " {url}" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																<span> '"' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
															else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
																<span> "\"{sq.join " "}\"" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<.tip | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@click=handle_shift_backspace | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@hotkey('shift+backspace').capture.if(!state.loading)=handle_shift_backspace | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-hotkey> "Shift + Backspace" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-content> "Edit Link" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											<app-tips-more$tips-more> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												<.tip-row> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<.tip | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@click.if(!state.loading)=api.toggle_effective_names | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@hotkey('tab').capture.if(!state.loading)=api.toggle_effective_names | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-hotkey> "Tab" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-content> "Toggle Effective Names" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<.tip | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@click.if(!state.loading)=api.toggle_settings | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@hotkey('esc').capture.if(!state.loading)=toggle_settings | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-hotkey> "Esc" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-content> "Toggle Settings" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<.tip.noclick | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@hotkey('down').capture.if(!state.loading)=api.increment_link_selection_index | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@hotkey('up').capture.if(!state.loading)=api.decrement_link_selection_index | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-hotkey> "Up/Down Arrow" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														<.tip-content> "Move Selection" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												<.tip-row> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<.tip | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														@click.if(!loading)=handle_cut | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
														if math_result | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
															<.tip-hotkey> "Cut (Math, If No Selection)" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
															<.tip-content> "Cut Math Result" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
														else | 
					 | 
					 | 
														else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
															<span> "\"{sq.join " "}\"" | 
					 | 
					 | 
															<.tip-hotkey> "Cut (If No Selection)" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
															<.tip-content> "Cut All Text" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
												<.tip @click=handle_shift_backspace> | 
					 | 
					 | 
													<.tip.noclick> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-hotkey> "Shift + Backspace" | 
					 | 
					 | 
														<.tip-hotkey> "Paste (If Input Empty)" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
													<.tip-content> "Edit Link" | 
					 | 
					 | 
														<.tip-content> "Instant Search" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
									<.links> | 
					 | 
					 | 
													<.tip.placeholder> | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
										css d:flex fld:column jc:flex-start | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											fl:1 w:100% ofy:auto pt:15px | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
										if not viewing_community_links and (state.active_bang or state.sorted_links.length < 1) | 
					 | 
					 | 
									unless $tips-more.active | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											<app-bang data=state.active_bang> | 
					 | 
					 | 
										<.links> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
										else | 
					 | 
					 | 
											css d:flex fld:column jc:flex-start | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
											for link, index in state.sorted_links | 
					 | 
					 | 
												fl:1 w:100% ofy:auto | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
												<app-link link=link index=index> | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											if not viewing_community_links and (state.active_bang or state.sorted_links.length < 1) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												<app-bang data=state.active_bang> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												for link, index in state.sorted_links | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
													<app-link link=link index=index> | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					
  |