Commit | Line | Data |
---|---|---|
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 | |
99 | the @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 |
170 | the browser. The @command{elm} exectable includes commands for developers | |
171 | such 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 | |
249 | core libraries for HTML and SVG. You should almost certainly use those | |
250 | higher-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} | |
292 | library.") | |
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 | |
311 | zones, 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 | |
333 | build new URLs; and | |
334 | ||
335 | @item | |
336 | parse existing URLs into nice Elm data structures. | |
337 | @end enumerate | |
338 | ||
339 | Use 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, | |
364 | with 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 | |
381 | densely packed sequences of bytes, such as @code{ArrayBuffer}, typed arrays, | |
382 | and @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 | |
403 | files, 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 | |
424 | talk 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 | |
443 | library provides a coherent alternative that handles more cases and produces | |
444 | clearer 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 | |
466 | plugins. If you just want to make stuff in Elm, there is nothing here for | |
467 | you.") | |
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 | |
487 | on 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 | |
541 | compare 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. | |
560 | Use this if you need to discover geometry information (width, position, etc.) | |
561 | of 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 | |
579 | random 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 | |
602 | code. 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 | |
604 | packaged 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 | |
623 | format 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 | |
644 | for 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 | |
665 | dates 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} | |
687 | times 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 | |
706 | control how many digits after the decimal point are shown and how the | |
707 | remaining digits are rounded. It rounds, floors and ceils the @dfn{common} | |
708 | way (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 | |
728 | formatting dates and times. It uses Elm's type system instead of format | |
729 | strings, which makes formatting code more readable and can catch some errors | |
730 | at 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 | |
758 | charts. It's useful in combination with @code{terezka/elm-charts}. When I | |
759 | say ``nice'', I just mean that I try to calculate intervals which begin with | |
760 | 10, 5, 3, 2, or 1 (adjusted to magnitude, of course!). For dates, I try to | |
761 | hit 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 | |
788 | different levels of customization, from basic charts with standard features to | |
789 | very custom styles. The library also allows including your very own SVG | |
790 | elements while still easily utilizing the coordinate system calculated from | |
791 | your data, as well as editing the SVGs made by the package. It has great | |
792 | support for interactivity, layering different charts, and adding irregular | |
793 | details.") | |
794 | (license license:bsd-3))) |