lesli 5.0.24 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/lesli/application.css +1 -192
  3. data/app/helpers/lesli/customization_helper.rb +1 -1
  4. data/app/helpers/lesli/html_helper.rb +1 -1
  5. data/lib/generators/lesli/base_generator.rb +172 -0
  6. data/lib/generators/lesli/controller/controller_generator.rb +40 -0
  7. data/lib/generators/lesli/controller/templates/controller.rb.tt +86 -0
  8. data/lib/generators/lesli/model/model_generator.rb +44 -0
  9. data/lib/generators/lesli/model/templates/model.rb.tt +16 -0
  10. data/lib/generators/lesli/scaffold/scaffold_generator.rb +47 -0
  11. data/lib/generators/lesli/service/service_generator.rb +40 -0
  12. data/lib/generators/lesli/service/templates/service.rb.tt +44 -0
  13. data/lib/generators/lesli/views/templates/_form.html.erb.tt +22 -0
  14. data/lib/generators/lesli/views/templates/index.html.erb.tt +17 -0
  15. data/lib/generators/lesli/views/templates/new.html.erb.tt +4 -0
  16. data/lib/generators/lesli/views/templates/show.html.erb.tt +22 -0
  17. data/lib/generators/lesli/views/views_generator.rb +106 -0
  18. data/lib/lesli/engine.rb +1 -23
  19. data/lib/lesli/version.rb +2 -2
  20. metadata +48 -54
  21. data/app/assets/config/lesli_manifest.js +0 -42
  22. data/app/assets/images/lesli/brand/app-auth.svg +0 -9
  23. data/app/assets/images/lesli/brand/app-icon.svg +0 -48
  24. data/app/assets/images/lesli/brand/app-logo.png +0 -0
  25. data/app/assets/images/lesli/brand/app-logo.svg +0 -4
  26. data/app/assets/images/lesli/brand/favicon.png +0 -0
  27. data/app/assets/images/lesli/brand/favicon.svg +0 -61
  28. data/app/assets/images/lesli/brand/login-background.jpg +0 -0
  29. data/app/assets/images/lesli/brand/register-background.jpg +0 -0
  30. data/app/assets/javascripts/lesli/application.js +0 -1
  31. data/config/importmap.rb +0 -1
  32. data/lib/generators/application_lesli_generator_base.rb +0 -164
  33. data/lib/generators/lesli/spec/USAGE +0 -8
  34. data/lib/generators/lesli/spec/spec_generator.rb +0 -22
  35. data/lib/generators/lesli/spec/templates/spec-factory.template +0 -17
  36. data/lib/generators/lesli/spec/templates/spec-model.template +0 -70
  37. data/lib/generators/lesli/view/USAGE +0 -8
  38. data/lib/generators/lesli/view/templates/spec-factory.template +0 -17
  39. data/lib/generators/lesli/view/templates/spec-model.template +0 -70
  40. data/lib/generators/lesli/view/view_generator.rb +0 -22
  41. data/lib/lesli/r_spec.rb +0 -43
  42. data/lib/scss/_apps.scss +0 -94
  43. data/lib/scss/application.scss +0 -34
@@ -1,61 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- inkscape:version="1.0 (4035a4f, 2020-05-01)"
11
- height="792.88586"
12
- width="913.88531"
13
- sodipodi:docname="lesli-icon.svg"
14
- version="1.1"
15
- viewBox="0 0 913.88531 792.88586"
16
- data-name="Layer 1"
17
- id="Layer_1">
18
- <metadata
19
- id="metadata21">
20
- <rdf:RDF>
21
- <cc:Work
22
- rdf:about="">
23
- <dc:format>image/svg+xml</dc:format>
24
- <dc:type
25
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
26
- </cc:Work>
27
- </rdf:RDF>
28
- </metadata>
29
- <sodipodi:namedview
30
- inkscape:current-layer="Layer_1"
31
- inkscape:window-maximized="1"
32
- inkscape:window-y="23"
33
- inkscape:window-x="0"
34
- inkscape:cy="396.44301"
35
- inkscape:cx="456.948"
36
- inkscape:zoom="0.85703125"
37
- showgrid="false"
38
- id="namedview19"
39
- inkscape:window-height="940"
40
- inkscape:window-width="1680"
41
- inkscape:pageshadow="2"
42
- inkscape:pageopacity="0"
43
- guidetolerance="10"
44
- gridtolerance="10"
45
- objecttolerance="10"
46
- borderopacity="1"
47
- bordercolor="#666666"
48
- pagecolor="#ffffff" />
49
- <defs
50
- id="defs12">
51
- <style
52
- id="style10">.cls-1{fill:#3b6cff;}</style>
53
- </defs>
54
- <title
55
- id="title14">LESLI_LOGO_EDITABLE</title>
56
- <path
57
- style="stroke-width:1.6285"
58
- id="path16"
59
- d="M 913.8853,396.44306 A 179.92038,169.79974 0 0 0 765.26202,229.31696 179.85333,169.73645 0 0 0 456.44871,63.772899 179.80304,169.68899 0 0 0 147.68569,229.44353 a 179.85333,169.73645 0 0 0 0,333.99906 179.85333,169.73645 0 0 0 308.76302,165.67063 179.80304,169.68899 0 0 0 308.81331,-165.54406 179.92038,169.79974 0 0 0 148.62328,-167.1261 z m -446.00404,135.169 v 29.47331 H 412.56241 V 448.15975 A 32.654887,30.818028 0 0 0 379.84048,417.34173 H 260.18412 V 365.1346 h 119.65636 a 32.67165,30.833847 0 0 0 32.65488,-30.83385 V 221.32768 h 55.31885 v 112.9098 a 32.688413,30.849668 0 0 0 32.72194,30.83384 h 119.6396 v 52.20713 h -119.6396 a 32.67165,30.833847 0 0 0 -32.67165,30.81803 v 83.4523 z"
60
- class="cls-1" />
61
- </svg>
@@ -1 +0,0 @@
1
- import "@hotwired/turbo-rails";
data/config/importmap.rb DELETED
@@ -1 +0,0 @@
1
- # Pin npm packages by running ./bin/importmap
@@ -1,164 +0,0 @@
1
- =begin
2
-
3
- Lesli
4
-
5
- Copyright (c) 2025, Lesli Technologies, S. A.
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- (at your option) any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see http://www.gnu.org/licenses/.
19
-
20
- Lesli · Ruby on Rails SaaS Development Framework.
21
-
22
- Made with ♥ by LesliTech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://www.lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
- =end
32
-
33
-
34
- =begin
35
-
36
- Information reference:
37
-
38
-
39
- rails generate lesli:test CloudEngine/Things
40
-
41
- @info = {
42
- :engine=>"CloudEngine",
43
- :engine_code=>"cloud_engine",
44
- :engine_name=>"engine",
45
- :resources=>"Things",
46
- :resources_code=>"things",
47
- :resources_camel=>"things",
48
- :resource=>"Thing",
49
- :resource_camel=>"thing"
50
- }
51
-
52
- @vue = {
53
- :path_base=> "~/engines/cloud_engine/lib/vue",
54
- :path_apps=> "~/engines/cloud_engine/lib/vue/apps/thing",
55
- :path_store=> "~/engines/cloud_engine/lib/vue/stores/thing.js",
56
- :path_components=> "~/engines/cloud_engine/lib/vue/apps/thing/components"
57
- }
58
-
59
- @services = {
60
- :path=> "~/engines/cloud_engine/app/services/thing_services.rb"
61
- }
62
-
63
- @rspec = {
64
- :path_request=> "~/engines/cloud_engine/spec/requests/thing"
65
- }
66
- =end
67
- module Lesli
68
- class ApplicationLesliGeneratorBase < Rails::Generators::NamedBase
69
-
70
- @info;
71
- @model;
72
- @factory;
73
- @services;
74
- @rspec;
75
- @vue;
76
-
77
- def parse_info
78
-
79
- engine, resource = name.split("/")
80
-
81
- # engine information
82
- engine_code = engine.underscore
83
-
84
- # resource information
85
- resource_code = resource.underscore
86
-
87
- @info = {
88
- :engine => engine,
89
- :engine_code => engine_code,
90
-
91
- :resource => resource,
92
- :resource_code => resource_code,
93
-
94
- :engine_resource => "#{engine}::#{resource}",
95
- :engine_resource_code => "#{engine_code}_#{resource_code}"
96
- }
97
- end
98
-
99
- def parse_model
100
-
101
- tabla = "#{@info[:engine_resource]}".constantize
102
- .columns.map do |column|
103
-
104
- if column.type == :string
105
- value = '""'
106
- faker = "Faker::String.random"
107
- end
108
-
109
- if column.type == :integer
110
- value = 1
111
- faker = "Faker::Number.digit"
112
- end
113
-
114
- if column.type == :datetime
115
- value = "'#{Time.now}'"
116
- faker = 'Faker::Date.between(from: 2.days.ago, to: Date.today)'
117
- end
118
-
119
- {
120
- :name => column.name,
121
- :type => column.type,
122
- :null => column.null,
123
- :value => value,
124
- :faker => faker
125
- }
126
- end
127
-
128
- @model = {
129
- :name => @info[:engine_resource],
130
- :columns => tabla
131
- }
132
- end
133
-
134
- # def parse_services
135
-
136
- # path_base = Rails.root.join("engines", @info[:engine_code], "app", "services")
137
-
138
- # @services = {
139
- # :path => path_base.join(@info[:resource].downcase + "_services.rb")
140
- # }
141
- # end
142
-
143
- # def parse_vue
144
-
145
- # path_base = Rails.root.join("engines", @info[:engine_code], "lib", "vue")
146
-
147
- # @vue = {
148
- # :path_base => path_base,
149
- # :path_apps => path_base.join("apps", @info[:resources_code]),
150
- # :path_store => path_base.join("stores", "#{ @info[:resources_camel] }.js"),
151
- # :path_components => path_base.join("apps", @info[:resources_code], "components")
152
- # }
153
- # end
154
-
155
- # def parse_rspec
156
- # path_base = Rails.root.join("engines", @info[:engine_code], "spec")
157
-
158
- # @rspec = {
159
- # :path_request => path_base.join("requests", @info[:resources_code]),
160
- # :url => @info[:engine_name] + "/" + @info[:resources_code]
161
- # }
162
- # end
163
- end
164
- end
@@ -1,8 +0,0 @@
1
- Description:
2
- Explain the generator
3
-
4
- Example:
5
- bin/rails generate lesli:spec Lesli/Account
6
-
7
- This will create:
8
- what/will/it/create
@@ -1,22 +0,0 @@
1
-
2
-
3
- # ·
4
- require "#{Lesli::Engine.root}/lib/generators/application_lesli_generator_base.rb"
5
-
6
- module Lesli
7
- class SpecGenerator < ApplicationLesliGeneratorBase
8
- source_root File.expand_path("templates", __dir__)
9
-
10
- def generator
11
- L2.msg "Generating Lesli Model spec"
12
-
13
- pp @info;
14
- pp @model;
15
- pp @services;
16
- pp @rspec;
17
-
18
- #template("spec-factory.template", "#{(@info[:engine].constantize)::Engine.root.join('spec', 'factories', @info[:engine_resource_code])}.rb")
19
- template("spec-model.template", "#{(@info[:engine].constantize)::Engine.root.join('spec', 'models', @info[:engine_resource_code])}_spec.rb")
20
- end
21
- end
22
- end
@@ -1,17 +0,0 @@
1
- =begin
2
- <%# TODO: Use the license file if no lesli.txt file found %>
3
- <%= File.read(Lesli::Engine.root.join("lesli.txt")).to_s.force_encoding("ASCII-8BIT") %>=end
4
-
5
- FactoryBot.define do
6
- factory :<%= @info[:engine_resource_code] %>, class: <%= @info[:engine_resource] %> do
7
- name { Faker::Company.name }
8
-
9
- <% @model[:columns].each do |column| %>
10
- <%= column[:name] %> { <%= column[:faker] %> }<% end %>
11
-
12
- after(:create) do |account, evaluator|
13
- account.user = FactoryBot.create(:user, account_id: account.id)
14
- account.save
15
- end
16
- end
17
- end
@@ -1,70 +0,0 @@
1
- =begin
2
- <%# TODO: Use the license file if no lesli.txt file found %>
3
- <%= File.read(Lesli::Engine.root.join("lesli.txt")).to_s.force_encoding("ASCII-8BIT") %>=end
4
-
5
- require "rails_helper"
6
- require Lesli::Engine.root.join("spec/support/testers/model")
7
-
8
- RSpec.describe <%= @model[:name]%>, type: :model do
9
-
10
- # Setup runs before each test
11
- let(:<%= @info[:engine_resource_code] %>) { FactoryBot.create(:<%= @info[:engine_resource_code] %>) }
12
-
13
- it "is valid with valid attributes" do
14
- expect(<%= @info[:engine_resource_code] %>).to be_valid
15
- end
16
-
17
- <% @model[:columns].each do |column| %>
18
- <% next if ["id", "created_at", "updated_at"].include?(column[:name]) %>
19
- <% if !column[:null] %>
20
- it "is valid with valid attributes" do
21
- <%= @info[:engine_resource_code] %>.<%= column[:name]%> = nil
22
- expect(<%= @info[:engine_resource_code] %>).not_to be_valid
23
- end
24
- <% end %>
25
- <% end %>
26
-
27
- =begin
28
-
29
-
30
- it "is invalid without a name" do
31
- account.name = nil
32
- expect(account).not_to be_valid
33
- end
34
-
35
- it "is invalid without an email" do
36
- account.email = nil
37
- expect(account).not_to be_valid
38
- end
39
-
40
- it "is invalid with a duplicate email" do
41
- account.save
42
- duplicate_account = Account.new(name: "Test Account 2", email: "test@example.com", balance: 50.0)
43
- expect(duplicate_account).not_to be_valid
44
- end
45
-
46
- it "is invalid without a balance" do
47
- account.balance = nil
48
- expect(account).not_to be_valid
49
- end
50
-
51
- it "is invalid with a negative balance" do
52
- account.balance = -1
53
- expect(account).not_to be_valid
54
- end
55
-
56
- # Test associations
57
- it "has many transactions" do
58
- expect(account).to respond_to(:transactions)
59
- end
60
-
61
- # Test custom methods
62
- describe "#update_balance" do
63
- it "updates the balance correctly" do
64
- account.save
65
- account.update_balance(50.0)
66
- expect(account.reload.balance).to eq(150.0)
67
- end
68
- end
69
- =end
70
- end
@@ -1,8 +0,0 @@
1
- Description:
2
- Explain the generator
3
-
4
- Example:
5
- bin/rails generate lesli:spec Lesli/Account
6
-
7
- This will create:
8
- what/will/it/create
@@ -1,17 +0,0 @@
1
- =begin
2
- <%# TODO: Use the license file if no lesli.txt file found %>
3
- <%= File.read(Lesli::Engine.root.join("lesli.txt")).to_s.force_encoding("ASCII-8BIT") %>=end
4
-
5
- FactoryBot.define do
6
- factory :<%= @info[:engine_resource_code] %>, class: <%= @info[:engine_resource] %> do
7
- name { Faker::Company.name }
8
-
9
- <% @model[:columns].each do |column| %>
10
- <%= column[:name] %> { <%= column[:faker] %> }<% end %>
11
-
12
- after(:create) do |account, evaluator|
13
- account.user = FactoryBot.create(:user, account_id: account.id)
14
- account.save
15
- end
16
- end
17
- end
@@ -1,70 +0,0 @@
1
- =begin
2
- <%# TODO: Use the license file if no lesli.txt file found %>
3
- <%= File.read(Lesli::Engine.root.join("lesli.txt")).to_s.force_encoding("ASCII-8BIT") %>=end
4
-
5
- require "rails_helper"
6
- require Lesli::Engine.root.join("spec/support/testers/model")
7
-
8
- RSpec.describe <%= @model[:name]%>, type: :model do
9
-
10
- # Setup runs before each test
11
- let(:<%= @info[:engine_resource_code] %>) { FactoryBot.create(:<%= @info[:engine_resource_code] %>) }
12
-
13
- it "is valid with valid attributes" do
14
- expect(<%= @info[:engine_resource_code] %>).to be_valid
15
- end
16
-
17
- <% @model[:columns].each do |column| %>
18
- <% next if ["id", "created_at", "updated_at"].include?(column[:name]) %>
19
- <% if !column[:null] %>
20
- it "is valid with valid attributes" do
21
- <%= @info[:engine_resource_code] %>.<%= column[:name]%> = nil
22
- expect(<%= @info[:engine_resource_code] %>).not_to be_valid
23
- end
24
- <% end %>
25
- <% end %>
26
-
27
- =begin
28
-
29
-
30
- it "is invalid without a name" do
31
- account.name = nil
32
- expect(account).not_to be_valid
33
- end
34
-
35
- it "is invalid without an email" do
36
- account.email = nil
37
- expect(account).not_to be_valid
38
- end
39
-
40
- it "is invalid with a duplicate email" do
41
- account.save
42
- duplicate_account = Account.new(name: "Test Account 2", email: "test@example.com", balance: 50.0)
43
- expect(duplicate_account).not_to be_valid
44
- end
45
-
46
- it "is invalid without a balance" do
47
- account.balance = nil
48
- expect(account).not_to be_valid
49
- end
50
-
51
- it "is invalid with a negative balance" do
52
- account.balance = -1
53
- expect(account).not_to be_valid
54
- end
55
-
56
- # Test associations
57
- it "has many transactions" do
58
- expect(account).to respond_to(:transactions)
59
- end
60
-
61
- # Test custom methods
62
- describe "#update_balance" do
63
- it "updates the balance correctly" do
64
- account.save
65
- account.update_balance(50.0)
66
- expect(account.reload.balance).to eq(150.0)
67
- end
68
- end
69
- =end
70
- end
@@ -1,22 +0,0 @@
1
-
2
-
3
- # ·
4
- require "#{Lesli::Engine.root}/lib/generators/application_lesli_generator_base.rb"
5
-
6
- module Lesli
7
- class ViewGenerator < ApplicationLesliGeneratorBase
8
- source_root File.expand_path("templates", __dir__)
9
-
10
- def generator
11
- L2.msg "Generating Lesli Model spec"
12
-
13
- pp @info;
14
- pp @model;
15
- pp @services;
16
- pp @rspec;
17
-
18
- #template("spec-factory.template", "#{(@info[:engine].constantize)::Engine.root.join('spec', 'factories', @info[:engine_resource_code])}.rb")
19
- template("spec-model.template", "#{(@info[:engine].constantize)::Engine.root.join('spec', 'models', @info[:engine_resource_code])}_spec.rb")
20
- end
21
- end
22
- end
data/lib/lesli/r_spec.rb DELETED
@@ -1,43 +0,0 @@
1
- =begin
2
-
3
- Lesli
4
-
5
- Copyright (c) 2024, Lesli Technologies, S. A.
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- (at your option) any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see http://www.gnu.org/licenses/.
19
-
20
- Lesli · Ruby on Rails SaaS Development Framework.
21
-
22
- Made with ♥ by LesliTech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://www.lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
- =end
32
-
33
- # ·
34
- module Lesli
35
- module RSpec
36
- def self.testers_request
37
- Lesli::Engine.root.join("lib/rspec/testers/request")
38
- end
39
- def self.testers_model
40
- Lesli::Engine.root.join("lib/rspec/testers/model")
41
- end
42
- end
43
- end
data/lib/scss/_apps.scss DELETED
@@ -1,94 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2025, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Ruby on Rails SaaS Development Framework.
20
-
21
- Made with ♥ by LesliTech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://www.lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // ·
34
- @use "lesli-css/sass/helpers/shadow";
35
- @use "lesli-css/sass/helpers/breakpoint";
36
-
37
-
38
- // ·
39
- body.lesli.apps.show {
40
-
41
- .lesli-element-header {
42
- margin-bottom: 5rem !important;
43
- }
44
-
45
- .engines {
46
- gap: 24px;
47
- margin-inline-end: auto;
48
- margin-inline-start: auto;
49
-
50
- a {
51
- flex-basis: 318px;
52
- text-align: center;
53
- padding: 2rem .4rem 2.8rem;
54
- border: white 1px solid;
55
- border-radius: 6px;
56
- background-color: white;
57
- transition: all ease-in-out .2s;
58
-
59
- @include shadow.lesli-shadow();
60
-
61
- &:hover {
62
- border-color: var(--lesli-color-primary);
63
- transform: translateY(-2px);
64
- }
65
-
66
- &.is-active {
67
- background-color: #F0F4FF;
68
- border-color: var(--lesli-color-primary);
69
- }
70
-
71
- // engine logo
72
- svg {
73
- margin-right: .4rem;
74
- fill: var(--lesli-color-primary);
75
- }
76
-
77
- // engine description
78
- p {
79
- font-size: 14;
80
- font-family: "OpenSans";
81
- }
82
-
83
- // engine name
84
- span {
85
- font-weight: 600;
86
- font-size: 20px;
87
- }
88
-
89
- span, p {
90
- color: var(--lesli-color-primary);
91
- }
92
- }
93
- }
94
- }
@@ -1,34 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2025, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Ruby on Rails SaaS Development Framework.
20
-
21
- Made with ♥ by LesliTech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://www.lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // ·
34
- @use "apps";