| 
					
				 | 
			
			
				@@ -76,30 +76,36 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 :left offset-x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 :top offset-y}} children])])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(rum/defc dropdown-menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  [{:keys [label children classname hover?]}] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let [[open-flag set-open-flag] (rum/use-state 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        open? (> open-flag (if hover? 0 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        d-open-flag (rum/use-memo #(util/debounce 200 set-open-flag) [])] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (dropdown 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     [:div {:class (str classname (when open? " open")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :on-mouse-enter (fn [] (d-open-flag #(if (= % 0) 1 %))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :on-mouse-leave (fn [] (d-open-flag #(if (= % 2) % 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :on-click (fn [e] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (util/stop e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (d-open-flag (fn [o] (if (not= o 2) 2 0))))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (if (fn? label) (label open?) label)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     children open? #(set-open-flag 0)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (rum/defc page-refs-count < rum/static 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ([page-name classname] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (page-refs-count page-name classname nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ([page-name classname render-fn] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    (let [page-entity (model/get-page page-name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          block-uuid (:block/uuid page-entity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         refs-count (count (:block/_refs page-entity)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         [open-flag set-open-flag] (rum/use-state 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         open? (not= open-flag 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         d-open-flag (rum/use-memo #(util/debounce 200 set-open-flag) [])] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         refs-count (count (:block/_refs page-entity))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      (when (> refs-count 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (dropdown 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:div.flex.items-center.gap-2.whiteboard-page-refs-count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         {:class (str classname (when open? " open")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :on-mouse-enter (fn [] (d-open-flag #(if (= % 0) 1 %))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :on-mouse-leave (fn [] (d-open-flag #(if (= % 2) % 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :on-click (fn [e] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      (util/stop e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      (d-open-flag (fn [o] (if (not= o 2) 2 0))))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         [:div.open-page-ref-link refs-count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (when render-fn (render-fn open? refs-count))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (reference/block-linked-references block-uuid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        open? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #(set-open-flag 0)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (dropdown-menu {:classname classname 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :label (fn [open?] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                [:div.flex.items-center.gap-2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                 [:div.open-page-ref-link refs-count] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                 (when render-fn (render-fn open? refs-count))]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :hover? true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       :children (reference/block-linked-references block-uuid)}))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defn- get-page-display-name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [page-name] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -253,7 +259,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         (fn [open? refs-count] [:span.whiteboard-page-refs-count-label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 (if (> refs-count 1) "References" "Reference") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 (ui/icon (if open? "references-hide" "references-show") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                         {:extension? true})]))]] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                         {:extension? true})]))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (dropdown-menu {:label "(DEV) Show blocks in outliner" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :classname "hidden" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      [:div.p-2 (page/page-blocks-cp (state/get-current-repo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                     (model/get-page page-name) nil)]})] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      (tldraw-app page-name block-id)])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (rum/defc whiteboard-route 
			 |