* gnu/packages/elm.scm (elm-terezka-elm-charts): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
		
			
				
	
	
		
			794 lines
		
	
	
	
		
			28 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
			
		
		
	
	
			794 lines
		
	
	
	
		
			28 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
;;; GNU Guix --- Functional package management for GNU
 | 
						|
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
 | 
						|
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
 | 
						|
;;;
 | 
						|
;;; This file is part of GNU Guix.
 | 
						|
;;;
 | 
						|
;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
						|
;;; under the terms of the GNU General Public License as published by
 | 
						|
;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
						|
;;; your option) any later version.
 | 
						|
;;;
 | 
						|
;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
						|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
;;; GNU General Public License for more details.
 | 
						|
;;;
 | 
						|
;;; You should have received a copy of the GNU General Public License
 | 
						|
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 | 
						|
(define-module (gnu packages elm)
 | 
						|
  #:use-module (gnu packages)
 | 
						|
  #:use-module (gnu packages haskell)
 | 
						|
  #:use-module (gnu packages haskell-check)
 | 
						|
  #:use-module (gnu packages haskell-crypto)
 | 
						|
  #:use-module (gnu packages haskell-xyz)
 | 
						|
  #:use-module (gnu packages haskell-web)
 | 
						|
  #:use-module (guix build-system haskell)
 | 
						|
  #:use-module (guix build-system elm)
 | 
						|
  #:use-module (guix gexp)
 | 
						|
  #:use-module (guix git-download)
 | 
						|
  #:use-module ((guix licenses) #:prefix license:)
 | 
						|
  #:use-module (guix packages))
 | 
						|
 | 
						|
;; The `elm` build usually calls out to itself via Template Haskell to compile
 | 
						|
;; the `elm reactor` web app (which depends on additional Elm packages) and
 | 
						|
;; embeds the static files into itself.  The reactor isn't required to compile
 | 
						|
;; Elm applications, so we want to skip it for the bootstrap package, but we
 | 
						|
;; also want to be able to enable it once we can build it.  We patch Elm to
 | 
						|
;; instead look for the files on disk relative to the executable and to have
 | 
						|
;; `elm reactor` exit with a useful error message if they aren't there.
 | 
						|
(define %reactor-root-base
 | 
						|
  "share/elm/reactor-")
 | 
						|
(define-public elm-sans-reactor
 | 
						|
  (package
 | 
						|
    (name "elm-sans-reactor")
 | 
						|
    (version "0.19.1")
 | 
						|
    (source
 | 
						|
     (origin
 | 
						|
       (method git-fetch)
 | 
						|
       (file-name (git-file-name name version))
 | 
						|
       (uri (git-reference
 | 
						|
             (url "https://github.com/elm/compiler/")
 | 
						|
             (commit version)))
 | 
						|
       (sha256
 | 
						|
        (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
 | 
						|
       (patches
 | 
						|
        (search-patches "elm-reactor-static-files.patch"
 | 
						|
                        "elm-offline-package-registry.patch"))))
 | 
						|
    (build-system haskell-build-system)
 | 
						|
    (arguments
 | 
						|
     (list
 | 
						|
      #:configure-flags
 | 
						|
      #~(list (string-append "--ghc-option=-DGUIX_REACTOR_STATIC_REL_ROOT="
 | 
						|
                             "\"../" #$%reactor-root-base
 | 
						|
                             #$(package-version this-package)
 | 
						|
                             "\""))
 | 
						|
      #:phases
 | 
						|
      #~(modify-phases %standard-phases
 | 
						|
          (add-before 'configure 'update-constraints
 | 
						|
            (lambda _
 | 
						|
              (substitute* "elm.cabal"
 | 
						|
                (("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep)
 | 
						|
                 dep)))))))
 | 
						|
    (inputs
 | 
						|
     (list ghc-ansi-terminal
 | 
						|
           ghc-ansi-wl-pprint
 | 
						|
           ghc-edit-distance
 | 
						|
           ghc-filelock
 | 
						|
           ghc-http
 | 
						|
           ghc-http-client
 | 
						|
           ghc-http-client-tls
 | 
						|
           ghc-http-types
 | 
						|
           ghc-language-glsl
 | 
						|
           ghc-logict
 | 
						|
           ghc-network
 | 
						|
           ghc-raw-strings-qq
 | 
						|
           ghc-scientific
 | 
						|
           ghc-sha
 | 
						|
           ghc-snap-core
 | 
						|
           ghc-snap-server
 | 
						|
           ghc-unordered-containers
 | 
						|
           ghc-utf8-string
 | 
						|
           ghc-vector
 | 
						|
           ghc-zip-archive))
 | 
						|
    (home-page "https://elm-lang.org")
 | 
						|
    (synopsis "Minimal variant of @command{elm}")
 | 
						|
    (description
 | 
						|
     "This package provides a version of the Elm compiler without support for
 | 
						|
the @command{elm reactor} development command.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm
 | 
						|
  (package
 | 
						|
    (name "elm")
 | 
						|
    (version (package-version elm-sans-reactor))
 | 
						|
    (source (package-source elm-sans-reactor))
 | 
						|
    (native-inputs (list elm-sans-reactor))
 | 
						|
    (inputs (list elm-sans-reactor
 | 
						|
                  elm-browser
 | 
						|
                  elm-core
 | 
						|
                  elm-html
 | 
						|
                  elm-http
 | 
						|
                  elm-json
 | 
						|
                  elm-project-metadata-utils
 | 
						|
                  elm-svg
 | 
						|
                  elm-explorations-markdown))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (arguments
 | 
						|
     (list
 | 
						|
      #:modules
 | 
						|
      `((srfi srfi-26)
 | 
						|
        ,@%elm-default-modules)
 | 
						|
      #:phases
 | 
						|
      #~(modify-phases %standard-phases
 | 
						|
          (delete 'stage)
 | 
						|
          (replace 'configure
 | 
						|
            (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
						|
              (with-directory-excursion "reactor"
 | 
						|
                (patch-application-dependencies))))
 | 
						|
          (replace 'build
 | 
						|
            (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
						|
              (with-directory-excursion "reactor"
 | 
						|
                (invoke (search-input-file (or native-inputs inputs)
 | 
						|
                                           "/bin/elm")
 | 
						|
                        "make"
 | 
						|
                        "--optimize"
 | 
						|
                        "src/NotFound.elm"
 | 
						|
                        "src/Errors.elm"
 | 
						|
                        "src/Index.elm"))))
 | 
						|
          (replace 'install
 | 
						|
            (lambda* (#:key inputs #:allow-other-keys)
 | 
						|
              (let* ((out-dir #$output)
 | 
						|
                     (bin-dir (string-append out-dir "/bin"))
 | 
						|
                     (reactor-dir (string-append out-dir
 | 
						|
                                                 "/"
 | 
						|
                                                 #$%reactor-root-base
 | 
						|
                                                 (getenv "GUIX_ELM_VERSION")))
 | 
						|
                     (reactor-subdir (string-append reactor-dir "/_elm")))
 | 
						|
                ;; We can't use a symlink here because Haskell's
 | 
						|
                ;; `getExecutablePath` follows all symlinks.
 | 
						|
                ;; Guix can make it a hard link later.
 | 
						|
                (install-file (search-input-file inputs ;; NOT native-inputs
 | 
						|
                                                 "/bin/elm")
 | 
						|
                              bin-dir)
 | 
						|
                (install-file "reactor/assets/favicon.ico" reactor-dir)
 | 
						|
                (for-each (cut install-file <> reactor-subdir)
 | 
						|
                          '("reactor/elm.js"
 | 
						|
                            "reactor/assets/styles.css"
 | 
						|
                            ;; TODO: these are source-code-pro v1.017 and
 | 
						|
                            ;; source-sans-pro v1.050: there may be breaking
 | 
						|
                            ;; changes in Guix's existing
 | 
						|
                            ;; font-adobe-source-{code,sans}-pro packages
 | 
						|
                            "reactor/assets/source-code-pro.ttf"
 | 
						|
                            "reactor/assets/source-sans-pro.ttf")))))
 | 
						|
          (delete 'validate-compiled))))
 | 
						|
    (home-page "https://elm-lang.org")
 | 
						|
    (synopsis "Programming language for Web applications")
 | 
						|
    (description
 | 
						|
     "Elm is a statically-typed, purely-functional programming language for
 | 
						|
the browser.  The @command{elm} exectable includes commands for developers
 | 
						|
such as @command{elm make} and @command{elm repl}.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
;; The 'elm' package used to be called 'elm-compiler'.
 | 
						|
(define-public elm-compiler
 | 
						|
  (deprecated-package "elm-compiler" elm))
 | 
						|
 | 
						|
(define-public elm-core
 | 
						|
  (package
 | 
						|
    (name "elm-core")
 | 
						|
    (version "1.0.5")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/core"
 | 
						|
      version
 | 
						|
      (base32 "0g3xbi8f9k5q45s95nx3jfvzwdf4b2n63a52wr4027d2xjx0pmvl")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (inputs (list elm-json-bootstrap))
 | 
						|
    (arguments
 | 
						|
     (list #:implicit-elm-package-inputs? #f))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/core/1.0.5")
 | 
						|
    (synopsis "Elm's standard libraries")
 | 
						|
    (description "Every Elm project needs this package!")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-json
 | 
						|
  (package
 | 
						|
    (name "elm-json")
 | 
						|
    (version "1.1.3")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/json"
 | 
						|
      version
 | 
						|
      (base32 "1hx986yqw1v2bpkrh6brszl8n8awwg1s8zi7v5qg0p1rqwvjlicz")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (arguments
 | 
						|
     (list #:implicit-elm-package-inputs? #f))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/json/1.1.3")
 | 
						|
    (synopsis "Encode and decode JSON values in Elm")
 | 
						|
    (description
 | 
						|
     "This package helps you convert between Elm values and JSON values.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-json-bootstrap
 | 
						|
  ;; elm/core doesn't depend on elm/json,
 | 
						|
  ;; but elm-build-system's strategy for building it
 | 
						|
  ;; (and everything else) does
 | 
						|
  (hidden-package
 | 
						|
   (package
 | 
						|
     (inherit elm-json)
 | 
						|
     (name "elm-json-bootstrap")
 | 
						|
     (properties '((upstream-name . "elm/json")))
 | 
						|
     (propagated-inputs '())
 | 
						|
     (arguments
 | 
						|
      (list #:phases
 | 
						|
            #~(modify-phases %standard-phases
 | 
						|
                (delete 'configure)
 | 
						|
                (delete 'build)
 | 
						|
                (delete 'validate-compiled))
 | 
						|
            #:implicit-elm-package-inputs? #f)))))
 | 
						|
 | 
						|
(define-public elm-virtual-dom
 | 
						|
  (package
 | 
						|
    (name "elm-virtual-dom")
 | 
						|
    (version "1.0.3")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/virtual-dom"
 | 
						|
      version
 | 
						|
      (base32 "1bjyyws7l0qvgp4ixzaimwriq86ncx5bvrzaksvjx3pv7bmkbx69")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-json elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/virtual-dom/1.0.2")
 | 
						|
    (synopsis
 | 
						|
     "Elm's low-level virtual DOM implementation")
 | 
						|
    (description
 | 
						|
     "This package provides a virtual DOM implementation that backs Elm's
 | 
						|
core libraries for HTML and SVG.  You should almost certainly use those
 | 
						|
higher-level libraries directly.")
 | 
						|
    (properties '((upstream-name . "elm/virtual-dom")))
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-html
 | 
						|
  (package
 | 
						|
    (name "elm-html")
 | 
						|
    (version "1.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/html"
 | 
						|
      version
 | 
						|
      (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-virtual-dom
 | 
						|
           elm-json
 | 
						|
           elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/html/1.0.0")
 | 
						|
    (synopsis "Fast HTML, rendered with virtual DOM diffing")
 | 
						|
    (description "This package provides Elm's HTML rendering library.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-svg
 | 
						|
  (package
 | 
						|
    (name "elm-svg")
 | 
						|
    (version "1.0.1")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/svg"
 | 
						|
      version
 | 
						|
      (base32 "1iqsc3p129j56lp1y3z3mfc6x1shvrmx3pkhri2777ylhyw90qvl")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-html
 | 
						|
           elm-virtual-dom
 | 
						|
           elm-json
 | 
						|
           elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/svg/1.0.1")
 | 
						|
    (synopsis "Fast SVG, rendered with virtual DOM diffing")
 | 
						|
    (description
 | 
						|
     "This package provides Elm's @acronym{SVG, Scalable Vector Graphics}
 | 
						|
library.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-time
 | 
						|
  (package
 | 
						|
    (name "elm-time")
 | 
						|
    (version "1.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/time"
 | 
						|
      version
 | 
						|
      (base32 "0wqa2vhl1zf8z0j2yd3yjwfhr0dydfns43bbzll3k4rhnjadxr1l")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/time/1.0.0")
 | 
						|
    (synopsis
 | 
						|
     "POSIX time and time zones in Elm")
 | 
						|
    (description
 | 
						|
     "This package provides an Elm library for working with POSIX times, time
 | 
						|
zones, formatting, and the clock.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-url
 | 
						|
  (package
 | 
						|
    (name "elm-url")
 | 
						|
    (version "1.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/url"
 | 
						|
      version
 | 
						|
      (base32 "1f2ij4i7zmijnj2i50qf19lpkr14bhms8dkq029inb5mydi9f8gs")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/url/1.0.0")
 | 
						|
    (synopsis
 | 
						|
     "Create and parse URLs in Elm")
 | 
						|
    (description
 | 
						|
     "This package helps you:
 | 
						|
 | 
						|
@enumerate
 | 
						|
@item
 | 
						|
build new URLs; and
 | 
						|
 | 
						|
@item
 | 
						|
parse existing URLs into nice Elm data structures.
 | 
						|
@end enumerate
 | 
						|
 | 
						|
Use it for HTTP and for @dfn{routing} in @acronym{SPAs, single-page apps}.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-browser
 | 
						|
  (package
 | 
						|
    (name "elm-browser")
 | 
						|
    (version "1.0.2")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/browser"
 | 
						|
      version
 | 
						|
      (base32 "0863nw2hhbpm3s03lm1imi5x28wwknzrwg2p79s5mydgvdvgwjf0")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-virtual-dom
 | 
						|
           elm-url
 | 
						|
           elm-time
 | 
						|
           elm-json
 | 
						|
           elm-html
 | 
						|
           elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/browser/1.0.2")
 | 
						|
    (synopsis
 | 
						|
     "Run Elm in browsers")
 | 
						|
    (description
 | 
						|
     "This package allows you to create Elm programs that run in browsers,
 | 
						|
with access to browser history for @acronym{SPAs, single-page apps}.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-bytes
 | 
						|
  (package
 | 
						|
    (name "elm-bytes")
 | 
						|
    (version "1.0.8")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/bytes"
 | 
						|
      version
 | 
						|
      (base32 "0n411j2cyz9m241q6vszfzpq3fraradwal5m0gigp2505mdfpz3x")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/bytes/1.0.8")
 | 
						|
    (synopsis "Work with sequences of bytes in Elm")
 | 
						|
    (description "This package provides an Elm library for working with
 | 
						|
densely packed sequences of bytes, such as @code{ArrayBuffer}, typed arrays,
 | 
						|
and @code{DataView}.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-file
 | 
						|
  (package
 | 
						|
    (name "elm-file")
 | 
						|
    (version "1.0.5")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/file"
 | 
						|
      version
 | 
						|
      (base32 "0aimgicrdpys0v89m2wjx413561zil14cczjh6mkn9jcgckx6yng")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-time
 | 
						|
           elm-json
 | 
						|
           elm-core
 | 
						|
           elm-bytes))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/file/1.0.5")
 | 
						|
    (synopsis "Work with files in Elm")
 | 
						|
    (description "This package enables Elm programs to select files, download
 | 
						|
files, and work with file content.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-http
 | 
						|
  (package
 | 
						|
    (name "elm-http")
 | 
						|
    (version "2.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/http"
 | 
						|
      version
 | 
						|
      (base32 "0mfbz0lkfidmq5xpv5csw8943q0yrpvj0rwd2vb0gc8rbsfc9dg8")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-json
 | 
						|
           elm-file
 | 
						|
           elm-core
 | 
						|
           elm-bytes))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/http/2.0.0")
 | 
						|
    (synopsis "Make HTTP requests in Elm")
 | 
						|
    (description "This package enables Elm programs to make HTTP requests and
 | 
						|
talk to servers.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-parser
 | 
						|
  (package
 | 
						|
    (name "elm-parser")
 | 
						|
    (version "1.1.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/parser"
 | 
						|
      version
 | 
						|
      (base32 "06xx29rmagc5r45qfpvrd393lz83ylngidfp08432f1qc8y6r3lh")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/parser/1.1.0")
 | 
						|
    (synopsis
 | 
						|
     "Parsing library for Elm")
 | 
						|
    (description
 | 
						|
     "Regular expressions are quite confusing and difficult to use.  This
 | 
						|
library provides a coherent alternative that handles more cases and produces
 | 
						|
clearer code.  It is focused on simplicity and great error messages.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-project-metadata-utils
 | 
						|
  (package
 | 
						|
    (name "elm-project-metadata-utils")
 | 
						|
    (version "1.0.2")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/project-metadata-utils"
 | 
						|
      version
 | 
						|
      (base32 "1wj7chfy4knwwyc3k0hy431c80hs7hc686qsr34ayn8gip73x2jj")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-parser
 | 
						|
           elm-json
 | 
						|
           elm-core))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/elm/project-metadata-utils/1.0.2")
 | 
						|
    (synopsis "Work with @file{elm.json} and @file{docs.json} files in Elm")
 | 
						|
    (description
 | 
						|
     "This package is meant for people creating Elm tooling, like editor
 | 
						|
plugins.  If you just want to make stuff in Elm, there is nothing here for
 | 
						|
you.")
 | 
						|
    (properties '((upstream-name . "elm/project-metadata-utils")))
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-explorations-markdown
 | 
						|
  (package
 | 
						|
    (name "elm-explorations-markdown")
 | 
						|
    (version "1.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm-explorations/markdown"
 | 
						|
      version
 | 
						|
      (base32 "1f57ikdpbbhchcpwj32216gxjxijrc3sdpg27s1cgzia9pnkqk6p")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-html elm-core))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/elm-explorations/markdown/1.0.0")
 | 
						|
    (synopsis "Fast markdown parsing and rendering in Elm")
 | 
						|
    (description
 | 
						|
     "This package is for markdown parsing and rendering in Elm.  It is based
 | 
						|
on the @code{marked} project, which focuses on speed.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-todomvc
 | 
						|
  (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
 | 
						|
        (revision "1"))
 | 
						|
    (package
 | 
						|
      (name "elm-todomvc")
 | 
						|
      (version (git-version "1" revision commit))
 | 
						|
      (source
 | 
						|
       (origin
 | 
						|
         (method git-fetch)
 | 
						|
         (uri (git-reference
 | 
						|
               (url "https://github.com/evancz/elm-todomvc")
 | 
						|
               (commit commit)))
 | 
						|
         (sha256
 | 
						|
          (base32 "0g37bglzshkf79s4n7aq9ib44h5qn8ng7n72sh2xslgd20h05nfw"))
 | 
						|
         (file-name (git-file-name name version))))
 | 
						|
      (inputs (list elm-browser elm-core elm-html elm-json))
 | 
						|
      (build-system elm-build-system)
 | 
						|
      (arguments
 | 
						|
       (list
 | 
						|
        #:modules
 | 
						|
        `((srfi srfi-26)
 | 
						|
          ,@%elm-default-modules)
 | 
						|
        #:phases
 | 
						|
        #~(modify-phases %standard-phases
 | 
						|
            (delete 'stage)
 | 
						|
            (replace 'configure
 | 
						|
              patch-application-dependencies)
 | 
						|
            (replace 'build
 | 
						|
              (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
						|
                (invoke (search-input-file (or native-inputs inputs)
 | 
						|
                                           "/bin/elm")
 | 
						|
                        "make"
 | 
						|
                        "src/Main.elm"
 | 
						|
                        "--output=elm.js")))
 | 
						|
            (replace 'install
 | 
						|
              (lambda args
 | 
						|
                (let* ((out-dir #$output)
 | 
						|
                       (dest-dir
 | 
						|
                        (string-append out-dir
 | 
						|
                                       "/share/"
 | 
						|
                                       (strip-store-file-name out-dir))))
 | 
						|
                  (for-each (cut install-file <> dest-dir)
 | 
						|
                            `("elm.js"
 | 
						|
                              "index.html"
 | 
						|
                              "style.css"
 | 
						|
                              "README.md")))))
 | 
						|
            (delete 'validate-compiled))))
 | 
						|
      (home-page "https://github.com/evancz/elm-todomvc")
 | 
						|
      (synopsis "TodoMVC in Elm")
 | 
						|
      (description "This is the official Elm implementation of
 | 
						|
@url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to
 | 
						|
compare front-end web frameworks.")
 | 
						|
      (license license:bsd-3))))
 | 
						|
 | 
						|
(define-public elm-debois-elm-dom
 | 
						|
  (package
 | 
						|
    (name "elm-debois-elm-dom")
 | 
						|
    (version "1.3.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "debois/elm-dom"
 | 
						|
      version
 | 
						|
      (base32 "0w4z4w6ip118lk5g80w6mbbfxhfmivbmdkdm6wsmk63x85gscmqx")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-json elm-html elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/debois/elm-dom/1.3.0")
 | 
						|
    (synopsis "DOM traversal for Elm event-handlers")
 | 
						|
    (description
 | 
						|
     "This package provides a library for reading information off the DOM.
 | 
						|
Use this if you need to discover geometry information (width, position, etc.)
 | 
						|
of rendered elements.")
 | 
						|
    (license license:asl2.0)))
 | 
						|
 | 
						|
(define-public elm-random
 | 
						|
  (package
 | 
						|
    (name "elm-random")
 | 
						|
    (version "1.0.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm/random"
 | 
						|
      version
 | 
						|
      (base32 "0z0znkwfs35xiabk6pa9yqwsq03jssgd7jmsj1kk000mikfm7f39")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-time elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/elm/random/1.0.0")
 | 
						|
    (synopsis "Generate random numbers and values in Elm")
 | 
						|
    (description
 | 
						|
     "Need to generate random numbers?  How about random game boards?  Or
 | 
						|
random positions in 3D space?  This is the package for you!")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-explorations-test
 | 
						|
  (package
 | 
						|
    (name "elm-explorations-test")
 | 
						|
    (version "1.2.2")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "elm-explorations/test"
 | 
						|
      version
 | 
						|
      (base32 "0kw32x0lr6nh5j9xk56vgg7x7c705g38grghh7cdp49frwdd6w3l")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-virtual-dom
 | 
						|
           elm-random
 | 
						|
           elm-json
 | 
						|
           elm-html
 | 
						|
           elm-core))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/elm-explorations/test/1.2.2")
 | 
						|
    (synopsis "Testing framework for Elm")
 | 
						|
    (description "This package enables writing unit and fuzz tests for Elm
 | 
						|
code.  To actually run the tests, you need the command-line tool from
 | 
						|
@url{https://github.com/rtfeldman/node-test-runner}, which has not yet been
 | 
						|
packaged for Guix.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-danhandrea-elm-date-format
 | 
						|
  (package
 | 
						|
    (name "elm-danhandrea-elm-date-format")
 | 
						|
    (version "2.0.1")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "danhandrea/elm-date-format"
 | 
						|
      version
 | 
						|
      (base32 "03mglzyywij5sm56m7q2jhhbsv7f9rdirgwmq0q41ghir81bzpv6")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-time elm-core))
 | 
						|
    (inputs (list elm-explorations-test))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/danhandrea/elm-date-format/2.0.1")
 | 
						|
    (synopsis "Date formatting for Elm")
 | 
						|
    (description "This package enhances @code{elm/time} with support for
 | 
						|
format strings and internationalization of dates.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-danhandrea-elm-time-extra
 | 
						|
  (package
 | 
						|
    (name "elm-danhandrea-elm-time-extra")
 | 
						|
    (version "1.1.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "danhandrea/elm-time-extra"
 | 
						|
      version
 | 
						|
      (base32 "0z13q8x148d5amcc89f846yzql89n9gyan8fr48y91dhhn7vxibf")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-time elm-core))
 | 
						|
    (inputs
 | 
						|
     (list elm-explorations-test
 | 
						|
           elm-danhandrea-elm-date-format))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/danhandrea/elm-time-extra/1.1.0")
 | 
						|
    (synopsis "Extra utilities for POSIX time in Elm")
 | 
						|
    (description "This package enhances @code{elm/time} with extra utilities
 | 
						|
for working with POSIX times.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-justinmimbs-date
 | 
						|
  (package
 | 
						|
    (name "elm-justinmimbs-date")
 | 
						|
    (version "4.0.1")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "justinmimbs/date"
 | 
						|
      version
 | 
						|
      (base32 "13mf97137f0yb3gx1mxbya2y70qciah4hp5bcnpj8166vgzb7l3l")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-time
 | 
						|
           elm-parser
 | 
						|
           elm-core))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/justinmimbs/date/4.0.1")
 | 
						|
    (synopsis "Work with dates without times or zones in Elm")
 | 
						|
    (description
 | 
						|
     "This Elm package provides a simple @code{Date} type for working with
 | 
						|
dates without times or zones.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-justinmimbs-time-extra
 | 
						|
  (package
 | 
						|
    (name "elm-justinmimbs-time-extra")
 | 
						|
    (version "1.1.1")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "justinmimbs/time-extra"
 | 
						|
      version
 | 
						|
      (base32 "1gmgvzlpzkysvm86d0md75ply10pz28bg699m4763frss0jvrngh")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-justinmimbs-date
 | 
						|
           elm-time
 | 
						|
           elm-core))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/justinmimbs/time-extra/1.1.1")
 | 
						|
    (synopsis "Extra functions for POSIX times in Elm")
 | 
						|
    (description
 | 
						|
     "This package provides extra functions for working with @code{Posix}
 | 
						|
times from @code{elm/time}.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-myrho-elm-round
 | 
						|
  (package
 | 
						|
    (name "elm-myrho-elm-round")
 | 
						|
    (version "1.0.4")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "myrho/elm-round"
 | 
						|
      version
 | 
						|
      (base32 "0y3j43wr815cvwz5310zalnqzpg3hw8h127zjjlf6x8ynapc2mdb")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-core))
 | 
						|
    (inputs (list elm-explorations-test))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/myrho/elm-round/1.0.4")
 | 
						|
    (synopsis "Flexible rounding of Elm @code{Float}s")
 | 
						|
    (description
 | 
						|
     "This library converts a @code{Float} to a @code{String} with ultimate
 | 
						|
control how many digits after the decimal point are shown and how the
 | 
						|
remaining digits are rounded.  It rounds, floors and ceils the @dfn{common}
 | 
						|
way (i.e. half up) or the @dfn{commerical} way (ie. half away from zero).")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-ryannhg-date-format
 | 
						|
  (package
 | 
						|
    (name "elm-ryannhg-date-format")
 | 
						|
    (version "2.3.0")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "ryannhg/date-format"
 | 
						|
      version
 | 
						|
      (base32 "0razh6im5qwmla10knk67j8w11mqlqlyfnclykbfl06kaksfm3sp")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs (list elm-time elm-core))
 | 
						|
    (inputs (list elm-explorations-test))
 | 
						|
    (home-page
 | 
						|
     "https://package.elm-lang.org/packages/ryannhg/date-format/2.3.0")
 | 
						|
    (synopsis "Reliable advanced dates formatting for Elm")
 | 
						|
    (description
 | 
						|
     "This package provides Elm programs with reliable, powerful tools for
 | 
						|
formatting dates and times.  It uses Elm's type system instead of format
 | 
						|
strings, which makes formatting code more readable and can catch some errors
 | 
						|
at compile time.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-terezka-intervals
 | 
						|
  (package
 | 
						|
    (name "elm-terezka-intervals")
 | 
						|
    (version "2.0.1")
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "terezka/intervals"
 | 
						|
      version
 | 
						|
      (base32 "0h3im58sa6awyppch1v8ppcrzwc5h48yn45crx98m8zs4isx91lj")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-ryannhg-date-format
 | 
						|
           elm-myrho-elm-round
 | 
						|
           elm-justinmimbs-time-extra
 | 
						|
           elm-time
 | 
						|
           elm-svg
 | 
						|
           elm-json
 | 
						|
           elm-html
 | 
						|
           elm-core
 | 
						|
           elm-danhandrea-elm-time-extra))
 | 
						|
    (inputs (list elm-explorations-test))
 | 
						|
    (home-page "https://package.elm-lang.org/packages/terezka/intervals/2.0.1")
 | 
						|
    (synopsis "Produce nice intervals for Elm charts")
 | 
						|
    (description
 | 
						|
     "This package provides an Elm library for producing nice intervals for
 | 
						|
charts.  It's useful in combination with @code{terezka/elm-charts}.  When I
 | 
						|
say ``nice'', I just mean that I try to calculate intervals which begin with
 | 
						|
10, 5, 3, 2, or 1 (adjusted to magnitude, of course!).  For dates, I try to
 | 
						|
hit whole days, weeks, and months or hours, minutes, and seconds.")
 | 
						|
    (license license:bsd-3)))
 | 
						|
 | 
						|
(define-public elm-terezka-elm-charts
 | 
						|
  (package
 | 
						|
    (name "elm-terezka-elm-charts")
 | 
						|
    (version "3.0.0") ;; NOTE! Tags like 5.1.0 are from an OLDER version.
 | 
						|
    (source
 | 
						|
     (elm-package-origin
 | 
						|
      "terezka/elm-charts"
 | 
						|
      version
 | 
						|
      (base32 "17syq73jwldc7fk7snm5k8s85nsvxyprb34rs1rwjsapc1vii7hc")))
 | 
						|
    (build-system elm-build-system)
 | 
						|
    (propagated-inputs
 | 
						|
     (list elm-terezka-intervals
 | 
						|
           elm-ryannhg-date-format
 | 
						|
           elm-time
 | 
						|
           elm-svg
 | 
						|
           elm-json
 | 
						|
           elm-html
 | 
						|
           elm-core
 | 
						|
           elm-debois-elm-dom))
 | 
						|
    (home-page
 | 
						|
     "https://elm-charts.org")
 | 
						|
    (synopsis "SVG chart components in Elm")
 | 
						|
    (description
 | 
						|
     "Make SVG charts in all Elm.  The package can draw charts at a variety of
 | 
						|
different levels of customization, from basic charts with standard features to
 | 
						|
very custom styles.  The library also allows including your very own SVG
 | 
						|
elements while still easily utilizing the coordinate system calculated from
 | 
						|
your data, as well as editing the SVGs made by the package.  It has great
 | 
						|
support for interactivity, layering different charts, and adding irregular
 | 
						|
details.")
 | 
						|
    (license license:bsd-3)))
 |