lightning_ui_kit 0.2.0 → 0.3.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 +4 -4
- data/README.md +3 -0
- data/app/assets/builds/lightning_ui_kit.css +101 -31
- data/app/assets/builds/lightning_ui_kit.js +2 -2
- data/app/assets/builds/lightning_ui_kit.js.map +4 -4
- data/app/assets/vendor/lightning_ui_kit.css +101 -31
- data/app/assets/vendor/lightning_ui_kit.js +2 -2
- data/app/components/lightning_ui_kit/modal_component.html.erb +1 -1
- data/app/components/lightning_ui_kit/toast_component.html.erb +22 -0
- data/app/components/lightning_ui_kit/toast_component.rb +13 -0
- data/app/javascript/lightning_ui_kit/controllers/toast_controller.js +34 -0
- data/app/javascript/lightning_ui_kit/index.js +2 -0
- data/config/deploy.yml +58 -0
- data/lib/lightning_ui_kit/version.rb +1 -1
- metadata +6 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="lui:fixed lui:inset-0 lui:flex lui:w-screen lui:justify-center lui:overflow-y-auto lui:bg-zinc-950/25 lui:px-2 lui:py-2 lui:transition lui:duration-100 lui:focus:outline-0 lui:data-closed:opacity-0 lui:data-enter:ease-out lui:data-leave:ease-in lui:sm:px-6 lui:sm:py-8 lg:lui:px-8 lg:lui:py-16" aria-hidden="true" data-open=""></div>
|
3
3
|
<div class="lui:fixed lui:inset-0 lui:w-screen lui:overflow-y-auto lui:pt-6 lui:sm:pt-0">
|
4
4
|
<div class="lui:grid lui:min-h-full lui:grid-rows-[1fr_auto] lui:justify-items-center lui:sm:grid-rows-[1fr_auto_3fr] lui:sm:p-4">
|
5
|
-
<div class="lui:sm:max-w-3xl lui:row-start-2 lui:w-full lui:min-w-0 lui:rounded-t-3xl lui:bg-white lui:p-(--gutter) lui:ring-1 lui:shadow-lg lui:ring-zinc-950/10 [--gutter:--spacing(8)] lui:sm:mb-auto lui:sm:rounded-2xl lui:forced-colors:outline lui:transition lui:duration-100 lui:will-change-transform lui:data-closed:translate-y-12 lui:data-closed:opacity-0 lui:data-enter:ease-out lui:data-leave:ease-in lui:sm:data-closed:translate-y-0 lui:sm:data-closed:data-enter:scale-95" data-open="">
|
5
|
+
<div class="lui:sm:max-w-3xl lui:row-start-2 lui:w-full lui:min-w-0 lui:rounded-t-3xl lui:bg-white lui:p-(--gutter) lui:ring-1 lui:shadow-lg lui:ring-zinc-950/10 lui:[--gutter:--spacing(8)] lui:sm:mb-auto lui:sm:rounded-2xl lui:forced-colors:outline lui:transition lui:duration-100 lui:will-change-transform lui:data-closed:translate-y-12 lui:data-closed:opacity-0 lui:data-enter:ease-out lui:data-leave:ease-in lui:sm:data-closed:translate-y-0 lui:sm:data-closed:data-enter:scale-95" data-open="">
|
6
6
|
<% if @title %>
|
7
7
|
<h2 class="lui:text-lg/6 lui:font-semibold lui:text-balance lui:text-zinc-950 lui:sm:text-base/6" data-open="">
|
8
8
|
<%= @title %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= tag.div(
|
2
|
+
class: classes,
|
3
|
+
data: {
|
4
|
+
controller: "lui-toast",
|
5
|
+
lui_toast_target: "toast",
|
6
|
+
lui_toast_autodismiss_value: @autodismiss,
|
7
|
+
lui_toast_dismiss_after_value: @dismiss_after,
|
8
|
+
}
|
9
|
+
) do %>
|
10
|
+
<div class="lui:flex lui:items-center lui:w-full lui:max-w-xs lui:p-4 lui:text-zinc-600 lui:bg-white lui:rounded-lg lui:shadow" role="alert">
|
11
|
+
<div class="lui:ml-3 lui:text-sm lui:font-normal"><%= content %></div>
|
12
|
+
<button
|
13
|
+
type="button"
|
14
|
+
class="lui:ml-auto lui:-mx-1.5 lui:-my-1.5 lui:bg-white lui:text-zinc-600 lui:hover:text-zinc-950
|
15
|
+
lui:rounded-lg lui:focus:ring-2 lui:focus:ring-zinc-950/10 lui:p-1.5 lui:hover:bg-gray-100 lui:inline-flex
|
16
|
+
lui:items-center lui:justify-center lui:h-8 lui:w-8 lui:cursor-pointer" data-action="click->lui-toast#close" aria-label="Close">
|
17
|
+
<svg class="lui:w-3 lui:h-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14">
|
18
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"/>
|
19
|
+
</svg>
|
20
|
+
</button>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class LightningUiKit::ToastComponent < LightningUiKit::BaseComponent
|
4
|
+
def initialize(autodismiss: true, dismiss_after: 3000, **options)
|
5
|
+
@autodismiss = autodismiss
|
6
|
+
@dismiss_after = dismiss_after
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def classes
|
11
|
+
merge_classes(["lui:w-full lui:flex lui:justify-center lui:fixed lui:bottom-5", @options[:class]].compact.join(" "))
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Controller } from '@hotwired/stimulus'
|
2
|
+
import { useTransition } from "stimulus-use"
|
3
|
+
|
4
|
+
export default class extends Controller {
|
5
|
+
static targets = ['toast']
|
6
|
+
static values = {
|
7
|
+
autodismiss: Boolean,
|
8
|
+
dismissAfter: Number
|
9
|
+
}
|
10
|
+
|
11
|
+
connect () {
|
12
|
+
if (this.autodismissValue) {
|
13
|
+
setTimeout(() => {
|
14
|
+
this.close()
|
15
|
+
}, this.dismissAfterValue)
|
16
|
+
}
|
17
|
+
|
18
|
+
useTransition(this, {
|
19
|
+
element: this.toastTarget,
|
20
|
+
enterActive: 'lui:transition lui:ease-in-out lui:duration-150',
|
21
|
+
enterFrom: 'lui:transform lui:opacity-0 lui:scale-95',
|
22
|
+
enterTo: 'lui:transform lui:opacity-100 lui:scale-100',
|
23
|
+
leaveActive: 'lui:transition lui:ease-in-out lui:duration-150',
|
24
|
+
leaveFrom: 'lui:transform lui:opacity-100 lui:scale-100',
|
25
|
+
leaveTo: 'lui:transform lui:opacity-0 lui:scale-95',
|
26
|
+
hiddenClass: "lui:hidden",
|
27
|
+
transitioned: true,
|
28
|
+
});
|
29
|
+
}
|
30
|
+
|
31
|
+
close () {
|
32
|
+
this.leave();
|
33
|
+
}
|
34
|
+
}
|
@@ -18,6 +18,7 @@ import RevealController from './controllers/reveal_controller'
|
|
18
18
|
import SwitchController from './controllers/switch_controller'
|
19
19
|
import DropdownController from './controllers/dropdown_controller'
|
20
20
|
import DropzoneController from './controllers/dropzone_controller'
|
21
|
+
import ToastController from './controllers/toast_controller'
|
21
22
|
|
22
23
|
export function registerLuiControllers(application) {
|
23
24
|
application.register(`${namespace}-clipboard`, ClipboardController)
|
@@ -30,6 +31,7 @@ export function registerLuiControllers(application) {
|
|
30
31
|
application.register(`${namespace}-switch`, SwitchController)
|
31
32
|
application.register(`${namespace}-dropdown`, DropdownController)
|
32
33
|
application.register(`${namespace}-dropzone`, DropzoneController)
|
34
|
+
application.register(`${namespace}-toast`, ToastController)
|
33
35
|
}
|
34
36
|
registerLuiControllers(application)
|
35
37
|
|
data/config/deploy.yml
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
service: lui_kit
|
2
|
+
image: k0va1/lui_kit
|
3
|
+
|
4
|
+
ssh:
|
5
|
+
user: www
|
6
|
+
|
7
|
+
registry:
|
8
|
+
server: ghcr.io
|
9
|
+
username: k0va1
|
10
|
+
password:
|
11
|
+
- KAMAL_REGISTRY_PASSWORD
|
12
|
+
|
13
|
+
builder:
|
14
|
+
arch: amd64
|
15
|
+
args:
|
16
|
+
RUBY_VERSION: "3.3.5"
|
17
|
+
NODE_VERSION: "20.18.1"
|
18
|
+
RAILS_ENV: "production"
|
19
|
+
|
20
|
+
servers:
|
21
|
+
web:
|
22
|
+
hosts:
|
23
|
+
- "49.13.117.76"
|
24
|
+
options:
|
25
|
+
memory: 512M
|
26
|
+
|
27
|
+
volumes:
|
28
|
+
- ./storage:/rails/lookbook/storage
|
29
|
+
|
30
|
+
env:
|
31
|
+
clear:
|
32
|
+
RAILS_LOG_TO_STDOUT: 1
|
33
|
+
RAILS_SERVE_STATIC_FILES: 1
|
34
|
+
RAILS_ENV: production
|
35
|
+
secret:
|
36
|
+
- RAILS_MASTER_KEY
|
37
|
+
|
38
|
+
proxy:
|
39
|
+
ssl: false
|
40
|
+
app_port: 8000
|
41
|
+
host: ui.lightningrails.xyz
|
42
|
+
forward_headers: true
|
43
|
+
healthcheck:
|
44
|
+
interval: 3
|
45
|
+
path: /up
|
46
|
+
timeout: 3
|
47
|
+
logging:
|
48
|
+
request_headers:
|
49
|
+
- Cache-Control
|
50
|
+
- X-Forwarded-Proto
|
51
|
+
response_headers:
|
52
|
+
- X-Request-ID
|
53
|
+
- X-Request-Start
|
54
|
+
|
55
|
+
aliases:
|
56
|
+
console: app exec --interactive --reuse "bin/rails console"
|
57
|
+
shell: app exec --interactive --reuse "bash"
|
58
|
+
logs: app logs -f
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lightning_ui_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Koval
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -161,6 +161,8 @@ files:
|
|
161
161
|
- app/components/lightning_ui_kit/text_component.rb
|
162
162
|
- app/components/lightning_ui_kit/textarea_component.html.erb
|
163
163
|
- app/components/lightning_ui_kit/textarea_component.rb
|
164
|
+
- app/components/lightning_ui_kit/toast_component.html.erb
|
165
|
+
- app/components/lightning_ui_kit/toast_component.rb
|
164
166
|
- app/helpers/lightning_ui_kit/application_helper.rb
|
165
167
|
- app/helpers/lightning_ui_kit/heroicon_helper.rb
|
166
168
|
- app/javascript/lightning_ui_kit/controllers/accordion_controller.js
|
@@ -173,7 +175,9 @@ files:
|
|
173
175
|
- app/javascript/lightning_ui_kit/controllers/modal_controller.js
|
174
176
|
- app/javascript/lightning_ui_kit/controllers/reveal_controller.js
|
175
177
|
- app/javascript/lightning_ui_kit/controllers/switch_controller.js
|
178
|
+
- app/javascript/lightning_ui_kit/controllers/toast_controller.js
|
176
179
|
- app/javascript/lightning_ui_kit/index.js
|
180
|
+
- config/deploy.yml
|
177
181
|
- config/initializers/heroicons.rb
|
178
182
|
- config/locales/en.yml
|
179
183
|
- lib/lightning_ui_kit.rb
|