anchor.diff:                                                               cell-margin))
                                               (cell-side cell-side))))
                             '(0 1 2 3 4 5 6 7 8) :this this)))))
  +
                
   
   (def-app sudoku-demo ()
  
positive.code: (def-widget-1 sudoku-board ((cell-side :attribute)
                              (cell-margin :attribute)
                              (group-margin :attribute)
                              (focused-group :state)
                              (focused-cell :state)
                              (data :state (map (lambda (x)
  
negative.code:                                    (funcall on-focus 
                                              (@ cell-data :group)
                                              (@ cell-data :seq))))))
            (:div ((class "brown-text" 
                          (if (@ cell-data :is-focused)
                              " text-lighten-1"
                              " text-lighten-2"))
                   (style :font-size (if (@ cell-data :is-focused)
                                         "24"
                                         "20")
                          :cursor "pointer"
                          :font-weight "bold"))
                  (if (@ cell-data :is-focused)
                      (:span ((animation :keyframe ("0%" :background "rgba(141, 110, 99, 0)")
                                         :keyframe ("100%" :background "rgba(141, 110, 99, 1)")
                                         :direction "alternate"
                                         :delay "0.5s"
                                         :duration "0.5s"
                                         :iteration-count "infinite"))
                             (@ cell-data :digit))
                      (:span () (@ cell-data :digit)))))))
  
  
  
  