From ebcf87ea93bde882765348d0d77964d232bf0364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferdinand=20M=C3=BCtsch?= Date: Fri, 23 Dec 2022 10:54:56 +0100 Subject: [PATCH] feat(wip): polish settings ui for subscriptions --- README.md | 1 + config/config.go | 1 + models/view/settings.go | 20 +++++---- routes/settings.go | 20 +++++---- routes/subscription.go | 3 +- scripts/bundle_icons.js | 1 + static/assets/css/app.dist.css | 2 +- static/assets/css/app.dist.css.br | Bin 3379 -> 3411 bytes static/assets/js/icons.dist.js | 46 ++++++++++---------- static/assets/js/icons.dist.js.br | Bin 19800 -> 19548 bytes views/settings.tpl.html | 70 ++++++++++++++++++++---------- 11 files changed, 97 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index bb3685e..36dc3a0 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ You can specify configuration options either via a config file (default: `config | `app.heartbeat_max_age /`
`WAKAPI_HEARTBEAT_MAX_AGE` | `4320h` | Maximum acceptable age of a heartbeat (see [`ParseDuration`](https://pkg.go.dev/time#ParseDuration)) | | `app.custom_languages` | - | Map from file endings to language names | | `app.avatar_url_template` /
`WAKAPI_AVATAR_URL_TEMPLATE` | (see [`config.default.yml`](config.default.yml)) | URL template for external user avatar images (e.g. from [Dicebear](https://dicebear.com) or [Gravatar](https://gravatar.com)) | +| `app.support_contact` /
`WAKAPI_SUPPORT_CONTACT` | `hostmaster@wakapi.dev` | E-Mail address to display as a support contact on the page | | `server.port` /
`WAKAPI_PORT` | `3000` | Port to listen on | | `server.listen_ipv4` /
`WAKAPI_LISTEN_IPV4` | `127.0.0.1` | IPv4 network address to listen on (leave blank to disable IPv4) | | `server.listen_ipv6` /
`WAKAPI_LISTEN_IPV6` | `::1` | IPv6 network address to listen on (leave blank to disable IPv6) | diff --git a/config/config.go b/config/config.go index 14c15d9..616b8e3 100644 --- a/config/config.go +++ b/config/config.go @@ -79,6 +79,7 @@ type appConfig struct { CountCacheTTLMin int `yaml:"count_cache_ttl_min" default:"30" env:"WAKAPI_COUNT_CACHE_TTL_MIN"` DataRetentionMonths int `yaml:"data_retention_months" default:"-1" env:"WAKAPI_DATA_RETENTION_MONTHS"` AvatarURLTemplate string `yaml:"avatar_url_template" default:"api/avatar/{username_hash}.svg" env:"WAKAPI_AVATAR_URL_TEMPLATE"` + SupportContact string `yaml:"support_contact" default:"hostmaster@wakapi.dev" env:"WAKAPI_SUPPORT_CONTACT"` CustomLanguages map[string]string `yaml:"custom_languages"` Colors map[string]map[string]string `yaml:"-"` } diff --git a/models/view/settings.go b/models/view/settings.go index 314abdb..d0430b2 100644 --- a/models/view/settings.go +++ b/models/view/settings.go @@ -3,15 +3,17 @@ package view import "github.com/muety/wakapi/models" type SettingsViewModel struct { - User *models.User - LanguageMappings []*models.LanguageMapping - Aliases []*SettingsVMCombinedAlias - Labels []*SettingsVMCombinedLabel - Projects []string - SubscriptionPrice string - ApiKey string - Success string - Error string + User *models.User + LanguageMappings []*models.LanguageMapping + Aliases []*SettingsVMCombinedAlias + Labels []*SettingsVMCombinedLabel + Projects []string + SubscriptionPrice string + DataRetentionMonths int + SupportContact string + ApiKey string + Success string + Error string } type SettingsVMCombinedAlias struct { diff --git a/routes/settings.go b/routes/settings.go index d6d47e4..82c8ef1 100644 --- a/routes/settings.go +++ b/routes/settings.go @@ -740,14 +740,16 @@ func (h *SettingsHandler) buildViewModel(r *http.Request) *view.SettingsViewMode } return &view.SettingsViewModel{ - User: user, - LanguageMappings: mappings, - Aliases: combinedAliases, - Labels: combinedLabels, - Projects: projects, - ApiKey: user.ApiKey, - SubscriptionPrice: subscriptionPrice, - Success: r.URL.Query().Get("success"), - Error: r.URL.Query().Get("error"), + User: user, + LanguageMappings: mappings, + Aliases: combinedAliases, + Labels: combinedLabels, + Projects: projects, + ApiKey: user.ApiKey, + SubscriptionPrice: subscriptionPrice, + SupportContact: h.config.App.SupportContact, + DataRetentionMonths: h.config.App.DataRetentionMonths, + Success: r.URL.Query().Get("success"), + Error: r.URL.Query().Get("error"), } } diff --git a/routes/subscription.go b/routes/subscription.go index ce72d2a..f694713 100644 --- a/routes/subscription.go +++ b/routes/subscription.go @@ -18,6 +18,7 @@ import ( "github.com/stripe/stripe-go/v74/webhook" "io/ioutil" "net/http" + "strings" "time" ) @@ -41,7 +42,7 @@ func NewSubscriptionHandler( if err != nil { logbuch.Fatal("failed to fetch stripe plan details: %v", err) } - config.Subscriptions.StandardPrice = fmt.Sprintf("%2.f €", price.UnitAmountDecimal/100.0) // TODO: respect actual currency + config.Subscriptions.StandardPrice = strings.TrimSpace(fmt.Sprintf("%2.f €", price.UnitAmountDecimal/100.0)) // TODO: respect actual currency logbuch.Info("enabling subscriptions with stripe payment for %s / month", config.Subscriptions.StandardPrice) } diff --git a/scripts/bundle_icons.js b/scripts/bundle_icons.js index 5b60ee8..97c5ef4 100755 --- a/scripts/bundle_icons.js +++ b/scripts/bundle_icons.js @@ -77,6 +77,7 @@ let icons = [ 'mdi:code-json', 'mdi:bash', 'twemoji:frowning-face', + 'ci:dot-03-m' ] const output = path.normalize(path.join(__dirname, '../static/assets/js/icons.dist.js')) diff --git a/static/assets/css/app.dist.css b/static/assets/css/app.dist.css index dbe5fa0..0d42a2d 100644 --- a/static/assets/css/app.dist.css +++ b/static/assets/css/app.dist.css @@ -1 +1 @@ -/*! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mb-10{margin-bottom:2.5rem}.mt-10{margin-top:2.5rem}.mb-14{margin-bottom:3.5rem}.-mt-4{margin-top:-1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-4{margin-top:1rem}.mt-12{margin-top:3rem}.mb-8{margin-bottom:2rem}.mr-1{margin-right:.25rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-16{margin-bottom:4rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.-mb-1{margin-bottom:-.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-1\/12{width:8.333333%}.w-3\/12{width:25%}.w-5\/12{width:41.666667%}.w-1\/2{width:50%}.w-4{width:1rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-40{width:10rem}.w-12{width:3rem}.max-w-lg{max-width:32rem}.max-w-screen-lg{max-width:1024px}.max-w-4xl{max-width:56rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-10{padding-top:2.5rem}.pt-8{padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-snug{line-height:1.375}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.mt-14{margin-top:3.5rem}.text-7xl{font-size:4.5rem;line-height:1.1}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.h1-subcaption{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{background-color:rgb(31 41 55/var(--tw-bg-opacity));color:rgb(75 85 99/var(--tw-text-opacity))}.btn-disabled,.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1}.btn-primary{background-color:rgb(4 120 87/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid #0000;outline-offset:2px;background-color:#242b3a}.input-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid #0000;outline-offset:2px;background-color:#242b3a}.select-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem;padding:.25rem;text-align:right}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgb(156 163 175/var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgb(209 213 219/var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgb(4 120 87/var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgb(202 138 4/var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.max-available{max-width:-moz-available;max-width:-webkit-fill-available;max-width:fill-available}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:bg-gray-800:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-3\/4{width:75%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file +/*! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mb-10{margin-bottom:2.5rem}.mt-10{margin-top:2.5rem}.mb-14{margin-bottom:3.5rem}.-mt-4{margin-top:-1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-4{margin-top:1rem}.mt-12{margin-top:3rem}.mb-8{margin-bottom:2rem}.mr-1{margin-right:.25rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-16{margin-bottom:4rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.-mb-1{margin-bottom:-.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-1\/12{width:8.333333%}.w-3\/12{width:25%}.w-5\/12{width:41.666667%}.w-1\/2{width:50%}.w-4{width:1rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-40{width:10rem}.w-12{width:3rem}.max-w-lg{max-width:32rem}.max-w-screen-lg{max-width:1024px}.max-w-4xl{max-width:56rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-10{padding-top:2.5rem}.pt-8{padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-snug{line-height:1.375}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.mt-14{margin-top:3.5rem}.text-7xl{font-size:4.5rem;line-height:1.1}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.h1-subcaption{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{background-color:rgb(31 41 55/var(--tw-bg-opacity));color:rgb(75 85 99/var(--tw-text-opacity))}.btn-disabled,.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1}.btn-primary{background-color:rgb(4 120 87/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.input-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.select-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem;padding:.25rem;text-align:right}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgb(156 163 175/var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgb(209 213 219/var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgb(4 120 87/var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgb(202 138 4/var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.max-available{max-width:-moz-available;max-width:-webkit-fill-available;max-width:fill-available}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:bg-gray-800:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-3\/4{width:75%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:w-1\/2{width:50%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file diff --git a/static/assets/css/app.dist.css.br b/static/assets/css/app.dist.css.br index 6536ed600991c39d1bf1fa32db817a3972cdc6e3..eaecea1ecdd845c260e1310a1611aee18796c74b 100644 GIT binary patch literal 3411 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 P!bghqo>-=Fo?!w2(`%RT literal 3379 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 diff --git a/static/assets/js/icons.dist.js b/static/assets/js/icons.dist.js index 96668ca..f1c35d5 100644 --- a/static/assets/js/icons.dist.js +++ b/static/assets/js/icons.dist.js @@ -1,23 +1,23 @@ -Iconify.addCollection({"prefix":"fxemoji","icons":{"key":{"body":""},"rocket":{"body":""},"satelliteantenna":{"body":""},"lockandkey":{"body":""},"clipboard":{"body":""},"running":{"body":""}},"lastModified":1656182158,"width":512,"height":512}); -Iconify.addCollection({"prefix":"flat-color-icons","icons":{"donate":{"body":""},"clock":{"body":""}},"lastModified":1656182045,"width":48,"height":48}); -Iconify.addCollection({"prefix":"codicon","icons":{"github-inverted":{"body":""}},"lastModified":1664948546}); -Iconify.addCollection({"prefix":"ant-design","icons":{"check-square-filled":{"body":""}},"lastModified":1656181339,"width":1024,"height":1024}); -Iconify.addCollection({"prefix":"emojione-v1","icons":{"white-heavy-check-mark":{"body":""},"alarm-clock":{"body":""},"warning":{"body":""},"backhand-index-pointing-right":{"body":""}},"lastModified":1656181746,"width":64,"height":64}); -Iconify.addCollection({"prefix":"twemoji","icons":{"light-bulb":{"body":""},"gear":{"body":""},"frowning-face":{"body":""}},"lastModified":1656183328,"width":36,"height":36}); -Iconify.addCollection({"prefix":"noto","icons":{"play-button":{"body":""},"stop-button":{"body":""}},"lastModified":1663655351,"width":128,"height":128}); -Iconify.addCollection({"prefix":"eva","icons":{"corner-right-down-fill":{"body":""},"checkmark-circle-2-fill":{"body":""}},"lastModified":1656181844,"width":24,"height":24}); -Iconify.addCollection({"prefix":"bi","icons":{"heart-fill":{"body":""},"people-fill":{"body":""}},"lastModified":1668153111}); -Iconify.addCollection({"prefix":"ic","icons":{"round-person":{"body":""},"round-dashboard":{"body":""}},"lastModified":1660374224,"width":24,"height":24}); -Iconify.addCollection({"prefix":"bx","icons":{"bxs-bar-chart-alt-2":{"body":"","hidden":true},"code-curly":{"body":""},"bxs-heart":{"body":"","hidden":true}},"aliases":{"bx-code-curly":{"parent":"code-curly"}},"lastModified":1663655035,"width":24,"height":24}); -Iconify.addCollection({"prefix":"fluent","icons":{"data-bar-horizontal-24-filled":{"body":""},"key-32-filled":{"body":"","width":32,"height":32},"key-24-filled":{"body":""}},"lastModified":1661146680,"width":24,"height":24}); -Iconify.addCollection({"prefix":"ci","icons":{"settings-filled":{"body":""}},"lastModified":1665515631,"width":24,"height":24}); -Iconify.addCollection({"prefix":"akar-icons","icons":{"chevron-down":{"body":""}},"lastModified":1667372991,"width":24,"height":24}); -Iconify.addCollection({"prefix":"ls","icons":{"logout":{"body":"","height":672}},"lastModified":1656182593,"width":717,"height":717}); -Iconify.addCollection({"prefix":"majesticons","icons":{"clipboard-copy":{"body":"","hidden":true}},"lastModified":1657087337,"width":24,"height":24}); -Iconify.addCollection({"prefix":"fa-regular","icons":{"calendar-alt":{"body":"","width":448}},"lastModified":1656181869,"width":512,"height":512}); -Iconify.addCollection({"prefix":"ph","icons":{"books-bold":{"body":""}},"lastModified":1656183091,"width":256,"height":256}); -Iconify.addCollection({"prefix":"fa-solid","icons":{"external-link-alt":{"body":""}},"lastModified":1656181888,"width":512,"height":512}); -Iconify.addCollection({"prefix":"simple-icons","icons":{"wakatime":{"body":""}},"lastModified":1667769085,"width":24,"height":24}); -Iconify.addCollection({"prefix":"heroicons-solid","icons":{"light-bulb":{"body":""},"server":{"body":""}},"lastModified":1661525143,"width":20,"height":20}); -Iconify.addCollection({"prefix":"ion","icons":{"rocket":{"body":""}},"lastModified":1656182492,"width":512,"height":512}); -Iconify.addCollection({"prefix":"mdi","icons":{"language-c":{"body":""},"language-cpp":{"body":""},"language-go":{"body":""},"language-haskell":{"body":""},"language-html5":{"body":""},"language-java":{"body":""},"language-javascript":{"body":""},"language-kotlin":{"body":""},"language-lua":{"body":""},"language-php":{"body":""},"language-python":{"body":""},"language-r":{"body":""},"language-ruby":{"body":""},"language-rust":{"body":""},"language-swift":{"body":""},"language-typescript":{"body":""},"language-markdown":{"body":""},"vuejs":{"body":""},"react":{"body":""},"code-json":{"body":""},"bash":{"body":""}},"lastModified":1665726087,"width":24,"height":24}); +Iconify.addCollection({"prefix":"fxemoji","icons":{"key":{"body":""},"rocket":{"body":""},"satelliteantenna":{"body":""},"lockandkey":{"body":""},"clipboard":{"body":""},"running":{"body":""}},"width":512,"height":512}); +Iconify.addCollection({"prefix":"flat-color-icons","icons":{"donate":{"body":""},"clock":{"body":""}},"width":48,"height":48}); +Iconify.addCollection({"prefix":"codicon","icons":{"github-inverted":{"body":""}},"width":16,"height":16}); +Iconify.addCollection({"prefix":"ant-design","icons":{"check-square-filled":{"body":""}},"width":1024,"height":1024}); +Iconify.addCollection({"prefix":"emojione-v1","icons":{"white-heavy-check-mark":{"body":""},"alarm-clock":{"body":""},"warning":{"body":""},"backhand-index-pointing-right":{"body":""}},"width":64,"height":64}); +Iconify.addCollection({"prefix":"twemoji","icons":{"light-bulb":{"body":""},"gear":{"body":""},"frowning-face":{"body":""}},"width":36,"height":36}); +Iconify.addCollection({"prefix":"noto","icons":{"play-button":{"body":""},"stop-button":{"body":""}},"width":128,"height":128}); +Iconify.addCollection({"prefix":"eva","icons":{"corner-right-down-fill":{"body":""},"checkmark-circle-2-fill":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"bi","icons":{"heart-fill":{"body":""},"people-fill":{"body":""}},"width":16,"height":16}); +Iconify.addCollection({"prefix":"ic","icons":{"round-person":{"body":""},"round-dashboard":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"bx","icons":{"bxs-bar-chart-alt-2":{"body":""},"bx-code-curly":{"body":""},"bxs-heart":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"fluent","icons":{"data-bar-horizontal-24-filled":{"body":""},"key-32-filled":{"body":"","width":32,"height":32},"key-24-filled":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"ci","icons":{"settings-filled":{"body":""},"dot-03-m":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"akar-icons","icons":{"chevron-down":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"ls","icons":{"logout":{"body":"","height":672}},"width":717,"height":717,"inlineHeight":1086,"inlineTop":-205,"verticalAlign":-0.2}); +Iconify.addCollection({"prefix":"majesticons","icons":{"clipboard-copy":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"fa-regular","icons":{"calendar-alt":{"body":"","width":448}},"width":512,"height":512}); +Iconify.addCollection({"prefix":"ph","icons":{"books-bold":{"body":""}},"width":256,"height":256}); +Iconify.addCollection({"prefix":"fa-solid","icons":{"external-link-alt":{"body":""}},"width":512,"height":512}); +Iconify.addCollection({"prefix":"simple-icons","icons":{"wakatime":{"body":""}},"width":24,"height":24}); +Iconify.addCollection({"prefix":"heroicons-solid","icons":{"light-bulb":{"body":""},"server":{"body":""}},"width":20,"height":20}); +Iconify.addCollection({"prefix":"ion","icons":{"rocket":{"body":""}},"width":512,"height":512}); +Iconify.addCollection({"prefix":"mdi","icons":{"language-c":{"body":""},"language-cpp":{"body":""},"language-go":{"body":""},"language-haskell":{"body":""},"language-html5":{"body":""},"language-java":{"body":""},"language-javascript":{"body":""},"language-kotlin":{"body":""},"language-lua":{"body":""},"language-php":{"body":""},"language-python":{"body":""},"language-r":{"body":""},"language-ruby":{"body":""},"language-rust":{"body":""},"language-swift":{"body":""},"language-typescript":{"body":""},"language-markdown":{"body":""},"vuejs":{"body":""},"react":{"body":""},"code-json":{"body":""},"bash":{"body":""}},"width":24,"height":24}); diff --git a/static/assets/js/icons.dist.js.br b/static/assets/js/icons.dist.js.br index 3616d26be291912b5bb89cb5f4fd1c620a3d8cb3..b2b41d213c715d742083bce550e6e5940f6454ab 100644 GIT binary patch literal 19548 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 diff --git a/views/settings.tpl.html b/views/settings.tpl.html index de40b54..8c09024 100644 --- a/views/settings.tpl.html +++ b/views/settings.tpl.html @@ -555,7 +555,7 @@

- + You can connect Wakapi with the official WakaTime (or another Wakapi instance, when optionally specifying a custom API URL) in a way that all heartbeats sent to Wakapi are relayed. This way, you can use both services at the same time. To get started, get your API key and paste it here.

To forward data to another Wakapi instance, use https://<your-server>/api/compat/wakatime/v1 as a URL.

@@ -594,7 +594,7 @@
- + This integration with allows to generate badges for README pages or forums. To enable this feature, you need to grant public, unauthorized access to the respective endpoints. See Permissions. Adapt the URL's label and color parameters for customized badges.

In addition, there is an endpoint compatible with Shields.IO to allow for even more customization (e.g. different styles). Only available on public instances, not on localhost. @@ -651,7 +651,7 @@
- + Wakapi intregrates with GitHub Readme Stats to generate fancy cards for you. To enable this feature, you need to grant public, unauthorized access to the respective endpoints. See Permissions.

Only available on public instances, not on localhost. @@ -676,30 +676,52 @@ {{ if .SubscriptionsEnabled }}
-
+
+ Subscription + + By default, this Wakapi instance will only store historical coding activity for {{ .DataRetentionMonths }} months. + However, if you want to support the project, you can opt for a paid subscription for {{ .SubscriptionPrice }} / month to get unlimited history with no restrictions. + You can cancel your subscription at any times!
+ Read more about the idea of adding paid subscriptions to Wakapi here.
+
+
+ {{ if not .User.HasActiveSubscription }} -
-
- Subscription - - By default, this Wakapi instance will only store historical coding activity for 12 months. However, if you want to support the project, you can opt for a paid subscription for {{ .SubscriptionPrice }} / month to get unlimited history with no restrictions. - -
-
- -
+ How it works + + Without a subscription, your coding activity older than {{ .DataRetentionMonths }} months will get deleted by a routine that is run every day. + If you do have an active subscription at the time of checking, your data is kept.
+ In other words, for every point in time X, where you do not currently have an active subscription, all data older than X - {{ .DataRetentionMonths }} months gets dropped. +
+
+ Please note + + If you just purchased a subscription, it might take a moment until it's active. Try refresh this page in a minute. Otherwise, please contact {{ .SupportContact }}. + +
+ {{ end }} + + + Your currently oldest data point is from 2022-01-01. + +
+ + Subscription status: + + {{ if .User.HasActiveSubscription }} + Active (until {{ .User.SubscribedUntil.T | date }}) + {{ else }} + Inactive + {{ end }} + + + {{ if not .User.HasActiveSubscription }} + +
{{ else }} -
-
- Subscription - - Congratulations! You have an active subscription until {{ .User.SubscribedUntil.T | date }}. - -
-
- -
+ +
{{ end }}