avo 1.3.2 → 1.4.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of avo might be problematic. Click here for more details.

Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/app/components/avo/common/key_value_component.html.erb +53 -0
  4. data/app/components/avo/common/key_value_component.rb +11 -0
  5. data/app/components/avo/edit/fields/key_value_field_component.html.erb +3 -0
  6. data/app/components/avo/edit/fields/key_value_field_component.rb +4 -0
  7. data/app/components/avo/edit/fields/trix_field_component.html.erb +19 -10
  8. data/app/components/avo/show/fields/key_value_field_component.html.erb +3 -0
  9. data/app/components/avo/show/fields/key_value_field_component.rb +4 -0
  10. data/app/controllers/avo/application_controller.rb +5 -1
  11. data/app/controllers/avo/attachments_controller.rb +14 -3
  12. data/app/helpers/avo/application_helper.rb +1 -1
  13. data/app/packs/entrypoints/application.js +14 -11
  14. data/app/packs/js/controllers/fields/code_field_controller.js +1 -0
  15. data/app/packs/js/controllers/fields/date_field_controller.js +1 -1
  16. data/app/packs/js/controllers/fields/key_value_controller.js +137 -0
  17. data/app/packs/js/controllers/fields/trix_field_controller.js +121 -0
  18. data/app/views/avo/partials/_javascript.html.erb +3 -1
  19. data/avo.gemspec +1 -1
  20. data/config/routes.rb +4 -0
  21. data/config/webpacker.yml +2 -2
  22. data/lib/avo.rb +1 -1
  23. data/lib/avo/fields/key_value_field.rb +24 -1
  24. data/lib/avo/fields/trix_field.rb +4 -0
  25. data/lib/avo/version.rb +1 -1
  26. data/lib/generators/avo/action_generator.rb +1 -1
  27. data/lib/generators/avo/locales_generator.rb +2 -2
  28. data/lib/generators/avo/templates/action.tt +5 -9
  29. data/lib/generators/avo/templates/locales/avo.en.yml +1 -0
  30. data/lib/generators/avo/templates/locales/avo.nb-NO.yml +81 -0
  31. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +82 -0
  32. data/lib/generators/avo/templates/locales/avo.ro.yml +70 -0
  33. data/public/avo-packs/css/{application-af3e670d.css → application-5bdca030.css} +92 -18
  34. data/public/avo-packs/css/application-5bdca030.css.br +0 -0
  35. data/public/avo-packs/css/application-5bdca030.css.gz +0 -0
  36. data/public/avo-packs/css/application-5bdca030.css.map +1 -0
  37. data/public/avo-packs/css/application-5bdca030.css.map.br +0 -0
  38. data/public/avo-packs/css/application-5bdca030.css.map.gz +0 -0
  39. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js +26 -0
  40. data/public/avo-packs/js/{application-801f1297670a4c6df1b6.js.LICENSE.txt → application-16a456a2b7cb56b01153.js.LICENSE.txt} +0 -0
  41. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.br +0 -0
  42. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.gz +0 -0
  43. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.map +1 -0
  44. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.map.br +0 -0
  45. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.map.gz +0 -0
  46. data/public/avo-packs/manifest.json +15 -15
  47. metadata +36 -19
  48. data/public/avo-packs/css/application-af3e670d.css.br +0 -0
  49. data/public/avo-packs/css/application-af3e670d.css.gz +0 -0
  50. data/public/avo-packs/css/application-af3e670d.css.map +0 -1
  51. data/public/avo-packs/css/application-af3e670d.css.map.br +0 -0
  52. data/public/avo-packs/css/application-af3e670d.css.map.gz +0 -0
  53. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js +0 -26
  54. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js.br +0 -0
  55. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js.gz +0 -0
  56. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js.map +0 -1
  57. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js.map.br +0 -0
  58. data/public/avo-packs/js/application-801f1297670a4c6df1b6.js.map.gz +0 -0
@@ -1,3 +1,5 @@
1
1
  <%= javascript_tag nonce: true do %>
2
- var timezone = '<%= Avo.configuration.timezone %>';
2
+ window.Avo = window.Avo || { configuration: {} }
3
+ Avo.configuration.timezone = '<%= Avo.configuration.timezone %>'
4
+ Avo.configuration.root_path = '<%= Avo.configuration.root_path %>'
3
5
  <% end %>
data/avo.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.files = Dir["{bin,app,config,db,lib,public}/**/*", "MIT-LICENSE", "Rakefile", "README.md", "avo.gemspec", "Gemfile", "Gemfile.lock"]
33
33
 
34
34
  spec.add_dependency "rails", ">= 6.0"
35
- spec.add_dependency "pagy"
35
+ spec.add_dependency "pagy", ">= 3.1.3", "< 4.0"
36
36
  spec.add_dependency "zeitwerk"
37
37
  spec.add_dependency "countries"
38
38
  spec.add_dependency "pundit"
data/config/routes.rb CHANGED
@@ -3,6 +3,10 @@ Avo::Engine.routes.draw do
3
3
 
4
4
  get "resources", to: redirect("/avo")
5
5
 
6
+ scope "avo_api", as: "avo_api" do
7
+ post "/resources/:resource_name/:id/attachments/", to: "attachments#create"
8
+ end
9
+
6
10
  scope "resources", as: "resources" do
7
11
  # Attachments
8
12
  get "/:resource_name/:id/active_storage_attachments/:attachment_name/:signed_attachment_id", to: "attachments#show"
data/config/webpacker.yml CHANGED
@@ -35,8 +35,8 @@ development:
35
35
  dev_server:
36
36
  https: false
37
37
  host: localhost
38
- port: 3039
39
- public: localhost:3039
38
+ port: 7299
39
+ public: localhost:7299
40
40
  # Inject browserside javascript that required by both HMR and Live(full) reload
41
41
  inject_client: true
42
42
  # Hot Module Replacement updates modules while the application is running without a full reload
data/lib/avo.rb CHANGED
@@ -27,7 +27,7 @@ module Avo
27
27
  root_path: ROOT_PATH,
28
28
  public_output_dir: "avo-packs",
29
29
  cache_manifest: Rails.env.production?,
30
- fallback_to_webpacker: -> { Avo::IN_DEVELOPMENT || Rails.env.test?}
30
+ fallback_to_webpacker: -> { Avo::IN_DEVELOPMENT }
31
31
  )
32
32
  end
33
33
  end
@@ -3,6 +3,11 @@ require "json"
3
3
  module Avo
4
4
  module Fields
5
5
  class KeyValueField < BaseField
6
+ attr_reader :key_label
7
+ attr_reader :value_label
8
+ attr_reader :action_text
9
+ attr_reader :disable_adding_rows
10
+
6
11
  def initialize(name, **args, &block)
7
12
  @defaults = {
8
13
  partial_name: "key-value-field"
@@ -33,7 +38,13 @@ module Avo
33
38
  [:"#{id}", "#{id}": {}]
34
39
  end
35
40
 
36
- def hydrate_field(fields, model, resource, view)
41
+ def parsed_value
42
+ value.to_json
43
+ rescue
44
+ {}
45
+ end
46
+
47
+ def options
37
48
  {
38
49
  key_label: @key_label,
39
50
  value_label: @value_label,
@@ -44,6 +55,18 @@ module Avo
44
55
  disable_deleting_rows: @disable_deleting_rows
45
56
  }
46
57
  end
58
+
59
+ def fill_field(model, key, value)
60
+ begin
61
+ new_value = JSON.parse(value)
62
+ rescue
63
+ new_value = {}
64
+ end
65
+
66
+ model[key] = new_value
67
+
68
+ model
69
+ end
47
70
  end
48
71
  end
49
72
  end
@@ -2,6 +2,8 @@ module Avo
2
2
  module Fields
3
3
  class TrixField < BaseField
4
4
  attr_reader :always_show
5
+ attr_reader :attachments_disabled
6
+ attr_reader :attachment_key
5
7
 
6
8
  def initialize(name, **args, &block)
7
9
  @defaults = {
@@ -13,6 +15,8 @@ module Avo
13
15
  hide_on :index
14
16
 
15
17
  @always_show = args[:always_show].present? ? args[:always_show] : false
18
+ @attachments_disabled = args[:attachments_disabled].present? ? args[:attachments_disabled] : false
19
+ @attachment_key = args[:attachment_key].present? ? args[:attachment_key] : nil
16
20
  end
17
21
  end
18
22
  end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0.pre.1"
3
3
  end
@@ -7,7 +7,7 @@ module Generators
7
7
  namespace "avo:action"
8
8
 
9
9
  def create_resource_file
10
- template "action.rb", "app/avo/actions/#{singular_name}.rb"
10
+ template "action.tt", "app/avo/actions/#{singular_name}.rb"
11
11
  end
12
12
  end
13
13
  end
@@ -6,10 +6,10 @@ module Generators
6
6
  source_root File.expand_path("templates", __dir__)
7
7
 
8
8
  namespace "avo:locales"
9
- desc "Creates an Avo initializer adds the route to the routes file."
9
+ desc "Add Avo locale files to your project."
10
10
 
11
11
  def create_files
12
- template "locales/avo.en.yml", "config/locales/avo.en.yml"
12
+ directory File.join(__dir__, "templates", "locales"), "config/locales"
13
13
  end
14
14
  end
15
15
  end
@@ -1,13 +1,9 @@
1
- module Avo
2
- module Actions
3
- class <%= class_name.camelize %> < Action
4
- self.name = '<%= name.underscore.humanize %>'
1
+ class <%= class_name.camelize %> < Avo::BaseAction
2
+ self.name = '<%= name.underscore.humanize %>'
5
3
 
6
- def handle(models:, fields:)
7
- models.each do |model|
8
- # Do something with your models.
9
- end
10
- end
4
+ def handle(models:, fields:)
5
+ models.each do |model|
6
+ # Do something with your models.
11
7
  end
12
8
  end
13
9
  end
@@ -59,6 +59,7 @@ en:
59
59
  and_x_other_resources: 'and %{count} other resources'
60
60
  go_back: 'Go back'
61
61
  home: 'Home'
62
+ new: 'new'
62
63
  attach_item: 'Attach %{item}'
63
64
  choose_item: 'Choose %{item}'
64
65
  create_new_item: 'Create new %{item}'
@@ -0,0 +1,81 @@
1
+ nb:
2
+ avo:
3
+ dashboard: 'Dashboard'
4
+ choose_a_country: 'Velg et land'
5
+ choose_an_option: 'Velg et alternativ'
6
+ are_you_sure_you_want_to_run_this_option: 'Er du sikker?'
7
+ are_you_sure_detach_item: 'Er du sikker på at du vil koble fra %{item}.'
8
+ run: 'Kjør'
9
+ cancel: 'Avslutt'
10
+ action_ran_successfully: 'Suksess!'
11
+ resource_details: "%{item} detaljer: %{title}"
12
+ update_item: 'Oppdatert %{item}: %{title}'
13
+ unauthorized: 'Ikke autorisert'
14
+ attachment_class_attached: '%{attachment_class} lagt til.'
15
+ attachment_class_detached: '%{attachment_class} fjernet.'
16
+ resource_updated: 'Ressurs oppdatert'
17
+ resource_created: 'Ressurs generert'
18
+ resource_destroyed: 'Ressurs slettet'
19
+ switch_to_view: "Bytt til %{view_type} vis"
20
+ click_to_reveal_filters: "Vis filter"
21
+ attachment_destroyed: 'Vedlett slettet'
22
+ failed_to_find_attachment: 'Fant ikke vedlegg'
23
+ you_missed_something_check_form: 'Her mangler du noe. Vennligst sjekk skjemaet.'
24
+ remove_selection: 'Fjern valg'
25
+ select_item: 'Velg'
26
+ delete_file: 'Slett fil'
27
+ delete: 'slett'
28
+ delete_item: 'Slett %{item}'
29
+ download_item: 'Last ned %{item}'
30
+ download_file: 'Last ned fil'
31
+ download: 'Last ned'
32
+ view: 'Vis'
33
+ view_item: 'vis %{item}'
34
+ edit: 'endre'
35
+ edit_item: 'endre %{item}'
36
+ detach_item: 'koble fra %{item}'
37
+ number_of_items:
38
+ zero: 'ingen %{item}'
39
+ one: 'en %{item}'
40
+ other: '%{count} %{item}'
41
+ are_you_sure: 'Er du sikker?'
42
+ filters: 'Filter'
43
+ per_page: 'Per side'
44
+ more: 'Mer'
45
+ attach: 'Legg til'
46
+ cancel: 'Avslutt'
47
+ save: 'Lagre'
48
+ attach_and_attach_another: 'Legg til & Legg til ny'
49
+ hide_content: 'Skjul innhold'
50
+ show_content: 'Vis innhold'
51
+ no_related_item_found: 'Ingen relaterte %{item} funnet'
52
+ no_item_found: 'Ingen %{item} funnet'
53
+ loading: 'Laster'
54
+ confirm: 'Bekreft'
55
+ actions: 'Handlinger'
56
+ resources: 'Ressurser'
57
+ oops_nothing_found: 'Oops! Ingen ting funnet...'
58
+ type_to_search: 'Søk.'
59
+ and_x_other_resources: 'og %{count} andre ressurser'
60
+ go_back: 'Gå tilbake'
61
+ home: 'Hjem'
62
+ attach_item: 'Legg til %{item}'
63
+ choose_item: 'Velge %{item}'
64
+ create_new_item: 'Lag ny %{item}'
65
+ table_view: 'Tabell visning'
66
+ grid_view: 'Grid visning'
67
+ next_page: 'Neste side'
68
+ prev_page: 'Forrige side'
69
+ list_is_empty: 'Listen er tom'
70
+ field_translations:
71
+ file:
72
+ zero: 'filer'
73
+ one: 'fil'
74
+ other: 'filer'
75
+ resource_translations:
76
+ user:
77
+ zero: 'brukere'
78
+ one: 'bruker'
79
+ other: 'brukere'
80
+ reset_filters: 'Nullstill filter'
81
+ not_authorized: 'Du er ikke autorisert til å gjøre denne handlingen.'
@@ -0,0 +1,82 @@
1
+ pt:
2
+ avo:
3
+ dashboard: 'Painel'
4
+ choose_a_country: 'Escolha um país'
5
+ choose_an_option: 'Escolha uma opção'
6
+ are_you_sure_you_want_to_run_this_option: 'Você tem certeza que deseja executar esta ação?'
7
+ are_you_sure_detach_item: 'Você tem certeza que deseja separar este %{item}.'
8
+ run: 'Executar'
9
+ cancel: 'Cancelar'
10
+ action_ran_successfully: 'Ação executada com sucesso!'
11
+ resource_details: "Detalhe %{item}: %{title}"
12
+ update_item: 'atualizar %{item}: %{title}'
13
+ unauthorized: 'Não autorizado'
14
+ attachment_class_attached: '%{attachment_class} anexado.'
15
+ attachment_class_detached: '%{attachment_class} separado.'
16
+ resource_updated: 'Recurso atualizado'
17
+ resource_created: 'Recurso criado'
18
+ resource_destroyed: 'Recurso destruído'
19
+ switch_to_view: "Alterar para visão %{view_type}"
20
+ click_to_reveal_filters: "Clique para revelar os filtros"
21
+ attachment_destroyed: 'Anexo destruído'
22
+ failed_to_find_attachment: 'Falhou ao achar anexo'
23
+ you_missed_something_check_form: 'Você pode ter esquecido algo. Por favor, cheque o formulário.'
24
+ remove_selection: 'Remover seleção'
25
+ select_item: 'Selecionar item'
26
+ delete_file: 'Deletar arquivo'
27
+ delete: 'deletar'
28
+ delete_item: 'Deletar %{item}'
29
+ download_item: 'Baixar %{item}'
30
+ download_file: 'Baixar arquivo'
31
+ download: 'Baixar'
32
+ view: 'Visualizar'
33
+ view_item: 'visualizar %{item}'
34
+ edit: 'editar'
35
+ edit_item: 'editar %{item}'
36
+ detach_item: 'separar %{item}'
37
+ number_of_items:
38
+ zero: 'sem %{item}'
39
+ one: 'um %{item}'
40
+ other: '%{count} %{item}'
41
+ are_you_sure: 'Você tem certeza?'
42
+ filters: 'Filtros'
43
+ per_page: 'Por página'
44
+ more: 'Mais'
45
+ attach: 'Anexar'
46
+ cancel: 'Cancelar'
47
+ save: 'Salvar'
48
+ attach_and_attach_another: 'Anexar & anexar outro'
49
+ hide_content: 'Esconder conteúdo'
50
+ show_content: 'Mostrar conteúdo'
51
+ no_related_item_found: 'Nenhum %{item} relacionado encontrado'
52
+ no_item_found: 'Nenhum %{item} encontrado'
53
+ loading: 'Carregando'
54
+ confirm: 'Confirmar'
55
+ actions: 'Ações'
56
+ resources: 'Recursos'
57
+ oops_nothing_found: 'Oops! Nada encontrado...'
58
+ type_to_search: 'Digite para buscar.'
59
+ and_x_other_resources: 'e %{count} outros recursos'
60
+ go_back: 'Voltar'
61
+ home: 'Início'
62
+ new: 'novo'
63
+ attach_item: 'Anexar %{item}'
64
+ choose_item: 'Escolher %{item}'
65
+ create_new_item: 'Criar novo %{item}'
66
+ table_view: 'Visualização em tabela'
67
+ grid_view: 'Visualização em grade'
68
+ next_page: 'Próxima página'
69
+ prev_page: 'Página anterior'
70
+ list_is_empty: 'Lista vazia'
71
+ field_translations:
72
+ file:
73
+ zero: 'arquivos'
74
+ one: 'arquivo'
75
+ other: 'arquivos'
76
+ resource_translations:
77
+ user:
78
+ zero: 'usuários'
79
+ one: 'usuário'
80
+ other: 'usuários'
81
+ reset_filters: 'Limpar filtros'
82
+ not_authorized: 'Você não está autorizado à executar essa ação.'
@@ -0,0 +1,70 @@
1
+ ro:
2
+ avo:
3
+ dashboard: 'Panou de control'
4
+ choose_a_country: 'Alege o tara'
5
+ choose_an_option: 'Alege o optiune'
6
+ are_you_sure_you_want_to_run_this_option: 'Esti sigur ca vrei sa rulezi aceasta actiune?'
7
+ run: 'Ruleaza'
8
+ cancel: 'Anuleaza'
9
+ action_ran_successfully: 'Actiunea a rulat cu succes!'
10
+ resource_details: 'Detalii %{item}'
11
+ unauthorized: 'Neautorizat'
12
+ attachment_class_attached: '%{attachment_class} anexat.'
13
+ attachment_class_detached: '%{attachment_class} separat.'
14
+ resource_updated: 'Resursa actualizata'
15
+ resource_created: 'Resursa creata'
16
+ resource_destroyed: 'Resursa stearsa'
17
+ remove_selection: 'Sterge selectia'
18
+ delete_file: 'Sterge fisierul'
19
+ delete: 'sterge'
20
+ delete_item: 'Sterge %{item}'
21
+ download_item: 'Descarca %{item}'
22
+ download: 'Descarca'
23
+ view: 'vezi'
24
+ view_item: 'vezi %{item}'
25
+ edit: 'modifica'
26
+ edit_item: 'modifica %{item}'
27
+ detach_item: 'detaseaza %{item}'
28
+ number_of_items:
29
+ zero: '0 %{item}'
30
+ one: 'un %{item}'
31
+ other: '%{count} %{item}'
32
+ are_you_sure: 'Esti sigur?'
33
+ filters: 'Filtre'
34
+ per_page: 'Pe pagina'
35
+ more: 'Mai multe'
36
+ attach: 'Ataseaza'
37
+ cancel: 'Renunta'
38
+ save: 'Salveaza'
39
+ attach_and_attach_another: 'Ataseaza si ataseaza inca unul'
40
+ hide_content: 'Ascunde continutul'
41
+ show_content: 'Arata continutul'
42
+ no_related_item_found: 'Nu s-au gasit %{item} asociate'
43
+ no_item_found: 'Nu s-au gasit %{item}'
44
+ loading: 'Se incarca'
45
+ confirm: 'Confirm'
46
+ actions: 'Actiuni'
47
+ resources: 'Resurse'
48
+ oops_nothing_found: 'Oups! Nu am gasit rezultate...'
49
+ type_to_search: 'Cauta aici...'
50
+ and_x_other_resources: 'plus alte %{count} resources'
51
+ go_back: 'Inapoi'
52
+ home: 'Acasa'
53
+ attach_item: 'Anexeaza %{item}'
54
+ choose_item: 'Alege %{item}'
55
+ create_new_item: 'Creeaza %{item}'
56
+ table_view: 'Vezi sub forma de tabel'
57
+ grid_view: 'Vezi sub forma de grid'
58
+ next_page: 'Pagina urmatoare'
59
+ prev_page: 'Pagina anterioara'
60
+ list_is_empty: 'Lista este goala'
61
+ field_translations:
62
+ file:
63
+ zero: 'fisiere'
64
+ one: 'fisier'
65
+ other: 'fisiere'
66
+ resource_translations:
67
+ user:
68
+ zero: 'utilizatori'
69
+ one: 'utilizator'
70
+ other: 'utilizatori'
@@ -1388,7 +1388,7 @@ span.flatpickr-weekday {
1388
1388
  }
1389
1389
  }
1390
1390
 
1391
- /*! tailwindcss v2.0.4 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
1391
+ /*! tailwindcss v2.1.1 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
1392
1392
 
1393
1393
  /*
1394
1394
  Document
@@ -1915,7 +1915,7 @@ object {
1915
1915
 
1916
1916
  /**
1917
1917
  * Constrain images and videos to the parent width and preserve
1918
- * their instrinsic aspect ratio.
1918
+ * their intrinsic aspect ratio.
1919
1919
  *
1920
1920
  * https://github.com/mozdevs/cssremedy/issues/14
1921
1921
  */
@@ -2339,6 +2339,11 @@ select {
2339
2339
  border-color: rgba(148, 163, 184, var(--tw-border-opacity));
2340
2340
  }
2341
2341
 
2342
+ .focus\:border-gray-300:focus {
2343
+ --tw-border-opacity: 1;
2344
+ border-color: rgba(209, 213, 219, var(--tw-border-opacity));
2345
+ }
2346
+
2342
2347
  .focus\:bg-white:focus {
2343
2348
  --tw-bg-opacity: 1;
2344
2349
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
@@ -4320,6 +4325,10 @@ span.CodeMirror-selectedtext { background: none; }
4320
4325
  --tw-border-opacity: 1;
4321
4326
  border-color: rgba(148, 163, 184, var(--tw-border-opacity));
4322
4327
  }
4328
+ .focus\:border-gray-300:focus {
4329
+ --tw-border-opacity: 1;
4330
+ border-color: rgba(209, 213, 219, var(--tw-border-opacity));
4331
+ }
4323
4332
  .focus\:bg-white:focus {
4324
4333
  --tw-bg-opacity: 1;
4325
4334
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
@@ -4527,6 +4536,9 @@ span.CodeMirror-selectedtext { background: none; }
4527
4536
  }
4528
4537
  }
4529
4538
 
4539
+ .pointer-events-none {
4540
+ pointer-events: none
4541
+ }
4530
4542
  .visible {
4531
4543
  visibility: visible
4532
4544
  }
@@ -4697,24 +4709,24 @@ span.CodeMirror-selectedtext { background: none; }
4697
4709
  .block {
4698
4710
  display: block
4699
4711
  }
4700
- .inline-flex {
4701
- display: inline-flex
4702
- }
4703
- .flex {
4704
- display: flex
4712
+ .inline-block {
4713
+ display: inline-block
4705
4714
  }
4706
4715
  .inline {
4707
4716
  display: inline
4708
4717
  }
4709
- .grid {
4710
- display: grid
4718
+ .flex {
4719
+ display: flex
4711
4720
  }
4712
- .inline-block {
4713
- display: inline-block
4721
+ .inline-flex {
4722
+ display: inline-flex
4714
4723
  }
4715
4724
  .table {
4716
4725
  display: table
4717
4726
  }
4727
+ .grid {
4728
+ display: grid
4729
+ }
4718
4730
  .hidden {
4719
4731
  display: none
4720
4732
  }
@@ -4802,6 +4814,9 @@ span.CodeMirror-selectedtext { background: none; }
4802
4814
  .w-64 {
4803
4815
  width: 16rem
4804
4816
  }
4817
+ .w-1\/2 {
4818
+ width: 50%
4819
+ }
4805
4820
  .w-11\/12 {
4806
4821
  width: 91.666667%
4807
4822
  }
@@ -4866,6 +4881,9 @@ span.CodeMirror-selectedtext { background: none; }
4866
4881
  .cursor-wait {
4867
4882
  cursor: wait
4868
4883
  }
4884
+ .cursor-not-allowed {
4885
+ cursor: not-allowed
4886
+ }
4869
4887
  .appearance-none {
4870
4888
  -webkit-appearance: none;
4871
4889
  appearance: none
@@ -4995,6 +5013,9 @@ span.CodeMirror-selectedtext { background: none; }
4995
5013
  .rounded {
4996
5014
  border-radius: 0.25rem
4997
5015
  }
5016
+ .\!rounded-none {
5017
+ border-radius: 0px !important
5018
+ }
4998
5019
  .rounded-full {
4999
5020
  border-radius: 9999px
5000
5021
  }
@@ -5022,6 +5043,21 @@ span.CodeMirror-selectedtext { background: none; }
5022
5043
  .border-r {
5023
5044
  border-right-width: 1px
5024
5045
  }
5046
+ .border-l-0 {
5047
+ border-left-width: 0px
5048
+ }
5049
+ .border-b-0 {
5050
+ border-bottom-width: 0px
5051
+ }
5052
+ .border-t-0 {
5053
+ border-top-width: 0px
5054
+ }
5055
+ .border-l {
5056
+ border-left-width: 1px
5057
+ }
5058
+ .border-none {
5059
+ border-style: none
5060
+ }
5025
5061
  .border-pink-600 {
5026
5062
  --tw-border-opacity: 1;
5027
5063
  border-color: rgba(219, 39, 119, var(--tw-border-opacity))
@@ -5229,14 +5265,14 @@ span.CodeMirror-selectedtext { background: none; }
5229
5265
  padding-top: 1px;
5230
5266
  padding-bottom: 1px
5231
5267
  }
5232
- .py-0 {
5233
- padding-top: 0px;
5234
- padding-bottom: 0px
5235
- }
5236
5268
  .py-3 {
5237
5269
  padding-top: 0.75rem;
5238
5270
  padding-bottom: 0.75rem
5239
5271
  }
5272
+ .py-0 {
5273
+ padding-top: 0px;
5274
+ padding-bottom: 0px
5275
+ }
5240
5276
  .py-8 {
5241
5277
  padding-top: 2rem;
5242
5278
  padding-bottom: 2rem
@@ -5393,6 +5429,10 @@ span.CodeMirror-selectedtext { background: none; }
5393
5429
  --tw-text-opacity: 1;
5394
5430
  color: rgba(156, 163, 175, var(--tw-text-opacity))
5395
5431
  }
5432
+ .\!text-blue-700 {
5433
+ --tw-text-opacity: 1 !important;
5434
+ color: rgba(29, 78, 216, var(--tw-text-opacity)) !important
5435
+ }
5396
5436
  .text-gray-800 {
5397
5437
  --tw-text-opacity: 1;
5398
5438
  color: rgba(31, 41, 55, var(--tw-text-opacity))
@@ -5405,6 +5445,9 @@ span.CodeMirror-selectedtext { background: none; }
5405
5445
  --tw-text-opacity: 1;
5406
5446
  color: rgba(185, 28, 28, var(--tw-text-opacity))
5407
5447
  }
5448
+ .underline {
5449
+ text-decoration: underline
5450
+ }
5408
5451
  .opacity-75 {
5409
5452
  opacity: 0.75
5410
5453
  }
@@ -5423,12 +5466,37 @@ span.CodeMirror-selectedtext { background: none; }
5423
5466
  --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
5424
5467
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5425
5468
  }
5469
+ .shadow-lg {
5470
+ --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
5471
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5472
+ }
5473
+ .shadow {
5474
+ --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
5475
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5476
+ }
5426
5477
  .outline-none {
5427
5478
  outline: 2px solid transparent;
5428
5479
  outline-offset: 2px
5429
5480
  }
5481
+ .filter {
5482
+ --tw-blur: var(--tw-empty,/*!*/ /*!*/);
5483
+ --tw-brightness: var(--tw-empty,/*!*/ /*!*/);
5484
+ --tw-contrast: var(--tw-empty,/*!*/ /*!*/);
5485
+ --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);
5486
+ --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
5487
+ --tw-invert: var(--tw-empty,/*!*/ /*!*/);
5488
+ --tw-saturate: var(--tw-empty,/*!*/ /*!*/);
5489
+ --tw-sepia: var(--tw-empty,/*!*/ /*!*/);
5490
+ --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);
5491
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
5492
+ }
5493
+ .invert {
5494
+ --tw-invert: invert(100%)
5495
+ }
5430
5496
  .transition {
5431
- transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
5497
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
5498
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
5499
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
5432
5500
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
5433
5501
  transition-duration: 150ms
5434
5502
  }
@@ -5631,6 +5699,10 @@ span.CodeMirror-selectedtext { background: none; }
5631
5699
  --tw-border-opacity: 1;
5632
5700
  border-color: rgba(148, 163, 184, var(--tw-border-opacity))
5633
5701
  }
5702
+ .focus\:border-gray-300:focus {
5703
+ --tw-border-opacity: 1;
5704
+ border-color: rgba(209, 213, 219, var(--tw-border-opacity))
5705
+ }
5634
5706
  .focus\:bg-white:focus {
5635
5707
  --tw-bg-opacity: 1;
5636
5708
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity))
@@ -5864,7 +5936,9 @@ html, body{
5864
5936
  --tw-scale-x: 1;
5865
5937
  --tw-scale-y: 1;
5866
5938
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5867
- transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
5939
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
5940
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
5941
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
5868
5942
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
5869
5943
  transition-duration: 150ms;
5870
5944
  transition-duration: 150ms;
@@ -5914,4 +5988,4 @@ html, body{
5914
5988
  }
5915
5989
 
5916
5990
 
5917
- /*# sourceMappingURL=application-af3e670d.css.map*/
5991
+ /*# sourceMappingURL=application-5bdca030.css.map*/