gnu: emacs-helm: Update to 3.8.7.
[jackhill/guix/guix.git] / gnu / packages / elm.scm
CommitLineData
c9024588
RV
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
4e99510d 3;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
c9024588
RV
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages elm)
21 #:use-module (gnu packages)
22 #:use-module (gnu packages haskell)
23 #:use-module (gnu packages haskell-check)
24 #:use-module (gnu packages haskell-crypto)
25 #:use-module (gnu packages haskell-xyz)
26 #:use-module (gnu packages haskell-web)
27 #:use-module (guix build-system haskell)
aefcfdd0 28 #:use-module (guix build-system elm)
4e99510d 29 #:use-module (guix gexp)
c9024588
RV
30 #:use-module (guix git-download)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix packages))
33
4e99510d
PM
34;; The `elm` build usually calls out to itself via Template Haskell to compile
35;; the `elm reactor` web app (which depends on additional Elm packages) and
36;; embeds the static files into itself. The reactor isn't required to compile
37;; Elm applications, so we want to skip it for the bootstrap package, but we
38;; also want to be able to enable it once we can build it. We patch Elm to
39;; instead look for the files on disk relative to the executable and to have
40;; `elm reactor` exit with a useful error message if they aren't there.
41(define %reactor-root-base
42 "share/elm/reactor-")
9885c2fd 43(define-public elm-sans-reactor
c9024588 44 (package
9885c2fd 45 (name "elm-sans-reactor")
4e99510d 46 (version "0.19.1")
c9024588
RV
47 (source
48 (origin
49 (method git-fetch)
50 (file-name (git-file-name name version))
51 (uri (git-reference
52 (url "https://github.com/elm/compiler/")
53 (commit version)))
54 (sha256
4e99510d 55 (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
c9024588 56 (patches
aefcfdd0
PM
57 (search-patches "elm-reactor-static-files.patch"
58 "elm-offline-package-registry.patch"))))
c9024588 59 (build-system haskell-build-system)
eef308d6 60 (arguments
4e99510d
PM
61 (list
62 #:configure-flags
63 #~(list (string-append "--ghc-option=-DGUIX_REACTOR_STATIC_REL_ROOT="
64 "\"../" #$%reactor-root-base
65 #$(package-version this-package)
66 "\""))
67 #:phases
68 #~(modify-phases %standard-phases
69 (add-before 'configure 'update-constraints
70 (lambda _
71 (substitute* "elm.cabal"
72 (("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep)
73 dep)))))))
c9024588 74 (inputs
8394619b
LC
75 (list ghc-ansi-terminal
76 ghc-ansi-wl-pprint
77 ghc-edit-distance
4e99510d 78 ghc-filelock
8394619b
LC
79 ghc-http
80 ghc-http-client
81 ghc-http-client-tls
82 ghc-http-types
83 ghc-language-glsl
84 ghc-logict
85 ghc-network
86 ghc-raw-strings-qq
87 ghc-scientific
88 ghc-sha
89 ghc-snap-core
90 ghc-snap-server
91 ghc-unordered-containers
92 ghc-utf8-string
93 ghc-vector
94 ghc-zip-archive))
c9024588 95 (home-page "https://elm-lang.org")
9885c2fd
PM
96 (synopsis "Minimal variant of @command{elm}")
97 (description
98 "This package provides a version of the Elm compiler without support for
99the @command{elm reactor} development command.")
100 (license license:bsd-3)))
101
102(define-public elm
103 (package
104 (name "elm")
105 (version (package-version elm-sans-reactor))
106 (source (package-source elm-sans-reactor))
107 (native-inputs (list elm-sans-reactor))
108 (inputs (list elm-sans-reactor
109 elm-browser
110 elm-core
111 elm-html
112 elm-http
113 elm-json
114 elm-project-metadata-utils
115 elm-svg
116 elm-explorations-markdown))
117 (build-system elm-build-system)
118 (arguments
119 (list
120 #:modules
121 `((srfi srfi-26)
122 ,@%elm-default-modules)
123 #:phases
124 #~(modify-phases %standard-phases
125 (delete 'stage)
126 (replace 'configure
127 (lambda* (#:key native-inputs inputs #:allow-other-keys)
128 (with-directory-excursion "reactor"
129 (patch-application-dependencies))))
130 (replace 'build
131 (lambda* (#:key native-inputs inputs #:allow-other-keys)
132 (with-directory-excursion "reactor"
133 (invoke (search-input-file (or native-inputs inputs)
134 "/bin/elm")
135 "make"
136 "--optimize"
137 "src/NotFound.elm"
138 "src/Errors.elm"
139 "src/Index.elm"))))
140 (replace 'install
141 (lambda* (#:key inputs #:allow-other-keys)
142 (let* ((out-dir #$output)
143 (bin-dir (string-append out-dir "/bin"))
144 (reactor-dir (string-append out-dir
145 "/"
146 #$%reactor-root-base
147 (getenv "GUIX_ELM_VERSION")))
148 (reactor-subdir (string-append reactor-dir "/_elm")))
149 ;; We can't use a symlink here because Haskell's
150 ;; `getExecutablePath` follows all symlinks.
151 ;; Guix can make it a hard link later.
152 (install-file (search-input-file inputs ;; NOT native-inputs
153 "/bin/elm")
154 bin-dir)
155 (install-file "reactor/assets/favicon.ico" reactor-dir)
156 (for-each (cut install-file <> reactor-subdir)
157 '("reactor/elm.js"
158 "reactor/assets/styles.css"
159 ;; TODO: these are source-code-pro v1.017 and
160 ;; source-sans-pro v1.050: there may be breaking
161 ;; changes in Guix's existing
162 ;; font-adobe-source-{code,sans}-pro packages
163 "reactor/assets/source-code-pro.ttf"
164 "reactor/assets/source-sans-pro.ttf")))))
165 (delete 'validate-compiled))))
166 (home-page "https://elm-lang.org")
c9024588
RV
167 (synopsis "Programming language for Web applications")
168 (description
0d480d4c
PM
169 "Elm is a statically-typed, purely-functional programming language for
170the browser. The @command{elm} exectable includes commands for developers
171such as @command{elm make} and @command{elm repl}.")
c9024588 172 (license license:bsd-3)))
0d480d4c
PM
173
174;; The 'elm' package used to be called 'elm-compiler'.
175(define-public elm-compiler
176 (deprecated-package "elm-compiler" elm))
d16b2a14
PM
177
178(define-public elm-core
179 (package
180 (name "elm-core")
181 (version "1.0.5")
182 (source
183 (elm-package-origin
184 "elm/core"
185 version
186 (base32 "0g3xbi8f9k5q45s95nx3jfvzwdf4b2n63a52wr4027d2xjx0pmvl")))
187 (build-system elm-build-system)
188 (inputs (list elm-json-bootstrap))
189 (arguments
190 (list #:implicit-elm-package-inputs? #f))
191 (home-page "https://package.elm-lang.org/packages/elm/core/1.0.5")
192 (synopsis "Elm's standard libraries")
193 (description "Every Elm project needs this package!")
194 (license license:bsd-3)))
195
196(define-public elm-json
197 (package
198 (name "elm-json")
199 (version "1.1.3")
200 (source
201 (elm-package-origin
202 "elm/json"
203 version
204 (base32 "1hx986yqw1v2bpkrh6brszl8n8awwg1s8zi7v5qg0p1rqwvjlicz")))
205 (build-system elm-build-system)
206 (propagated-inputs (list elm-core))
207 (arguments
208 (list #:implicit-elm-package-inputs? #f))
209 (home-page "https://package.elm-lang.org/packages/elm/json/1.1.3")
210 (synopsis "Encode and decode JSON values in Elm")
211 (description
212 "This package helps you convert between Elm values and JSON values.")
213 (license license:bsd-3)))
214
215(define-public elm-json-bootstrap
216 ;; elm/core doesn't depend on elm/json,
217 ;; but elm-build-system's strategy for building it
218 ;; (and everything else) does
219 (hidden-package
220 (package
221 (inherit elm-json)
222 (name "elm-json-bootstrap")
223 (properties '((upstream-name . "elm/json")))
224 (propagated-inputs '())
225 (arguments
226 (list #:phases
227 #~(modify-phases %standard-phases
228 (delete 'configure)
229 (delete 'build)
230 (delete 'validate-compiled))
231 #:implicit-elm-package-inputs? #f)))))
205457f8
PM
232
233(define-public elm-virtual-dom
234 (package
235 (name "elm-virtual-dom")
236 (version "1.0.3")
237 (source
238 (elm-package-origin
239 "elm/virtual-dom"
240 version
241 (base32 "1bjyyws7l0qvgp4ixzaimwriq86ncx5bvrzaksvjx3pv7bmkbx69")))
242 (build-system elm-build-system)
243 (propagated-inputs (list elm-json elm-core))
244 (home-page "https://package.elm-lang.org/packages/elm/virtual-dom/1.0.2")
245 (synopsis
246 "Elm's low-level virtual DOM implementation")
247 (description
248 "This package provides a virtual DOM implementation that backs Elm's
249core libraries for HTML and SVG. You should almost certainly use those
250higher-level libraries directly.")
251 (properties '((upstream-name . "elm/virtual-dom")))
252 (license license:bsd-3)))
7ecc8552
PM
253
254(define-public elm-html
255 (package
256 (name "elm-html")
257 (version "1.0.0")
258 (source
259 (elm-package-origin
260 "elm/html"
261 version
262 (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
263 (build-system elm-build-system)
264 (propagated-inputs
265 (list elm-virtual-dom
266 elm-json
267 elm-core))
268 (home-page "https://package.elm-lang.org/packages/elm/html/1.0.0")
269 (synopsis "Fast HTML, rendered with virtual DOM diffing")
270 (description "This package provides Elm's HTML rendering library.")
271 (license license:bsd-3)))
db6b8d5e
PM
272
273(define-public elm-svg
274 (package
275 (name "elm-svg")
276 (version "1.0.1")
277 (source
278 (elm-package-origin
279 "elm/svg"
280 version
281 (base32 "1iqsc3p129j56lp1y3z3mfc6x1shvrmx3pkhri2777ylhyw90qvl")))
282 (build-system elm-build-system)
283 (propagated-inputs
284 (list elm-html
285 elm-virtual-dom
286 elm-json
287 elm-core))
288 (home-page "https://package.elm-lang.org/packages/elm/svg/1.0.1")
289 (synopsis "Fast SVG, rendered with virtual DOM diffing")
290 (description
291 "This package provides Elm's @acronym{SVG, Scalable Vector Graphics}
292library.")
293 (license license:bsd-3)))
c69d91a1
PM
294
295(define-public elm-time
296 (package
297 (name "elm-time")
298 (version "1.0.0")
299 (source
300 (elm-package-origin
301 "elm/time"
302 version
303 (base32 "0wqa2vhl1zf8z0j2yd3yjwfhr0dydfns43bbzll3k4rhnjadxr1l")))
304 (build-system elm-build-system)
305 (propagated-inputs (list elm-core))
306 (home-page "https://package.elm-lang.org/packages/elm/time/1.0.0")
307 (synopsis
308 "POSIX time and time zones in Elm")
309 (description
310 "This package provides an Elm library for working with POSIX times, time
311zones, formatting, and the clock.")
312 (license license:bsd-3)))
31ee6972
PM
313
314(define-public elm-url
315 (package
316 (name "elm-url")
317 (version "1.0.0")
318 (source
319 (elm-package-origin
320 "elm/url"
321 version
322 (base32 "1f2ij4i7zmijnj2i50qf19lpkr14bhms8dkq029inb5mydi9f8gs")))
323 (build-system elm-build-system)
324 (propagated-inputs (list elm-core))
325 (home-page "https://package.elm-lang.org/packages/elm/url/1.0.0")
326 (synopsis
327 "Create and parse URLs in Elm")
328 (description
329 "This package helps you:
330
331@enumerate
332@item
333build new URLs; and
334
335@item
336parse existing URLs into nice Elm data structures.
337@end enumerate
338
339Use it for HTTP and for @dfn{routing} in @acronym{SPAs, single-page apps}.")
340 (license license:bsd-3)))
951ad86e
PM
341
342(define-public elm-browser
343 (package
344 (name "elm-browser")
345 (version "1.0.2")
346 (source
347 (elm-package-origin
348 "elm/browser"
349 version
350 (base32 "0863nw2hhbpm3s03lm1imi5x28wwknzrwg2p79s5mydgvdvgwjf0")))
351 (build-system elm-build-system)
352 (propagated-inputs
353 (list elm-virtual-dom
354 elm-url
355 elm-time
356 elm-json
357 elm-html
358 elm-core))
359 (home-page "https://package.elm-lang.org/packages/elm/browser/1.0.2")
360 (synopsis
361 "Run Elm in browsers")
362 (description
363 "This package allows you to create Elm programs that run in browsers,
364with access to browser history for @acronym{SPAs, single-page apps}.")
365 (license license:bsd-3)))
dfae053d
PM
366
367(define-public elm-bytes
368 (package
369 (name "elm-bytes")
370 (version "1.0.8")
371 (source
372 (elm-package-origin
373 "elm/bytes"
374 version
375 (base32 "0n411j2cyz9m241q6vszfzpq3fraradwal5m0gigp2505mdfpz3x")))
376 (build-system elm-build-system)
377 (propagated-inputs (list elm-core))
378 (home-page "https://package.elm-lang.org/packages/elm/bytes/1.0.8")
379 (synopsis "Work with sequences of bytes in Elm")
380 (description "This package provides an Elm library for working with
381densely packed sequences of bytes, such as @code{ArrayBuffer}, typed arrays,
382and @code{DataView}.")
383 (license license:bsd-3)))
324b4048
PM
384
385(define-public elm-file
386 (package
387 (name "elm-file")
388 (version "1.0.5")
389 (source
390 (elm-package-origin
391 "elm/file"
392 version
393 (base32 "0aimgicrdpys0v89m2wjx413561zil14cczjh6mkn9jcgckx6yng")))
394 (build-system elm-build-system)
395 (propagated-inputs
396 (list elm-time
397 elm-json
398 elm-core
399 elm-bytes))
400 (home-page "https://package.elm-lang.org/packages/elm/file/1.0.5")
401 (synopsis "Work with files in Elm")
402 (description "This package enables Elm programs to select files, download
403files, and work with file content.")
404 (license license:bsd-3)))
2ea11208
PM
405
406(define-public elm-http
407 (package
408 (name "elm-http")
409 (version "2.0.0")
410 (source
411 (elm-package-origin
412 "elm/http"
413 version
414 (base32 "0mfbz0lkfidmq5xpv5csw8943q0yrpvj0rwd2vb0gc8rbsfc9dg8")))
415 (build-system elm-build-system)
416 (propagated-inputs
417 (list elm-json
418 elm-file
419 elm-core
420 elm-bytes))
421 (home-page "https://package.elm-lang.org/packages/elm/http/2.0.0")
422 (synopsis "Make HTTP requests in Elm")
423 (description "This package enables Elm programs to make HTTP requests and
424talk to servers.")
425 (license license:bsd-3)))
e46c530d
PM
426
427(define-public elm-parser
428 (package
429 (name "elm-parser")
430 (version "1.1.0")
431 (source
432 (elm-package-origin
433 "elm/parser"
434 version
435 (base32 "06xx29rmagc5r45qfpvrd393lz83ylngidfp08432f1qc8y6r3lh")))
436 (build-system elm-build-system)
437 (propagated-inputs (list elm-core))
438 (home-page "https://package.elm-lang.org/packages/elm/parser/1.1.0")
439 (synopsis
440 "Parsing library for Elm")
441 (description
442 "Regular expressions are quite confusing and difficult to use. This
443library provides a coherent alternative that handles more cases and produces
444clearer code. It is focused on simplicity and great error messages.")
445 (license license:bsd-3)))
1e0e94c3
PM
446
447(define-public elm-project-metadata-utils
448 (package
449 (name "elm-project-metadata-utils")
450 (version "1.0.2")
451 (source
452 (elm-package-origin
453 "elm/project-metadata-utils"
454 version
455 (base32 "1wj7chfy4knwwyc3k0hy431c80hs7hc686qsr34ayn8gip73x2jj")))
456 (build-system elm-build-system)
457 (propagated-inputs
458 (list elm-parser
459 elm-json
460 elm-core))
461 (home-page
462 "https://package.elm-lang.org/packages/elm/project-metadata-utils/1.0.2")
463 (synopsis "Work with @file{elm.json} and @file{docs.json} files in Elm")
464 (description
465 "This package is meant for people creating Elm tooling, like editor
466plugins. If you just want to make stuff in Elm, there is nothing here for
467you.")
468 (properties '((upstream-name . "elm/project-metadata-utils")))
469 (license license:bsd-3)))
470
796045b2
PM
471(define-public elm-explorations-markdown
472 (package
473 (name "elm-explorations-markdown")
474 (version "1.0.0")
475 (source
476 (elm-package-origin
477 "elm-explorations/markdown"
478 version
479 (base32 "1f57ikdpbbhchcpwj32216gxjxijrc3sdpg27s1cgzia9pnkqk6p")))
480 (build-system elm-build-system)
481 (propagated-inputs (list elm-html elm-core))
482 (home-page
483 "https://package.elm-lang.org/packages/elm-explorations/markdown/1.0.0")
484 (synopsis "Fast markdown parsing and rendering in Elm")
485 (description
486 "This package is for markdown parsing and rendering in Elm. It is based
487on the @code{marked} project, which focuses on speed.")
488 (license license:bsd-3)))
489
b6c0f18d
PM
490(define-public elm-todomvc
491 (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
492 (revision "1"))
493 (package
494 (name "elm-todomvc")
495 (version (git-version "1" revision commit))
496 (source
497 (origin
498 (method git-fetch)
499 (uri (git-reference
500 (url "https://github.com/evancz/elm-todomvc")
501 (commit commit)))
502 (sha256
503 (base32 "0g37bglzshkf79s4n7aq9ib44h5qn8ng7n72sh2xslgd20h05nfw"))
504 (file-name (git-file-name name version))))
505 (inputs (list elm-browser elm-core elm-html elm-json))
506 (build-system elm-build-system)
507 (arguments
508 (list
509 #:modules
510 `((srfi srfi-26)
511 ,@%elm-default-modules)
512 #:phases
513 #~(modify-phases %standard-phases
514 (delete 'stage)
515 (replace 'configure
516 patch-application-dependencies)
517 (replace 'build
518 (lambda* (#:key native-inputs inputs #:allow-other-keys)
519 (invoke (search-input-file (or native-inputs inputs)
520 "/bin/elm")
521 "make"
522 "src/Main.elm"
523 "--output=elm.js")))
524 (replace 'install
525 (lambda args
526 (let* ((out-dir #$output)
527 (dest-dir
528 (string-append out-dir
529 "/share/"
530 (strip-store-file-name out-dir))))
531 (for-each (cut install-file <> dest-dir)
532 `("elm.js"
533 "index.html"
534 "style.css"
535 "README.md")))))
536 (delete 'validate-compiled))))
537 (home-page "https://github.com/evancz/elm-todomvc")
538 (synopsis "TodoMVC in Elm")
539 (description "This is the official Elm implementation of
540@url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to
541compare front-end web frameworks.")
542 (license license:bsd-3))))
955638d8
PM
543
544(define-public elm-debois-elm-dom
545 (package
546 (name "elm-debois-elm-dom")
547 (version "1.3.0")
548 (source
549 (elm-package-origin
550 "debois/elm-dom"
551 version
552 (base32 "0w4z4w6ip118lk5g80w6mbbfxhfmivbmdkdm6wsmk63x85gscmqx")))
553 (build-system elm-build-system)
554 (propagated-inputs
555 (list elm-json elm-html elm-core))
556 (home-page "https://package.elm-lang.org/packages/debois/elm-dom/1.3.0")
557 (synopsis "DOM traversal for Elm event-handlers")
558 (description
559 "This package provides a library for reading information off the DOM.
560Use this if you need to discover geometry information (width, position, etc.)
561of rendered elements.")
562 (license license:asl2.0)))
4522741c
PM
563
564(define-public elm-random
565 (package
566 (name "elm-random")
567 (version "1.0.0")
568 (source
569 (elm-package-origin
570 "elm/random"
571 version
572 (base32 "0z0znkwfs35xiabk6pa9yqwsq03jssgd7jmsj1kk000mikfm7f39")))
573 (build-system elm-build-system)
574 (propagated-inputs (list elm-time elm-core))
575 (home-page "https://package.elm-lang.org/packages/elm/random/1.0.0")
576 (synopsis "Generate random numbers and values in Elm")
577 (description
578 "Need to generate random numbers? How about random game boards? Or
579random positions in 3D space? This is the package for you!")
580 (license license:bsd-3)))
297ae57b
PM
581
582(define-public elm-explorations-test
583 (package
584 (name "elm-explorations-test")
585 (version "1.2.2")
586 (source
587 (elm-package-origin
588 "elm-explorations/test"
589 version
590 (base32 "0kw32x0lr6nh5j9xk56vgg7x7c705g38grghh7cdp49frwdd6w3l")))
591 (build-system elm-build-system)
592 (propagated-inputs
593 (list elm-virtual-dom
594 elm-random
595 elm-json
596 elm-html
597 elm-core))
598 (home-page
599 "https://package.elm-lang.org/packages/elm-explorations/test/1.2.2")
600 (synopsis "Testing framework for Elm")
601 (description "This package enables writing unit and fuzz tests for Elm
602code. To actually run the tests, you need the command-line tool from
603@url{https://github.com/rtfeldman/node-test-runner}, which has not yet been
604packaged for Guix.")
605 (license license:bsd-3)))
34f45421
PM
606
607(define-public elm-danhandrea-elm-date-format
608 (package
609 (name "elm-danhandrea-elm-date-format")
610 (version "2.0.1")
611 (source
612 (elm-package-origin
613 "danhandrea/elm-date-format"
614 version
615 (base32 "03mglzyywij5sm56m7q2jhhbsv7f9rdirgwmq0q41ghir81bzpv6")))
616 (build-system elm-build-system)
617 (propagated-inputs (list elm-time elm-core))
618 (inputs (list elm-explorations-test))
619 (home-page
620 "https://package.elm-lang.org/packages/danhandrea/elm-date-format/2.0.1")
621 (synopsis "Date formatting for Elm")
622 (description "This package enhances @code{elm/time} with support for
623format strings and internationalization of dates.")
624 (license license:bsd-3)))
4d50052c
PM
625
626(define-public elm-danhandrea-elm-time-extra
627 (package
628 (name "elm-danhandrea-elm-time-extra")
629 (version "1.1.0")
630 (source
631 (elm-package-origin
632 "danhandrea/elm-time-extra"
633 version
634 (base32 "0z13q8x148d5amcc89f846yzql89n9gyan8fr48y91dhhn7vxibf")))
635 (build-system elm-build-system)
636 (propagated-inputs (list elm-time elm-core))
637 (inputs
638 (list elm-explorations-test
639 elm-danhandrea-elm-date-format))
640 (home-page
641 "https://package.elm-lang.org/packages/danhandrea/elm-time-extra/1.1.0")
642 (synopsis "Extra utilities for POSIX time in Elm")
643 (description "This package enhances @code{elm/time} with extra utilities
644for working with POSIX times.")
645 (license license:bsd-3)))
f0b7c8dc
PM
646
647(define-public elm-justinmimbs-date
648 (package
649 (name "elm-justinmimbs-date")
650 (version "4.0.1")
651 (source
652 (elm-package-origin
653 "justinmimbs/date"
654 version
655 (base32 "13mf97137f0yb3gx1mxbya2y70qciah4hp5bcnpj8166vgzb7l3l")))
656 (build-system elm-build-system)
657 (propagated-inputs
658 (list elm-time
659 elm-parser
660 elm-core))
661 (home-page "https://package.elm-lang.org/packages/justinmimbs/date/4.0.1")
662 (synopsis "Work with dates without times or zones in Elm")
663 (description
664 "This Elm package provides a simple @code{Date} type for working with
665dates without times or zones.")
666 (license license:bsd-3)))
0fbf000f
PM
667
668(define-public elm-justinmimbs-time-extra
669 (package
670 (name "elm-justinmimbs-time-extra")
671 (version "1.1.1")
672 (source
673 (elm-package-origin
674 "justinmimbs/time-extra"
675 version
676 (base32 "1gmgvzlpzkysvm86d0md75ply10pz28bg699m4763frss0jvrngh")))
677 (build-system elm-build-system)
678 (propagated-inputs
679 (list elm-justinmimbs-date
680 elm-time
681 elm-core))
682 (home-page
683 "https://package.elm-lang.org/packages/justinmimbs/time-extra/1.1.1")
684 (synopsis "Extra functions for POSIX times in Elm")
685 (description
686 "This package provides extra functions for working with @code{Posix}
687times from @code{elm/time}.")
688 (license license:bsd-3)))
71841da6
PM
689
690(define-public elm-myrho-elm-round
691 (package
692 (name "elm-myrho-elm-round")
693 (version "1.0.4")
694 (source
695 (elm-package-origin
696 "myrho/elm-round"
697 version
698 (base32 "0y3j43wr815cvwz5310zalnqzpg3hw8h127zjjlf6x8ynapc2mdb")))
699 (build-system elm-build-system)
700 (propagated-inputs (list elm-core))
701 (inputs (list elm-explorations-test))
702 (home-page "https://package.elm-lang.org/packages/myrho/elm-round/1.0.4")
703 (synopsis "Flexible rounding of Elm @code{Float}s")
704 (description
705 "This library converts a @code{Float} to a @code{String} with ultimate
706control how many digits after the decimal point are shown and how the
707remaining digits are rounded. It rounds, floors and ceils the @dfn{common}
708way (i.e. half up) or the @dfn{commerical} way (ie. half away from zero).")
709 (license license:bsd-3)))
1b8d1f7d
PM
710
711(define-public elm-ryannhg-date-format
712 (package
713 (name "elm-ryannhg-date-format")
714 (version "2.3.0")
715 (source
716 (elm-package-origin
717 "ryannhg/date-format"
718 version
719 (base32 "0razh6im5qwmla10knk67j8w11mqlqlyfnclykbfl06kaksfm3sp")))
720 (build-system elm-build-system)
721 (propagated-inputs (list elm-time elm-core))
722 (inputs (list elm-explorations-test))
723 (home-page
724 "https://package.elm-lang.org/packages/ryannhg/date-format/2.3.0")
725 (synopsis "Reliable advanced dates formatting for Elm")
726 (description
727 "This package provides Elm programs with reliable, powerful tools for
728formatting dates and times. It uses Elm's type system instead of format
729strings, which makes formatting code more readable and can catch some errors
730at compile time.")
731 (license license:bsd-3)))
f8e08069
PM
732
733(define-public elm-terezka-intervals
734 (package
735 (name "elm-terezka-intervals")
736 (version "2.0.1")
737 (source
738 (elm-package-origin
739 "terezka/intervals"
740 version
741 (base32 "0h3im58sa6awyppch1v8ppcrzwc5h48yn45crx98m8zs4isx91lj")))
742 (build-system elm-build-system)
743 (propagated-inputs
744 (list elm-ryannhg-date-format
745 elm-myrho-elm-round
746 elm-justinmimbs-time-extra
747 elm-time
748 elm-svg
749 elm-json
750 elm-html
751 elm-core
752 elm-danhandrea-elm-time-extra))
753 (inputs (list elm-explorations-test))
754 (home-page "https://package.elm-lang.org/packages/terezka/intervals/2.0.1")
755 (synopsis "Produce nice intervals for Elm charts")
756 (description
757 "This package provides an Elm library for producing nice intervals for
758charts. It's useful in combination with @code{terezka/elm-charts}. When I
759say ``nice'', I just mean that I try to calculate intervals which begin with
76010, 5, 3, 2, or 1 (adjusted to magnitude, of course!). For dates, I try to
761hit whole days, weeks, and months or hours, minutes, and seconds.")
762 (license license:bsd-3)))
7a2eb7d2
PM
763
764(define-public elm-terezka-elm-charts
765 (package
766 (name "elm-terezka-elm-charts")
767 (version "3.0.0") ;; NOTE! Tags like 5.1.0 are from an OLDER version.
768 (source
769 (elm-package-origin
770 "terezka/elm-charts"
771 version
772 (base32 "17syq73jwldc7fk7snm5k8s85nsvxyprb34rs1rwjsapc1vii7hc")))
773 (build-system elm-build-system)
774 (propagated-inputs
775 (list elm-terezka-intervals
776 elm-ryannhg-date-format
777 elm-time
778 elm-svg
779 elm-json
780 elm-html
781 elm-core
782 elm-debois-elm-dom))
783 (home-page
784 "https://elm-charts.org")
785 (synopsis "SVG chart components in Elm")
786 (description
787 "Make SVG charts in all Elm. The package can draw charts at a variety of
788different levels of customization, from basic charts with standard features to
789very custom styles. The library also allows including your very own SVG
790elements while still easily utilizing the coordinate system calculated from
791your data, as well as editing the SVGs made by the package. It has great
792support for interactivity, layering different charts, and adding irregular
793details.")
794 (license license:bsd-3)))