shadcn-ui 0.0.3 → 0.0.5
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/Procfile.dev +0 -1
- data/README.md +13 -314
- data/app/assets/stylesheets/shadcn.css +8 -0
- data/app/controllers/components_controller.rb +1 -0
- data/app/controllers/documentation_controller.rb +0 -1
- data/app/controllers/users_controller.rb +19 -0
- data/app/form_builders/shadcn_form_builder.rb +43 -0
- data/app/helpers/components/alert_dialog_helper.rb +19 -3
- data/app/helpers/components/forms_helper.rb +13 -0
- data/app/helpers/components/input_helper.rb +15 -5
- data/app/helpers/components/slider_helper.rb +1 -1
- data/app/helpers/components/toast_helper.rb +4 -1
- data/app/helpers/components_helper.rb +4 -0
- data/app/helpers/examples_helper.rb +6 -1
- data/app/javascript/controllers/highlight_controller.js +0 -1
- data/app/javascript/controllers/ui/dialog_controller.js +1 -1
- data/app/javascript/controllers/ui/dropdown_controller.js +1 -1
- data/app/javascript/controllers/ui/hover-card_controller.js +2 -3
- data/app/javascript/controllers/ui/popover_controller.js +7 -3
- data/app/javascript/controllers/ui/sheet_controller.js +1 -1
- data/app/javascript/controllers/ui/toast_controller.js +50 -23
- data/app/javascript/controllers/ui/transition_controller.js +1 -1
- data/app/models/user.rb +9 -0
- data/app/views/application/index.html.erb +625 -17
- data/app/views/components/ui/_alert_dialog.html.erb +10 -6
- data/app/views/components/ui/_card.html.erb +7 -1
- data/app/views/components/ui/_dialog.html.erb +0 -26
- data/app/views/components/ui/_filter.html.erb +3 -2
- data/app/views/components/ui/_input.html.erb +3 -0
- data/app/views/components/ui/_label.html.erb +1 -1
- data/app/views/components/ui/_toast.html.erb +8 -4
- data/app/views/documentation/generators.html.md +20 -0
- data/app/views/documentation/helpers.html.md +54 -0
- data/app/views/documentation/installation.html.md +1 -1
- data/app/views/documentation/javascript.html.md +8 -0
- data/app/views/examples/components/accordion.html.erb +5 -7
- data/app/views/examples/components/alert-dialog/_usage.html.erb +24 -0
- data/app/views/examples/components/alert-dialog/code/_preview.erb +22 -0
- data/app/views/examples/components/alert-dialog/code/_usage.erb +13 -0
- data/app/views/examples/components/alert-dialog.html.erb +14 -11
- data/app/views/examples/components/alert.html.erb +9 -10
- data/app/views/examples/components/badge.html.erb +3 -15
- data/app/views/examples/components/button.html.erb +3 -25
- data/app/views/examples/components/card/code/{preview.erb → _preview.erb} +1 -1
- data/app/views/examples/components/card/code/_usage.erb +3 -0
- data/app/views/examples/components/card.html.erb +5 -9
- data/app/views/examples/components/checkbox/code/_preview.erb +2 -0
- data/app/views/examples/components/checkbox.html.erb +3 -3
- data/app/views/examples/components/collapsible.html.erb +3 -11
- data/app/views/examples/components/dialog.html.erb +5 -14
- data/app/views/examples/components/dropdown-menu/_usage.html.erb +19 -0
- data/app/views/examples/components/dropdown-menu/code/_preview.erb +19 -0
- data/app/views/examples/components/dropdown-menu/code/_usage.erb +13 -0
- data/app/views/examples/components/dropdown-menu.html.erb +29 -15
- data/app/views/examples/components/filter/_usage.html.erb +14 -0
- data/app/views/examples/components/filter/code/_icon.html.erb +7 -0
- data/app/views/examples/components/filter/code/_preview.erb +3 -0
- data/app/views/examples/components/filter/code/_usage.erb +5 -0
- data/app/views/examples/components/filter.html.erb +27 -7
- data/app/views/examples/components/forms/_usage.html.erb +28 -0
- data/app/views/examples/components/forms/code/_preview.erb +13 -0
- data/app/views/examples/components/forms/code/_usage.erb +6 -0
- data/app/views/examples/components/forms.html.erb +23 -0
- data/app/views/examples/components/hover-card/_usage.html.erb +15 -0
- data/app/views/examples/components/hover-card/code/_preview.erb +13 -0
- data/app/views/examples/components/hover-card/code/_usage.erb +6 -0
- data/app/views/examples/components/hover-card.html.erb +12 -14
- data/app/views/examples/components/input/_usage.html.erb +10 -0
- data/app/views/examples/components/input/code/_borderless.erb +3 -0
- data/app/views/examples/components/input/code/_preview.erb +1 -0
- data/app/views/examples/components/input/code/_usage.erb +1 -0
- data/app/views/examples/components/input.html.erb +17 -3
- data/app/views/examples/components/label/_usage.html.erb +9 -0
- data/app/views/examples/components/label/code/_preview.erb +5 -0
- data/app/views/examples/components/label/code/_usage.erb +1 -0
- data/app/views/examples/components/label.html.erb +14 -5
- data/app/views/examples/components/popover/_usage.html.erb +12 -0
- data/app/views/examples/components/popover/code/_form.erb +23 -0
- data/app/views/examples/components/popover/code/_preview.erb +13 -0
- data/app/views/examples/components/popover/code/_usage.erb +7 -0
- data/app/views/examples/components/popover.html.erb +28 -24
- data/app/views/examples/components/progress/_usage.erb +9 -0
- data/app/views/examples/components/progress/code/_preview.erb +1 -0
- data/app/views/examples/components/progress/code/_usage.erb +1 -0
- data/app/views/examples/components/progress.html.erb +12 -2
- data/app/views/examples/components/separator/_usage.html.erb +10 -0
- data/app/views/examples/components/separator/code/_fancy.erb +21 -0
- data/app/views/examples/components/separator/code/_preview.erb +1 -0
- data/app/views/examples/components/separator/code/_usage.erb +1 -0
- data/app/views/examples/components/separator.html.erb +26 -19
- data/app/views/examples/components/sheet/_usage.html.erb +38 -0
- data/app/views/examples/components/sheet/code/_mobile_menu.erb +17 -0
- data/app/views/examples/components/sheet/code/_preview.erb +22 -0
- data/app/views/examples/components/sheet/code/_usage.erb +7 -0
- data/app/views/examples/components/sheet.html.erb +17 -10
- data/app/views/examples/components/skeleton/_usage.html.erb +9 -0
- data/app/views/examples/components/skeleton/code/_preview.erb +1 -0
- data/app/views/examples/components/skeleton/code/_usage.erb +1 -0
- data/app/views/examples/components/skeleton.html.erb +16 -2
- data/app/views/examples/components/slider/_usage.html.erb +11 -0
- data/app/views/examples/components/slider/code/_preview.erb +3 -0
- data/app/views/examples/components/slider/code/_usage.erb +1 -0
- data/app/views/examples/components/slider.html.erb +16 -2
- data/app/views/examples/components/textarea/_usage.html.erb +9 -0
- data/app/views/examples/components/textarea/code/_preview.erb +1 -0
- data/app/views/examples/components/textarea/code/_usage.erb +1 -0
- data/app/views/examples/components/textarea.html.erb +16 -2
- data/app/views/examples/components/toast/_usage.html.erb +11 -0
- data/app/views/examples/components/toast/code/_destructive.erb +6 -0
- data/app/views/examples/components/toast/code/_preview.erb +4 -0
- data/app/views/examples/components/toast/code/_usage.erb +2 -0
- data/app/views/examples/components/toast.html.erb +28 -5
- data/app/views/examples/components/toggle/_usage.html.erb +10 -0
- data/app/views/examples/components/toggle/code/_preview.erb +1 -0
- data/app/views/examples/components/toggle/code/_usage.erb +1 -0
- data/app/views/examples/components/toggle.html.erb +16 -2
- data/app/views/examples/components/tooltip/_usage.html.erb +11 -0
- data/app/views/examples/components/tooltip/code/_preview.erb +12 -0
- data/app/views/examples/components/tooltip/code/_usage.erb +7 -0
- data/app/views/examples/components/tooltip.html.erb +16 -13
- data/app/views/layouts/shared/_components.html.erb +35 -33
- data/config/environments/production.rb +4 -4
- data/config/routes.rb +3 -0
- data/lib/components.json +13 -1
- data/lib/generators/shadcn-ui_generator.rb +1 -1
- data/lib/shadcn-ui/version.rb +1 -1
- metadata +84 -20
- data/app/views/examples/components/card/code/usage.erb +0 -3
- data/app/views/examples/components/checkbox/code/preview.erb +0 -2
- /data/app/views/examples/components/accordion/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/accordion/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/alert/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/alert/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/badge/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/badge/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/button/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/button/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/checkbox/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/collapsible/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/collapsible/code/{usage.erb → _usage.erb} +0 -0
- /data/app/views/examples/components/dialog/code/{form.erb → _form.erb} +0 -0
- /data/app/views/examples/components/dialog/code/{notifications.erb → _notifications.erb} +0 -0
- /data/app/views/examples/components/dialog/code/{preview.erb → _preview.erb} +0 -0
- /data/app/views/examples/components/dialog/code/{usage.erb → _usage.erb} +0 -0
@@ -4,40 +4,67 @@ export default class UIToastController extends Controller {
|
|
4
4
|
static targets = ["item"];
|
5
5
|
|
6
6
|
connect() {
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
if (this.element.role == "region" && this.element.dataset.auto != "false") {
|
8
|
+
setTimeout(() => {
|
9
|
+
this.open();
|
10
|
+
}, 1000);
|
11
|
+
this.close();
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
open() {
|
16
|
+
const toastElement = this.element.querySelector("[data-ui--toast-target='item']");
|
17
|
+
this.element.dataset.state = "open";
|
18
|
+
this.element.classList.remove("hidden");
|
19
|
+
this.showToast(toastElement);
|
20
|
+
}
|
21
|
+
|
22
|
+
close() {
|
23
|
+
const toastElement = this.element.querySelector("[data-ui--toast-target='item']");
|
24
|
+
this.element.dataset.state = "closed";
|
25
|
+
this.element.classList.add("hidden");
|
26
|
+
this.closeToast(toastElement);
|
27
|
+
}
|
28
|
+
|
29
|
+
showToast(el) {
|
30
|
+
if (el) {
|
31
|
+
el.dataset.state = "open";
|
32
|
+
el.classList.remove("hidden");
|
33
|
+
}
|
34
|
+
}
|
10
35
|
|
11
|
-
|
36
|
+
closeToast(el) {
|
37
|
+
if (el) {
|
38
|
+
setTimeout(() => {
|
39
|
+
el.dataset.state = "closed";
|
40
|
+
el.classList.add("hidden");
|
41
|
+
}, el.dataset.duration || 3000);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
trigger() {
|
46
|
+
const idTarget = this.element.dataset.target;
|
47
|
+
const toastContainer = document.querySelector(`${idTarget}`);
|
48
|
+
toastContainer.dataset.state = "open";
|
49
|
+
toastContainer.classList.remove("hidden");
|
50
|
+
const toastElement = toastContainer.querySelector("[data-ui--toast-target='item']");
|
51
|
+
this.showToast(toastElement);
|
52
|
+
this.closeToast(toastElement);
|
12
53
|
}
|
13
54
|
|
14
55
|
openAll() {
|
15
|
-
const toastElements = document.querySelectorAll(
|
56
|
+
const toastElements = document.querySelectorAll(
|
57
|
+
"[data-ui--toast-target='item']:not([data-visible='false'])",
|
58
|
+
);
|
16
59
|
toastElements.forEach((toastElement) => {
|
17
|
-
toastElement
|
18
|
-
toastElement.classList.remove("hidden");
|
60
|
+
this.showToast(toastElement);
|
19
61
|
});
|
20
62
|
}
|
21
63
|
|
22
64
|
closeAll() {
|
23
65
|
const toastElements = document.querySelectorAll("[data-ui--toast-target='item']");
|
24
66
|
toastElements.forEach((toastElement) => {
|
25
|
-
|
26
|
-
toastElement.dataset.state = "closed";
|
27
|
-
toastElement.classList.add("hidden");
|
28
|
-
}, toastElement.dataset.duration);
|
67
|
+
this.closeToast(toastElement);
|
29
68
|
});
|
30
69
|
}
|
31
|
-
|
32
|
-
test() {
|
33
|
-
const $this = this;
|
34
|
-
this.closeAll();
|
35
|
-
setTimeout(() => {
|
36
|
-
$this.openAll();
|
37
|
-
setTimeout(() => {
|
38
|
-
$this.closeAll();
|
39
|
-
}, 3000);
|
40
|
-
}, 1000);
|
41
|
-
}
|
42
|
-
close() {}
|
43
70
|
}
|