packages feed

jobs-ui 0.1.0.0 → 0.1.0.1

raw patch · 7 files changed

+1086/−15 lines, 7 filesbinary-addedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Web.JobsUi.Actions: createJob :: JobInfo info -> Action () ()
- Web.JobsUi.Actions: formViewer :: Text -> Html -> Maybe Html -> Action v ()
- Web.JobsUi.Actions: jobsMenu :: Set Text -> Action () ()
- Web.JobsUi.Actions: myError :: MonadIO a => Status -> ActionCtxT () a ()
- Web.JobsUi.Actions: showHistory :: Action () ()
- Web.JobsUi.Actions: showJob :: JobId -> Action () ()
- Web.JobsUi.Forms: EditJob :: JobInfo info -> [(Text, Text)] -> EditJob
- Web.JobsUi.Forms: [ejJobInfo] :: EditJob -> JobInfo info
- Web.JobsUi.Forms: [ejPayload] :: EditJob -> [(Text, Text)]
- Web.JobsUi.Forms: createPayload :: JobInfo info -> Form Html (Action' ()) [(Text, Text)]
- Web.JobsUi.Forms: data EditJob
- Web.JobsUi.Forms: editJobForm :: Either (JobInfo info) EditJob -> Form Html (Action' ()) EditJob
- Web.JobsUi.Forms: editJobFormView :: JobInfo info -> View Html -> Html
- Web.JobsUi.Forms: jobToEditJob :: Job -> EditJob
- Web.JobsUi.Forms: secureForm :: Text -> (View Html -> Html) -> View Html -> Action v Html
- Web.JobsUi.Forms: trim :: Text -> Text
- Web.JobsUi.Html: displayJob :: JobStatus -> Job -> Html
- Web.JobsUi.Html: displayJobInList :: JobStatus -> Job -> Html
- Web.JobsUi.Html: displayJobsList :: Jobs -> Html
- Web.JobsUi.Html: displayParam :: (Param, Text) -> Html
- Web.JobsUi.Html: myFormatTime :: ZonedTime -> Html
- Web.JobsUi.Html: ppJobStatus :: Job -> JobStatus -> Text
- Web.JobsUi.Html: template :: Text -> Html -> Html
- Web.JobsUi.Html: title :: Text
- Web.JobsUi.Internal.Types: Done :: JobStatus
- Web.JobsUi.Internal.Types: Error :: v -> Result v a
- Web.JobsUi.Internal.Types: Job :: JobId -> ZonedTime -> Maybe ZonedTime -> Maybe ZonedTime -> Maybe (Result Text Text) -> Maybe ThreadId -> info -> JobInfo info -> Job
- Web.JobsUi.Internal.Types: JobId :: Int -> JobId
- Web.JobsUi.Internal.Types: JobInfo :: Text -> [Param] -> (a -> [Text]) -> ([(Text, Text)] -> IO a) -> (a -> IO Text) -> (a -> Result Text Text -> IO ()) -> JobInfo a
- Web.JobsUi.Internal.Types: JobType :: JobInfo a -> JobType
- Web.JobsUi.Internal.Types: Jobs :: Seq a -> Maybe a -> [a] -> JobsDS a
- Web.JobsUi.Internal.Types: Param :: Text -> ParamInputType -> (Text -> IO (Result Text Text)) -> Param
- Web.JobsUi.Internal.Types: Running :: JobStatus
- Web.JobsUi.Internal.Types: ServerState :: TVar Jobs -> TVar Int -> ServerState
- Web.JobsUi.Internal.Types: Success :: a -> Result v a
- Web.JobsUi.Internal.Types: TextInput :: ParamInputType
- Web.JobsUi.Internal.Types: TextOptions :: IO [Text] -> ParamInputType
- Web.JobsUi.Internal.Types: Waiting :: JobStatus
- Web.JobsUi.Internal.Types: [counterVar] :: ServerState -> TVar Int
- Web.JobsUi.Internal.Types: [done] :: JobsDS a -> [a]
- Web.JobsUi.Internal.Types: [getJobId] :: JobId -> Int
- Web.JobsUi.Internal.Types: [getJobInfo] :: JobType -> JobInfo a
- Web.JobsUi.Internal.Types: [jiConstructor] :: JobInfo a -> [(Text, Text)] -> IO a
- Web.JobsUi.Internal.Types: [jiExec] :: JobInfo a -> a -> IO Text
- Web.JobsUi.Internal.Types: [jiInputs] :: JobInfo a -> [Param]
- Web.JobsUi.Internal.Types: [jiNotify] :: JobInfo a -> a -> Result Text Text -> IO ()
- Web.JobsUi.Internal.Types: [jiParams] :: JobInfo a -> a -> [Text]
- Web.JobsUi.Internal.Types: [jiType] :: JobInfo a -> Text
- Web.JobsUi.Internal.Types: [jobFinished] :: Job -> Maybe (Result Text Text)
- Web.JobsUi.Internal.Types: [jobId] :: Job -> JobId
- Web.JobsUi.Internal.Types: [jobInfo] :: Job -> JobInfo info
- Web.JobsUi.Internal.Types: [jobPayload] :: Job -> info
- Web.JobsUi.Internal.Types: [jobThread] :: Job -> Maybe ThreadId
- Web.JobsUi.Internal.Types: [jobTimeEnded] :: Job -> Maybe ZonedTime
- Web.JobsUi.Internal.Types: [jobTimeQueued] :: Job -> ZonedTime
- Web.JobsUi.Internal.Types: [jobTimeStarted] :: Job -> Maybe ZonedTime
- Web.JobsUi.Internal.Types: [myjobsVar] :: ServerState -> TVar Jobs
- Web.JobsUi.Internal.Types: [paramDesc] :: Param -> Text
- Web.JobsUi.Internal.Types: [paramInputType] :: Param -> ParamInputType
- Web.JobsUi.Internal.Types: [paramValidation] :: Param -> Text -> IO (Result Text Text)
- Web.JobsUi.Internal.Types: [running] :: JobsDS a -> Maybe a
- Web.JobsUi.Internal.Types: [waiting] :: JobsDS a -> Seq a
- Web.JobsUi.Internal.Types: data Job
- Web.JobsUi.Internal.Types: data JobInfo a
- Web.JobsUi.Internal.Types: data JobStatus
- Web.JobsUi.Internal.Types: data JobType
- Web.JobsUi.Internal.Types: data JobsDS a
- Web.JobsUi.Internal.Types: data Param
- Web.JobsUi.Internal.Types: data ParamInputType
- Web.JobsUi.Internal.Types: data Result v a
- Web.JobsUi.Internal.Types: data ServerState
- Web.JobsUi.Internal.Types: getJobParams :: Job -> [Text]
- Web.JobsUi.Internal.Types: getJobType :: Job -> Text
- Web.JobsUi.Internal.Types: instance Data.Foldable.Foldable Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance Data.Traversable.Traversable Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance GHC.Base.Functor Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance GHC.Classes.Eq Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Classes.Eq Web.JobsUi.Internal.Types.JobStatus
- Web.JobsUi.Internal.Types: instance GHC.Classes.Ord Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Show.Show Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Show.Show Web.JobsUi.Internal.Types.JobStatus
- Web.JobsUi.Internal.Types: newtype JobId
- Web.JobsUi.Internal.Types: noJobs :: Jobs
- Web.JobsUi.Internal.Types: type Action ctx a = SpockActionCtx ctx () () ServerState a
- Web.JobsUi.Internal.Types: type Action' ctx = SpockActionCtx ctx () () ServerState
- Web.JobsUi.Internal.Types: type Html = Html ()
- Web.JobsUi.Internal.Types: type Jobs = JobsDS Job
- Web.JobsUi.Run: instance GHC.Exception.Type.Exception Web.JobsUi.Run.MyException
- Web.JobsUi.Run: instance GHC.Show.Show Web.JobsUi.Run.MyException
- Web.JobsUi.Run: run :: [JobType] -> IO ()
- Web.JobsUi.Utils: lookupIO :: Show a => Eq a => a -> [(a, b)] -> IO b

Files

README.md view
@@ -4,10 +4,6 @@  ![Example image](view.png) -## Deps--This package uses hpack and stack.- ## Usage  [See the example project](https://gitlab.com/gilmi/jobs-ui/tree/master/example/Main.hs).
jobs-ui.cabal view
@@ -1,13 +1,7 @@ cabal-version: 1.18 --- This file has been generated from package.yaml by hpack version 0.31.2.------ see: https://github.com/sol/hpack------ hash: cc1d4563ac0034c1a87c5a01bb68a81add04e8d100bc310c416a33984f217884- name:           jobs-ui-version:        0.1.0.0+version:        0.1.0.1 synopsis:       A library for creating a jobs management website running custom jobs. description:    A library for creating a jobs management website running custom jobs by defining jobs in Haskell. category:       Web@@ -17,12 +11,17 @@ license:        Apache-2.0 license-file:   LICENSE build-type:     Simple+ extra-source-files:     Makefile+    stack.yaml+    static/css/normalize.css+    static/css/skeleton.css+    static/css/jobs-ui.css extra-doc-files:     README.md     LICENSE-data-dir:       static+    view.png  source-repository head   type: git@@ -31,15 +30,15 @@ library   exposed-modules:       Web.JobsUi+      Web.JobsUi.Types+  other-modules:+      Paths_jobs_ui       Web.JobsUi.Actions       Web.JobsUi.Forms       Web.JobsUi.Html       Web.JobsUi.Internal.Types       Web.JobsUi.Run-      Web.JobsUi.Types       Web.JobsUi.Utils-  other-modules:-      Paths_jobs_ui   hs-source-dirs:       src   default-extensions: TypeApplications OverloadedStrings ConstraintKinds DataKinds DeriveFunctor DeriveFoldable DeriveTraversable EmptyDataDecls FlexibleContexts KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf PatternGuards PatternSynonyms RankNTypes RecordWildCards NamedFieldPuns ScopedTypeVariables TupleSections ViewPatterns BangPatterns
+ stack.yaml view
@@ -0,0 +1,21 @@+resolver: lts-13.29++packages:+- '.'++extra-deps:+- Spock-digestive-0.3.0.0+- Spock-lucid-0.4.0.1+- digestive-functors-0.8.4.0+- digestive-functors-lucid-0.0.0.5+- pretty-relative-time-0.1.0.0+- Spock-0.13.0.0+- Spock-core-0.13.0.0+- reroute-0.5.0.0+- stm-containers-0.2.16+- focus-0.1.5.2++flags: {}++extra-package-dbs: []+
+ static/css/jobs-ui.css view
@@ -0,0 +1,29 @@+.jobs-list {+}++.waiting-job {+    color: #8c8585;+}+.running-job {+    color: #058aff;+}+.done-job {+    color: #253a46;+}++.failed-job {+    color: #d90101;+}+.success-job {+    color: #11bf11;+}++.cancel-btn {+    color: white;+    background-color: #b10404;+    float: right;+}++.navigation {+    list-style-type: none;+}
+ static/css/normalize.css view
@@ -0,0 +1,427 @@+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */++/**+ * 1. Set default font family to sans-serif.+ * 2. Prevent iOS text size adjust after orientation change, without disabling+ *    user zoom.+ */++html {+  font-family: sans-serif; /* 1 */+  -ms-text-size-adjust: 100%; /* 2 */+  -webkit-text-size-adjust: 100%; /* 2 */+}++/**+ * Remove default margin.+ */++body {+  margin: 0;+}++/* HTML5 display definitions+   ========================================================================== */++/**+ * Correct `block` display not defined for any HTML5 element in IE 8/9.+ * Correct `block` display not defined for `details` or `summary` in IE 10/11+ * and Firefox.+ * Correct `block` display not defined for `main` in IE 11.+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+main,+menu,+nav,+section,+summary {+  display: block;+}++/**+ * 1. Correct `inline-block` display not defined in IE 8/9.+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.+ */++audio,+canvas,+progress,+video {+  display: inline-block; /* 1 */+  vertical-align: baseline; /* 2 */+}++/**+ * Prevent modern browsers from displaying `audio` without controls.+ * Remove excess height in iOS 5 devices.+ */++audio:not([controls]) {+  display: none;+  height: 0;+}++/**+ * Address `[hidden]` styling not present in IE 8/9/10.+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.+ */++[hidden],+template {+  display: none;+}++/* Links+   ========================================================================== */++/**+ * Remove the gray background color from active links in IE 10.+ */++a {+  background-color: transparent;+}++/**+ * Improve readability when focused and also mouse hovered in all browsers.+ */++a:active,+a:hover {+  outline: 0;+}++/* Text-level semantics+   ========================================================================== */++/**+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.+ */++abbr[title] {+  border-bottom: 1px dotted;+}++/**+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.+ */++b,+strong {+  font-weight: bold;+}++/**+ * Address styling not present in Safari and Chrome.+ */++dfn {+  font-style: italic;+}++/**+ * Address variable `h1` font-size and margin within `section` and `article`+ * contexts in Firefox 4+, Safari, and Chrome.+ */++h1 {+  font-size: 2em;+  margin: 0.67em 0;+}++/**+ * Address styling not present in IE 8/9.+ */++mark {+  background: #ff0;+  color: #000;+}++/**+ * Address inconsistent and variable font size in all browsers.+ */++small {+  font-size: 80%;+}++/**+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.+ */++sub,+sup {+  font-size: 75%;+  line-height: 0;+  position: relative;+  vertical-align: baseline;+}++sup {+  top: -0.5em;+}++sub {+  bottom: -0.25em;+}++/* Embedded content+   ========================================================================== */++/**+ * Remove border when inside `a` element in IE 8/9/10.+ */++img {+  border: 0;+}++/**+ * Correct overflow not hidden in IE 9/10/11.+ */++svg:not(:root) {+  overflow: hidden;+}++/* Grouping content+   ========================================================================== */++/**+ * Address margin not present in IE 8/9 and Safari.+ */++figure {+  margin: 1em 40px;+}++/**+ * Address differences between Firefox and other browsers.+ */++hr {+  -moz-box-sizing: content-box;+  box-sizing: content-box;+  height: 0;+}++/**+ * Contain overflow in all browsers.+ */++pre {+  overflow: auto;+}++/**+ * Address odd `em`-unit font size rendering in all browsers.+ */++code,+kbd,+pre,+samp {+  font-family: monospace, monospace;+  font-size: 1em;+}++/* Forms+   ========================================================================== */++/**+ * Known limitation: by default, Chrome and Safari on OS X allow very limited+ * styling of `select`, unless a `border` property is set.+ */++/**+ * 1. Correct color not being inherited.+ *    Known issue: affects color of disabled elements.+ * 2. Correct font properties not being inherited.+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.+ */++button,+input,+optgroup,+select,+textarea {+  color: inherit; /* 1 */+  font: inherit; /* 2 */+  margin: 0; /* 3 */+}++/**+ * Address `overflow` set to `hidden` in IE 8/9/10/11.+ */++button {+  overflow: visible;+}++/**+ * Address inconsistent `text-transform` inheritance for `button` and `select`.+ * All other form control elements do not inherit `text-transform` values.+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.+ * Correct `select` style inheritance in Firefox.+ */++button,+select {+  text-transform: none;+}++/**+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`+ *    and `video` controls.+ * 2. Correct inability to style clickable `input` types in iOS.+ * 3. Improve usability and consistency of cursor style between image-type+ *    `input` and others.+ */++button,+html input[type="button"], /* 1 */+input[type="reset"],+input[type="submit"] {+  -webkit-appearance: button; /* 2 */+  cursor: pointer; /* 3 */+}++/**+ * Re-set default cursor for disabled elements.+ */++button[disabled],+html input[disabled] {+  cursor: default;+}++/**+ * Remove inner padding and border in Firefox 4+.+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+  border: 0;+  padding: 0;+}++/**+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in+ * the UA stylesheet.+ */++input {+  line-height: normal;+}++/**+ * It's recommended that you don't attempt to style these elements.+ * Firefox's implementation doesn't respect box-sizing, padding, or width.+ *+ * 1. Address box sizing set to `content-box` in IE 8/9/10.+ * 2. Remove excess padding in IE 8/9/10.+ */++input[type="checkbox"],+input[type="radio"] {+  box-sizing: border-box; /* 1 */+  padding: 0; /* 2 */+}++/**+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain+ * `font-size` values of the `input`, it causes the cursor style of the+ * decrement button to change from `default` to `text`.+ */++input[type="number"]::-webkit-inner-spin-button,+input[type="number"]::-webkit-outer-spin-button {+  height: auto;+}++/**+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome+ *    (include `-moz` to future-proof).+ */++input[type="search"] {+  -webkit-appearance: textfield; /* 1 */+  -moz-box-sizing: content-box;+  -webkit-box-sizing: content-box; /* 2 */+  box-sizing: content-box;+}++/**+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.+ * Safari (but not Chrome) clips the cancel button when the search input has+ * padding (and `textfield` appearance).+ */++input[type="search"]::-webkit-search-cancel-button,+input[type="search"]::-webkit-search-decoration {+  -webkit-appearance: none;+}++/**+ * Define consistent border, margin, and padding.+ */++fieldset {+  border: 1px solid #c0c0c0;+  margin: 0 2px;+  padding: 0.35em 0.625em 0.75em;+}++/**+ * 1. Correct `color` not being inherited in IE 8/9/10/11.+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.+ */++legend {+  border: 0; /* 1 */+  padding: 0; /* 2 */+}++/**+ * Remove default vertical scrollbar in IE 8/9/10/11.+ */++textarea {+  overflow: auto;+}++/**+ * Don't inherit the `font-weight` (applied by a rule above).+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.+ */++optgroup {+  font-weight: bold;+}++/* Tables+   ========================================================================== */++/**+ * Remove most spacing between table cells.+ */++table {+  border-collapse: collapse;+  border-spacing: 0;+}++td,+th {+  padding: 0;+}
+ static/css/skeleton.css view
@@ -0,0 +1,599 @@+/*+* Skeleton V2.0.4+* Copyright 2014, Dave Gamache+* www.getskeleton.com+* Free to use under the MIT license.+* http://www.opensource.org/licenses/mit-license.php+* 12/29/2014+*/+++/* Table of contents+––––––––––––––––––––––––––––––––––––––––––––––––––+- Grid+- Base Styles+- Typography+- Links+- Buttons+- Forms+- Lists+- Code+- Tables+- Spacing+- Utilities+- Clearing+- Media Queries+*/+++/* Grid+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.container {+  position: relative;+  width: 100%;+  max-width: 1060px;+  margin: 0 auto;+  padding: 0 20px;+  box-sizing: border-box; }+.column,+.columns {+  width: 100%;+  float: left;+  box-sizing: border-box; }++/* For devices larger than 400px */+@media (min-width: 400px) {+  .container {+    width: 85%;+    padding: 0; }+}++/* For devices larger than 550px */+@media (min-width: 550px) {+  .container {+    width: 80%; }+  .column,+  .columns {+    margin-left: 4%; }+  .column:first-child,+  .columns:first-child {+    margin-left: 0; }++  .one.column,+  .one.columns                    { width: 4.66666666667%; }+  .two.columns                    { width: 13.3333333333%; }+  .three.columns                  { width: 22%;            }+  .four.columns                   { width: 30.6666666667%; }+  .five.columns                   { width: 39.3333333333%; }+  .six.columns                    { width: 48%;            }+  .seven.columns                  { width: 56.6666666667%; }+  .eight.columns                  { width: 65.3333333333%; }+  .nine.columns                   { width: 74.0%;          }+  .ten.columns                    { width: 82.6666666667%; }+  .eleven.columns                 { width: 91.3333333333%; }+  .twelve.columns                 { width: 100%; margin-left: 0; }++  .one-third.column               { width: 30.6666666667%; }+  .two-thirds.column              { width: 65.3333333333%; }++  .one-half.column                { width: 48%; }++  /* Offsets */+  .offset-by-one.column,+  .offset-by-one.columns          { margin-left: 8.66666666667%; }+  .offset-by-two.column,+  .offset-by-two.columns          { margin-left: 17.3333333333%; }+  .offset-by-three.column,+  .offset-by-three.columns        { margin-left: 26%;            }+  .offset-by-four.column,+  .offset-by-four.columns         { margin-left: 34.6666666667%; }+  .offset-by-five.column,+  .offset-by-five.columns         { margin-left: 43.3333333333%; }+  .offset-by-six.column,+  .offset-by-six.columns          { margin-left: 52%;            }+  .offset-by-seven.column,+  .offset-by-seven.columns        { margin-left: 60.6666666667%; }+  .offset-by-eight.column,+  .offset-by-eight.columns        { margin-left: 69.3333333333%; }+  .offset-by-nine.column,+  .offset-by-nine.columns         { margin-left: 78.0%;          }+  .offset-by-ten.column,+  .offset-by-ten.columns          { margin-left: 86.6666666667%; }+  .offset-by-eleven.column,+  .offset-by-eleven.columns       { margin-left: 95.3333333333%; }++  .offset-by-one-third.column,+  .offset-by-one-third.columns    { margin-left: 34.6666666667%; }+  .offset-by-two-thirds.column,+  .offset-by-two-thirds.columns   { margin-left: 69.3333333333%; }++  .offset-by-one-half.column,+  .offset-by-one-half.columns     { margin-left: 52%; }++}++/* mine */++.edit-event {+}++.attending li {+    list-style-type: none;+    display: inline-block;+    margin: 0.5rem;+}++.event-attendants {+    border-top: solid 1px #eee;+    padding: 0.5rem;+    padding-top: 2rem;+    margin-bottom: 2rem;+}+.event-attendants:first-child {+    border-top-width: 0px;+}++footer {+    margin-top: 2rem;+    border-top: solid 1px #eee;+    padding-top: 2rem;+    text-align: center;+    color: #777;+}+footer a {+    color: #6691b6;+}+header h1 a {+    color: #444744;+}+.top {+    border-bottom: solid 1px #eee;+    margin-bottom: 2rem;+}++.attendants {+    padding-left: 0.5rem;+    padding-right: 0.5rem;+}++.attendants h4 {+    padding-left: 0.5rem;+}++.attendants ul {+    border-bottom: solid 1px #ccc;+    padding-bottom: 0.8rem;+    margin-bottom: 2.0rem;+    padding-left: 1rem;+}++.event h2 {+    margin-bottom: 1.0rem;+}++.edit-event {+    margin-bottom: 1.5rem;+    font-size: 1.3rem;+}++.event-info {+    padding: 7rem;+    margin-bottom: 2rem;+    color: #9f5a5a;+    font-size: 1.3rem;+    border-spacing: 1rem;+}+.event-info th {+    text-align: center;+}+.event-info td {+    text-align: center;+}++.edit-event a {+    color: #982424;+}++.edit-event a:hover {+    color: #c86464;+}++nav {+    padding-right: 0.5rem;+    margin-top: 0.5rem;+    font-size: 1.3rem;+    text-align: right;+    color: #555;+}+nav ul {+    padding-top: 0rem;+    padding-bottom: 0rem;+    margin-top: 0.5rem;+}+nav p {+    margin-bottom: 0.5rem;+}++.signed-in {+    margin-right: 0.5rem;+    color: #359;+}++nav li {+    list-style-type: none;+    display: inline-block;+    margin: 0.5rem;+}++.container {+    padding: 0.2rem;+    margin: 2rem auto;+}++nav li:after {+    margin-left: 1rem;+    content: "|";+    color: #ccc;+}+nav li:last-child:after {+    margin-left: 0rem;+    content: "";+}++form textarea {+    height: 30rem;+}+.error {+    color: red;+}+.digestive-functors-error-list {+    display: inline;+}+.digestive-functors-error {+    display: inline;+    margin-left: 10px;+    margin-right: 10px;+    color: red;+}+.digestive-functors-error ul {+    margin-left: 0;+    padding-left: 0;+}++.attending {+    text-align: center;+}++.securePostLink {+    display: inline;+    text-align: center;+}+.securePostLink input {+    display: inline-block !important;+    padding: 0 20px !important;+}++.markuser {+    color: #359 !important;+}+.markgreen {+    border-color: #2FdE25 !important;+    border-size: 6px;+}+.markred {+    border-color: #E72E27 !important;+    border-size: 6px;+}+.top-desc {+    color: #9f5a5a;+    margin-left: 2rem;+}++/* Base Styles+–––––––––––––––––––––––––––––––––––––––––––––––––– */+/* NOTE+html is set to 62.5% so that all the REM measurements throughout Skeleton+are based on 10px sizing. So basically 1.5rem = 15px :) */+html {+  font-size: 70%; }+body {+  font-size: 1.4em; /* currently ems cause chrome bug misinterpreting rems on body element */+  line-height: 1.2;+  font-family: Helvetica, Arial, sans-serif;+  color: #222;+}++/* Typography+–––––––––––––––––––––––––––––––––––––––––––––––––– */+h1, h2, h3, h4, h5, h6 {+  margin-top: 0;+  margin-bottom: 1.6rem;+  font-weight: 500;+}+h1 { font-size: 2.6rem; line-height: 1.1;  letter-spacing: -.05rem;}+h2 { font-size: 2.2rem; line-height: 1.15; letter-spacing: -.05rem; }+h3 { font-size: 1.8rem; line-height: 1.2;  letter-spacing: -.05rem; }+h4 { font-size: 1.6rem; line-height: 1.25; letter-spacing: -.03rem; }+h5 { font-size: 1.4rem; line-height: 1.4;  letter-spacing: -.02rem; }+h6 { font-size: 1.4rem; line-height: 1.5;  letter-spacing: 0; }++/* Larger than phablet */+@media (min-width: 550px) {+  h1 { font-size: 3.4rem; }+  h2 { font-size: 2.6rem; }+  h3 { font-size: 2.2rem; }+  h4 { font-size: 1.8rem; }+  h5 { font-size: 1.6rem; }+  h6 { font-size: 1.5rem; }+  body { font-size: 1.6em; }+}++p {+    margin-top: 0;+    margin-bottom: 1.6rem;+}+++/* Links+–––––––––––––––––––––––––––––––––––––––––––––––––– */+a {+    color: #0b85ef;+}+a:hover {+    color: #0b55df;+}++h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {+    color: #0b85ef;+    text-decoration: none;+}+a:hover {+    color: magenta;+}++/* Buttons+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.button,+button,+input[type="submit"],+input[type="reset"],+input[type="button"] {+  display: inline-block;+  height: 34px;+  padding: 0 25px;+  text-align: center;+  font-size: 14px;+  line-height: 34px;+  text-transform: uppercase;+  white-space: nowrap;+  border-radius: 4px;+  border: 1px solid #bbb;+  cursor: pointer;+  box-sizing: border-box; }+.button:hover,+button:hover,+input[type="submit"]:hover,+input[type="reset"]:hover,+input[type="button"]:hover,+.button:focus,+button:focus,+input[type="submit"]:focus,+input[type="reset"]:focus,+input[type="button"]:focus {+  color: #333;+  border-color: #888;+  outline: 0; }+.button.button-primary,+button.button-primary,+input[type="submit"].button-primary,+input[type="reset"].button-primary,+input[type="button"].button-primary {+  color: #FFF;+  background-color: #33C3F0;+  border-color: #33C3F0; }+.button.button-primary:hover,+button.button-primary:hover,+input[type="submit"].button-primary:hover,+input[type="reset"].button-primary:hover,+input[type="button"].button-primary:hover,+.button.button-primary:focus,+button.button-primary:focus,+input[type="submit"].button-primary:focus,+input[type="reset"].button-primary:focus,+input[type="button"].button-primary:focus {+  border-color: #1EAEDB; }+++/* Forms+–––––––––––––––––––––––––––––––––––––––––––––––––– */+input[type="email"],+input[type="number"],+input[type="search"],+input[type="text"],+input[type="tel"],+input[type="url"],+input[type="password"],+textarea,+select {+  height: 38px;+  padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */+  background-color: #fff;+  border: 1px solid #D1D1D1;+  border-radius: 4px;+  box-shadow: none;+  box-sizing: border-box; }+/* Removes awkward default styles on some inputs for iOS */+input[type="email"],+input[type="number"],+input[type="search"],+input[type="text"],+input[type="tel"],+input[type="url"],+input[type="password"],+textarea {+  -webkit-appearance: none;+     -moz-appearance: none;+          appearance: none; }+textarea {+  min-height: 65px;+  padding-top: 6px;+  padding-bottom: 6px; }+input[type="email"]:focus,+input[type="number"]:focus,+input[type="search"]:focus,+input[type="text"]:focus,+input[type="tel"]:focus,+input[type="url"]:focus,+input[type="password"]:focus,+textarea:focus,+select:focus {+  border: 1px solid #33C3F0;+  outline: 0; }+label,+legend {+  display: inline-block;+  margin: .5rem;+}+fieldset {+  padding: 0;+  border-width: 0; }+input[type="checkbox"],+input[type="radio"] {+  display: inline; }+label > .label-body {+  display: inline-block;+  margin-left: .5rem;+}+++/* Lists+–––––––––––––––––––––––––––––––––––––––––––––––––– */+ul {+  list-style: circle inside; }+ol {+  list-style: decimal inside; }+ol, ul {+  padding-left: 0;+  margin-top: 0; }+ul ul,+ul ol,+ol ol,+ol ul {+  margin: 1.5rem 0 1.5rem 3rem;+  font-size: 90%; }+li {+  margin-bottom: 1rem; }+++/* Code+–––––––––––––––––––––––––––––––––––––––––––––––––– */+code {+  padding: .2rem .5rem;+  margin: 0 .2rem;+  font-size: 90%;+  white-space: nowrap;+  background: #F1F1F1;+  border: 1px solid #E1E1E1;+  border-radius: 4px; }+pre > code {+  display: block;+  padding: 1rem 1.5rem;+  white-space: pre; }+++/* Tables+–––––––––––––––––––––––––––––––––––––––––––––––––– */+th,+td {+  padding: 12px 15px;+  text-align: left;+  border-bottom: 1px solid #E1E1E1; }+th:first-child,+td:first-child {+  padding-left: 0; }+th:last-child,+td:last-child {+  padding-right: 0; }+++/* Spacing+–––––––––––––––––––––––––––––––––––––––––––––––––– */+button,+.button {+  margin-bottom: 1rem; }+input,+textarea,+select,+fieldset {+  margin-bottom: .5rem; }+pre,+blockquote,+dl,+figure,+table,+p,+ul,+ol,+form {+  margin-bottom: 1.5rem; }+++/* Utilities+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.u-full-width {+  width: 100%;+  box-sizing: border-box; }+.u-max-full-width {+  max-width: 100%;+  box-sizing: border-box; }+.u-pull-right {+  float: right; }+.u-pull-left {+  float: left; }+++/* Misc+–––––––––––––––––––––––––––––––––––––––––––––––––– */+hr {+  margin-top: 3rem;+  margin-bottom: 3.5rem;+  border-width: 0;+  border-top: 1px solid #E1E1E1; }+++/* Clearing+–––––––––––––––––––––––––––––––––––––––––––––––––– */++/* Self Clearing Goodness */+.container:after,+.row:after,+.u-cf {+  content: "";+  display: table;+  clear: both; }+++/* Media Queries+–––––––––––––––––––––––––––––––––––––––––––––––––– */+/*+Note: The best way to structure the use of media queries is to create the queries+near the relevant code. For example, if you wanted to change the styles for buttons+on small devices, paste the mobile query code up in the buttons section and style it+there.+*/+++/* Larger than mobile */+@media (min-width: 400px) {}++/* Larger than phablet (also point when grid becomes active) */+@media (min-width: 550px) {}++/* Larger than tablet */+@media (min-width: 750px) {}++/* Larger than desktop */+@media (min-width: 1000px) {}++/* Larger than Desktop HD */+@media (min-width: 1200px) {}
+ view.png view

binary file changed (absent → 40422 bytes)