| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -384,7 +384,6 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						get math_result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							try | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								let result = Number(eval_math state.query) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								throw _ if result.toString! is state.query.trim! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								throw _ if isNaN result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							catch | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -444,6 +443,20 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						get pretty_date | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Date!.toString!.split(" ").slice(0, 4).join(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_click_copy s | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							try | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								await window.navigator.clipboard.writeText(s) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								state.query = '' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sort_links! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_cut e | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return unless e.target.selectionStart == e.target.selectionEnd | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let s = math_result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							s ||= state.query | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							await window.navigator.clipboard.writeText(s) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.query = '' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sort_links! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def render | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							css .disabled * | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -635,9 +648,10 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										css .side | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											c:purple3/90 fs:15px | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											d:flex ja:center w:30px | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											cursor:pointer | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										css .side svg | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											w:15px cursor:pointer | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											w:15px | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										css .left | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											d:flex jc:left | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -666,11 +680,15 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@input.if(!loading)=handle_input | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@paste.if(!loading)=handle_paste | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@blur=this.focus | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											@cut=handle_cut | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											disabled=loading | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (let m = math_result) isnt no | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<[c:blue3 pt:15px fs:20px ml:10px]> "= {m}" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										let m = math_result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if m isnt no and m.toString! isnt state.query.trim! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.side.right[c:blue3 fs:20px ml:10px w:unset] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												@click=handle_click_copy(m) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											> "= {m}" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											<.side.right @click.if(!loading)=toggle_settings> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												<svg src="./assets/settings.svg"> | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |