Skip to content

Instantly share code, notes, and snippets.

@micha
micha / index.cljs.clj
Last active September 6, 2023 04:41
Hoplon example: simple survey using Twitter Bootstrap
(page "index.html"
(:refer-hoplon :exclude [form])
(:require
[clojure.string :as string]
[tailrecursion.hoplon.reload :refer [reload-all]]))
;; auto-reload the page when you modify this file
(reload-all)
;; UTILITY FUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#!/usr/bin/env bash
#
# helper fns
###############################################################################
dd_incr() {
printf "%s:%d|c\n" $1 ${2:-1} |nc -w0 -nu 127.0.0.1 8125
}
(ns workflow.form
(:require
[castra.core :as castra]
[clojure.walk :as walk]
[clojure.data :as data]))
;; Form data manager ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn- reset-vals!
[map-of-cells default]
(ns ui.form
(:refer-hoplon :exclude [select input textarea label form])
(:require [ui.form.input :as input]
[ui.button :as button]
[ui.modal :as modal]
[ui.grid :as grid]
[ui.filters :as filters]
[ui.link :as link]
[ui.util :as util]
[ui.icon :as icon]
(ns app.ui.login
(:require [goog.net.cookies :as cks]
[app.rpc :as rpc]
[ui.form :as form]
[ui.button :as button]
[workflow.form :as workflow]
[ui.modal :as modal]
[ui.app :as app]))
(def schema
(ns org.niskin.micha.update-in-matching
(:require [clojure.core.match :as match]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; misc helpers
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn- cartesian-product
"
Example:
(ns daggerml.app.dml.control
(:require
[daggerml.app.ui :refer [deftag]]
[daggerml.cells :refer [cell=]]
[daggerml.ui :as ui]))
(defn FORM
[& args]
(doto (apply ui/FORM args)
(ui/on! :submit #(.preventDefault %))))
(ns daggerml.main
(:require
[daggerml.ui :as u :refer [BODY BUTTON DIV H1 HR IMG P SHADOW-ROOT SLOT
SPAN STYLE deftag]]
[daggerml.cells :as c :refer [cell cell= watch=]]))
(deftag FLAT-BUTTON
[[] [^:default slot1] _]
(SHADOW-ROOT
(STYLE "@import 'css/main.css';:host{display:block;}")
@micha
micha / binding.clj
Last active April 18, 2021 15:20
Implementation of `clojure.core/binding` and `clojure.core/bound-fn` in ClojureScript.
(ns hoplon.binding
(:refer-clojure :exclude [binding bound-fn])
(:require [clojure.core :as clj]
[cljs.analyzer :as a]))
(defmacro binding
"See clojure.core/binding."
[bindings & body]
(let [env (assoc &env :ns (a/get-namespace a/*cljs-ns*))
value-exprs (take-nth 2 (rest bindings))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var ados = ados || {};
ados.run = ados.run || [];