diff --git a/Gemfile b/Gemfile index 41d38cba..490f0e3b 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ ruby '~> 3.1' gem 'foreman' gem 'jsbundling-rails' +gem 'cssbundling-rails' gem 'dotenv-rails', require: 'dotenv/rails-now' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' @@ -14,16 +15,6 @@ gem 'rails', '~> 6.1.0' # Use Puma as the app server gem 'puma' -# Solo incluir las gemas cuando estemos en desarrollo o compilando los -# assets. No es necesario instalarlas en producción. -# -# XXX: Supuestamente Rails ya soporta RAILS_GROUPS, pero Bundler no. -if ENV['RAILS_GROUPS']&.split(',')&.include? 'assets' - gem 'sassc-rails' -# gem 'uglifier', '>= 1.3.0' - gem 'bootstrap', '~> 4' -end - gem 'nokogiri' # Turbolinks makes navigating your web application faster. Read more: diff --git a/Gemfile.lock b/Gemfile.lock index 2babd6dd..21727af0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -89,8 +89,6 @@ GEM addressable (2.8.1) public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) - autoprefixer-rails (10.4.7.0) - execjs (~> 2) bcrypt (3.1.18-x86_64-linux-musl) bcrypt_pbkdf (1.1.0-x86_64-linux-musl) benchmark-ips (2.10.0) @@ -100,10 +98,6 @@ GEM chartkick (>= 3.2) railties (>= 5) safely_block (>= 0.1.1) - bootstrap (4.6.2) - autoprefixer-rails (>= 9.1.0) - popper_js (>= 1.16.1, < 2) - sassc-rails (>= 2.0.0) brakeman (5.4.0) builder (3.2.4) capybara (2.18.0) @@ -121,6 +115,8 @@ GEM concurrent-ruby-ext (1.1.10-x86_64-linux-musl) concurrent-ruby (= 1.1.10) crass (1.0.6) + cssbundling-rails (1.1.2) + railties (>= 6.0.0) database_cleaner (2.0.1) database_cleaner-active_record (~> 2.0.0) database_cleaner-active_record (2.0.1) @@ -168,7 +164,6 @@ GEM exception_notification (4.5.0) actionmailer (>= 5.2, < 8) activesupport (>= 5.2, < 8) - execjs (2.8.1) factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -348,7 +343,6 @@ GEM pg_search (2.3.6) activerecord (>= 5.2) activesupport (>= 5.2) - popper_js (1.16.1) prometheus_exporter (2.0.6) webrick pry (0.14.1) @@ -467,12 +461,6 @@ GEM errbase (>= 0.1.1) sassc (2.4.0-x86_64-linux-musl) ffi (~> 1.9) - sassc-rails (2.1.2) - railties (>= 4.0.0) - sassc (>= 2.0) - sprockets (> 3.0) - sprockets-rails - tilt selenium-webdriver (4.7.1) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) @@ -550,12 +538,12 @@ DEPENDENCIES bcrypt (~> 3.1.7) bcrypt_pbkdf blazer - bootstrap (~> 4) brakeman capybara (~> 2.13) chartkick commonmarker concurrent-ruby-ext + cssbundling-rails database_cleaner derailed_benchmarks devise @@ -617,7 +605,6 @@ DEPENDENCIES rubyzip rugged safe_yaml - sassc-rails selenium-webdriver sourcemap spring diff --git a/Procfile.dev b/Procfile.dev index 000e2ed4..db85284f 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,2 +1,3 @@ web: unset PORT && bin/rails server js: yarn build --watch +css: yarn build:css --watch diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index d333340b..57b152e8 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -1,4 +1,3 @@ //= link_tree ../images //= link_directory ../javascripts .js -//= link_directory ../stylesheets .css //= link_tree ../builds diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss deleted file mode 100644 index dc61b5d3..00000000 --- a/app/assets/stylesheets/application.scss +++ /dev/null @@ -1,547 +0,0 @@ -$black: black; -$white: white; -$grey: grey; -$cyan: #13fefe; -$magenta: #f206f9; - -$colors: ( - "black": $black, - "white": $white, - "cyan": $cyan, - "magenta": $magenta -); - -// Redefinir variables de Bootstrap -$primary: $magenta; -$secondary: $black; -$jumbotron-bg: transparent; -$enable-rounded: false; -$form-feedback-valid-color: $cyan; -$form-feedback-invalid-color: $magenta; -$form-feedback-icon-valid-color: $black; -$component-active-bg: $magenta; - -$spacers: ( - 2-plus: 0.75rem -); - -@import "bootstrap"; -@import "editor"; - -.editor { - .editor-content { - figure { - border: 1px solid transparentize($magenta, 0.3) - } - } -} - -:root { - --foreground: #{$black}; - --background: #{$white}; - --color: #{$magenta}; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground: #{$white}; - --background: #{$black}; - --color: #{$cyan}; - } -} - -// TODO: Encontrar la forma de generar esto desde los locales de Rails -$custom-file-text: ( - en: 'Browse', - es: 'Buscar archivo' -); - -@font-face { - font-family: 'Saira'; - font-style: normal; - font-weight: 500; - font-display: optional; - src: local('Saira Medium'), local('Saira-Medium'), - font-url('saira/v3/SairaMedium-subset.woff2') format('woff2'), - font-url('saira/v3/SairaMedium-subset.zopfli.woff') format('woff'); -} - -@font-face { - font-family: 'Saira'; - font-style: normal; - font-weight: 700; - font-display: optional; - src: local('Saira Bold'), local('Saira-Bold'), - font-url('saira/v3/SairaBold-subset.woff2') format('woff2'), - font-url('saira/v3/SairaBold-subset.zopfli.woff') format('woff'); -} - -body { - font-family: Saira, sans-serif; - background-color: var(--background); - color: var(--foreground); -} - -* { - .rtl, - &[dir=rtl] { - text-align: right; - } -} - -a { - color: var(--color); - - &:hover { - color: var(--color); - } - - &[target=_blank] { - /* TODO: Convertir a base64 para no hacer peticiones extra */ - &:after { - content: image-url('icon_external_link.png'); - } - } -} - -$footer-height: 60px; - -/* Colores */ -$purpura: #5c004d; -$turquesa: #009389; -$azul: #0b2660; -$fucsia: #e9193e; -$celeste: #91f0ff; -$verde: #96d643; - -ol.breadcrumb { - background-color: transparent; -} - -.breadcrumb-item, -.breadcrumb-item.active, -.table, -.form-control, -.custom-file-label { - color: var(--foreground); -} - -.table tr.sticky-top, -.form-control, -.custom-file-label { - background-color: var(--background); -} - -.turbolinks-progress-bar { - height: 3px; - background-color: $magenta; -} - -.btn-text { - background-color: transparent; - border: none; -} - -.inline { - display: inline; -} - -.sindu_dragger table { - background: transparent !important; -} - -.d-none, .d-block { - transition: all 3s; -} - -.mapable, -.taggable { - .input-map, - .input-tag { - legend { - @extend .sr-only - } - - label { - margin: 0.5rem; - } - - input { - vertical-align: middle; - - &[type=text] { - @extend .form-control; - display: inline-block; - width: calc(100% - 93px); - } - - &[type=checkbox] { - } - - &[type=button] { - @extend .btn; - @extend .btn-info; - @extend .m-0; - } - } - } -} - -svg { - .is-path-magenta { - fill: var(--foreground); - } -} - -.btn { - background-color: var(--foreground); - color: var(--background); - border: none; - border-radius: 0; - margin-right: 0.3rem; - margin-bottom: 0.3rem; - - &:hover { - color: var(--background); - background-color: var(--color); - } - - &:active { - background-color: var(--color); - } - - &:focus { - box-shadow: 0 0 0 0.2rem var(--color); - } -} - -.btn-sm { - @extend .badge -} - -.black-bg { - color: $white; - background-color: $black; - - svg { - .is-path-magenta { - fill: $white - } - } - - a { - color: $magenta; - } - - .btn { - background-color: $white; - color: $black; - border: none; - - &:hover { - color: $black; - background-color: $cyan; - } - - &:active { - background-color: $cyan; - } - - &:focus { - box-shadow: 0 0 0 0.2rem $cyan; - } - } - - .breadcrumb-item { - color: $white; - } -} - -::-moz-selection, -::selection { - background: var(--color); - color: var(--background); -} - -.black-bg { - ::selection, - ::-moz-selection { - background-color: $magenta; - color: $white; - } -} - -.handle { - img { - height: 1rem; - } -} - -.custom-control-label { - font-weight: bold; -} - -.designs { - .design { - margin-top: 1rem; - } -} - -.editor { - .ProseMirror-menubar { - min-height: 32px; - color: var(--color); - background-color: var(--background); - border: none; - - .ProseMirror-menu-active { - border-radius: unset; - color: var(--color); - } - } - - .ProseMirror { - @extend .form-control; - - height: auto; - } -} - -.vh-100 { - height: 100vh !important; -} - -// Viene de sutty-base-jekyll-theme -$prefixes: ("", "-webkit-", "-ms-", "-o-", "-moz-"); -$overflows: auto, hidden, scroll; - -/* - * Usar en animaciones, empiezan rápido y desaceleran hacia el final. - */ -$bezier: cubic-bezier(0.75, 0, 0.25, 1); - -/* - * Ocultar la barra de scroll, útil para sliders horizontales. - */ -.no-scrollbar { - scrollbar-width: none; - -webkit-overflow-scrolling: touch; - - &::-webkit-scrollbar { display: none; } -} - -@each $cursor in (pointer none) { - .cursor-#{$cursor} { - cursor: $cursor; - } -} - -@each $direction in (top, right, bottom, left) { - .#{$direction}-0 { - #{$direction}: 0 - } -} - -@each $value in $overflows { - .overflow-#{$value} { overflow: $value !important; } -} - -@each $axis in (y, x) { - @each $value in $overflows { - .overflow-#{$axis}-#{$value} { overflow-#{$axis}: $value !important; } - } -} - -/* - * Poder aumentar o disminuir el alto de la tipografía, se usa de la - * misma forma que los modificadores de padding y margin. - */ -@each $size, $length in $spacers { - .f-#{$size} { - font-size: $length !important; - } - - .text-column-#{$size} { - column-count: $size; - } - - .line-clamp-#{$size} { - overflow: hidden; - display: -webkit-box; - -webkit-line-clamp: $size; - -webkit-box-orient: vertical; - } -} - -/* - * Modificadores de Bootstrap que no tienen versión responsive. - */ -@each $grid-breakpoint, $_ in $grid-breakpoints { - @include media-breakpoint-up($grid-breakpoint) { - // border - .border-#{$grid-breakpoint} { border: $border-width solid $border-color !important; } - .border-#{$grid-breakpoint}-top { border-top: $border-width solid $border-color !important; } - .border-#{$grid-breakpoint}-right { border-right: $border-width solid $border-color !important; } - .border-#{$grid-breakpoint}-bottom { border-bottom: $border-width solid $border-color !important; } - .border-#{$grid-breakpoint}-left { border-left: $border-width solid $border-color !important; } - .border-#{$grid-breakpoint}-0 { border: 0 !important; } - .border-#{$grid-breakpoint}-top-0 { border-top: 0 !important; } - .border-#{$grid-breakpoint}-right-0 { border-right: 0 !important; } - .border-#{$grid-breakpoint}-bottom-0 { border-bottom: 0 !important; } - .border-#{$grid-breakpoint}-left-0 { border-left: 0 !important; } - - // alineación - .text-#{$grid-breakpoint}-left { text-align: left !important; } - .text-#{$grid-breakpoint}-right { text-align: right !important; } - .text-#{$grid-breakpoint}-center { text-align: center !important; } - - // posición - @each $position in $positions { - .position-#{$grid-breakpoint}-#{$position} { position: $position !important; } - } - - // anchos y altos - @each $prop, $abbrev in (width: w, height: h) { - @each $size, $length in $sizes { - .#{$abbrev}-#{$grid-breakpoint}-#{$size} { #{$prop}: $length !important; } - } - } - - // versión responsive de f - @each $size, $length in $spacers { - .f-#{$grid-breakpoint}-#{$size} { - font-size: $length !important; - } - - .text-column-#{$grid-breakpoint}-#{$size} { - column-count: $size; - } - } - } -} - -/* - * Crea una propiedad con prefijos de navegador - */ -@mixin vendor-prefix($property, $definition...) { - @each $prefix in $prefixes { - #{$prefix}$property: $definition; - } -} - -/* - * Crea clases para asignar colores según la lista de colores. - */ -@each $color, $_ in $colors { - .background-#{$color} { - background-color: var(--#{$color}); - - &:focus { - background-color: var(--#{$color}); - } - } - - .scrollbar-#{$color} { - scrollbar-color: var(--#{$color}) transparent; - scrollbar-width: thin; - - &::-webkit-scrollbar { - width: 5px; - height: 8px; - background-color: transparent; - } - - &::-webkit-scrollbar-thumb { - background: var(--#{$color}); - } - } - - .border-#{$color} { - border-color: var(--#{$color}) !important; - } - - .hover-bg-#{$color} { - &:hover { - background-color: var(--#{$color}); - } - } - - .hover-#{$color} { - &:hover { - color: var(--#{$color}); - } - } - - .#{$color} { - color: var(--#{$color}); - - &:focus { - color: var(--#{$color}); - } - - ::-moz-selection, - ::selection { - background: var(--#{$color}); - color: white; - } - - svg { - * { - fill: var(--#{$color}); - } - } - - .form-control { - border-color: var(--#{$color}); - color: var(--#{$color}); - } - - hr { - border-color: var(--#{$color}); - } - - a { - color: var(--#{$color}); - } - } -} - -@import "new_editor"; - -.new-editor { - .editor { - table { - @extend .table; - @extend .table-responsive; - } - } -} - -.content { - p { min-height: $font-size-base * $line-height-base; } - h1 { min-height: $h1-font-size * $headings-line-height; } - h2 { min-height: $h2-font-size * $headings-line-height; } - h3 { min-height: $h3-font-size * $headings-line-height; } - h4 { min-height: $h4-font-size * $headings-line-height; } - h5 { min-height: $h5-font-size * $headings-line-height; } - h6 { min-height: $h6-font-size * $headings-line-height; } - - iframe { border: 0; } - - audio { width: 100%; } - - img, - video, - iframe { - @extend .img-fluid; - height: auto; - } - - & > * { - margin-bottom: 1rem; - - &:last-child { - margin-bottom: 0; - } - } -} diff --git a/app/assets/stylesheets/styles.scss b/app/assets/stylesheets/styles.scss index dc61b5d3..279570ce 100644 --- a/app/assets/stylesheets/styles.scss +++ b/app/assets/stylesheets/styles.scss @@ -1,32 +1,5 @@ -$black: black; -$white: white; -$grey: grey; -$cyan: #13fefe; -$magenta: #f206f9; -$colors: ( - "black": $black, - "white": $white, - "cyan": $cyan, - "magenta": $magenta -); - -// Redefinir variables de Bootstrap -$primary: $magenta; -$secondary: $black; -$jumbotron-bg: transparent; -$enable-rounded: false; -$form-feedback-valid-color: $cyan; -$form-feedback-invalid-color: $magenta; -$form-feedback-icon-valid-color: $black; -$component-active-bg: $magenta; - -$spacers: ( - 2-plus: 0.75rem -); - -@import "bootstrap"; -@import "editor"; +@import "./editor"; .editor { .editor-content { @@ -56,28 +29,7 @@ $custom-file-text: ( es: 'Buscar archivo' ); -@font-face { - font-family: 'Saira'; - font-style: normal; - font-weight: 500; - font-display: optional; - src: local('Saira Medium'), local('Saira-Medium'), - font-url('saira/v3/SairaMedium-subset.woff2') format('woff2'), - font-url('saira/v3/SairaMedium-subset.zopfli.woff') format('woff'); -} - -@font-face { - font-family: 'Saira'; - font-style: normal; - font-weight: 700; - font-display: optional; - src: local('Saira Bold'), local('Saira-Bold'), - font-url('saira/v3/SairaBold-subset.woff2') format('woff2'), - font-url('saira/v3/SairaBold-subset.zopfli.woff') format('woff'); -} - body { - font-family: Saira, sans-serif; background-color: var(--background); color: var(--foreground); } @@ -99,7 +51,7 @@ a { &[target=_blank] { /* TODO: Convertir a base64 para no hacer peticiones extra */ &:after { - content: image-url('icon_external_link.png'); + content: url('icon_external_link.png'); } } } @@ -420,15 +372,6 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } } -/* - * Crea una propiedad con prefijos de navegador - */ -@mixin vendor-prefix($property, $definition...) { - @each $prefix in $prefixes { - #{$prefix}$property: $definition; - } -} - /* * Crea clases para asignar colores según la lista de colores. */ diff --git a/app/javascript/application.js b/app/javascript/application.js index 827e70fa..2533d616 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -21,4 +21,3 @@ import 'chartkick/chart.js' Rails.start() Turbolinks.start() ActiveStorage.start() -import * as bootstrap from "bootstrap" diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index 73605112..6ffb1349 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -1,9 +1,6 @@ -// Load all the controllers within this directory and all subdirectories. -// Controller files must be named *_controller.js. +import { Application } from "stimulus"; -import { Application } from "stimulus" - -const application = Application.start() +const application = Application.start(); import GeoController from "./geo_controller"; import ReorderController from "./reorder_controller"; diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 343e3b0b..24d52075 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -14,6 +14,7 @@ %script{ type: 'text/javascript', src: '/env.js' } = csrf_meta_tags = javascript_include_tag 'application', 'data-turbo-track': 'reload', defer: true + = stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': 'reload' = stylesheet_link_tag 'styles', media: 'all', 'data-turbo-track': 'reload' = favicon_link_tag 'sutty_cuadrada.png', rel: 'apple-touch-icon', type: 'image/png' diff --git a/package.json b/package.json index a0224155..63a6ef77 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,10 @@ "private": true, "dependencies": { "@airbrake/browser": "^1.4.1", - "@rails/actiontext": "^6.0.0", "@rails/activestorage": "^6.1.7", "@rails/ujs": "^6.1.7", "@suttyweb/editor": "^0.1.13", + "bootstrap": "^4.6.0", "chart.js": "^3.5.1", "chartkick": "^4.0.5", "commonmark": "^0.30.0", @@ -19,6 +19,7 @@ "prosemirror-markdown": "^1.4.5", "prosemirror-schema-basic": "^1.1.2", "punycode": "^2.1.1", + "sass": "^1.57.1", "stimulus": "^1.1.1", "turbolinks": "^5.2.0", "typescript": "^4.1.5", @@ -28,6 +29,7 @@ "@types/rails__activestorage": "^6.0.0" }, "scripts": { - "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets --loader:.png=file --loader:.jpg=file --loader:.woff2=file" + "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets --loader:.png=file --loader:.jpg=file --loader:.woff=file --loader:.woff2=file --loader:.eot=file --loader:.svg=file --loader:.ttf=file --loader:.otf=file", + "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/styles.css --no-source-map --load-path=node_modules" } } diff --git a/yarn.lock b/yarn.lock index 84aeb129..915b196b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,6 +14,116 @@ promise-polyfill "^8.1.3" tdigest "^0.1.1" +"@esbuild/android-arm64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.12.tgz#86c4fdd7c0d65fe9dcbe138fbe72720658ec3b88" + integrity sha512-0LacmiIW+X0/LOLMZqYtZ7d4uY9fxYABAYhSSOu+OGQVBqH4N5eIYgkT7bBFnR4Nm3qo6qS3RpHKVrDASqj/uQ== + +"@esbuild/android-arm@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.12.tgz#15e33bb1c8c2f560fbb27cda227c0fa22d83d0ef" + integrity sha512-CTWgMJtpCyCltrvipZrrcjjRu+rzm6pf9V8muCsJqtKujR3kPmU4ffbckvugNNaRmhxAF1ZI3J+0FUIFLFg8KA== + +"@esbuild/android-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.12.tgz#3b0ddaf59fdf94e8e9fcb2aa6537cbab93d5fe22" + integrity sha512-sS5CR3XBKQXYpSGMM28VuiUnbX83Z+aWPZzClW+OB2JquKqxoiwdqucJ5qvXS8pM6Up3RtJfDnRQZkz3en2z5g== + +"@esbuild/darwin-arm64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.12.tgz#ac6c5d85cabf20de5047b55eab7f3c252d9aae71" + integrity sha512-Dpe5hOAQiQRH20YkFAg+wOpcd4PEuXud+aGgKBQa/VriPJA8zuVlgCOSTwna1CgYl05lf6o5els4dtuyk1qJxQ== + +"@esbuild/darwin-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.12.tgz#3433e6432dd474994302bcfe35c5420fae46a206" + integrity sha512-ApGRA6X5txIcxV0095X4e4KKv87HAEXfuDRcGTniDWUUN+qPia8sl/BqG/0IomytQWajnUn4C7TOwHduk/FXBQ== + +"@esbuild/freebsd-arm64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.12.tgz#b150587dc54dc2369cb826e6ee9f94fc5ec14635" + integrity sha512-AMdK2gA9EU83ccXCWS1B/KcWYZCj4P3vDofZZkl/F/sBv/fphi2oUqUTox/g5GMcIxk8CF1CVYTC82+iBSyiUg== + +"@esbuild/freebsd-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.12.tgz#e682a61cde8d6332aaeb4c2b28fce0d833928903" + integrity sha512-KUKB9w8G/xaAbD39t6gnRBuhQ8vIYYlxGT2I+mT6UGRnCGRr1+ePFIGBQmf5V16nxylgUuuWVW1zU2ktKkf6WQ== + +"@esbuild/linux-arm64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.12.tgz#d0d75e10796d4f1414ecaf16a8071ce05446cb9f" + integrity sha512-29HXMLpLklDfmw7T2buGqq3HImSUaZ1ArmrPOMaNiZZQptOSZs32SQtOHEl8xWX5vfdwZqrBfNf8Te4nArVzKQ== + +"@esbuild/linux-arm@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.12.tgz#945ebcd99205fadea5ee22bff624189bd95c0484" + integrity sha512-vhDdIv6z4eL0FJyNVfdr3C/vdd/Wc6h1683GJsFoJzfKb92dU/v88FhWdigg0i6+3TsbSDeWbsPUXb4dif2abg== + +"@esbuild/linux-ia32@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.12.tgz#132e61b2124eee6033bf7f0d5b312c02524d39db" + integrity sha512-JFDuNDTTfgD1LJg7wHA42o2uAO/9VzHYK0leAVnCQE/FdMB599YMH73ux+nS0xGr79pv/BK+hrmdRin3iLgQjg== + +"@esbuild/linux-loong64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.12.tgz#d27dc1e203c0d0516c1daadb7988f88b643f8ea2" + integrity sha512-xTGzVPqm6WKfCC0iuj1fryIWr1NWEM8DMhAIo+4rFgUtwy/lfHl+Obvus4oddzRDbBetLLmojfVZGmt/g/g+Rw== + +"@esbuild/linux-mips64el@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.12.tgz#9616c378ca76f12d06ffaf242da68a58be966a18" + integrity sha512-zI1cNgHa3Gol+vPYjIYHzKhU6qMyOQrvZ82REr5Fv7rlh5PG6SkkuCoH7IryPqR+BK2c/7oISGsvPJPGnO2bHQ== + +"@esbuild/linux-ppc64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.12.tgz#b033a248212249c05c162b64124744345a041f92" + integrity sha512-/C8OFXExoMmvTDIOAM54AhtmmuDHKoedUd0Otpfw3+AuuVGemA1nQK99oN909uZbLEU6Bi+7JheFMG3xGfZluQ== + +"@esbuild/linux-riscv64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.12.tgz#b6476abff413b5b472e6cf093086b9d5be4553a8" + integrity sha512-qeouyyc8kAGV6Ni6Isz8hUsKMr00EHgVwUKWNp1r4l88fHEoNTDB8mmestvykW6MrstoGI7g2EAsgr0nxmuGYg== + +"@esbuild/linux-s390x@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.12.tgz#981a639f8c2a2e0646f47eba0fae7c2c270b208b" + integrity sha512-s9AyI/5vz1U4NNqnacEGFElqwnHusWa81pskAf8JNDM2eb6b2E6PpBmT8RzeZv6/TxE6/TADn2g9bb0jOUmXwQ== + +"@esbuild/linux-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.12.tgz#01b777229d8baf068eeeb7cd7c396aea4d1ebd36" + integrity sha512-e8YA7GQGLWhvakBecLptUiKxOk4E/EPtSckS1i0MGYctW8ouvNUoh7xnU15PGO2jz7BYl8q1R6g0gE5HFtzpqQ== + +"@esbuild/netbsd-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.12.tgz#6d4b9de7dc3ac99bf04653fe640b3be63c57b1aa" + integrity sha512-z2+kUxmOqBS+6SRVd57iOLIHE8oGOoEnGVAmwjm2aENSP35HPS+5cK+FL1l+rhrsJOFIPrNHqDUNechpuG96Sg== + +"@esbuild/openbsd-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.12.tgz#2a28010b1848466586d5e2189e9f1b8334b65708" + integrity sha512-PAonw4LqIybwn2/vJujhbg1N9W2W8lw9RtXIvvZoyzoA/4rA4CpiuahVbASmQohiytRsixbNoIOUSjRygKXpyA== + +"@esbuild/sunos-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.12.tgz#3ee120008cc759d604825dd25501152071ef30f0" + integrity sha512-+wr1tkt1RERi+Zi/iQtkzmMH4nS8+7UIRxjcyRz7lur84wCkAITT50Olq/HiT4JN2X2bjtlOV6vt7ptW5Gw60Q== + +"@esbuild/win32-arm64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.12.tgz#8c599a91f1c55b3df304c450ac0613855c10502e" + integrity sha512-XEjeUSHmjsAOJk8+pXJu9pFY2O5KKQbHXZWQylJzQuIBeiGrpMeq9sTVrHefHxMOyxUgoKQTcaTS+VK/K5SviA== + +"@esbuild/win32-ia32@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.12.tgz#102b5a44b514f8849a10cc4cc618c60c70a4c536" + integrity sha512-eRKPM7e0IecUAUYr2alW7JGDejrFJXmpjt4MlfonmQ5Rz9HWpKFGCjuuIRgKO7W9C/CWVFXdJ2GjddsBXqQI4A== + +"@esbuild/win32-x64@0.16.12": + version "0.16.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.12.tgz#31197bb509049b63c059c4808ac58e66fdff7479" + integrity sha512-iPYKN78t3op2+erv2frW568j1q0RpqX6JOLZ7oPPaAV1VaF7dDstOrNw37PVOYoTWE11pV4A1XUitpdEFNIsPg== + "@kurkle/color@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.1.tgz#ef72bc8022ccf77cdd2715097f062ee591ec145c" @@ -102,6 +212,14 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -112,11 +230,28 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bintrees@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== +bootstrap@^4.6.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.2.tgz#8e0cd61611728a5bf65a3a2b8d6ff6c77d5d7479" + integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ== + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + chart.js@>=3.0.2: version "4.1.1" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.1.1.tgz#9bd96ddaa444205ec55dd103f713f65530e9a2df" @@ -143,6 +278,21 @@ chartkick@^4.0.5: chartjs-adapter-date-fns ">=2.0.0" date-fns ">=2.0.0" +"chokidar@>=3.0.0 <4.0.0": + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + combined-stream@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -199,6 +349,41 @@ error-stack-parser@^2.0.4: dependencies: stackframe "^1.3.4" +esbuild@^0.16.12: + version "0.16.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.12.tgz#60850b9ad2f103f1c4316be42c34d5023f27378d" + integrity sha512-eq5KcuXajf2OmivCl4e89AD3j8fbV+UTE9vczEzq5haA07U9oOTzBWlh3+6ZdjJR7Rz2QfWZ2uxZyhZxBgJ4+g== + optionalDependencies: + "@esbuild/android-arm" "0.16.12" + "@esbuild/android-arm64" "0.16.12" + "@esbuild/android-x64" "0.16.12" + "@esbuild/darwin-arm64" "0.16.12" + "@esbuild/darwin-x64" "0.16.12" + "@esbuild/freebsd-arm64" "0.16.12" + "@esbuild/freebsd-x64" "0.16.12" + "@esbuild/linux-arm" "0.16.12" + "@esbuild/linux-arm64" "0.16.12" + "@esbuild/linux-ia32" "0.16.12" + "@esbuild/linux-loong64" "0.16.12" + "@esbuild/linux-mips64el" "0.16.12" + "@esbuild/linux-ppc64" "0.16.12" + "@esbuild/linux-riscv64" "0.16.12" + "@esbuild/linux-s390x" "0.16.12" + "@esbuild/linux-x64" "0.16.12" + "@esbuild/netbsd-x64" "0.16.12" + "@esbuild/openbsd-x64" "0.16.12" + "@esbuild/sunos-x64" "0.16.12" + "@esbuild/win32-arm64" "0.16.12" + "@esbuild/win32-ia32" "0.16.12" + "@esbuild/win32-x64" "0.16.12" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + fork-awesome@^1.1.7: version "1.2.0" resolved "https://registry.yarnpkg.com/fork-awesome/-/fork-awesome-1.2.0.tgz#acd43f1e1f54510fa45209c31385b4fde3a95003" @@ -213,6 +398,23 @@ form-data@^2.5.0: combined-stream "^1.0.6" mime-types "^2.1.12" +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +immutable@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" + integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== + "input-map@git+https://0xacab.org/sutty/input-map.git": version "0.0.7" resolved "git+https://0xacab.org/sutty/input-map.git#e2a356c63e4e956f74dc26527bacb2c7c82c8773" @@ -221,6 +423,30 @@ form-data@^2.5.0: version "0.0.7" resolved "git+https://0xacab.org/sutty/input-tag.git#7e76b7646c4a3dbccae8b840dde43daa5c71e99d" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + leaflet@^1.7.1: version "1.9.3" resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.3.tgz#52ec436954964e2d3d39e0d433da4b2500d74414" @@ -273,11 +499,21 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + orderedmap@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.1.0.tgz#819457082fa3a06abd316d83a281a1ca467437cd" integrity sha512-/pIFexOm6S70EPdznemIz3BQZoJ4VTFrhqzu0ACBqBgeLsLxq8e6Jim63ImIfwW/zAD1AlXpRMlOv3aghmo4dA== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + promise-polyfill@^8.1.3: version "8.2.3" resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.3.tgz#2edc7e4b81aff781c88a0d577e5fe9da822107c6" @@ -417,11 +653,37 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0: prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + rope-sequence@^1.3.0: version "1.3.3" resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.3.tgz#3f67fc106288b84b71532b4a5fd9d4881e4457f0" integrity sha512-85aZYCxweiD5J8yTEbw+E6A27zSnLPNDL0WfPdw3YYodq7WjnTKo0q4dtyQ2gz23iPT8Q9CUyJtAaUNcTxRf5Q== +sass@^1.57.1: + version "1.57.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + spark-md5@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" @@ -452,6 +714,13 @@ tdigest@^0.1.1: dependencies: bintrees "1.0.2" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"