avo 1.2.11.pre.4 → 1.3.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -4
  3. data/Gemfile.lock +8 -12
  4. data/app/components/avo/common/key_value_component.html.erb +53 -0
  5. data/app/components/avo/common/key_value_component.rb +11 -0
  6. data/app/components/avo/edit/fields/key_value_field_component.html.erb +3 -0
  7. data/app/components/avo/edit/fields/key_value_field_component.rb +4 -0
  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 +0 -27
  11. data/app/controllers/avo/home_controller.rb +3 -4
  12. data/app/helpers/avo/application_helper.rb +2 -8
  13. data/app/packs/entrypoints/application.js +14 -10
  14. data/app/packs/js/controllers/fields/code_field_controller.js +1 -4
  15. data/app/packs/js/controllers/fields/key_value_controller.js +132 -0
  16. data/app/packs/js/controllers/fields/simple_mde_controller.js +0 -1
  17. data/app/packs/stylesheets/components/code.css +0 -5
  18. data/app/views/avo/home/_actions.html.erb +5 -5
  19. data/app/views/avo/home/_docs.html.erb +1 -1
  20. data/app/views/avo/home/_filters.html.erb +4 -4
  21. data/app/views/avo/home/_resources.html.erb +2 -15
  22. data/app/views/avo/home/index.html.erb +1 -1
  23. data/app/views/avo/partials/_logo.html.erb +1 -1
  24. data/app/views/avo/sidebar/_license_warning.html.erb +7 -3
  25. data/app/views/avo/sidebar/_sidebar.html.erb +1 -2
  26. data/app/views/layouts/avo/application.html.erb +4 -9
  27. data/avo.gemspec +1 -1
  28. data/bin/helpers.rb +1 -1
  29. data/bin/spring +5 -5
  30. data/config/webpacker.yml +1 -1
  31. data/lib/avo/app.rb +3 -7
  32. data/lib/avo/configuration.rb +0 -6
  33. data/lib/avo/fields/key_value_field.rb +24 -1
  34. data/lib/avo/licensing/h_q.rb +3 -3
  35. data/lib/avo/licensing/license.rb +0 -2
  36. data/lib/avo/licensing/pro_license.rb +1 -2
  37. data/lib/avo/version.rb +1 -1
  38. data/lib/avo.rb +0 -13
  39. data/lib/generators/avo/eject_generator.rb +4 -5
  40. data/lib/generators/avo/filter_generator.rb +1 -1
  41. data/lib/generators/avo/resource_generator.rb +4 -1
  42. data/lib/generators/avo/templates/initializer/avo.tt +1 -10
  43. data/lib/generators/avo/tool_generator.rb +2 -2
  44. data/public/avo-packs/css/{application-af3e670d.css → application-5af67922.css} +103 -40
  45. data/public/avo-packs/css/application-5af67922.css.br +0 -0
  46. data/public/avo-packs/css/application-5af67922.css.gz +0 -0
  47. data/public/avo-packs/css/application-5af67922.css.map +1 -0
  48. data/public/avo-packs/css/application-5af67922.css.map.br +0 -0
  49. data/public/avo-packs/css/application-5af67922.css.map.gz +0 -0
  50. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js +26 -0
  51. data/public/avo-packs/js/{application-e66a1f4df5d01326ce36.js.LICENSE.txt → application-a48a99244065c8d7a1d1.js.LICENSE.txt} +0 -0
  52. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js.br +0 -0
  53. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js.gz +0 -0
  54. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js.map +1 -0
  55. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js.map.br +0 -0
  56. data/public/avo-packs/js/application-a48a99244065c8d7a1d1.js.map.gz +0 -0
  57. data/public/avo-packs/manifest.json +15 -15
  58. metadata +33 -28
  59. data/app/views/avo/partials/_custom_tools_alert.html.erb +0 -6
  60. data/app/views/avo/partials/_head.html.erb +0 -0
  61. data/public/avo-packs/css/application-af3e670d.css.br +0 -0
  62. data/public/avo-packs/css/application-af3e670d.css.gz +0 -0
  63. data/public/avo-packs/css/application-af3e670d.css.map +0 -1
  64. data/public/avo-packs/css/application-af3e670d.css.map.br +0 -0
  65. data/public/avo-packs/css/application-af3e670d.css.map.gz +0 -0
  66. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js +0 -26
  67. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js.br +0 -0
  68. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js.gz +0 -0
  69. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js.map +0 -1
  70. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js.map.br +0 -0
  71. data/public/avo-packs/js/application-e66a1f4df5d01326ce36.js.map.gz +0 -0
data/bin/spring CHANGED
@@ -4,14 +4,14 @@
4
4
  # It gets overwritten when you run the `spring binstub` command.
5
5
 
6
6
  unless defined?(Spring)
7
- require "rubygems"
8
- require "bundler"
7
+ require 'rubygems'
8
+ require 'bundler'
9
9
 
10
10
  lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read)
11
- spring = lockfile.specs.detect { |spec| spec.name == "spring" }
11
+ spring = lockfile.specs.detect { |spec| spec.name == 'spring' }
12
12
  if spring
13
13
  Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
14
- gem "spring", spring.version
15
- require "spring/binstub"
14
+ gem 'spring', spring.version
15
+ require 'spring/binstub'
16
16
  end
17
17
  end
data/config/webpacker.yml CHANGED
@@ -13,7 +13,7 @@ default: &default
13
13
 
14
14
  # Additional paths webpack should lookup modules
15
15
  # ['app/assets', 'engine/foo/app/assets']
16
- additional_paths: []
16
+ additional_paths_paths: []
17
17
 
18
18
  # Reload manifest.json on all requests so we reload latest compiled packs
19
19
  cache_manifest: false
data/lib/avo/app.rb CHANGED
@@ -26,16 +26,12 @@ module Avo
26
26
  self.request = request
27
27
  self.context = context
28
28
 
29
- self.license = Licensing::LicenseManager.new(Licensing::HQ.new(request).response).license
30
-
31
29
  # Set the current host for ActiveStorage
32
- begin
33
- ActiveStorage::Current.host = request.base_url
34
- rescue => exception
35
- Rails.logger.debug "[Avo] Failed to set ActiveStorage::Current.host, #{exception.inspect}"
36
- end
30
+ ActiveStorage::Current.host = request.base_url
37
31
 
38
32
  init_resources
33
+
34
+ self.license = Licensing::LicenseManager.new(Licensing::HQ.new(request).response).license
39
35
  end
40
36
 
41
37
  def cache_store
@@ -21,7 +21,6 @@ module Avo
21
21
  attr_accessor :context
22
22
  attr_accessor :display_breadcrumbs
23
23
  attr_accessor :initial_breadcrumbs
24
- attr_accessor :home_path
25
24
 
26
25
  def initialize
27
26
  @root_path = "/avo"
@@ -55,7 +54,6 @@ module Avo
55
54
  add_breadcrumb I18n.t("avo.home").humanize, avo.root_path
56
55
  }
57
56
  @display_breadcrumbs = true
58
- @home_path = nil
59
57
  end
60
58
 
61
59
  def locale_tag
@@ -83,10 +81,6 @@ module Avo
83
81
  def set_initial_breadcrumbs(&block)
84
82
  @initial_breadcrumbs = block if block.present?
85
83
  end
86
-
87
- def namespace
88
- root_path.delete "/"
89
- end
90
84
  end
91
85
 
92
86
  def self.configuration
@@ -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
@@ -3,8 +3,8 @@ module Avo
3
3
  class HQ
4
4
  attr_accessor :current_request
5
5
 
6
- ENDPOINT = "https://avohq.io/api/v1/licenses/check".freeze unless const_defined?(:ENDPOINT)
7
- CACHE_KEY = "avo.hq.response".freeze unless const_defined?(:CACHE_KEY)
6
+ ENDPOINT = "https://avohq.io/api/v1/licenses/check" unless const_defined?(:ENDPOINT)
7
+ CACHE_KEY = "avo.hq.response" unless const_defined?(:CACHE_KEY)
8
8
  REQUEST_TIMEOUT = 5 unless const_defined?(:REQUEST_TIMEOUT) # seconds
9
9
 
10
10
  def initialize(current_request)
@@ -54,7 +54,7 @@ module Avo
54
54
  end
55
55
 
56
56
  def perform_request
57
- ::Rails.logger.debug "[Avo] Performing request to avohq.io API to check license availability." if Rails.env.development?
57
+ puts "Performing request to avohq.io API to check license availability.".inspect if Rails.env.development?
58
58
 
59
59
  HTTParty.post ENDPOINT, body: payload.to_json, headers: {'Content-type': "application/json"}, timeout: REQUEST_TIMEOUT
60
60
  end
@@ -4,13 +4,11 @@ module Avo
4
4
  attr_accessor :id
5
5
  attr_accessor :response
6
6
  attr_accessor :valid
7
- attr_accessor :payload
8
7
 
9
8
  def initialize(response)
10
9
  @response = response
11
10
  @id = response["id"]
12
11
  @valid = response["valid"]
13
- @payload = response["payload"]
14
12
  end
15
13
 
16
14
  def valid?
@@ -3,8 +3,7 @@ module Avo
3
3
  class ProLicense < License
4
4
  def abilities
5
5
  [
6
- :authorization,
7
- :custom_tools
6
+ :authorization
8
7
  ]
9
8
  end
10
9
  end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "1.2.11.pre.4"
2
+ VERSION = "1.3.0.pre.1"
3
3
  end
data/lib/avo.rb CHANGED
@@ -10,10 +10,6 @@ module Avo
10
10
  IN_DEVELOPMENT = ENV["AVO_IN_DEVELOPMENT"] == "1"
11
11
  PACKED = !IN_DEVELOPMENT
12
12
 
13
- class LicenseVerificationTemperedError < StandardError; end
14
-
15
- class LicenseInvalidError < StandardError; end
16
-
17
13
  class << self
18
14
  def webpacker
19
15
  @webpacker ||= ::Webpacker::Instance.new(
@@ -21,15 +17,6 @@ module Avo
21
17
  config_path: ROOT_PATH.join("config/webpacker.yml")
22
18
  )
23
19
  end
24
-
25
- def manifester
26
- @manifester ||= ::Manifester::Instance.new(
27
- root_path: ROOT_PATH,
28
- public_output_dir: "avo-packs",
29
- cache_manifest: Rails.env.production?,
30
- fallback_to_webpacker: -> { Avo::IN_DEVELOPMENT || Rails.env.test?}
31
- )
32
- end
33
20
  end
34
21
  end
35
22
 
@@ -12,11 +12,10 @@ module Generators
12
12
 
13
13
  TEMPLATES = {
14
14
  sidebar: "app/views/avo/sidebar/_sidebar.html.erb",
15
- logo: "app/views/avo/partials/_logo.html.erb",
16
- head: "app/views/avo/partials/_head.html.erb",
17
- header: "app/views/avo/partials/_header.html.erb",
18
- footer: "app/views/avo/partials/_footer.html.erb",
19
- scripts: "app/views/avo/partials/_scripts.html.erb"
15
+ logo: "app/views/avo/partials/logo.html.erb",
16
+ header: "app/views/avo/partials/header.html.erb",
17
+ footer: "app/views/avo/partials/footer.html.erb",
18
+ scripts: "app/views/avo/partials/scripts.html.erb"
20
19
  }
21
20
 
22
21
  def handle
@@ -13,7 +13,7 @@ module Generators
13
13
 
14
14
  type = "select" if options[:select]
15
15
 
16
- template "filters/#{type}_filter.tt", "app/services/avo/filters/#{singular_name}.rb"
16
+ template "filters/#{type}_filter.rb", "app/services/avo/filters/#{singular_name}.rb"
17
17
  end
18
18
  end
19
19
  end
@@ -10,6 +10,9 @@ module Generators
10
10
  def create
11
11
  template "resource/resource.tt", "app/avo/resources/#{resource_name}.rb"
12
12
  template "resource/controller.tt", "app/controllers/avo/#{controller_name}.rb"
13
+
14
+ # Show a warning if the model doesn't exists
15
+ say("We couldn't find the #{class_name} model in your codebase. You should have one present for Avo to display the resource.", :yellow) unless current_models.include? class_name
13
16
  end
14
17
 
15
18
  def resource_class
@@ -17,7 +20,7 @@ module Generators
17
20
  end
18
21
 
19
22
  def controller_class
20
- "Avo::#{class_name.camelize.pluralize}Controller"
23
+ "Avo::#{plural_name.humanize}Controller"
21
24
  end
22
25
 
23
26
  def resource_name
@@ -29,10 +29,10 @@ Avo.configure do |config|
29
29
  # }
30
30
 
31
31
  ## == Localization ==
32
- # config.locale = 'en-US'
33
32
 
34
33
  ## == Customization ==
35
34
  # config.app_name = 'Avocadelicious'
35
+ # config.locale = 'en-US'
36
36
  # config.timezone = 'UTC'
37
37
  # config.currency = 'USD'
38
38
  # config.per_page = 24
@@ -43,13 +43,4 @@ Avo.configure do |config|
43
43
  # config.full_width_container = false
44
44
  # config.full_width_index_view = false
45
45
  # config.cache_resources_on_index_view = true
46
-
47
- # Where should the user be redirected when he hits the `/<%= options[:path] %>` url
48
- # config.home_path = nil
49
-
50
- ## == Breadcrumbs ==
51
- # config.display_breadcrumbs = true
52
- # config.set_initial_breadcrumbs do
53
- # add_breadcrumb "Home", '/<%= options[:path] %>'
54
- # end
55
46
  end
@@ -34,8 +34,8 @@ module Generators
34
34
  template "tool/view.tt", "app/views/avo/tools/#{file_name}.html.erb"
35
35
 
36
36
  route <<-ROUTE
37
- scope :#{::Avo.configuration.namespace} do
38
- get "#{file_name}", to: "avo/tools##{file_name}"
37
+ namespace :#{::Avo.configuration.root_path.gsub('/', '')} do
38
+ get "#{file_name}", to: "tools##{file_name}"
39
39
  end
40
40
  ROUTE
41
41
  end
@@ -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
  */
@@ -2329,6 +2329,10 @@ select {
2329
2329
  z-index: 10;
2330
2330
  }
2331
2331
 
2332
+ .focus\:border-none:focus {
2333
+ border-style: none;
2334
+ }
2335
+
2332
2336
  .focus\:border-blue-300:focus {
2333
2337
  --tw-border-opacity: 1;
2334
2338
  border-color: rgba(147, 197, 253, var(--tw-border-opacity));
@@ -2339,6 +2343,11 @@ select {
2339
2343
  border-color: rgba(148, 163, 184, var(--tw-border-opacity));
2340
2344
  }
2341
2345
 
2346
+ .focus\:border-gray-700:focus {
2347
+ --tw-border-opacity: 1;
2348
+ border-color: rgba(55, 65, 81, var(--tw-border-opacity));
2349
+ }
2350
+
2342
2351
  .focus\:bg-white:focus {
2343
2352
  --tw-bg-opacity: 1;
2344
2353
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
@@ -3646,11 +3655,6 @@ span.CodeMirror-selectedtext { background: none; }
3646
3655
  min-height: auto;
3647
3656
  }
3648
3657
 
3649
- /* overlay CodeMirror fullscreen & Preview on small screens */
3650
- .CodeMirror-fullscreen, .editor-preview-active-side {
3651
- z-index: 50;
3652
- }
3653
-
3654
3658
  .container {
3655
3659
  width: 100%;
3656
3660
  }
@@ -4312,6 +4316,9 @@ span.CodeMirror-selectedtext { background: none; }
4312
4316
  .focus\:z-10:focus {
4313
4317
  z-index: 10;
4314
4318
  }
4319
+ .focus\:border-none:focus {
4320
+ border-style: none;
4321
+ }
4315
4322
  .focus\:border-blue-300:focus {
4316
4323
  --tw-border-opacity: 1;
4317
4324
  border-color: rgba(147, 197, 253, var(--tw-border-opacity));
@@ -4320,6 +4327,10 @@ span.CodeMirror-selectedtext { background: none; }
4320
4327
  --tw-border-opacity: 1;
4321
4328
  border-color: rgba(148, 163, 184, var(--tw-border-opacity));
4322
4329
  }
4330
+ .focus\:border-gray-700:focus {
4331
+ --tw-border-opacity: 1;
4332
+ border-color: rgba(55, 65, 81, var(--tw-border-opacity));
4333
+ }
4323
4334
  .focus\:bg-white:focus {
4324
4335
  --tw-bg-opacity: 1;
4325
4336
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
@@ -4527,6 +4538,9 @@ span.CodeMirror-selectedtext { background: none; }
4527
4538
  }
4528
4539
  }
4529
4540
 
4541
+ .pointer-events-none {
4542
+ pointer-events: none
4543
+ }
4530
4544
  .visible {
4531
4545
  visibility: visible
4532
4546
  }
@@ -4563,15 +4577,15 @@ span.CodeMirror-selectedtext { background: none; }
4563
4577
  .top-full {
4564
4578
  top: 100%
4565
4579
  }
4566
- .bottom-0 {
4567
- bottom: 0px
4568
- }
4569
4580
  .left-1\/2 {
4570
4581
  left: 50%
4571
4582
  }
4572
4583
  .top-1\/2 {
4573
4584
  top: 50%
4574
4585
  }
4586
+ .bottom-0 {
4587
+ bottom: 0px
4588
+ }
4575
4589
  .top-\[-1px\] {
4576
4590
  top: -1px
4577
4591
  }
@@ -4637,12 +4651,6 @@ span.CodeMirror-selectedtext { background: none; }
4637
4651
  .mb-0 {
4638
4652
  margin-bottom: 0px
4639
4653
  }
4640
- .mt-1 {
4641
- margin-top: 0.25rem
4642
- }
4643
- .mb-4 {
4644
- margin-bottom: 1rem
4645
- }
4646
4654
  .-ml-20 {
4647
4655
  margin-left: -5rem
4648
4656
  }
@@ -4691,30 +4699,33 @@ span.CodeMirror-selectedtext { background: none; }
4691
4699
  .mb-2 {
4692
4700
  margin-bottom: 0.5rem
4693
4701
  }
4702
+ .mb-4 {
4703
+ margin-bottom: 1rem
4704
+ }
4694
4705
  .ml-2 {
4695
4706
  margin-left: 0.5rem
4696
4707
  }
4697
4708
  .block {
4698
4709
  display: block
4699
4710
  }
4700
- .inline-flex {
4701
- display: inline-flex
4702
- }
4703
- .flex {
4704
- display: flex
4711
+ .inline-block {
4712
+ display: inline-block
4705
4713
  }
4706
4714
  .inline {
4707
4715
  display: inline
4708
4716
  }
4709
- .grid {
4710
- display: grid
4717
+ .flex {
4718
+ display: flex
4711
4719
  }
4712
- .inline-block {
4713
- display: inline-block
4720
+ .inline-flex {
4721
+ display: inline-flex
4714
4722
  }
4715
4723
  .table {
4716
4724
  display: table
4717
4725
  }
4726
+ .grid {
4727
+ display: grid
4728
+ }
4718
4729
  .hidden {
4719
4730
  display: none
4720
4731
  }
@@ -4724,9 +4735,6 @@ span.CodeMirror-selectedtext { background: none; }
4724
4735
  .h-5 {
4725
4736
  height: 1.25rem
4726
4737
  }
4727
- .h-6 {
4728
- height: 1.5rem
4729
- }
4730
4738
  .h-64 {
4731
4739
  height: 16rem
4732
4740
  }
@@ -4739,6 +4747,9 @@ span.CodeMirror-selectedtext { background: none; }
4739
4747
  .h-full {
4740
4748
  height: 100%
4741
4749
  }
4750
+ .h-6 {
4751
+ height: 1.5rem
4752
+ }
4742
4753
  .h-16 {
4743
4754
  height: 4rem
4744
4755
  }
@@ -4802,6 +4813,9 @@ span.CodeMirror-selectedtext { background: none; }
4802
4813
  .w-64 {
4803
4814
  width: 16rem
4804
4815
  }
4816
+ .w-1\/2 {
4817
+ width: 50%
4818
+ }
4805
4819
  .w-11\/12 {
4806
4820
  width: 91.666667%
4807
4821
  }
@@ -4866,6 +4880,9 @@ span.CodeMirror-selectedtext { background: none; }
4866
4880
  .cursor-wait {
4867
4881
  cursor: wait
4868
4882
  }
4883
+ .cursor-not-allowed {
4884
+ cursor: not-allowed
4885
+ }
4869
4886
  .appearance-none {
4870
4887
  -webkit-appearance: none;
4871
4888
  appearance: none
@@ -4995,6 +5012,9 @@ span.CodeMirror-selectedtext { background: none; }
4995
5012
  .rounded {
4996
5013
  border-radius: 0.25rem
4997
5014
  }
5015
+ .rounded-none {
5016
+ border-radius: 0px
5017
+ }
4998
5018
  .rounded-full {
4999
5019
  border-radius: 9999px
5000
5020
  }
@@ -5022,6 +5042,18 @@ span.CodeMirror-selectedtext { background: none; }
5022
5042
  .border-r {
5023
5043
  border-right-width: 1px
5024
5044
  }
5045
+ .border-l-0 {
5046
+ border-left-width: 0px
5047
+ }
5048
+ .border-b-0 {
5049
+ border-bottom-width: 0px
5050
+ }
5051
+ .border-t-0 {
5052
+ border-top-width: 0px
5053
+ }
5054
+ .border-l {
5055
+ border-left-width: 1px
5056
+ }
5025
5057
  .border-pink-600 {
5026
5058
  --tw-border-opacity: 1;
5027
5059
  border-color: rgba(219, 39, 119, var(--tw-border-opacity))
@@ -5134,9 +5166,9 @@ span.CodeMirror-selectedtext { background: none; }
5134
5166
  --tw-bg-opacity: 1;
5135
5167
  background-color: rgba(243, 244, 246, var(--tw-bg-opacity))
5136
5168
  }
5137
- .bg-green-700 {
5169
+ .bg-teal-700 {
5138
5170
  --tw-bg-opacity: 1;
5139
- background-color: rgba(4, 120, 87, var(--tw-bg-opacity))
5171
+ background-color: rgba(15, 118, 110, var(--tw-bg-opacity))
5140
5172
  }
5141
5173
  .bg-blue-gray-200 {
5142
5174
  --tw-bg-opacity: 1;
@@ -5229,14 +5261,14 @@ span.CodeMirror-selectedtext { background: none; }
5229
5261
  padding-top: 1px;
5230
5262
  padding-bottom: 1px
5231
5263
  }
5232
- .py-0 {
5233
- padding-top: 0px;
5234
- padding-bottom: 0px
5235
- }
5236
5264
  .py-3 {
5237
5265
  padding-top: 0.75rem;
5238
5266
  padding-bottom: 0.75rem
5239
5267
  }
5268
+ .py-0 {
5269
+ padding-top: 0px;
5270
+ padding-bottom: 0px
5271
+ }
5240
5272
  .py-8 {
5241
5273
  padding-top: 2rem;
5242
5274
  padding-bottom: 2rem
@@ -5405,9 +5437,6 @@ span.CodeMirror-selectedtext { background: none; }
5405
5437
  --tw-text-opacity: 1;
5406
5438
  color: rgba(185, 28, 28, var(--tw-text-opacity))
5407
5439
  }
5408
- .opacity-75 {
5409
- opacity: 0.75
5410
- }
5411
5440
  .opacity-50 {
5412
5441
  opacity: 0.5
5413
5442
  }
@@ -5423,12 +5452,37 @@ span.CodeMirror-selectedtext { background: none; }
5423
5452
  --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
5424
5453
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5425
5454
  }
5455
+ .shadow-lg {
5456
+ --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
5457
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5458
+ }
5459
+ .shadow {
5460
+ --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
5461
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
5462
+ }
5426
5463
  .outline-none {
5427
5464
  outline: 2px solid transparent;
5428
5465
  outline-offset: 2px
5429
5466
  }
5467
+ .filter {
5468
+ --tw-blur: var(--tw-empty,/*!*/ /*!*/);
5469
+ --tw-brightness: var(--tw-empty,/*!*/ /*!*/);
5470
+ --tw-contrast: var(--tw-empty,/*!*/ /*!*/);
5471
+ --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);
5472
+ --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
5473
+ --tw-invert: var(--tw-empty,/*!*/ /*!*/);
5474
+ --tw-saturate: var(--tw-empty,/*!*/ /*!*/);
5475
+ --tw-sepia: var(--tw-empty,/*!*/ /*!*/);
5476
+ --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);
5477
+ 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)
5478
+ }
5479
+ .invert {
5480
+ --tw-invert: invert(100%)
5481
+ }
5430
5482
  .transition {
5431
- transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
5483
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
5484
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
5485
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
5432
5486
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
5433
5487
  transition-duration: 150ms
5434
5488
  }
@@ -5623,6 +5677,9 @@ span.CodeMirror-selectedtext { background: none; }
5623
5677
  .focus\:z-10:focus {
5624
5678
  z-index: 10
5625
5679
  }
5680
+ .focus\:border-none:focus {
5681
+ border-style: none
5682
+ }
5626
5683
  .focus\:border-blue-300:focus {
5627
5684
  --tw-border-opacity: 1;
5628
5685
  border-color: rgba(147, 197, 253, var(--tw-border-opacity))
@@ -5631,6 +5688,10 @@ span.CodeMirror-selectedtext { background: none; }
5631
5688
  --tw-border-opacity: 1;
5632
5689
  border-color: rgba(148, 163, 184, var(--tw-border-opacity))
5633
5690
  }
5691
+ .focus\:border-gray-700:focus {
5692
+ --tw-border-opacity: 1;
5693
+ border-color: rgba(55, 65, 81, var(--tw-border-opacity))
5694
+ }
5634
5695
  .focus\:bg-white:focus {
5635
5696
  --tw-bg-opacity: 1;
5636
5697
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity))
@@ -5864,7 +5925,9 @@ html, body{
5864
5925
  --tw-scale-x: 1;
5865
5926
  --tw-scale-y: 1;
5866
5927
  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;
5928
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
5929
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
5930
+ transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
5868
5931
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
5869
5932
  transition-duration: 150ms;
5870
5933
  transition-duration: 150ms;
@@ -5914,4 +5977,4 @@ html, body{
5914
5977
  }
5915
5978
 
5916
5979
 
5917
- /*# sourceMappingURL=application-af3e670d.css.map*/
5980
+ /*# sourceMappingURL=application-5af67922.css.map*/