lesli_assets 0.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.
- checksums.yaml +7 -0
- data/Rakefile +3 -0
- data/app/assets/config/lesli_assets_manifest.js +9 -0
- data/app/assets/fonts/lesli_assets/Domine/Domine-Variable.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Domine/OFL.txt +97 -0
- data/app/assets/fonts/lesli_assets/MaterialDesign/icons.woff2 +0 -0
- data/app/assets/fonts/lesli_assets/Montserrat/Montserrat-Variable.ttf +0 -0
- data/app/assets/fonts/lesli_assets/OpenSans/OpenSans-Variable.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.eot +0 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.glyph.json +1 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.svg +9196 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.symbol.svg +11 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.woff +0 -0
- data/app/assets/fonts/lesli_assets/Remix/remixicon.woff2 +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/LICENSE.txt +202 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Black.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-BlackItalic.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Bold.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-BoldItalic.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Italic.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Light.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-LightItalic.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Medium.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-MediumItalic.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Regular.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-Thin.ttf +0 -0
- data/app/assets/fonts/lesli_assets/Roboto/Roboto-ThinItalic.ttf +0 -0
- data/app/assets/icons/lesli_assets/engine-admin.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-audit.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-babel.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-bell.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-books.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-calendar.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-dashboard.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-dispatcher.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-focus.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-kb.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-leaf.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-lesli.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-letter.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-mailer.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-one.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-papers.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-profile.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-proposal.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-scraper.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-security.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-shared.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-shield.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-storage.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-support.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-talk.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-team.svg +1 -0
- data/app/assets/icons/lesli_assets/engine-time.svg +1 -0
- data/app/assets/icons/lesli_assets/gem-assets.svg +1 -0
- data/app/assets/icons/lesli_assets/gem-css.svg +1 -0
- data/app/assets/icons/lesli_assets/gem-date.svg +1 -0
- data/app/assets/icons/lesli_assets/gem-system.svg +1 -0
- data/app/assets/icons/lesli_assets/gem-view.svg +1 -0
- data/app/assets/icons/lesli_assets/locale-en.svg +1 -0
- data/app/assets/icons/lesli_assets/locale-es.svg +1 -0
- data/app/assets/icons/lesli_assets/locale-fr.svg +1 -0
- data/app/assets/icons/lesli_assets/locale-it.svg +1 -0
- data/app/assets/icons/lesli_assets/locale-pt.svg +1 -0
- data/app/assets/icons/readme.md +15 -0
- data/app/assets/images/assets-logo.svg +1 -0
- data/app/assets/javascripts/lesli_assets/application.js +1111 -0
- data/app/assets/stylesheets/lesli_assets/templates/application.css +28819 -0
- data/app/assets/stylesheets/lesli_assets/templates/public.css +15578 -0
- data/app/assets/stylesheets/lesli_assets/templates/start.css +5634 -0
- data/app/views/lesli_assets/partials/_application-lesli-icons.html.erb +1 -0
- data/lib/lesli_assets/engine.rb +9 -0
- data/lib/lesli_assets/version.rb +4 -0
- data/lib/lesli_assets.rb +6 -0
- data/lib/lesli_assets_alpine/application.js +60 -0
- data/lib/lesli_assets_alpine/debug.js +198 -0
- data/lib/lesli_assets_bulma/fonts/families.scss +47 -0
- data/lib/lesli_assets_bulma/fonts/mdicons.scss +82 -0
- data/lib/lesli_assets_bulma/fonts/remixicons.scss +3083 -0
- data/lib/lesli_assets_bulma/helpers/display.scss +44 -0
- data/lib/lesli_assets_bulma/helpers/tooltip.scss +91 -0
- data/lib/lesli_assets_bulma/layouts/application-app.scss +36 -0
- data/lib/lesli_assets_bulma/layouts/application-component.scss +39 -0
- data/lib/lesli_assets_bulma/layouts/application-container.scss +36 -0
- data/lib/lesli_assets_bulma/layouts/application-engines.scss +108 -0
- data/lib/lesli_assets_bulma/layouts/application-header.scss +94 -0
- data/lib/lesli_assets_bulma/layouts/application-navigation.scss +93 -0
- data/lib/lesli_assets_bulma/layouts/application-notification.scss +24 -0
- data/lib/lesli_assets_bulma/layouts/application-sidebar.scss +93 -0
- data/lib/lesli_assets_bulma/pages/devise-simple.scss +89 -0
- data/lib/lesli_assets_bulma/pages/devise.scss +164 -0
- data/lib/lesli_assets_bulma/pages/invites.scss +81 -0
- data/lib/lesli_assets_bulma/panels/panel-announcements.scss +56 -0
- data/lib/lesli_assets_bulma/panels/panel-notification.scss +67 -0
- data/lib/lesli_assets_bulma/panels/panel-profile.scss +62 -0
- data/lib/lesli_assets_bulma/panels/panel-support-ticket.scss +56 -0
- data/lib/lesli_assets_bulma/panels/panel-tasks.scss +41 -0
- data/lib/lesli_assets_bulma/settings/variables.scss +150 -0
- data/lib/lesli_assets_bulma/shared/workflow-status-progress.scss +135 -0
- data/lib/lesli_assets_bulma/templates/application.scss +88 -0
- data/lib/lesli_assets_bulma/templates/component.scss +39 -0
- data/lib/lesli_assets_bulma/templates/dashboards.scss +51 -0
- data/lib/lesli_assets_bulma/templates/empty.scss +42 -0
- data/lib/lesli_assets_bulma/templates/pdf.scss +45 -0
- data/lib/lesli_assets_bulma/templates/public.scss +53 -0
- data/lib/lesli_assets_bulma/templates/start.scss +53 -0
- data/lib/lesli_assets_tailwind/tailwind.app.css +11 -0
- data/lib/lesli_assets_tailwind/tailwind.config.js +10 -0
- data/lib/lesli_assets_tailwind/tailwind.test.html +19 -0
- data/lib/tasks/lesli_assets_tasks.rake +4 -0
- data/license +674 -0
- data/readme.md +69 -0
- metadata +161 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
// ·
|
2
|
+
|
3
|
+
import dayjs from "dayjs";
|
4
|
+
|
5
|
+
class LesliDebug {
|
6
|
+
|
7
|
+
m(message, modulo=null, level=null) {
|
8
|
+
return this.#buildMessage(message, modulo, level)
|
9
|
+
}
|
10
|
+
|
11
|
+
// · write information message
|
12
|
+
log(message, modulo = null) {
|
13
|
+
console.log(this.#buildMessage(message, modulo, "log"))
|
14
|
+
}
|
15
|
+
|
16
|
+
// · write information message
|
17
|
+
msg(message, modulo = null) {
|
18
|
+
console.log(this.#buildMessage(message, modulo, "msg"))
|
19
|
+
}
|
20
|
+
|
21
|
+
// · write informatie message
|
22
|
+
info(message, modulo = null) {
|
23
|
+
console.info("%c"+this.#buildMessage(message, modulo, "info"), this.#stylesForBrowser("info"))
|
24
|
+
}
|
25
|
+
|
26
|
+
// · write success message
|
27
|
+
success(message, modulo = null) {
|
28
|
+
console.log(this.#buildMessage(message, modulo, "msg"))
|
29
|
+
}
|
30
|
+
|
31
|
+
// · write warning message
|
32
|
+
warn(message, modulo = null) {
|
33
|
+
console.warn("%c"+this.#buildMessage(message, modulo, "warn"), this.#stylesForBrowser("warn"))
|
34
|
+
}
|
35
|
+
|
36
|
+
// · write warning message
|
37
|
+
error(message, modulo = null) {
|
38
|
+
console.error("%c"+this.#buildMessage(message, modulo, "error"), this.#stylesForBrowser("error"))
|
39
|
+
}
|
40
|
+
|
41
|
+
// · write warning message
|
42
|
+
fatal(message, modulo = null) {
|
43
|
+
console.error("%c"+this.#buildMessage(message, modulo, "error"), this.#stylesForBrowser("fatal"))
|
44
|
+
}
|
45
|
+
|
46
|
+
// ·
|
47
|
+
hr(size=10) {
|
48
|
+
console.log('-·- '.repeat(size))
|
49
|
+
}
|
50
|
+
|
51
|
+
// ·
|
52
|
+
br(size=1) {
|
53
|
+
console.log('')
|
54
|
+
}
|
55
|
+
|
56
|
+
message(title, messages, more_information=null) {
|
57
|
+
|
58
|
+
console.log("%c"+title, "color:#3689e6;font-size:35px;font-weight:600;line-height:1;")
|
59
|
+
|
60
|
+
if (typeof messages === "string") messages = [ messages ]
|
61
|
+
|
62
|
+
console.log("%c"+messages.join("\n"), "background-color:#ffffff;color:#1a1a1a;font-size:18px;font-weight:400;line-height:1.1;")
|
63
|
+
|
64
|
+
if (more_information) {
|
65
|
+
console.log("%c"+more_information, "background-color:#ffffff;color:#1a1a1a;font-size:14px;font-weight:400;line-height:2;")
|
66
|
+
}
|
67
|
+
|
68
|
+
}
|
69
|
+
|
70
|
+
lesli_message_warning(title="LESLI", support="For mor information contact your system administrator") {
|
71
|
+
this.message(title, [
|
72
|
+
"This is a browser feature intended for developers.",
|
73
|
+
"For security reasons, DO NOT copy or paste any information, text, or code here."
|
74
|
+
], support)
|
75
|
+
}
|
76
|
+
|
77
|
+
// ·
|
78
|
+
pp (data, level = 1) {
|
79
|
+
|
80
|
+
let isArray = Array.isArray(data);
|
81
|
+
|
82
|
+
let comma = ","
|
83
|
+
let string = ""
|
84
|
+
let padding_key = ""
|
85
|
+
let padding_prop = ""
|
86
|
+
let newline = "\n"
|
87
|
+
|
88
|
+
for(let i=0;i<(4*level);i++) {
|
89
|
+
padding_prop += " "
|
90
|
+
}
|
91
|
+
|
92
|
+
if (level > 1) {
|
93
|
+
padding_key = padding_prop.slice(0, padding_prop.length - 4)
|
94
|
+
}
|
95
|
+
|
96
|
+
if (typeof data == "object" && !Array.isArray(data)) {
|
97
|
+
|
98
|
+
string += padding_key + "{" + newline
|
99
|
+
|
100
|
+
for(let property in data) {
|
101
|
+
|
102
|
+
if (typeof data[property] == "object") {
|
103
|
+
string += padding_prop + property + ": " + this.print_r(data[property], level+1) + comma + newline
|
104
|
+
} else {
|
105
|
+
string += padding_prop + property + ": " + data[property] + comma + newline
|
106
|
+
}
|
107
|
+
|
108
|
+
}
|
109
|
+
|
110
|
+
string += padding_key + "}"
|
111
|
+
|
112
|
+
}
|
113
|
+
|
114
|
+
if (typeof data == "object" && Array.isArray(data)) {
|
115
|
+
|
116
|
+
string += "[" + newline
|
117
|
+
|
118
|
+
for(let property in data) {
|
119
|
+
|
120
|
+
if (typeof data[property] == "object") {
|
121
|
+
string += this.print_r(data[property], level+1) + comma + newline
|
122
|
+
} else {
|
123
|
+
string += padding_prop + data[property] + newline
|
124
|
+
}
|
125
|
+
|
126
|
+
}
|
127
|
+
|
128
|
+
string += padding_key + "]"
|
129
|
+
|
130
|
+
}
|
131
|
+
|
132
|
+
// trying to remove last comma if is the end of object or array
|
133
|
+
//string = string.replace(/,\n/g, "0")
|
134
|
+
|
135
|
+
return string
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
#buildMessage(message, module, level) {
|
140
|
+
|
141
|
+
// desire output format
|
142
|
+
// [2010-01-17 11:43:37] [ERROR] (cheese module) - Cheese is too ripe!
|
143
|
+
// [2010-01-17 11:43:37] [FATAL] (cheese module) - Cheese was breeding ground for listeria.
|
144
|
+
let newMessage = `[${this.#buildDate()}] [${level.toUpperCase()}]`
|
145
|
+
|
146
|
+
if (module) {
|
147
|
+
newMessage += ` (${module})`
|
148
|
+
}
|
149
|
+
|
150
|
+
newMessage = newMessage.concat(" - ").concat(message)
|
151
|
+
|
152
|
+
return newMessage
|
153
|
+
|
154
|
+
}
|
155
|
+
|
156
|
+
#stylesForBrowser(type) {
|
157
|
+
|
158
|
+
let lineheight="1.5;"
|
159
|
+
let fontsize="14px;"
|
160
|
+
let padding="2px;"
|
161
|
+
|
162
|
+
let info = "background-color:#3498db;color:#ffffff;"
|
163
|
+
let warn = "background-color:#f1c40f;color:#000000;"
|
164
|
+
let error = "background-color:#e74c3c;color:#ffffff;"
|
165
|
+
let fatal = "background-color:#c0392b;color:#fff394;"
|
166
|
+
let success = "background-color:##48c774;color:#000000;"
|
167
|
+
|
168
|
+
let style = ""
|
169
|
+
|
170
|
+
switch (type) {
|
171
|
+
case "info": style = info; break;
|
172
|
+
case "warn": style = warn; break;
|
173
|
+
case "error": style = error; break;
|
174
|
+
case "fatal": style = fatal; break;
|
175
|
+
case "success": style = success; break;
|
176
|
+
}
|
177
|
+
|
178
|
+
style += "padding:" + padding
|
179
|
+
style += "font-size:" + fontsize
|
180
|
+
style += "line-height:" + lineheight
|
181
|
+
|
182
|
+
return style
|
183
|
+
|
184
|
+
}
|
185
|
+
|
186
|
+
// ·
|
187
|
+
#buildDate() {
|
188
|
+
|
189
|
+
return dayjs().format("MM/DD HH:mm").toString()
|
190
|
+
|
191
|
+
}
|
192
|
+
|
193
|
+
}
|
194
|
+
|
195
|
+
// ·
|
196
|
+
export function useLesliDebug() {
|
197
|
+
return new LesliDebug()
|
198
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2023, 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 https://www.lesli.tech
|
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
|
+
*/
|
32
|
+
|
33
|
+
|
34
|
+
// · Font family for titles
|
35
|
+
@font-face {
|
36
|
+
font-family: "Domine";
|
37
|
+
src: url("lesli_assets/Domine/Domine-Variable.ttf") format("truetype");
|
38
|
+
font-display: swap;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
// · Font family for the body
|
43
|
+
@font-face {
|
44
|
+
font-family: "OpenSans";
|
45
|
+
src: url("lesli_assets/OpenSans/OpenSans-Variable.ttf") format("truetype");
|
46
|
+
font-display: swap;
|
47
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2023, 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 https://www.lesli.tech
|
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
|
+
*/
|
32
|
+
|
33
|
+
|
34
|
+
// · MaterialDesignIcons.com
|
35
|
+
@font-face {
|
36
|
+
font-family: 'Material Icons';
|
37
|
+
font-style: normal;
|
38
|
+
font-weight: 400;
|
39
|
+
src: url("lesli/MaterialDesign/icons.woff2") format('woff2');
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
// ·
|
44
|
+
.material-icons {
|
45
|
+
font-family: 'Material Icons';
|
46
|
+
font-weight: normal;
|
47
|
+
font-style: normal;
|
48
|
+
font-size: 20px; /* Preferred icon size */
|
49
|
+
display: inline-block;
|
50
|
+
line-height: 1;
|
51
|
+
text-transform: none;
|
52
|
+
letter-spacing: normal;
|
53
|
+
word-wrap: normal;
|
54
|
+
white-space: nowrap;
|
55
|
+
direction: ltr;
|
56
|
+
|
57
|
+
/* Support for all WebKit browsers. */
|
58
|
+
-webkit-font-smoothing: antialiased;
|
59
|
+
/* Support for Safari and Chrome. */
|
60
|
+
text-rendering: optimizeLegibility;
|
61
|
+
|
62
|
+
/* Support for Firefox. */
|
63
|
+
-moz-osx-font-smoothing: grayscale;
|
64
|
+
|
65
|
+
/* Support for IE. */
|
66
|
+
font-feature-settings: 'liga';
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
/* Rules for sizing the icon. */
|
71
|
+
.material-icons.md-18 { font-size: 18px; }
|
72
|
+
.material-icons.md-24 { font-size: 24px; }
|
73
|
+
.material-icons.md-36 { font-size: 36px; }
|
74
|
+
.material-icons.md-48 { font-size: 48px; }
|
75
|
+
|
76
|
+
/* Rules for using icons as black on a light background. */
|
77
|
+
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
|
78
|
+
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }
|
79
|
+
|
80
|
+
/* Rules for using icons as white on a dark background. */
|
81
|
+
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
|
82
|
+
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }
|