[{"name":"Origami","comment":" Define CSS in Elm.\n\n    input\n        [ type_ \"checkbox\"\n        , name \"toggle-all\"\n        , checked allCompleted\n        , onClick (CheckAll (not allCompleted))\n        , css\n            [ property \"position\" \"absolute\"\n            , property \"top\" \"-55px\"\n            , property \"left\" \"-12px\"\n            , property \"width\" \"60px\"\n            , property \"height\" \"34px\"\n            , property \"text-align\" \"center\"\n            , property \"border\" \"none\" -- Mobile Safari\n            , withPseudoElement \"before\"\n                [ property \"content\" <| qt \"❯\"\n                , property \"font-size\" \"22px\"\n                , property \"color\" \"#e6e6e6\"\n                , property \"padding\" \"10px 27px 10px 27px\"\n                ]\n            , with (pseudoElement [ pseudoClass \"checked\" ] \"before\")\n                [ property \"color\" \"#737373\" ]\n            , -- Hack to remove background from Mobile Safari.\n              -- Can't use it globally since it destroys checkboxes in Firefox\n              withMedia \"screen and (-webkit-min-device-pixel-ratio:0)\"\n                [ property \"background\" \"none\"\n                , property \"-webkit-transform\" \"rotate(90deg)\"\n                , property \"transform\" \"rotate(90deg)\"\n                , property \"-webkit-appearance\" \"none\"\n                , property \"appearance\" \"none\"\n                ]\n            ]\n        ]\n        []\n\n  - See [`examples/TodoMVC`](https://github.com/miyamoen/elm-origami/blob/master/examples)\n      - styled by Origami\n      - forked from [`evancz/elm-todomvc`](https://github.com/evancz/elm-todomvc)\n\n\n# How to Use\n\n  - ここからOrigamiの使い方を説明していきます\n  - elm-cssとほぼ同じようなAPIを定義しています\n      - 型付けされたproperty関数は定義していないことが大きな違いです\n\n\n## `css` and basic functions\n\n    label\n        [ css\n            [ property \"white-space\" \"pre-line\"\n            , property \"word-break\" \"break-all\"\n            , property \"padding\" \"15px 60px 15px 15px\"\n            , property \"margin-left\" \"45px\"\n            , property \"display\" \"block\"\n            , property \"line-height\" \"1.2\"\n            , property \"transition\" \"color 0.4s\"\n            , if todo.completed then\n                batch\n                    [ property \"color\" \"#d9d9d9\"\n                    , property \"text-decoration\" \"line-through\"\n                    ]\n\n              else\n                noStyle\n            ]\n        , onDoubleClick (EditingEntry todo.id True)\n        ]\n        [ text todo.description ]\n\n  - `Origami.Html.Attributes.css`を使ってDOMにStyleを適用します\n  - `Style`型は大体CSS Propertyのようなものです\n  - 基本的な関数が3つあります\n      - [`property`](#property)でpropertyを記述します\n          - Origamiでは型安全なproperty関数は提供しません\n      - [`batch`](#batch)でpropertyをまとめることができます\n      - [`noStyle`](#noStyle)は条件分岐などで使えます\n\n@docs Style, property, batch, noStyle\n\n\n## Create a Style Tag\n\n  - [`Origami.Html.Html`](./Origami-Html#Html)は[`Html.Html`](https://package.elm-lang.org/packages/elm/html/latest/Html#Html)と同じように扱えます\n  - [`Origami.Html.toHtml`](./Origami-Html#toHtml)などを使って`Html.Html`に変換してください\n      - `toHtml`などで`css`で適用されているstyleが収集されてstyle tagを生成します\n  - 上記`label`に適用されたstyleは以下のようにstyle tag内に書き出されます\n\n```css\n._1e7eb6f2 {\n    white-space: pre-line;\n    word-break: break-all;\n    padding: 15px 60px 15px 15px;\n    margin-left: 45px;\n    display: block;\n    line-height: 1.2;\n    transition: color 0.4s;\n}\n```\n\n`label`側は以下のように記述されたのと同様になります\n\n    label\n        [ class \"_1e7eb6f2\"\n        , onDoubleClick (EditingEntry todo.id True)\n        ]\n        [ text todo.description ]\n\n  - `_1e7eb6f2`というクラス名が付与されています\n      - この値は適用されているstyleから計算されたhash値です\n\n\n## Nested Style\n\n  - CSS preprocessorのようにセレクターを入れ子にしてstyleを定義できます\n  - 入れ子にする関数は簡易的なAPIとカスタム可能なAPIに分けられています\n      - 簡易的なAPIはelm-cssを参考にしています\n\n```.elm\nbutton\n    [ css\n        [ property \"display\" \"none\"\n        , property \"position\" \"absolute\"\n        , property \"top\" \"0\"\n        , property \"right\" \"10px\"\n        , property \"bottom\" \"0\"\n        , property \"width\" \"40px\"\n        , property \"height\" \"40px\"\n        , property \"margin\" \"auto 0\"\n        , property \"font-size\" \"30px\"\n        , property \"color\" \"#cc9a9a\"\n        , property \"margin-bottom\" \"11px\"\n        , property \"transition\" \"color 0.2s ease-out\"\n        , withPseudoClass \"hover\" [ property \"color\" \"#af5b5e\" ]\n        , withPseudoElement \"after\" [ property \"content\" \"'×'\" ]\n        ]\n    , onClick (Delete todo.id)\n    ]\n    []\n```\n\nこれは以下のように書き出されます\n\n```css\n._b75a75af {\n    display: none;\n    position: absolute;\n    top: 0;\n    right: 10px;\n    bottom: 0;\n    width: 40px;\n    height: 40px;\n    margin: auto 0;\n    font-size: 30px;\n    color: #cc9a9a;\n    margin-bottom: 11px;\n    transition: color 0.2s ease-out;\n}\n\n_b75a75af:hover {\n    color: #af5b5e;\n}\n\n._b75a75af::after {\n    content: '×';\n}\n```\n\n  - hash値に続く形でセレクターが付加されます\n  - 更にネストすることもできます\n\n@docs withClass, withAttribute, withPseudoClass, withPseudoElement\n\n\n### CSS Combinators\n\n結合子も使用することができます\n\n    footer\n        [ css\n            [ property \"margin\" \"65px auto 0\"\n            , property \"color\" \"#bfbfbf\"\n            , property \"font-size\" \"10px\"\n            , property \"text-shadow\" \"0 1px 0 rgba(255, 255, 255, 0.5)\"\n            , property \"text-align\" \"center\"\n            , withDescendants [ tag \"p\" ] [ property \"line-height\" \"1\" ]\n            , withDescendants [ tag \"a\" ]\n                [ property \"color\" \"inherit\"\n                , property \"text-decoration\" \"none\"\n                , property \"font-weight\" \"400\"\n                , withPseudoClass \"hover\" [ property \"text-decoration\" \"underline\" ]\n                ]\n            ]\n        ] [...]\n\n...outputs\n\n```css\n._89167f0f {\n    margin: 65px auto 0;\n    color: #bfbfbf;\n    font-size: 10px;\n    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n    text-align: center;\n}\n\n._89167f0f p {\n    line-height: 1;\n}\n\n._89167f0f a {\n    color: inherit;\n    text-decoration: none;\n    font-weight: 400;\n}\n```\n\n  - Origami supports descendant, child, general sibling and adjacent sibling combinators\n  - `tag`関数を使って対象のタグを複数指定することができます\n\n@docs withDescendants, withChildren, withGeneralSiblings, withAdjacentSiblings\n@docs Tag, tag, everyTag\n\n\n### Media Query\n\n    ul\n        [ css\n            [ property \"margin\" \"0\"\n            , property \"padding\" \"0\"\n            , property \"list-style\" \"none\"\n            , property \"position\" \"absolute\"\n            , property \"right\" \"0\"\n            , property \"left\" \"0\"\n            , withMedia \"(max-width: 430px)\" [ property \"bottom\" \"10px\" ]\n            ]\n        ] [..]\n\n...outputs\n\n```css\n._a85c725b {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    position: absolute;\n    right: 0;\n    left: 0;\n}\n\n@media (max-width: 430px) {\n    ._a85c725b {\n        bottom: 10px;\n    }\n}\n```\n\n  - セレクターと同じようにMedia Queryを使用することができます\n\n@docs withMedia\n\n\n## Custom Nested Style\n\n  - ここまでの`withXxx`関数で大体のことには事足りるかと思います\n  - もしもっと柔軟にstyleを入れ子にしたくなったのならOrigamiにおける`Selector`を学びましょう\n\n```css\n             ┌ child              ┌ descendant                       ┌ adjacent sibling\n     class   │   pseudo class     │          attribute               │  pseudo element\n     ┌────┐ ┌─┐┌──────────────┐┌──────┐┌───────────────────┐        ┌─┐┌─────┐\n._xxx.class > *:nth-child(2n+1) section[aria-hidden=\"false\"], ._xxx + *::after {...}\n└──────────────────────────────────────────────────────────┘  └──────────────┘\n                          selector                                selector\n```\n\n  - See an above diagram.\n      - class selector, pseudo class, attribute selectorが並んでいます\n          - また各種結合子とtype selectorかuniversal selectorがまとめられています\n          - これらを`RepeatableSelector`としてまとめています\n      - `Selector`型を生成する[`selector`関数](#selector)は`RepeatableSelector`の`List`を受け取るようになっています\n          - またpseudo elementを付加する場合は[`pseudoElement`](#pseudoElement)を使ってください\n      - 生成した`Selector`は`with`, `withEach`, `withCustom`で`css`関数に繋げられます\n          - 図のように`Selector`を列挙したければ`withEach`か`withCustom`を使ってください\n          - `withCustom`にはMedia Queryも付加することができます\n\n@docs with, withEach, withCustom\n@docs Selector, selector, pseudoElement\n@docs RepeatableSelector, class, pseudoClass, attribute, descendant, child, generalSibling, adjacentSibling\n\n\n## Animation Style\n\n    batch\n        [ property \"border-radius\" \"50px\"\n        , property \"width\" \"50px\"\n        , -- [Copyright (c) 2019 Epicmax LLC](https://epic-spinners.epicmax.co/)\n          withEach [ pseudoElement [] \"after\", pseudoElement [] \"before\" ]\n            [ property \"content\" <| qt \"\"\n            , property \"position\" \"absolute\"\n            , property \"width\" \"60%\"\n            , property \"height\" \"60%\"\n            , property \"border-radius\" \"100%\"\n            , property \"border\" \"calc(30px / 10) solid transparent\"\n            , animation\n                [ ( ( from, [] ), [ propertyA \"transform\" \"rotate(0deg)\" ] )\n                , ( ( to, [] ), [ propertyA \"transform\" \"rotate(360deg)\" ] )\n                ]\n            , property \"animation-duration\" \"1s\"\n            , property \"animation-iteration-count\" \"infinite\"\n            ]\n        , withPseudoElement \"after\" [ property \"border-top-color\" \"#ffe9ef\" ]\n        , withPseudoElement \"before\"\n            [ property \"border-bottom-color\" \"#ffe9ef\"\n            , property \"animation-direction\" \"alternate\"\n            ]\n        ]\n\n  - [`animation`](#animation)関数を使ってDOMに直接アニメーションを定義することができます\n  - [`propertyA`](#propertyA)関数を使ってpropertyを記述します\n      - 型の都合で`property`, `batch`, `noStyle`は使えません\n  - `animation`プロパティのみ暗黙に生成されるのでその他のアニメーションプロパティは別に定義します\n\n@docs animation, Property, propertyA\n@docs KeyframesSelector, from, to, pct\n\n\n# Helper\n\n@docs qt\n\n\n# Advanced topics\n\n\n## CSSの重複除去は行われる？\n\n    div []\n        [ div [ css [ property \"key\" \"value\" ] ] []\n        , div [ css [ property \"key\" \"value\" ] ] []\n        , div [] [ div [ css [ property \"key\" \"value\" ] ] [] ]\n        ]\n\n...outputs only\n\n```css\n._xxx {\n    key: value;\n}\n```\n\n  - 重複除去は`css`に適用したstyleの単位で行われます\n\n\n## `css`関数を複数使ったらどうなる？\n\n    div\n        [ css [ property \"display\" \"none\" ]\n        , css [ property \"display\" \"block\" ]\n        ]\n        [ text \"表示されますか？\" ]\n\n  - このdivは表示されるでしょうか？\n      - 答えは「わかりません」\n      - styleは`css`関数でまとめられた単位で扱われ、`Dict`を経由して書き出されます\n      - そのため`ccs`を使う順番に依存した実装は行わないほうがいいでしょう\n  - もし既に適用されている`css`の値を上書きしたいのならば`withClass`などを使ってセレクターの詳細度を上げるとよいでしょう\n\n\n## クラス名がハッシュ値で読みにくい\n\n    cssWithClass : String -> List Style -> Attribute msg\n    cssWithClass classname styles =\n        batchAttributes [ Attributes.class classname, css [ withClass classname styles ] ]\n\n  - クラス名を付加してみてください\n  - 上記のようなヘルパーを定義するとよいでしょう\n\n","unions":[],"aliases":[{"name":"KeyframesSelector","comment":" Selectors for `animation`.\n\n`from`, `to` and `pct`(%).\n\n","args":[],"type":"Origami.Css.StyleTag.KeyframesSelector"},{"name":"Property","comment":" ","args":[],"type":"Origami.Css.StyleTag.Property"},{"name":"RepeatableSelector","comment":"\n\n    type RepeatableSelector\n        = ClassSelector String\n        | PseudoClassSelector String\n        | AttributeSelector String\n        | DescendantCombinator Tag\n        | ChildCombinator Tag\n        | GeneralSiblingCombinator Tag\n        | AdjacentSiblingCombinator Tag\n\n","args":[],"type":"Origami.Css.Selector.Repeatable"},{"name":"Selector","comment":" ","args":[],"type":"Origami.Css.Selector.Single"},{"name":"Style","comment":" ","args":[],"type":"Origami.Css.Style.Style"},{"name":"Tag","comment":" ","args":[],"type":"Origami.Css.Selector.Tag"}],"values":[{"name":"adjacentSibling","comment":" Represent a adjacent sibling combinator with a type selector or universal selector.\n\n    adjacentSibling (tag \"section\")\n\n...outputs\n\n```css\n + section\n```\n\n","type":"Origami.Tag -> Origami.RepeatableSelector"},{"name":"animation","comment":" Define a animation.\n\n    css\n        [ animation\n            [ ( ( from, [] ), [ propertyA \"key\" \"value\" ] )\n            , ( ( pct 20, [ pct 80 ] ), [ propertyA \"key\" \"value\" ] )\n            , ( ( to, [] ), [ propertyA \"key\" \"value\" ] )\n            ]\n        ]\n\n...outputs\n\n```css\n.hashed-class-name {\n    animation-name: hashed-animation-name;\n}\n\n@keyframes hashed-animation-name {\n    from {\n        key: value;\n    }\n\n    20%, 80% {\n        key: value;\n    }\n\n    to {\n        key: value;\n    }\n}\n```\n\n  - `animation-name` propertyが暗黙に生成されます\n  - keyframesブロックが生成されます\n\n","type":"List.List ( ( Origami.KeyframesSelector, List.List Origami.KeyframesSelector ), List.List Origami.Property ) -> Origami.Style"},{"name":"attribute","comment":" Represent an attribute selector.\n\n    attribute \"aria-hidden=\\\"false\\\"\"\n\n...outputs\n\n```css\n[aria-hidden=\"false\"]\n```\n\n","type":"String.String -> Origami.RepeatableSelector"},{"name":"batch","comment":" Create a batched style.\n\n    underlineOnHover =\n        batch\n            [ textDecoration none\n            , hover\n                [ textDecoration underline ]\n            ]\n\n    css\n        [ color (rgb 128 64 32)\n        , underlineOnHover\n        ]\n\n...has the same result as:\n\n    css\n        [ color (rgb 128 64 32)\n        , textDecoration none\n        , hover\n            [ textDecoration underline ]\n        ]\n\n","type":"List.List Origami.Style -> Origami.Style"},{"name":"child","comment":" Represent a child combinator with a type selector or universal selector.\n\n    child (tag \"li\")\n\n...outputs\n\n```css\n > li\n```\n\n","type":"Origami.Tag -> Origami.RepeatableSelector"},{"name":"class","comment":" Represent a class selector.\n\n    class \"classname\"\n\n...outputs\n\n```css\n.classname\n```\n\n","type":"String.String -> Origami.RepeatableSelector"},{"name":"descendant","comment":" Represent a descendant combinator with a type selector or universal selector.\n\n    descendant (tag \"p\")\n\n...outputs\n\n```css\n p\n```\n\n  - descendant combinatorは空白で表せられるので見た目的に分かりにくい\n\n","type":"Origami.Tag -> Origami.RepeatableSelector"},{"name":"everyTag","comment":" Represent a universal selector.\n\n    everyTag\n\n...outputs\n\n```css\n*\n```\n\n**note**: もし`.parent > .child`のようなselectorを使用したいと思っているなら`.parent > *.child`のように暗黙に全称セレクターが指定されていると思って`everyTag`を使ってください\n\n","type":"Origami.Tag"},{"name":"from","comment":" `from` token.\n","type":"Origami.KeyframesSelector"},{"name":"generalSibling","comment":" Represent a general sibling combinator with a type selector or universal selector.\n\n    generalSibling everyTag\n\n...outputs\n\n```css\n ~ *\n```\n\n","type":"Origami.Tag -> Origami.RepeatableSelector"},{"name":"noStyle","comment":" Create an empty style.\n\n    if predicate then\n        property \"key\" \"value\"\n\n    else\n        noStyle\n\n","type":"Origami.Style"},{"name":"pct","comment":" `30%`, `70%` and so on.\n","type":"Basics.Float -> Origami.KeyframesSelector"},{"name":"property","comment":" Create a property style.\n\n    css [ property \"-webkit-font-smoothing\" \"none\" ]\n\n...outputs\n\n```css\n-webkit-font-smoothing: none;\n```\n\n","type":"String.String -> String.String -> Origami.Style"},{"name":"propertyA","comment":"\n\n  - animation用の`property`\n  - `property`とは型が違う\n\n","type":"String.String -> String.String -> Origami.Property"},{"name":"pseudoClass","comment":" Represent a pseudo class.\n\n    pseudoClass \"hover\"\n\n...outputs\n\n```css\n:hover\n```\n\n","type":"String.String -> Origami.RepeatableSelector"},{"name":"pseudoElement","comment":" ","type":"List.List Origami.RepeatableSelector -> String.String -> Origami.Selector"},{"name":"qt","comment":" For use with [`font-family`](https://developer.mozilla.org/docs/Web/CSS/font-family) and so on.\n\n    property \"font-family\" (qt \"Gill Sans Extrabold\")\n\n","type":"String.String -> String.String"},{"name":"selector","comment":" ","type":"List.List Origami.RepeatableSelector -> Origami.Selector"},{"name":"tag","comment":" Represent an element selector.\n\n    tag \"p\"\n\n...outputs\n\n```css\np\n```\n\n","type":"String.String -> Origami.Tag"},{"name":"to","comment":" `to` token.\n","type":"Origami.KeyframesSelector"},{"name":"with","comment":" Nest with a `Selector`.\n\n    css\n        [ with (selector [ class \"classname\" ]) [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx.classname {\n    key: value;\n}\n```\n\n","type":"Origami.Selector -> List.List Origami.Style -> Origami.Style"},{"name":"withAdjacentSiblings","comment":" Nest with adjacent sibling combinators.\n\n    css [ withAdjacentSiblings [ tag \"p\", tag \"li\" ] [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx + p, _xxx + li {\n    key: value;\n}\n```\n\n","type":"List.List Origami.Tag -> List.List Origami.Style -> Origami.Style"},{"name":"withAttribute","comment":" Nest with a attribute selector.\n\n    css [ withAttribute \"\"\"href=\"https://example.org\"\"\"\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx[href=\"https://example.org\"] {\n    key: value;\n}\n```\n\n","type":"String.String -> List.List Origami.Style -> Origami.Style"},{"name":"withChildren","comment":" Nest with child combinators.\n\n    css [ withChildren [ tag \"p\", tag \"li\" ] [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx > p, _xxx > li {\n    key: value;\n}\n```\n\n","type":"List.List Origami.Tag -> List.List Origami.Style -> Origami.Style"},{"name":"withClass","comment":" Nest with a class selector.\n\n    css [ withClass \"classname\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx.classname {\n    key: value;\n}\n```\n\n","type":"String.String -> List.List Origami.Style -> Origami.Style"},{"name":"withCustom","comment":" Nest with `Selector` list and a media query.\n\n    css\n        [ withCustom \"(max-width: 430px)\"\n            [ selector [ class \"classname\" ]\n            , selector [ attribute \"title\" ]\n            ]\n            [ property \"key\" \"value\" ]\n        ]\n\n...outputs\n\n```css\n@media (max-width: 430px) {\n    _xxx.classname, _xxx[title] {\n        key: value;\n    }\n}\n```\n\n","type":"String.String -> List.List Origami.Selector -> List.List Origami.Style -> Origami.Style"},{"name":"withDescendants","comment":" Nest with descendant combinators.\n\n    css [ withDescendants [ tag \"p\", tag \"li\" ] [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx p, _xxx li {\n    key: value;\n}\n```\n\n","type":"List.List Origami.Tag -> List.List Origami.Style -> Origami.Style"},{"name":"withEach","comment":" Nest with `Selector` list.\n\n    css\n        [ withEach\n            [ selector [ class \"classname\" ]\n            , selector [ attribute \"title\" ]\n            ]\n            [ property \"key\" \"value\" ]\n        ]\n\n...outputs\n\n```css\n_xxx.classname, _xxx[title] {\n    key: value;\n}\n```\n\n**note**: もし空リストを与えたらそのstyleは霧視されます\n\n    css\n        [ withEach [] [ property \"key\" \"empty-value\" ]\n        , property \"key\" \"value\"\n        ]\n\n...outputs\n\n```css\n_xxx {\n    key: value;\n}\n```\n\n","type":"List.List Origami.Selector -> List.List Origami.Style -> Origami.Style"},{"name":"withGeneralSiblings","comment":" Nest with general sibling combinators.\n\n    css [ withGeneralSiblings [ tag \"p\", tag \"li\" ] [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx ~ p, _xxx ~ li {\n    key: value;\n}\n```\n\n","type":"List.List Origami.Tag -> List.List Origami.Style -> Origami.Style"},{"name":"withMedia","comment":" Nest with a media query.\n\n    css [ withMedia \"screen\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n@media screen {\n    _xxx {\n        key: value;\n    }\n}\n```\n\n**note**: Media Queryを複数回入れ子にすることはできません\n\n    css\n        [ withMedia \"screen\"\n            [ property \"key\" \"value\"\n            , withMedia \"not nestable\" [ property \"key\" \"value\" ]\n            , withClass \"nestable\" [ property \"key\" \"value\" ]\n            ]\n        ]\n\n..outputs\n\n```css\n@media screen {\n    _xxx {\n        key: value;\n    }\n}\n\n@media screen {\n    _xxx.nestable {\n        key: value;\n    }\n}\n```\n\n  - 無効になったstyleは書き出されません\n  - Media Queryの中でネストすると`@media`が複数書き出されます\n\n","type":"String.String -> List.List Origami.Style -> Origami.Style"},{"name":"withPseudoClass","comment":" Nest with a pseudo class.\n\n    css [ withPseudoClass \"hover\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```css\n_xxx:hover {\n    key: value;\n}\n```\n\n","type":"String.String -> List.List Origami.Style -> Origami.Style"},{"name":"withPseudoElement","comment":" Nest with a pseudo element.\n\n    css [ withPseudoElement \"after\" [ property \"content\" <| qt \"×\" ] ]\n\n...outputs\n\n```css\n_xxx::after {\n    content: \"×\";\n}\n```\n\n**note**: `withPseudoElement`を使ったらそれ以上ネストできません\n\n    css\n        [ withPseudoElement \"after\"\n            [ property \"content\" <| qt \"×\"\n            , withClass \"notAllowed\"\n                [ property \"color\" \"white\" ]\n            ]\n        ]\n\n...outputs\n\n```css\n_xxx::after {\n    content: \"×\";\n}\n```\n\n  - 型で制限できていませんがこのように無効な部分は書き出されません\n\n","type":"String.String -> List.List Origami.Style -> Origami.Style"}],"binops":[]},{"name":"Origami.Html","comment":" Drop-in replacement for the `Html` module from the `elm/html` package.\nThe only functions added are `styled`, `toHtml`, `toHtmls` and `fromHtml`:\n\n@docs styled, fromHtml, toHtml, toHtmls\n\nThis file is organized roughly in order of popularity. The tags which you'd\nexpect to use frequently will be closer to the top.\n\n\n# Primitives\n\n@docs Html, Attribute, text, node, map\n\n\n# Tags\n\n\n## Headers\n\n@docs h1, h2, h3, h4, h5, h6\n\n\n## Grouping Content\n\n@docs div, p, hr, pre, blockquote\n\n\n## Text\n\n@docs span, a, code, em, strong, i, b, u, sub, sup, br\n\n\n## Lists\n\n@docs ol, ul, li, dl, dt, dd\n\n\n## Embedded Content\n\n@docs img, iframe, canvas, math\n\n\n## Inputs\n\n@docs form, input, textarea, button, select, option\n\n\n## Sections\n\n@docs section, nav, article, aside, header, footer, address, main_\n\n\n## Figures\n\n@docs figure, figcaption\n\n\n## Tables\n\n@docs table, caption, colgroup, col, tbody, thead, tfoot, tr, td, th\n\n\n## Less Common Elements\n\n\n### Less Common Inputs\n\n@docs fieldset, legend, label, datalist, optgroup, output, progress, meter\n\n\n### Audio and Video\n\n@docs audio, video, source, track\n\n\n### Embedded Objects\n\n@docs embed, object, param\n\n\n### Text Edits\n\n@docs ins, del\n\n\n### Semantic Text\n\n@docs small, cite, dfn, abbr, time, var, samp, kbd, s, q\n\n\n### Less Common Text Tags\n\n@docs mark, ruby, rt, rp, bdi, bdo, wbr\n\n\n## Interactive Elements\n\n@docs details, summary, menuitem, menu\n\n","unions":[],"aliases":[{"name":"Attribute","comment":" Set attributes on your `Html`. Learn more in the\n[`Html.Attributes`](Html-Attributes) module.\n","args":["msg"],"type":"Origami.VirtualDom.Attribute msg"},{"name":"Html","comment":" The core building block used to build up HTML. Here we create an `Html`\nvalue with no attributes and one child:\n\n    hello : Html msg\n    hello =\n        div [] [ text \"Hello!\" ]\n\nStyled [`Html`](https://package.elm-lang.org/packages/elm/html/latest/Html#Html).\nYou can convert from this to the normal [`Html`](https://package.elm-lang.org/packages/elm/html/latest/Html#Html) type from [`elm/html`](https://package.elm-lang.org/packages/elm/html/latest)\n(which is a type alias for [`VirtualDom.Node`](https://package.elm-lang.org/packages/elm/virtual-dom/latest/VirtualDom#Node))\nby using [`toHtml`](#toHtml) or [`toHtmls`](#toHtmls).\nYou can convert the other way using [`fromHtml`](#fromHtml).\n\n","args":["msg"],"type":"Origami.VirtualDom.Node msg"}],"values":[{"name":"a","comment":" Represents a hyperlink, linking to another resource.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"abbr","comment":" Represents an abbreviation or an acronym; the expansion of the\nabbreviation can be represented in the title attribute.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"address","comment":" Defines a section containing contact information.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"article","comment":" Defines self-contained content that could exist independently of the rest\nof the content.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"aside","comment":" Defines some content loosely related to the page content. If it is removed,\nthe remaining content still makes sense.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"audio","comment":" Represents a sound or audio stream.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"b","comment":" Represents a text which to which attention is drawn for utilitarian\npurposes. It doesn't convey extra importance and doesn't imply an alternate\nvoice.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"bdi","comment":" Represents text that must be isolated from its surrounding for\nbidirectional text formatting. It allows embedding a span of text with a\ndifferent, or unknown, directionality.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"bdo","comment":" Represents the directionality of its children, in order to explicitly\noverride the Unicode bidirectional algorithm.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"blockquote","comment":" Represents a content that is quoted from another source.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"br","comment":" Represents a line break.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"button","comment":" Represents a button.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"canvas","comment":" Represents a bitmap area for graphics rendering.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"caption","comment":" Represents the title of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"cite","comment":" Represents the title of a work.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"code","comment":" Represents computer code.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"col","comment":" Represents a column of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"colgroup","comment":" Represents a set of one or more columns of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"datalist","comment":" Represents a set of predefined options for other controls.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"dd","comment":" Represents the definition of the terms immediately listed before it.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"del","comment":" Defines a removal from the document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"details","comment":" Represents a widget from which the user can obtain additional information\nor controls.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"dfn","comment":" Represents a term whose definition is contained in its nearest ancestor\ncontent.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"div","comment":" Represents a generic container with no special meaning.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"dl","comment":" Defines a definition list, that is, a list of terms and their associated\ndefinitions.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"dt","comment":" Represents a term defined by the next `dd`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"em","comment":" Represents emphasized text, like a stress accent.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"embed","comment":" Represents a integration point for an external, often non-HTML,\napplication or interactive content.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"fieldset","comment":" Represents a set of controls.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"figcaption","comment":" Represents the legend of a figure.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"figure","comment":" Represents a figure illustrated as part of the document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"footer","comment":" Defines the footer for a page or section. It often contains a copyright\nnotice, some links to legal information, or addresses to give feedback.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"form","comment":" Represents a form, consisting of controls, that can be submitted to a\nserver for processing.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"fromHtml","comment":" ","type":"VirtualDom.Node msg -> Origami.Html.Html msg"},{"name":"h1","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"h2","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"h3","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"h4","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"h5","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"h6","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"header","comment":" Defines the header of a page or section. It often contains a logo, the\ntitle of the web site, and a navigational table of content.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"hr","comment":" Represents a thematic break between paragraphs of a section or article or\nany longer content.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"i","comment":" Represents some text in an alternate voice or mood, or at least of\ndifferent quality, such as a taxonomic designation, a technical term, an\nidiomatic phrase, a thought, or a ship name.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"iframe","comment":" Embedded an HTML document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"img","comment":" Represents an image.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"input","comment":" Represents a typed data field allowing the user to edit the data.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"ins","comment":" Defines an addition to the document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"kbd","comment":" Represents user input, often from the keyboard, but not necessarily; it\nmay represent other input, like transcribed voice commands.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"label","comment":" Represents the caption of a form control.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"legend","comment":" Represents the caption for a `fieldset`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"li","comment":" Defines a item of an enumeration list.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"main_","comment":" Defines the main or important content in the document. There is only one\n`main` element in the document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"map","comment":" Transform the messages produced by some `Html`. In the following example,\nwe have `viewButton` that produces `()` messages, and we transform those values\ninto `Msg` values in `view`.\n\n    type Msg\n        = Left\n        | Right\n\n    view : model -> Html Msg\n    view model =\n        div []\n            [ map (\\_ -> Left) (viewButton \"Left\")\n            , map (\\_ -> Right) (viewButton \"Right\")\n            ]\n\n    viewButton : String -> Html ()\n    viewButton name =\n        button [ onClick () ] [ text name ]\n\nIf you are growing your project as recommended in [the official\nguide](https://guide.elm-lang.org/), this should not come in handy in most\nprojects. Usually it is easier to just pass things in as arguments.\n\n**Note:** Some folks have tried to use this to make “components” in their\nprojects, but they run into the fact that components are objects. Both are\nlocal mutable state with methods. Elm is not an object-oriented language, so\nyou run into all sorts of friction if you try to use it like one. I definitely\nrecommend against going down that path! Instead, make the simplest function\npossible and repeat.\n\n","type":"(a -> msg) -> Origami.Html.Html a -> Origami.Html.Html msg"},{"name":"mark","comment":" Represents text highlighted for reference purposes, that is for its\nrelevance in another context.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"math","comment":" Defines a mathematical formula.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"menu","comment":" Represents a list of commands.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"menuitem","comment":" Represents a command that the user can invoke.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"meter","comment":" Represents a scalar measurement (or a fractional value), within a known\nrange.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"nav","comment":" Defines a section that contains only navigation links.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"node","comment":" General way to create HTML nodes. It is used to define all of the helper\nfunctions in this library.\n\n    div : List (Attribute msg) -> List (Html msg) -> Html msg\n    div attributes children =\n        node \"div\" attributes children\n\nYou can use this to create custom nodes if you need to create something that\nis not covered by the helper functions in this library.\n\n","type":"String.String -> List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"object","comment":" Represents an external resource, which is treated as an image, an HTML\nsub-document, or an external resource to be processed by a plug-in.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"ol","comment":" Defines an ordered list of items.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"optgroup","comment":" Represents a set of options, logically grouped.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"option","comment":" Represents an option in a `select` element or a suggestion of a `datalist`\nelement.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"output","comment":" Represents the result of a calculation.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"p","comment":" Defines a portion that should be displayed as a paragraph.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"param","comment":" Defines parameters for use by plug-ins invoked by `object` elements.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"pre","comment":" Indicates that its content is preformatted and that this format must be\npreserved.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"progress","comment":" Represents the completion progress of a task.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"q","comment":" Represents an inline quotation.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"rp","comment":" Represents parenthesis around a ruby annotation, used to display the\nannotation in an alternate way by browsers not supporting the standard display\nfor annotations.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"rt","comment":" Represents the text of a ruby annotation.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"ruby","comment":" Represents content to be marked with ruby annotations, short runs of text\npresented alongside the text. This is often used in conjunction with East Asian\nlanguage where the annotations act as a guide for pronunciation, like the\nJapanese furigana.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"s","comment":" Represents content that is no longer accurate or relevant.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"samp","comment":" Represents the output of a program or a computer.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"section","comment":" Defines a section in a document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"select","comment":" Represents a control allowing selection among a set of options.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"small","comment":" Represents a side comment, that is, text like a disclaimer or a\ncopyright, which is not essential to the comprehension of the document.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"source","comment":" Allows authors to specify alternative media resources for media elements\nlike `video` or `audio`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"span","comment":" Represents text with no specific meaning. This has to be used when no other\ntext-semantic element conveys an adequate meaning, which, in this case, is\noften brought by global attributes like `class`, `lang`, or `dir`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"strong","comment":" Represents especially important text.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"styled","comment":" Takes a function that creates an element, and pre-applies styles to it.\n\n    bigButton : List (Attribute msg) -> List (Html msg) -> Html msg\n    bigButton =\n        styled button\n            [ padding (px 30)\n            , fontWeight bold\n            ]\n\n    view : Model -> Html msg\n    view model =\n        [ text \"These two buttons are identical:\"\n        , bigButton [] [ text \"Hi!\" ]\n        , button [ css [ padding (px 30), fontWeight bold ] ] [ text \"Hi!\" ]\n        ]\n            [ text \"These two buttons are identical:\"\n            , bigButton [] [ text \"Hi!\" ]\n            , button [ css [ padding (px 30), fontWeight bold ] ] [] [ text \"Hi!\" ]\n            ]\n\nHere, the `bigButton` function we've defined using `styled button` is\nidentical to the normal `button` function, except that it has pre-applied\nthe attribute of `css [ padding (px 30), fontWeight bold ]`.\nYou can pass more attributes to `bigButton` as usual (including other `css`\nattributes). They will be applied after the pre-applied styles.\n\n","type":"(List.List (Origami.Html.Attribute a) -> List.List (Origami.Html.Html b) -> Origami.Html.Html msg) -> List.List Origami.Style -> List.List (Origami.Html.Attribute a) -> List.List (Origami.Html.Html b) -> Origami.Html.Html msg"},{"name":"sub","comment":" Represent a subscript.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"summary","comment":" Represents a summary, caption, or legend for a given `details`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"sup","comment":" Represent a superscript.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"table","comment":" Represents data with more than one dimension.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"tbody","comment":" Represents the block of rows that describes the concrete data of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"td","comment":" Represents a data cell in a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"text","comment":" Just put plain text in the DOM. It will escape the string so that it appears\nexactly as you specify.\n\n    text \"Hello World!\"\n\n","type":"String.String -> Origami.Html.Html msg"},{"name":"textarea","comment":" Represents a multiline text edit control.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"tfoot","comment":" Represents the block of rows that describes the column summaries of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"th","comment":" Represents a header cell in a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"thead","comment":" Represents the block of rows that describes the column labels of a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"time","comment":" Represents a date and time value; the machine-readable equivalent can be\nrepresented in the datetime attribute.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"toHtml","comment":" ","type":"Origami.Html.Html msg -> VirtualDom.Node msg"},{"name":"toHtmls","comment":" ","type":"List.List (Origami.Html.Html msg) -> List.List (VirtualDom.Node msg)"},{"name":"tr","comment":" Represents a row of cells in a table.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"track","comment":" Allows authors to specify timed text track for media elements like `video`\nor `audio`.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"u","comment":" Represents a non-textual annotation for which the conventional\npresentation is underlining, such labeling the text as being misspelt or\nlabeling a proper name in Chinese text.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"ul","comment":" Defines an unordered list of items.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"var","comment":" Represents a variable. Specific cases where it should be used include an\nactual mathematical expression or programming context, an identifier\nrepresenting a constant, a symbol identifying a physical quantity, a function\nparameter, or a mere placeholder in prose.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"video","comment":" Represents a video, the associated audio and captions, and controls.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"},{"name":"wbr","comment":" Represents a line break opportunity, that is a suggested point for\nwrapping text in order to improve readability of text split on several lines.\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Html.Html msg"}],"binops":[]},{"name":"Origami.Html.Attributes","comment":" Drop-in replacement for the `Html.Attributes` module from the `elm/html` package.\n\nThe only functions added are `css`, `fromHtmlAttribute`, `batchAttributes` and `noAttribute`:\n\n@docs css, fromHtmlAttribute, batchAttributes, noAttribute\n\nNote that there is no `toHtmlAttribute` for Attributes! This is because the process\nof going from origami to html involves adding a `<style>` element to the DOM,\nand Attributes cannot do that. So it would be impossible to implement\n`toHtmlAttribute` for Attributes without throwing the styles away - which is definitely\nundesirable!\n\nHelper functions for HTML attributes. They are organized roughly by\ncategory. Each attribute is labeled with the HTML tags it can be used with, so\njust search the page for `video` if you want video stuff.\n\n\n# Primitives\n\n@docs style, property, attribute, map\n\n\n# Super Common Attributes\n\n@docs class, classList, id, title, hidden\n\n\n# Inputs\n\n@docs type_, value, checked, placeholder, selected\n\n\n## Input Helpers\n\n@docs accept, acceptCharset, action, autocomplete, autofocus\n@docs disabled, enctype, list, maxlength, minlength, method, multiple\n@docs name, novalidate, pattern, readonly, required, size, for, form_\n\n\n## Input Ranges\n\n@docs max, min, step\n\n\n## Input Text Areas\n\n@docs cols, rows, wrap\n\n\n# Links and Areas\n\n@docs href, target, download, hreflang, media, ping, rel\n\n\n## Maps\n\n@docs ismap, usemap, shape, coords\n\n\n# Embedded Content\n\n@docs src, height, width, alt\n\n\n## Audio and Video\n\n@docs autoplay, controls, loop, preload, poster, default, kind, srclang\n\n\n## iframes\n\n@docs sandbox, srcdoc\n\n\n# Ordered Lists\n\n@docs reversed, start\n\n\n# Tables\n\n@docs align, colspan, rowspan, headers, scope\n\n\n# Less Common Global Attributes\n\nAttributes that can be attached to any HTML tag but are less commonly used.\n\n@docs accesskey, contenteditable, contextmenu, dir, draggable, dropzone\n@docs itemprop, lang, spellcheck, tabindex\n\n\n# Miscellaneous\n\n@docs cite, datetime, pubdate, manifest\n\n","unions":[],"aliases":[],"values":[{"name":"accept","comment":" List of types the server accepts, typically a file type.\nFor `form` and `input`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"acceptCharset","comment":" List of supported charsets in a `form`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"accesskey","comment":" Defines a keyboard shortcut to activate or add focus to the element.\n","type":"Char.Char -> Origami.Html.Attribute msg"},{"name":"action","comment":" The URI of a program that processes the information submitted via a `form`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"align","comment":" Specifies the horizontal alignment of a `caption`, `col`, `colgroup`,\n`hr`, `iframe`, `img`, `table`, `tbody`, `td`, `tfoot`, `th`, `thead`, or\n`tr`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"alt","comment":" Alternative text in case an image can't be displayed. Works with `img`,\n`area`, and `input`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"attribute","comment":" Create _attributes_, like saying `domNode.setAttribute('class', 'greeting')`\nin JavaScript.\n\n    class : String -> Attribute msg\n    class name =\n        attribute \"class\" name\n\nRead more about the difference between properties and attributes [here].\n\n[here]: https://github.com/elm/html/blob/master/properties-vs-attributes.md\n\n","type":"String.String -> String.String -> Origami.Html.Attribute msg"},{"name":"autocomplete","comment":" Indicates whether a `form` or an `input` can have their values automatically\ncompleted by the browser.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"autofocus","comment":" The element should be automatically focused after the page loaded.\nFor `button`, `input`, `select`, and `textarea`.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"autoplay","comment":" The `audio` or `video` should play as soon as possible.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"batchAttributes","comment":" Batch Attributes.\n","type":"List.List (Origami.Html.Attribute msg) -> Origami.Html.Attribute msg"},{"name":"checked","comment":" Indicates whether an `input` of type checkbox is checked.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"cite","comment":" Contains a URI which points to the source of the quote or change in a\n`blockquote`, `del`, `ins`, or `q`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"class","comment":" Often used with CSS to style elements with common properties.\n\n**Note:** You can have as many `class` and `classList` attributes as you want.\nThey all get applied, so if you say `[ class \"notice\", class \"notice-seen\" ]`\nyou will get both classes!\n\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"classList","comment":" This function makes it easier to build a space-separated class attribute.\nEach class can easily be added and removed depending on the boolean value it\nis paired with. For example, maybe we want a way to view notices:\n\n    viewNotice : Notice -> Html msg\n    viewNotice notice =\n        div\n            [ classList\n                [ ( \"notice\", True )\n                , ( \"notice-important\", notice.isImportant )\n                , ( \"notice-seen\", notice.isSeen )\n                ]\n            ]\n            [ text notice.content ]\n\n**Note:** You can have as many `class` and `classList` attributes as you want.\nThey all get applied, so if you say `[ class \"notice\", class \"notice-seen\" ]`\nyou will get both classes!\n\n","type":"List.List ( String.String, Basics.Bool ) -> Origami.Html.Attribute msg"},{"name":"cols","comment":" Defines the number of columns in a `textarea`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"colspan","comment":" The colspan attribute defines the number of columns a cell should span.\nFor `td` and `th`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"contenteditable","comment":" Indicates whether the element's content is editable.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"contextmenu","comment":" Defines the ID of a `menu` element which will serve as the element's\ncontext menu.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"controls","comment":" Indicates whether the browser should show playback controls for the `audio`\nor `video`.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"coords","comment":" A set of values specifying the coordinates of the hot-spot region in an\n`area`. Needs to be paired with a `shape` attribute to be meaningful.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"css","comment":" Apply styles to an element.\nSee the [`Origami` module documentation](http://package.elm-lang.org/packages/miyamoen/elm-origami/latest/Origami) for an overview of how to use this function.\n","type":"List.List Origami.Style -> Origami.Html.Attribute msg"},{"name":"datetime","comment":" Indicates the date and time associated with the element.\nFor `del`, `ins`, `time`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"default","comment":" Indicates that the `track` should be enabled unless the user's preferences\nindicate something different.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"dir","comment":" Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl\n(Right-To-Left).\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"disabled","comment":" Indicates whether the user can interact with a `button`, `fieldset`,\n`input`, `optgroup`, `option`, `select` or `textarea`.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"download","comment":" Indicates that clicking an `a` and `area` will download the resource\ndirectly. The `String` argument determins the name of the downloaded file.\nSay the file you are serving is named `hats.json`.\n\n    download \"\" -- hats.json\n\n    download \"my-hats.json\" -- my-hats.json\n\n    download \"snakes.json\" -- snakes.json\n\nThe empty `String` says to just name it whatever it was called on the server.\n\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"draggable","comment":" Defines whether the element can be dragged.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"dropzone","comment":" Indicates that the element accept the dropping of content on it.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"enctype","comment":" How `form` data should be encoded when submitted with the POST method.\nOptions include: application/x-www-form-urlencoded, multipart/form-data, and\ntext/plain.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"for","comment":" The element ID described by this `label` or the element IDs that are used\nfor an `output`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"form_","comment":" Indicates the element ID of the `form` that owns this particular `button`,\n`fieldset`, `input`, `label`, `meter`, `object`, `output`, `progress`,\n`select`, or `textarea`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"fromHtmlAttribute","comment":" Convert from a `Html.Attribute` to an Origami one.\n","type":"VirtualDom.Attribute msg -> Origami.Html.Attribute msg"},{"name":"headers","comment":" A space separated list of element IDs indicating which `th` elements are\nheaders for this cell. For `td` and `th`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"height","comment":" Declare the height of a `canvas`, `embed`, `iframe`, `img`, `input`,\n`object`, or `video`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"hidden","comment":" Indicates the relevance of an element.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"href","comment":" The URL of a linked resource, such as `a`, `area`, `base`, or `link`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"hreflang","comment":" Two-letter language code of the linked resource of an `a`, `area`, or `link`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"id","comment":" Often used with CSS to style a specific element. The value of this\nattribute must be unique.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"ismap","comment":" When an `img` is a descendant of an `a` tag, the `ismap` attribute\nindicates that the click location should be added to the parent `a`'s href as\na query string.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"itemprop","comment":" ","type":"String.String -> Origami.Html.Attribute msg"},{"name":"kind","comment":" Specifies the kind of text `track`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"lang","comment":" Defines the language used in the element.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"list","comment":" Associates an `input` with a `datalist` tag. The datalist gives some\npre-defined options to suggest to the user as they interact with an input.\nThe value of the list attribute must match the id of a `datalist` node.\nFor `input`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"loop","comment":" Indicates whether the `audio` or `video` should start playing from the\nstart when it's finished.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"manifest","comment":" Specifies the URL of the cache manifest for an `html` tag.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"map","comment":" Transform the messages produced by an `Attribute`.\n","type":"(a -> msg) -> Origami.Html.Attribute a -> Origami.Html.Attribute msg"},{"name":"max","comment":" Indicates the maximum value allowed. When using an input of type number or\ndate, the max value must be a number or date. For `input`, `meter`, and `progress`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"maxlength","comment":" Defines the maximum number of characters allowed in an `input` or\n`textarea`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"media","comment":" Specifies a hint of the target media of a `a`, `area`, `link`, `source`,\nor `style`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"method","comment":" Defines which HTTP method to use when submitting a `form`. Can be GET\n(default) or POST.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"min","comment":" Indicates the minimum value allowed. When using an input of type number or\ndate, the min value must be a number or date. For `input` and `meter`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"minlength","comment":" Defines the minimum number of characters allowed in an `input` or\n`textarea`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"multiple","comment":" Indicates whether multiple values can be entered in an `input` of type\nemail or file. Can also indicate that you can `select` many options.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"name","comment":" Name of the element. For example used by the server to identify the fields\nin form submits. For `button`, `form`, `fieldset`, `iframe`, `input`,\n`object`, `output`, `select`, `textarea`, `map`, `meta`, and `param`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"noAttribute","comment":" Empty Attribute.\n\n    if predicate then\n        class \"spam\"\n    then\n        noAttribute\n\n","type":"Origami.Html.Attribute msg"},{"name":"novalidate","comment":" This attribute indicates that a `form` shouldn't be validated when\nsubmitted.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"pattern","comment":" Defines a regular expression which an `input`'s value will be validated\nagainst.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"ping","comment":" Specify a URL to send a short POST request to when the user clicks on an\n`a` or `area`. Useful for monitoring and tracking.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"placeholder","comment":" Provides a hint to the user of what can be entered into an `input` or\n`textarea`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"poster","comment":" A URL indicating a poster frame to show until the user plays or seeks the\n`video`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"preload","comment":" Control how much of an `audio` or `video` resource should be preloaded.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"property","comment":" Create _properties_, like saying `domNode.className = 'greeting'` in\nJavaScript.\n\n    import Json.Encode as Encode\n\n    class : String -> Attribute msg\n    class name =\n        property \"className\" (Encode.string name)\n\nRead more about the difference between properties and attributes [here].\n\n[here]: https://github.com/elm/html/blob/master/properties-vs-attributes.md\n\n","type":"String.String -> Json.Encode.Value -> Origami.Html.Attribute msg"},{"name":"pubdate","comment":" Indicates whether this date and time is the date of the nearest `article`\nancestor element. For `time`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"readonly","comment":" Indicates whether an `input` or `textarea` can be edited.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"rel","comment":" Specifies the relationship of the target object to the link object.\nFor `a`, `area`, `link`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"required","comment":" Indicates whether this element is required to fill out or not.\nFor `input`, `select`, and `textarea`.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"reversed","comment":" Indicates whether an ordered list `ol` should be displayed in a descending\norder instead of a ascending.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"rows","comment":" Defines the number of rows in a `textarea`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"rowspan","comment":" Defines the number of rows a table cell should span over.\nFor `td` and `th`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"sandbox","comment":" A space separated list of security restrictions you'd like to lift for an\n`iframe`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"scope","comment":" Specifies the scope of a header cell `th`. Possible values are: col, row,\ncolgroup, rowgroup.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"selected","comment":" Defines which `option` will be selected on page load.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"shape","comment":" Declare the shape of the clickable area in an `a` or `area`. Valid values\ninclude: default, rect, circle, poly. This attribute can be paired with\n`coords` to create more particular shapes.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"size","comment":" For `input` specifies the width of an input in characters.\n\nFor `select` specifies the number of visible options in a drop-down list.\n\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"spellcheck","comment":" Indicates whether spell checking is allowed for the element.\n","type":"Basics.Bool -> Origami.Html.Attribute msg"},{"name":"src","comment":" The URL of the embeddable content. For `audio`, `embed`, `iframe`, `img`,\n`input`, `script`, `source`, `track`, and `video`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"srcdoc","comment":" An HTML document that will be displayed as the body of an `iframe`. It will\noverride the content of the `src` attribute if it has been specified.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"srclang","comment":" A two letter language code indicating the language of the `track` text data.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"start","comment":" Defines the first number of an ordered list if you want it to be something\nbesides 1.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"step","comment":" Add a step size to an `input`. Use `step \"any\"` to allow any floating-point\nnumber to be used in the input.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"style","comment":" **NOTE:** If you're using `elm-origami`, you **probably do not want this!**\n\nThis is the `style` **attribute**, which has higher precedence than anything\n`elm-origami` does. It's probably best to use this as a workaround only.\n\nSpecify a style.\n\n    greeting : Node msg\n    greeting =\n        div\n            [ style \"background-color\" \"red\"\n            , style \"height\" \"90px\"\n            , style \"width\" \"100%\"\n            ]\n            [ text \"Hello!\"\n            ]\n\nThere is no `Html.Styles` module because best practices for working with HTML\nsuggest that this should primarily be specified in CSS files. So the general\nrecommendation is to use this function lightly.\n\n","type":"String.String -> String.String -> Origami.Html.Attribute msg"},{"name":"tabindex","comment":" Overrides the browser's default tab order and follows the one specified\ninstead.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"target","comment":" Specify where the results of clicking an `a`, `area`, `base`, or `form`\nshould appear. Possible special values include:\n\n  - \\_blank &mdash; a new window or tab\n  - \\_self &mdash; the same frame (this is default)\n  - \\_parent &mdash; the parent frame\n  - \\_top &mdash; the full body of the window\n\nYou can also give the name of any `frame` you have created.\n\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"title","comment":" Text to be displayed in a tooltip when hovering over the element.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"type_","comment":" Defines the type of a `button`, `checkbox`, `input`, `embed`, `menu`,\n`object`, `script`, `source`, or `style`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"usemap","comment":" Specify the hash name reference of a `map` that should be used for an `img`\nor `object`. A hash name reference is a hash symbol followed by the element's name or id.\nE.g. `\"#planet-map\"`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"value","comment":" Defines a default value which will be displayed in a `button`, `option`,\n`input`, `li`, `meter`, `progress`, or `param`.\n","type":"String.String -> Origami.Html.Attribute msg"},{"name":"width","comment":" Declare the width of a `canvas`, `embed`, `iframe`, `img`, `input`,\n`object`, or `video`.\n","type":"Basics.Int -> Origami.Html.Attribute msg"},{"name":"wrap","comment":" Indicates whether the text should be wrapped in a `textarea`. Possible\nvalues are \"hard\" and \"soft\".\n","type":"String.String -> Origami.Html.Attribute msg"}],"binops":[]},{"name":"Origami.Html.Events","comment":" It is often helpful to create an [Custom Type] so you can have many different kinds\nof events as seen in the [TodoMVC] example.\n\n[Custom Type]: https://guide.elm-lang.org/types/custom_types.html\n[TodoMVC]: https://github.com/evancz/elm-todomvc/blob/master/Todo.elm\n\n\n# Mouse\n\n@docs onClick, onDoubleClick\n@docs onMouseDown, onMouseUp\n@docs onMouseEnter, onMouseLeave\n@docs onMouseOver, onMouseOut\n\n\n# Forms\n\n@docs onInput, onCheck, onSubmit\n\n\n# Focus\n\n@docs onBlur, onFocus\n\n\n# Custom\n\n@docs on, stopPropagationOn, preventDefaultOn, custom\n\n\n## Custom Decoders\n\n@docs targetValue, targetChecked, keyCode\n\n","unions":[],"aliases":[],"values":[{"name":"custom","comment":" Create an event listener that may [`stopPropagation`][stop] or\n[`preventDefault`][prevent].\n\n[stop]: https://developer.mozilla.org/docs/Web/API/Event/stopPropagation\n[prevent]: https://developer.mozilla.org/docs/Web/API/Event/preventDefault\n[handler]: https://package.elm-lang.org/packages/elm/virtual-dom/latest/VirtualDom#Handler\n\n**Note:** Check out the lower-level event API in `elm/virtual-dom` for more\ninformation on exactly how events work, especially the [`Handler`][handler]\ndocs.\n\n","type":"String.String -> Json.Decode.Decoder { message : msg, stopPropagation : Basics.Bool, preventDefault : Basics.Bool } -> Origami.Html.Attribute msg"},{"name":"keyCode","comment":" A `Json.Decoder` for grabbing `event.keyCode`. This helps you define\nkeyboard listeners like this:\n\n    import Json.Decode as Json\n\n    onKeyUp : (Int -> msg) -> Attribute msg\n    onKeyUp tagger =\n        on \"keyup\" (Json.map tagger keyCode)\n\n**Note:** It looks like the spec is moving away from `event.keyCode` and\ntowards `event.key`. Once this is supported in more browsers, we may add\nhelpers here for `onKeyUp`, `onKeyDown`, `onKeyPress`, etc.\n\n","type":"Json.Decode.Decoder Basics.Int"},{"name":"on","comment":" Create a custom event listener. Normally this will not be necessary, but\nyou have the power! Here is how `onClick` is defined for example:\n\n    import Json.Decode as Decode\n\n    onClick : msg -> Attribute msg\n    onClick message =\n        on \"click\" (Decode.succeed message)\n\nThe first argument is the event name in the same format as with JavaScript's\n[`addEventListener`][aEL] function.\n\nThe second argument is a JSON decoder. Read more about these [here][decoder].\nWhen an event occurs, the decoder tries to turn the event object into an Elm\nvalue. If successful, the value is routed to your `update` function. In the\ncase of `onClick` we always just succeed with the given `message`.\n\nIf this is confusing, work through the [Elm Architecture Tutorial][tutorial].\nIt really helps!\n\n[aEL]: https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener\n[decoder]: /packages/elm/json/latest/Json-Decode\n[tutorial]: https://github.com/evancz/elm-architecture-tutorial/\n\n**Note:** This creates a [passive] event listener, enabling optimizations for\ntouch, scroll, and wheel events in some browsers.\n\n[passive]: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n\n","type":"String.String -> Json.Decode.Decoder msg -> Origami.Html.Attribute msg"},{"name":"onBlur","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onCheck","comment":" Detect [change](https://developer.mozilla.org/docs/Web/Events/change)\nevents on checkboxes. It will grab the boolean value from `event.target.checked`\non any input event.\n\nCheck out [`targetChecked`](#targetChecked) for more details on how this works.\n\n","type":"(Basics.Bool -> msg) -> Origami.Html.Attribute msg"},{"name":"onClick","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onDoubleClick","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onFocus","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onInput","comment":" Detect [input](https://developer.mozilla.org/docs/Web/Events/input)\nevents for things like text fields or text areas.\n\nFor more details on how `onInput` works, check out [`targetValue`](#targetValue).\n\n**Note 1:** It grabs the **string** value at `event.target.value`, so it will\nnot work if you need some other information. For example, if you want to track\ninputs on a range slider, make a custom handler with [`on`](#on).\n\n**Note 2:** It uses `stopPropagationOn` internally to always stop propagation\nof the event. This is important for complicated reasons explained [here][1] and\n[here][2].\n\n[1]: /packages/elm/virtual-dom/latest/VirtualDom#Handler\n[2]: https://github.com/elm/virtual-dom/issues/125\n\n","type":"(String.String -> msg) -> Origami.Html.Attribute msg"},{"name":"onMouseDown","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onMouseEnter","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onMouseLeave","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onMouseOut","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onMouseOver","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onMouseUp","comment":" ","type":"msg -> Origami.Html.Attribute msg"},{"name":"onSubmit","comment":" Detect a [submit](https://developer.mozilla.org/docs/Web/Events/submit)\nevent with [`preventDefault`](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)\nin order to prevent the form from changing the page’s location. If you need\ndifferent behavior, create a custom event handler.\n","type":"msg -> Origami.Html.Attribute msg"},{"name":"preventDefaultOn","comment":" Create an event listener that may [`preventDefault`][prevent]. Your decoder\nmust produce a message and a `Bool` that decides if `preventDefault` should\nbe called.\n\nFor example, the `onSubmit` function in this library _always_ prevents the\ndefault behavior:\n\n[prevent]: https://developer.mozilla.org/docs/Web/API/Event/preventDefault\n\n    onSubmit : msg -> Attribute msg\n    onSubmit msg =\n        preventDefaultOn \"submit\" (Json.map alwaysPreventDefault (Json.succeed msg))\n\n    alwaysPreventDefault : msg -> ( msg, Bool )\n    alwaysPreventDefault msg =\n        ( msg, True )\n\n","type":"String.String -> Json.Decode.Decoder ( msg, Basics.Bool ) -> Origami.Html.Attribute msg"},{"name":"stopPropagationOn","comment":" Create an event listener that may [`stopPropagation`][stop]. Your decoder\nmust produce a message and a `Bool` that decides if `stopPropagation` should\nbe called.\n\n[stop]: https://developer.mozilla.org/docs/Web/API/Event/stopPropagation\n\n**Note:** This creates a [passive] event listener, enabling optimizations for\ntouch, scroll, and wheel events in some browsers.\n\n[passive]: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n\n","type":"String.String -> Json.Decode.Decoder ( msg, Basics.Bool ) -> Origami.Html.Attribute msg"},{"name":"targetChecked","comment":" A `Json.Decoder` for grabbing `event.target.checked`. We use this to define\n`onCheck` as follows:\n\n    import Json.Decode as Json\n\n    onCheck : (Bool -> msg) -> Attribute msg\n    onCheck tagger =\n        on \"input\" (Json.map tagger targetChecked)\n\n","type":"Json.Decode.Decoder Basics.Bool"},{"name":"targetValue","comment":" A `Json.Decoder` for grabbing `event.target.value`. We use this to define\n`onInput` as follows:\n\n    import Json.Decode as Json\n\n    onInput : (String -> msg) -> Attribute msg\n    onInput tagger =\n        stopPropagationOn \"input\" <|\n            Json.map alwaysStop (Json.map tagger targetValue)\n\n    alwaysStop : a -> ( a, Bool )\n    alwaysStop x =\n        ( x, True )\n\nYou probably will never need this, but hopefully it gives some insights into\nhow to make custom event handlers.\n\n","type":"Json.Decode.Decoder String.String"}],"binops":[]},{"name":"Origami.Html.Keyed","comment":" A keyed node helps optimize cases where children are getting added, moved,\nremoved, etc. Common examples include:\n\n  - The user can delete items from a list.\n  - The user can create new items in a list.\n  - You can sort a list based on name or date or whatever.\n\nWhen you use a keyed node, every child is paired with a string identifier. This\nmakes it possible for the underlying diffing algorithm to reuse nodes more\nefficiently.\n\n\n# Keyed Nodes\n\n@docs node\n\n\n# Commonly Keyed Nodes\n\n@docs ol, ul\n\n","unions":[],"aliases":[],"values":[{"name":"node","comment":" Works just like `Html.node`, but you add a unique identifier to each child\nnode. You want this when you have a list of nodes that is changing: adding\nnodes, removing nodes, etc. In these cases, the unique identifiers help make\nthe DOM modifications more efficient.\n","type":"String.String -> List.List (Origami.Html.Attribute msg) -> List.List ( String.String, Origami.Html.Html msg ) -> Origami.Html.Html msg"},{"name":"ol","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List ( String.String, Origami.Html.Html msg ) -> Origami.Html.Html msg"},{"name":"ul","comment":" ","type":"List.List (Origami.Html.Attribute msg) -> List.List ( String.String, Origami.Html.Html msg ) -> Origami.Html.Html msg"}],"binops":[]},{"name":"Origami.Html.Lazy","comment":"\n\n> **NOTE:** `Html.Lazy` goes up to `lazy8`, but `Origami.Html.Lazy` can only go\n> up to `lazy7` because it uses one of the arguments to track styling info.\n\n> `VirtualDom.lazyX`を使うために暗黙的に`toPlainNode`が使われています。\n> つまり`lazyX`が使われたところでstyle tagが生成されます。\n\nSince all Elm functions are pure we have a guarantee that the same input\nwill always result in the same output. This module gives us tools to be lazy\nabout building `Html` that utilize this fact.\n\nRather than immediately applying functions to their arguments, the `lazy`\nfunctions just bundle the function and arguments up for later. When diffing\nthe old and new virtual DOM, it checks to see if all the arguments are equal\nby reference. If so, it skips calling the function!\n\nThis is a really cheap test and often makes things a lot faster, but definitely\nbenchmark to be sure!\n\n@docs lazy, lazy2, lazy3, lazy4, lazy5, lazy6, lazy7\n\n","unions":[],"aliases":[],"values":[{"name":"lazy","comment":" A performance optimization that delays the building of virtual DOM nodes.\n\nCalling `(view model)` will definitely build some virtual DOM, perhaps a lot of\nit. Calling `(lazy view model)` delays the call until later. During diffing, we\ncan check to see if `model` is referentially equal to the previous value used,\nand if so, we just stop. No need to build up the tree structure and diff it,\nwe know if the input to `view` is the same, the output must be the same!\n\n","type":"(a -> Origami.Html.Html msg) -> a -> Origami.Html.Html msg"},{"name":"lazy2","comment":" Same as `lazy` but checks on two arguments.\n","type":"(a -> b -> Origami.Html.Html msg) -> a -> b -> Origami.Html.Html msg"},{"name":"lazy3","comment":" Same as `lazy` but checks on three arguments.\n","type":"(a -> b -> c -> Origami.Html.Html msg) -> a -> b -> c -> Origami.Html.Html msg"},{"name":"lazy4","comment":" Same as `lazy` but checks on four arguments.\n","type":"(a -> b -> c -> d -> Origami.Html.Html msg) -> a -> b -> c -> d -> Origami.Html.Html msg"},{"name":"lazy5","comment":" Same as `lazy` but checks on five arguments.\n","type":"(a -> b -> c -> d -> e -> Origami.Html.Html msg) -> a -> b -> c -> d -> e -> Origami.Html.Html msg"},{"name":"lazy6","comment":" Same as `lazy` but checks on six arguments.\n","type":"(a -> b -> c -> d -> e -> f -> Origami.Html.Html msg) -> a -> b -> c -> d -> e -> f -> Origami.Html.Html msg"},{"name":"lazy7","comment":" Same as `lazy` but checks on seven arguments.\n","type":"(a -> b -> c -> d -> e -> f -> g -> Origami.Html.Html msg) -> a -> b -> c -> d -> e -> f -> g -> Origami.Html.Html msg"}],"binops":[]},{"name":"Origami.StyleTag","comment":" Create a style tag.\n\n全体に適用したいCSSを書けます。\n\n\n## Create\n\n@docs Block, styleTag, styleTag_\n\n\n## Blocks\n\n@docs style, media, fontFace\n@docs Property, property\n\n\n### Keyframes\n\n@docs keyframes, KeyframesSelector, from, to, pct\n\n","unions":[],"aliases":[{"name":"Block","comment":" ","args":[],"type":"Origami.Css.StyleTag.Block"},{"name":"KeyframesSelector","comment":" ","args":[],"type":"Origami.Css.StyleTag.KeyframesSelector"},{"name":"Property","comment":" ","args":[],"type":"Origami.Css.StyleTag.Property"}],"values":[{"name":"fontFace","comment":" Create a font-face block.\n\n    styleTag\n        [ fontFace [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```.css\n    <style>\n    @font-face {\n        key: value;\n    }\n    </style>\n```\n\n","type":"List.List Origami.StyleTag.Property -> Origami.StyleTag.Block"},{"name":"from","comment":" `from` token.\n\n  - `Origami.from`と同一\n\n","type":"Origami.StyleTag.KeyframesSelector"},{"name":"keyframes","comment":" Create a keyframes block.\n\n    styleTag\n        [ keyframes \"spin\"\n            [ ( ( from, [] ), [ property \"key\" \"value\" ] )\n            , ( ( pct 20, [ pct 80 ] ), [ property \"key\" \"value\" ] )\n            , ( ( to, [] ), [ property \"key\" \"value\" ] )\n            ]\n        ]\n\n...outputs\n\n```.css\n    <style>\n    @keyframes spin {\n        from {\n            key: value;\n        }\n\n        20%, 80% {\n            key: value;\n        }\n\n        to {\n            key: value;\n        }\n    }\n    </style>\n```\n\n","type":"String.String -> List.List ( ( Origami.StyleTag.KeyframesSelector, List.List Origami.StyleTag.KeyframesSelector ), List.List Origami.StyleTag.Property ) -> Origami.StyleTag.Block"},{"name":"media","comment":" Create a media block.\n\n    styleTag\n        [ media \"screen\" [ style \".class\" [ property \"key\" \"value\" ] ] ]\n\n...outputs\n\n```.css\n    <style>\n    @media screen {\n        .class {\n            key: value;\n        }\n    }\n    </style>\n```\n\n","type":"String.String -> List.List Origami.StyleTag.Block -> Origami.StyleTag.Block"},{"name":"pct","comment":" `30%`, `70%` and so on.\n\n  - `Origami.pct`と同一\n\n","type":"Basics.Float -> Origami.StyleTag.KeyframesSelector"},{"name":"property","comment":"\n\n  - `Origami.propertyA`と同一\n\n","type":"String.String -> String.String -> Origami.StyleTag.Property"},{"name":"style","comment":" Create a style block.\n\n    styleTag\n        [ style \".class\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```.css\n    <style>\n    .class {\n        key: value;\n    }\n    </style>\n```\n\n","type":"String.String -> List.List Origami.StyleTag.Property -> Origami.StyleTag.Block"},{"name":"styleTag","comment":" Create a style tag.\n\n    styleTag\n        [ style \".class\" [ property \"key\" \"value\" ] ]\n\n...outputs\n\n```.css\n    <style>\n    .class {\n        key: value;\n    }\n    </style>\n```\n\n","type":"List.List Origami.StyleTag.Block -> Origami.VirtualDom.Node msg"},{"name":"styleTag_","comment":" Version of `VirtualDom.Node`.\n","type":"List.List Origami.StyleTag.Block -> VirtualDom.Node msg"},{"name":"to","comment":" `to` token.\n\n  - `Origami.to`と同一\n\n","type":"Origami.StyleTag.KeyframesSelector"}],"binops":[]},{"name":"Origami.Svg","comment":" Drop-in replacement for the `Svg` module from the `elm/svg` package.\n\nThe only functions added are `styled`, `toSvg`, `toSvgs` and `fromSvg`:\n\n@docs styled, fromSvg, toSvg, toSvgs\n\n\n# SVG Nodes\n\n@docs Svg, Attribute, text, node, map\n\n\n# HTML Embedding\n\n@docs svg, foreignObject\n\n\n# Graphics elements\n\n@docs circle, ellipse, image, line, path, polygon, polyline, rect, use\n\n\n# Animation elements\n\n@docs animate, animateColor, animateMotion, animateTransform, mpath, set\n\n\n# Descriptive elements\n\n@docs desc, metadata, title\n\n\n# Containers\n\n@docs a, defs, g, marker, mask, pattern, switch, symbol\n\n\n# Text\n\n@docs altGlyph, altGlyphDef, altGlyphItem, glyph, glyphRef, textPath, text_\n@docs tref, tspan\n\n\n# Fonts\n\n@docs font\n\n\n# Gradients\n\n@docs linearGradient, radialGradient, stop\n\n\n# Filters\n\n@docs feBlend, feColorMatrix, feComponentTransfer, feComposite\n@docs feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feFlood, feFuncA\n@docs feFuncB, feFuncG, feFuncR, feGaussianBlur, feImage, feMerge, feMergeNode\n@docs feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence\n\n\n# Light source elements\n\n@docs feDistantLight, fePointLight, feSpotLight\n\n\n# Miscellaneous\n\n@docs clipPath, colorProfile, cursor, filter, style, view\n\n","unions":[],"aliases":[{"name":"Attribute","comment":" Set attributes on your `Svg`.\n","args":["msg"],"type":"Origami.VirtualDom.Attribute msg"},{"name":"Svg","comment":" The core building block to create SVG. This library is filled with helper\nfunctions to create these `Svg` values.\n\nThis is backed by `VirtualDom.Node` in `elm/virtual-dom`, but you do not\nneed to know any details about that to use this library!\n\n","args":["msg"],"type":"Origami.VirtualDom.Node msg"}],"values":[{"name":"a","comment":" The SVG Anchor Element defines a hyperlink.\n","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"altGlyph","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"altGlyphDef","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"altGlyphItem","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"animate","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"animateColor","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"animateMotion","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"animateTransform","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"circle","comment":" The circle element is an SVG basic shape, used to create circles based on\na center point and a radius.\n\n    circle [ cx \"60\", cy \"60\", r \"50\" ] []\n\n","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"clipPath","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"colorProfile","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"cursor","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"defs","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"desc","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"ellipse","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feBlend","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feColorMatrix","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feComponentTransfer","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feComposite","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feConvolveMatrix","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feDiffuseLighting","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feDisplacementMap","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feDistantLight","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feFlood","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feFuncA","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feFuncB","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feFuncG","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feFuncR","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feGaussianBlur","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feImage","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feMerge","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feMergeNode","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feMorphology","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feOffset","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"fePointLight","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feSpecularLighting","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feSpotLight","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feTile","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"feTurbulence","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"filter","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"font","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"foreignObject","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Html.Html msg) -> Origami.Svg.Svg msg"},{"name":"fromSvg","comment":" ","type":"VirtualDom.Node msg -> Origami.Svg.Svg msg"},{"name":"g","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"glyph","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"glyphRef","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"image","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"line","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"linearGradient","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"map","comment":" Transform the messages produced by some `Svg`.\n","type":"(a -> msg) -> Origami.Svg.Svg a -> Origami.Svg.Svg msg"},{"name":"marker","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"mask","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"metadata","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"mpath","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"node","comment":" Create any SVG node. To create a `<rect>` helper function, you would write:\n\n    rect : List (Attribute msg) -> List (Svg msg) -> Svg msg\n    rect attributes children =\n        node \"rect\" attributes children\n\nYou should always be able to use the helper functions already defined in this\nlibrary though!\n\n","type":"String.String -> List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"path","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"pattern","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"polygon","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"polyline","comment":" The polyline element is an SVG basic shape, used to create a series of\nstraight lines connecting several points. Typically a polyline is used to\ncreate open shapes.\n\n    polyline [ fill \"none\", stroke \"black\", points \"20,100 40,60 70,80 100,20\" ] []\n\n","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"radialGradient","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"rect","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"set","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"stop","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"style","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"styled","comment":" Takes a function that creates an element, and pre-applies styles to it.\n","type":"(List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg) -> List.List Origami.Style -> List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"svg","comment":" The root `<svg>` node for any SVG scene. This example shows a scene\ncontaining a rounded rectangle:\n\n    import Svg exposing (..)\n    import Svg.Attributes exposing (..)\n\n    roundRect =\n        svg\n            [ width \"120\", height \"120\", viewBox \"0 0 120 120\" ]\n            [ rect [ x \"10\", y \"10\", width \"100\", height \"100\", rx \"15\", ry \"15\" ] [] ]\n\n","type":"List.List (Origami.Html.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Html.Html msg"},{"name":"switch","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"symbol","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"text","comment":" A simple text node, no tags at all.\n\nWarning: not to be confused with `text_` which produces the SVG `<text>` tag!\n\n","type":"String.String -> Origami.Svg.Svg msg"},{"name":"textPath","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"text_","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"title","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"toSvg","comment":" ","type":"Origami.Svg.Svg msg -> VirtualDom.Node msg"},{"name":"toSvgs","comment":" ","type":"List.List (Origami.Svg.Svg msg) -> List.List (VirtualDom.Node msg)"},{"name":"tref","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"tspan","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"use","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"},{"name":"view","comment":" ","type":"List.List (Origami.Svg.Attribute msg) -> List.List (Origami.Svg.Svg msg) -> Origami.Svg.Svg msg"}],"binops":[]},{"name":"Origami.Svg.Attributes","comment":" Drop-in replacement for the `Svg.Attributes` module from the `elm/svg` package.\nThe only functions added are `css`, `fromSvgAttribute`, `batchAttributes` and `noAttribute`:\n\n@docs css, fromSvgAttribute, batchAttributes, noAttribute\n\n\n# Regular attributes\n\n@docs accentHeight, accelerate, accumulate, additive, alphabetic, allowReorder\n@docs amplitude, arabicForm, ascent, attributeName, attributeType, autoReverse\n@docs azimuth, baseFrequency, baseProfile, bbox, begin, bias, by, calcMode\n@docs capHeight, class, clipPathUnits, contentScriptType, contentStyleType, cx, cy\n@docs d, decelerate, descent, diffuseConstant, divisor, dur, dx, dy, edgeMode\n@docs elevation, end, exponent, externalResourcesRequired, filterRes, filterUnits\n@docs format, from, fx, fy, g1, g2, glyphName, glyphRef, gradientTransform\n@docs gradientUnits, hanging, height, horizAdvX, horizOriginX, horizOriginY, id\n@docs ideographic, in_, in2, intercept, k, k1, k2, k3, k4, kernelMatrix\n@docs kernelUnitLength, keyPoints, keySplines, keyTimes, lang, lengthAdjust\n@docs limitingConeAngle, local, markerHeight, markerUnits, markerWidth\n@docs maskContentUnits, maskUnits, mathematical, max, media, method, min, mode\n@docs name, numOctaves, offset, operator, order, orient, orientation, origin\n@docs overlinePosition, overlineThickness, panose1, path, pathLength\n@docs patternContentUnits, patternTransform, patternUnits, pointOrder, points\n@docs pointsAtX, pointsAtY, pointsAtZ, preserveAlpha, preserveAspectRatio\n@docs primitiveUnits, r, radius, refX, refY, renderingIntent, repeatCount\n@docs repeatDur, requiredExtensions, requiredFeatures, restart, result, rotate\n@docs rx, ry, scale, seed, slope, spacing, specularConstant, specularExponent\n@docs speed, spreadMethod, startOffset, stdDeviation, stemh, stemv, stitchTiles\n@docs strikethroughPosition, strikethroughThickness, string, style, surfaceScale\n@docs systemLanguage, tableValues, target, targetX, targetY, textLength, title, to\n@docs transform, type_, u1, u2, underlinePosition, underlineThickness, unicode\n@docs unicodeRange, unitsPerEm, vAlphabetic, vHanging, vIdeographic, vMathematical\n@docs values, version, vertAdvY, vertOriginX, vertOriginY, viewBox, viewTarget\n@docs width, widths, x, xHeight, x1, x2, xChannelSelector, xlinkActuate\n@docs xlinkArcrole, xlinkHref, xlinkRole, xlinkShow, xlinkTitle, xlinkType\n@docs xmlBase, xmlLang, xmlSpace, y, y1, y2, yChannelSelector, z, zoomAndPan\n\n\n# Presentation attributes\n\n@docs alignmentBaseline, baselineShift, clipPath, clipRule, clip\n@docs colorInterpolationFilters, colorInterpolation, colorProfile, colorRendering\n@docs color, cursor, direction, display, dominantBaseline, enableBackground\n@docs fillOpacity, fillRule, fill, filter, floodColor, floodOpacity, fontFamily\n@docs fontSizeAdjust, fontSize, fontStretch, fontStyle, fontVariant, fontWeight\n@docs glyphOrientationHorizontal, glyphOrientationVertical, imageRendering\n@docs kerning, letterSpacing, lightingColor, markerEnd, markerMid, markerStart\n@docs mask, opacity, overflow, pointerEvents, shapeRendering, stopColor\n@docs stopOpacity, strokeDasharray, strokeDashoffset, strokeLinecap\n@docs strokeLinejoin, strokeMiterlimit, strokeOpacity, strokeWidth, stroke\n@docs textAnchor, textDecoration, textRendering, unicodeBidi, visibility\n@docs wordSpacing, writingMode\n\n","unions":[],"aliases":[],"values":[{"name":"accelerate","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"accentHeight","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"accumulate","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"additive","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"alignmentBaseline","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"allowReorder","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"alphabetic","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"amplitude","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"arabicForm","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"ascent","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"attributeName","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"attributeType","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"autoReverse","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"azimuth","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"baseFrequency","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"baseProfile","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"baselineShift","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"batchAttributes","comment":" Batch Attributes.\n","type":"List.List (Origami.Svg.Attribute msg) -> Origami.Svg.Attribute msg"},{"name":"bbox","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"begin","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"bias","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"by","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"calcMode","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"capHeight","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"class","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"clip","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"clipPath","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"clipPathUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"clipRule","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"color","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"colorInterpolation","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"colorInterpolationFilters","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"colorProfile","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"colorRendering","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"contentScriptType","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"contentStyleType","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"css","comment":" Apply styles to an element.\n\nSee the [`Origami` module documentation](http://package.elm-lang.org/packages/miyamoen/elm-origami/latest/Origami) for an overview of how to use this function.\n\n","type":"List.List Origami.Style -> Origami.Svg.Attribute msg"},{"name":"cursor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"cx","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"cy","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"d","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"decelerate","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"descent","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"diffuseConstant","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"direction","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"display","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"divisor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"dominantBaseline","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"dur","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"dx","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"dy","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"edgeMode","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"elevation","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"enableBackground","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"end","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"exponent","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"externalResourcesRequired","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fill","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fillOpacity","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fillRule","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"filter","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"filterRes","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"filterUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"floodColor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"floodOpacity","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontFamily","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontSize","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontSizeAdjust","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontStretch","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontStyle","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontVariant","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fontWeight","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"format","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"from","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fromSvgAttribute","comment":" ","type":"VirtualDom.Attribute msg -> Origami.Svg.Attribute msg"},{"name":"fx","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"fy","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"g1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"g2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"glyphName","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"glyphOrientationHorizontal","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"glyphOrientationVertical","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"glyphRef","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"gradientTransform","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"gradientUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"hanging","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"height","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"horizAdvX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"horizOriginX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"horizOriginY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"id","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"ideographic","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"imageRendering","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"in2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"in_","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"intercept","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"k","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"k1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"k2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"k3","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"k4","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"kernelMatrix","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"kernelUnitLength","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"kerning","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"keyPoints","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"keySplines","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"keyTimes","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"lang","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"lengthAdjust","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"letterSpacing","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"lightingColor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"limitingConeAngle","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"local","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerEnd","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerHeight","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerMid","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerStart","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"markerWidth","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"mask","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"maskContentUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"maskUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"mathematical","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"max","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"media","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"method","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"min","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"mode","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"name","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"noAttribute","comment":" Empty Attribute.\n\n    if predicate then\n        class \"spam\"\n    then\n        noAttribute\n\n","type":"Origami.Svg.Attribute msg"},{"name":"numOctaves","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"offset","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"opacity","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"operator","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"order","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"orient","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"orientation","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"origin","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"overflow","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"overlinePosition","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"overlineThickness","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"panose1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"path","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pathLength","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"patternContentUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"patternTransform","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"patternUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pointOrder","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pointerEvents","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"points","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pointsAtX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pointsAtY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"pointsAtZ","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"preserveAlpha","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"preserveAspectRatio","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"primitiveUnits","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"r","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"radius","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"refX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"refY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"renderingIntent","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"repeatCount","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"repeatDur","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"requiredExtensions","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"requiredFeatures","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"restart","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"result","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"rotate","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"rx","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"ry","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"scale","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"seed","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"shapeRendering","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"slope","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"spacing","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"specularConstant","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"specularExponent","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"speed","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"spreadMethod","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"startOffset","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stdDeviation","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stemh","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stemv","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stitchTiles","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stopColor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stopOpacity","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strikethroughPosition","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strikethroughThickness","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"string","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"stroke","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeDasharray","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeDashoffset","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeLinecap","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeLinejoin","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeMiterlimit","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeOpacity","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"strokeWidth","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"style","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"surfaceScale","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"systemLanguage","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"tableValues","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"target","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"targetX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"targetY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"textAnchor","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"textDecoration","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"textLength","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"textRendering","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"title","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"to","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"transform","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"type_","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"u1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"u2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"underlinePosition","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"underlineThickness","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"unicode","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"unicodeBidi","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"unicodeRange","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"unitsPerEm","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vAlphabetic","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vHanging","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vIdeographic","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vMathematical","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"values","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"version","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vertAdvY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vertOriginX","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"vertOriginY","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"viewBox","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"viewTarget","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"visibility","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"width","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"widths","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"wordSpacing","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"writingMode","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"x","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"x1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"x2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xChannelSelector","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xHeight","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkActuate","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkArcrole","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkHref","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkRole","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkShow","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkTitle","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xlinkType","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xmlBase","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xmlLang","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"xmlSpace","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"y","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"y1","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"y2","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"yChannelSelector","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"z","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"},{"name":"zoomAndPan","comment":" ","type":"String.String -> Origami.Svg.Attribute msg"}],"binops":[]},{"name":"Origami.Svg.Events","comment":"\n\n\n# Mouse\n\n@docs onClick, onMouseDown, onMouseUp, onMouseOver, onMouseOut\n\n\n# Custom\n\n@docs on, stopPropagationOn, preventDefaultOn, custom\n\n","unions":[],"aliases":[],"values":[{"name":"custom","comment":" Create an event listener that may [`stopPropagation`][stop] or\n[`preventDefault`][prevent].\n\n[stop]: https://developer.mozilla.org/docs/Web/API/Event/stopPropagation\n[prevent]: https://developer.mozilla.org/docs/Web/API/Event/preventDefault\n\n**Note:** If you need something even more custom (like capture phase) check\nout the lower-level event API in `elm/virtual-dom`.\n\n","type":"String.String -> Json.Decode.Decoder { message : msg, stopPropagation : Basics.Bool, preventDefault : Basics.Bool } -> Origami.Svg.Attribute msg"},{"name":"on","comment":" Create a custom event listener. Normally this will not be necessary, but\nyou have the power! Here is how `onClick` is defined for example:\n\n    import Json.Decode as Decode\n\n    onClick : msg -> Attribute msg\n    onClick message =\n        on \"click\" (Decode.succeed message)\n\nThe first argument is the event name in the same format as with JavaScript's\n[`addEventListener`][aEL] function.\n\nThe second argument is a JSON decoder. Read more about these [here][decoder].\nWhen an event occurs, the decoder tries to turn the event object into an Elm\nvalue. If successful, the value is routed to your `update` function. In the\ncase of `onClick` we always just succeed with the given `message`.\n\nIf this is confusing, work through the [Elm Architecture Tutorial][tutorial].\nIt really helps!\n\n[aEL]: https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener\n[decoder]: /packages/elm/json/latest/Json-Decode\n[tutorial]: https://github.com/evancz/elm-architecture-tutorial/\n\n**Note:** This creates a [passive] event listener, enabling optimizations for\ntouch, scroll, and wheel events in some browsers.\n\n[passive]: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n\n","type":"String.String -> Json.Decode.Decoder msg -> Origami.Svg.Attribute msg"},{"name":"onClick","comment":" ","type":"msg -> Origami.Svg.Attribute msg"},{"name":"onMouseDown","comment":" ","type":"msg -> Origami.Svg.Attribute msg"},{"name":"onMouseOut","comment":" ","type":"msg -> Origami.Svg.Attribute msg"},{"name":"onMouseOver","comment":" ","type":"msg -> Origami.Svg.Attribute msg"},{"name":"onMouseUp","comment":" ","type":"msg -> Origami.Svg.Attribute msg"},{"name":"preventDefaultOn","comment":" Create an event listener that may [`preventDefault`][prevent]. Your decoder\nmust produce a message and a `Bool` that decides if `preventDefault` should\nbe called.\n\nFor example, the `onSubmit` function in this library _always_ prevents the\ndefault behavior:\n\n[prevent]: https://developer.mozilla.org/docs/Web/API/Event/preventDefault\n\n    onSubmit : msg -> Attribute msg\n    onSubmit msg =\n        preventDefaultOn \"submit\" (Json.map alwaysPreventDefault (Json.succeed msg))\n\n    alwaysPreventDefault : msg -> ( msg, Bool )\n    alwaysPreventDefault msg =\n        ( msg, True )\n\n","type":"String.String -> Json.Decode.Decoder ( msg, Basics.Bool ) -> Origami.Svg.Attribute msg"},{"name":"stopPropagationOn","comment":" Create an event listener that may [`stopPropagation`][stop]. Your decoder\nmust produce a message and a `Bool` that decides if `stopPropagation` should\nbe called.\n\n[stop]: https://developer.mozilla.org/docs/Web/API/Event/stopPropagation\n\n**Note:** This creates a [passive] event listener, enabling optimizations for\ntouch, scroll, and wheel events in some browsers.\n\n[passive]: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n\n","type":"String.String -> Json.Decode.Decoder ( msg, Basics.Bool ) -> Origami.Svg.Attribute msg"}],"binops":[]},{"name":"Origami.Svg.Keyed","comment":" A keyed node helps optimize cases where children are getting added, moved,\nremoved, etc. Common examples include:\n\n  - The user can delete items from a list.\n  - The user can create new items in a list.\n  - You can sort a list based on name or date or whatever.\n\nWhen you use a keyed node, every child is paired with a string identifier. This\nmakes it possible for the underlying diffing algorithm to reuse nodes more\nefficiently.\n\n\n# Keyed Nodes\n\n@docs node\n\n","unions":[],"aliases":[],"values":[{"name":"node","comment":" Works just like `Svg.node`, but you add a unique identifier to each child\nnode. You want this when you have a list of nodes that is changing: adding\nnodes, removing nodes, etc. In these cases, the unique identifiers help make\nthe DOM modifications more efficient.\n","type":"String.String -> List.List (Origami.Svg.Attribute msg) -> List.List ( String.String, Origami.Svg.Svg msg ) -> Origami.Svg.Svg msg"}],"binops":[]},{"name":"Origami.Svg.Lazy","comment":" **NOTE:** `Svg.Lazy` goes up to `lazy8`, but `Origami.Svg.Lazy` can only go\nup to `lazy7` because it uses one of the arguments to track styling info.\n\n> `VirtualDom.lazyX`を使うために暗黙的に`toPlainNode`が使われています。\n> つまり`lazyX`が使われたところでstyle tagが生成されます。\n\nSince all Elm functions are pure we have a guarantee that the same input\nwill always result in the same output. This module gives us tools to be lazy\nabout building `Svg` that utilize this fact.\n\nRather than immediately applying functions to their arguments, the `lazy`\nfunctions just bundle the function and arguments up for later. When diffing\nthe old and new virtual DOM, it checks to see if all the arguments are equal.\nIf so, it skips calling the function!\n\nThis is a really cheap test and often makes things a lot faster, but definitely\nbenchmark to be sure!\n\n@docs lazy, lazy2, lazy3, lazy4, lazy5, lazy6, lazy7\n\n","unions":[],"aliases":[],"values":[{"name":"lazy","comment":" A performance optimization that delays the building of virtual DOM nodes.\n\nCalling `(view model)` will definitely build some virtual DOM, perhaps a lot of\nit. Calling `(lazy view model)` delays the call until later. During diffing, we\ncan check to see if `model` is referentially equal to the previous value used,\nand if so, we just stop. No need to build up the tree structure and diff it,\nwe know if the input to `view` is the same, the output must be the same!\n\n","type":"(a -> Origami.Svg.Svg msg) -> a -> Origami.Svg.Svg msg"},{"name":"lazy2","comment":" Same as `lazy` but checks on two arguments.\n","type":"(a -> b -> Origami.Svg.Svg msg) -> a -> b -> Origami.Svg.Svg msg"},{"name":"lazy3","comment":" Same as `lazy` but checks on three arguments.\n","type":"(a -> b -> c -> Origami.Svg.Svg msg) -> a -> b -> c -> Origami.Svg.Svg msg"},{"name":"lazy4","comment":" Same as `lazy` but checks on four arguments.\n","type":"(a -> b -> c -> d -> Origami.Svg.Svg msg) -> a -> b -> c -> d -> Origami.Svg.Svg msg"},{"name":"lazy5","comment":" Same as `lazy` but checks on five arguments.\n","type":"(a -> b -> c -> d -> e -> Origami.Svg.Svg msg) -> a -> b -> c -> d -> e -> Origami.Svg.Svg msg"},{"name":"lazy6","comment":" Same as `lazy` but checks on six arguments.\n","type":"(a -> b -> c -> d -> e -> f -> Origami.Svg.Svg msg) -> a -> b -> c -> d -> e -> f -> Origami.Svg.Svg msg"},{"name":"lazy7","comment":" Same as `lazy` but checks on seven arguments.\n","type":"(a -> b -> c -> d -> e -> f -> g -> Origami.Svg.Svg msg) -> a -> b -> c -> d -> e -> f -> g -> Origami.Svg.Svg msg"}],"binops":[]},{"name":"Origami.VirtualDom","comment":" A wrapper of elm/virtual-dom.\n\n普通は使わないと思いますがexposedしています。\nそのためユーザー向けではないドキュメントが書かれています。\n\n\n# Style\n\n@docs css, toPlainNode, toPlainNodes, plainNode, plainAttribute\n\n\n# Create\n\n@docs Node, text, node, nodeNS\n\n\n# Attributes\n\n@docs Attribute, style, property, attribute, attributeNS, batchAttributes, noAttribute\n\n\n# Events\n\n@docs on\n\n\n# Routing Messages\n\n@docs map, mapAttribute\n\n\n# Keyed Nodes\n\n@docs keyedNode, keyedNodeNS\n\n\n# Lazy Nodes\n\n`VirtualDom.lazyX`を使うために暗黙的に`toPlainNode`が使われています。\nつまり`lazyX`が使われたところでstyle tagが生成されます。\n\n@docs lazy, lazy2, lazy3, lazy4, lazy5, lazy6, lazy7\n\n","unions":[{"name":"Attribute","comment":" `Attribute`\n\n  - `Attribute`をbatchできるようにするためにListで`VirtualDom.Attribute`を保持\n  - 適用されたStyleをhash値をセットで持ち回す\n\n\n### definition\n\n    type Attribute msg\n        = Attribute (List (VirtualDom.Attribute msg)) (List ( String, List FlatStyle ))\n\n","args":["msg"],"cases":[]},{"name":"Node","comment":" ","args":["msg"],"cases":[]}],"aliases":[],"values":[{"name":"attribute","comment":" ","type":"String.String -> String.String -> Origami.VirtualDom.Attribute msg"},{"name":"attributeNS","comment":" ","type":"String.String -> String.String -> String.String -> Origami.VirtualDom.Attribute msg"},{"name":"batchAttributes","comment":" AttributeとStyleをまとめる\n","type":"List.List (Origami.VirtualDom.Attribute msg) -> Origami.VirtualDom.Attribute msg"},{"name":"css","comment":" DOMにStyleを適用するための関数\n\n  - この関数で再帰的な`Style`型から再帰のない`FlatStyle`型に変換してある\n      - `FlatStyle`型は無効なSelector Blockを除去してある\n  - `css`関数に適用された単位でStyleの重複除去が行われる\n      - それより細かい単位では重複があっても除去されない\n  - `FlatStyle`から計算されたhash値がclass attributeに暗黙的に設定されている\n\n","type":"List.List Origami.Css.Style.Style -> Origami.VirtualDom.Attribute msg"},{"name":"keyedNode","comment":" ","type":"String.String -> List.List (Origami.VirtualDom.Attribute msg) -> List.List ( String.String, Origami.VirtualDom.Node msg ) -> Origami.VirtualDom.Node msg"},{"name":"keyedNodeNS","comment":" ","type":"String.String -> String.String -> List.List (Origami.VirtualDom.Attribute msg) -> List.List ( String.String, Origami.VirtualDom.Node msg ) -> Origami.VirtualDom.Node msg"},{"name":"lazy","comment":" ","type":"(a -> Origami.VirtualDom.Node msg) -> a -> Origami.VirtualDom.Node msg"},{"name":"lazy2","comment":" ","type":"(a -> b -> Origami.VirtualDom.Node msg) -> a -> b -> Origami.VirtualDom.Node msg"},{"name":"lazy3","comment":" ","type":"(a -> b -> c -> Origami.VirtualDom.Node msg) -> a -> b -> c -> Origami.VirtualDom.Node msg"},{"name":"lazy4","comment":" ","type":"(a -> b -> c -> d -> Origami.VirtualDom.Node msg) -> a -> b -> c -> d -> Origami.VirtualDom.Node msg"},{"name":"lazy5","comment":" ","type":"(a -> b -> c -> d -> e -> Origami.VirtualDom.Node msg) -> a -> b -> c -> d -> e -> Origami.VirtualDom.Node msg"},{"name":"lazy6","comment":" ","type":"(a -> b -> c -> d -> e -> f -> Origami.VirtualDom.Node msg) -> a -> b -> c -> d -> e -> f -> Origami.VirtualDom.Node msg"},{"name":"lazy7","comment":" ","type":"(a -> b -> c -> d -> e -> f -> g -> Origami.VirtualDom.Node msg) -> a -> b -> c -> d -> e -> f -> g -> Origami.VirtualDom.Node msg"},{"name":"map","comment":" ","type":"(a -> b) -> Origami.VirtualDom.Node a -> Origami.VirtualDom.Node b"},{"name":"mapAttribute","comment":" ","type":"(a -> b) -> Origami.VirtualDom.Attribute a -> Origami.VirtualDom.Attribute b"},{"name":"noAttribute","comment":" Listを2個保持したデータ型なのでemptyが表現できる\n\n    Attribute [] []\n\n","type":"Origami.VirtualDom.Attribute msg"},{"name":"node","comment":" ","type":"String.String -> List.List (Origami.VirtualDom.Attribute msg) -> List.List (Origami.VirtualDom.Node msg) -> Origami.VirtualDom.Node msg"},{"name":"nodeNS","comment":" ","type":"String.String -> String.String -> List.List (Origami.VirtualDom.Attribute msg) -> List.List (Origami.VirtualDom.Node msg) -> Origami.VirtualDom.Node msg"},{"name":"on","comment":" ","type":"String.String -> VirtualDom.Handler msg -> Origami.VirtualDom.Attribute msg"},{"name":"plainAttribute","comment":" ","type":"VirtualDom.Attribute msg -> Origami.VirtualDom.Attribute msg"},{"name":"plainNode","comment":" 通常 -> Origami\n","type":"VirtualDom.Node msg -> Origami.VirtualDom.Node msg"},{"name":"property","comment":" ","type":"String.String -> Json.Encode.Value -> Origami.VirtualDom.Attribute msg"},{"name":"style","comment":" ","type":"String.String -> String.String -> Origami.VirtualDom.Attribute msg"},{"name":"text","comment":" ","type":"String.String -> Origami.VirtualDom.Node msg"},{"name":"toPlainNode","comment":" Origami -> 通常\n\n  - OrigamiのDOMを再帰的にたどりながらStyleの収集と通常のDOMへの変換を行っている\n  - style tagは子ノードの先頭に追加される\n\n","type":"Origami.VirtualDom.Node msg -> VirtualDom.Node msg"},{"name":"toPlainNodes","comment":" Origami -> 通常\n\n  - style tagは先頭に追加される\n\n","type":"List.List (Origami.VirtualDom.Node msg) -> List.List (VirtualDom.Node msg)"}],"binops":[]}]