|
570 | 570 | (defmacro defstyled [sym tagname & styles] |
571 | 571 | (let [varsym (symbol (name (ns-name *ns*)) (name sym)) |
572 | 572 | css-class (classname-for varsym) |
| 573 | + [docstring & styles] (if (string? (first styles)) styles (cons nil styles)) |
573 | 574 | [styles fn-tails] (split-with (complement fn-tail?) styles) |
574 | 575 | tag (if (keyword? tagname) |
575 | 576 | tagname |
|
651 | 652 | ;; the component with the appropriate classes, it has no knowledge of the |
652 | 653 | ;; actual styles, which are expected to be rendered on the backend or |
653 | 654 | ;; during compilation. |
654 | | - `(def ~(with-meta sym {::css true :ornament (dissoc (get @registry varsym) :component :fn-tails)}) |
| 655 | + `(def ~(with-meta sym (cond-> {::css true |
| 656 | + :ornament (dissoc (get @registry varsym) :component :fn-tails)} |
| 657 | + docstring |
| 658 | + (assoc :doc docstring))) |
655 | 659 | (styled '~varsym |
656 | 660 | ~css-class |
657 | 661 | ~tag |
|
661 | 665 |
|
662 | 666 | #?(:clj |
663 | 667 | (defn defined-garden [] |
664 | | - (for [{:keys [css-class rules]} (->> @registry |
665 | | - vals |
666 | | - (sort-by :index))] |
667 | | - (into [(str "." css-class)] (process-rules rules))))) |
| 668 | + (->> @registry |
| 669 | + vals |
| 670 | + (sort-by :index) |
| 671 | + (map (fn [{:keys [var tag rules classname]}] |
| 672 | + (as-garden (styled var classname tag rules nil))))))) |
668 | 673 |
|
669 | 674 | #?(:clj |
670 | 675 | (defn defined-styles |
|
676 | 681 | [& [{:keys [preflight? tw-version] |
677 | 682 | :or {preflight? false |
678 | 683 | tw-version 2}}]] |
679 | | - ;; Use registry, instead of inspecting metadata, for better cljs-only |
680 | | - ;; support |
681 | | - (let [registry-css (->> @registry |
682 | | - vals |
683 | | - (sort-by :index) |
684 | | - (map (fn [{:keys [var tag rules classname]}] |
685 | | - (css (styled var classname tag rules nil)))))] |
686 | | - (cond->> registry-css |
687 | | - preflight? (into [(gc/compile-css (case tw-version |
688 | | - 2 girouette-preflight/preflight-v2_0_3 |
689 | | - 3 girouette-preflight/preflight-v3_0_24))]) |
690 | | - :always (str/join "\n"))))) |
| 684 | + (gc/compile-css |
| 685 | + {:pretty-print? false} |
| 686 | + (cond->> (defined-garden) |
| 687 | + preflight? (concat (case tw-version |
| 688 | + 2 girouette-preflight/preflight-v2_0_3 |
| 689 | + 3 girouette-preflight/preflight-v3_0_24)))))) |
691 | 690 |
|
692 | 691 | #?(:clj |
693 | 692 | (defn cljs-restore-registry |
|
0 commit comments