ultimate_turbo_modal 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9827e4a255b0b49e9ca3454c396e0ca2c043041705058562cd097ee55ded670
4
- data.tar.gz: 0df6f286051741524dce4ebaa9602cd7b1e37b082960bc2886495c4a93b2286c
3
+ metadata.gz: acd3d63c952dd65a1f01d7cba82e4f3d9a86f0ab0873db34a69d9c39f4163798
4
+ data.tar.gz: dc7cb74c01338495576c5e69dbb583f39119b5a90832338ed4b8ccfb1eac123c
5
5
  SHA512:
6
- metadata.gz: 0f3f52eb646666e9088b89696f9689ed17b2bf69abe1ea2e7225d0e4e625ecc28d9ae05b391ae640ca096d43b8afd88479278324b84d2515583d303539fb4c89
7
- data.tar.gz: be333d50d9e831bf94c60e382fd5b0e7ecad5dcfcc7b73236a103aae8a0356179bd52d38a8400a04ed036a81e195115e091a6bfe448c3214e1331d6f4a11c13f
6
+ metadata.gz: 2c2f8afbe1c7bd889ec807df58b46bba7db466d65986b86646aa3e66530b8259860f1f2921861548cb3190ad3b4ad7b053f2f61b8a6de9eed995f15d92420f09
7
+ data.tar.gz: eb43ed0e8628317334ba37c15712aac05924a4b9b9d5dc53d53b181c2f209d149181f768b350495094da614891e39d6ef5e1e06a7c586e8008285eaa7b16afcd
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.1.0] - 2023-10-31
4
+
5
+ - Added Vanilla CSS!
6
+
3
7
  ## [1.0.0] - 2023-10-31
4
8
 
5
9
  - Initial release as a Ruby Gem
data/README.md CHANGED
@@ -6,7 +6,7 @@ UTMR aims to be the be-all and end-all of Turbo Modals. I believe it is the best
6
6
 
7
7
  Under the hood, it uses [Stimulus](https://stimulus.hotwired.dev), [Turbo](https://turbo.hotwired.dev/), [el-transition](https://github.com/mmccall10/el-transition), and optionally [Idiomorph](https://github.com/bigskysoftware/idiomorph).
8
8
 
9
- It currently ships in a single flavor: Tailwind CSS. It is easy to create your own to suit your needs such as vanilla CSS or any other CSS framework you may prefer. See `lib/ultimate_turbo_modal/flavors/tailwind.rb` for the Tailwind code.
9
+ It currently ships in a two flavors: Tailwind CSS, and regular, vanilla CSS. It is easy to create your own to suit your needs such as vanilla CSS or any other CSS framework you may prefer. See `lib/ultimate_turbo_modal/flavors/vanilla.rb` for an example code.
10
10
 
11
11
 
12
12
   
@@ -59,14 +59,20 @@ A demo application can be found at https://github.com/cmer/ultimate_turbo_modal-
59
59
  <%= turbo_frame_tag "modal" %>
60
60
  ``````
61
61
 
62
- 4. Register the Stimulus controller in `app/javascript/controllers/index.js` adding the following lines at the end.
62
+ 4. Set your desired flavor at `app/config/initializers/modal.rb`. The default is `:tailwind`.
63
+
64
+ ```ruby
65
+ UltimateTurboModal.flavor = :tailwind # or :vanilla
66
+ ```
67
+
68
+ 5. Register the Stimulus controller in `app/javascript/controllers/index.js` adding the following lines at the end.
63
69
 
64
70
  ```js
65
71
  import setupUltimateTurboModal from "ultimate_turbo_modal";
66
72
  setupUltimateTurboModal(application);
67
73
  ```
68
74
 
69
- 5. Optionally (but recommended), configure UTMR to use Idiomorph. See below for details.
75
+ 6. Optionally (but recommended), configure UTMR to use Idiomorph. See below for details.
70
76
 
71
77
  &nbsp;
72
78
  &nbsp;
@@ -0,0 +1,99 @@
1
+ module UltimateTurboModal::Flavors
2
+ class Vanilla < UltimateTurboModal::Base
3
+ private
4
+
5
+ def modal(&)
6
+ div_dialog do
7
+ div_overlay
8
+ div_outer_container do
9
+ div_inner_container do
10
+ div_border do
11
+ button_close if close_button?
12
+ yield
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ def div_dialog(&)
20
+ div(id: "modal-container",
21
+ class: "modal-container",
22
+ role: "dialog",
23
+ aria: {
24
+ labeled_by: "modal-title",
25
+ modal: true
26
+ },
27
+ data: {
28
+ controller: "modal",
29
+ modal_target: "container",
30
+ modal_advance_url_value: advance_url,
31
+ action: "turbo:submit-end->modal#submitEnd keyup@window->modal#closeWithKeyboard click@window->modal#outsideModalClicked click->modal#outsideModalClicked",
32
+ transition_enter: "ease-out duration-300",
33
+ transition_enter_start: "opacity-0",
34
+ transition_enter_end: "opacity-100",
35
+ transition_leave: "ease-in duration-200",
36
+ transition_leave_start: "opacity-100",
37
+ transition_leave_end: "opacity-0"
38
+ }, &)
39
+ end
40
+
41
+ def div_overlay(&)
42
+ div(id: "modal-overlay",
43
+ class: "modal-overlay",
44
+ data: {
45
+ modal_target: "overlay",
46
+ action: "click->modal#outsideModalClicked"
47
+ })
48
+ end
49
+
50
+ def div_outer_container(&)
51
+ div(id: "modal-outer",
52
+ class: "modal-outer",
53
+ data: {
54
+ modal_target: "modal"
55
+ }, &)
56
+ end
57
+
58
+ def div_inner_container(&)
59
+ div(id: "modal-inner",
60
+ class: "modal-inner",
61
+ data: {
62
+ modal_target: "innerModal"
63
+ }, &)
64
+ end
65
+
66
+ def div_border(&)
67
+ klass = "modal-border"
68
+ klass = "#{klass} modal-padding" if @padding == true
69
+ klass = "#{klass} #{@padding}" if @padding.is_a?(String)
70
+ div(id: "modal-border", class: klass, &)
71
+ end
72
+
73
+ def button_close(&)
74
+ div(class: "modal-close") do
75
+ button(type: "button",
76
+ aria: {label: "close"},
77
+ data: {
78
+ action: "modal#hideModal"
79
+ }) { icon_close }
80
+ end
81
+ end
82
+
83
+ def icon_close
84
+ svg(
85
+ xmlns: "http://www.w3.org/2000/svg",
86
+ fill: "none",
87
+ viewbox: "0 0 24 24",
88
+ stroke_width: "1.5",
89
+ stroke: "currentColor",
90
+ ) do |s|
91
+ s.path(
92
+ stroke_linecap: "round",
93
+ stroke_linejoin: "round",
94
+ d: "M6 18L18 6M6 6l12 12"
95
+ )
96
+ end
97
+ end
98
+ end
99
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UltimateTurboModal
4
- VERSION = "1.0.3"
4
+ VERSION = "1.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultimate_turbo_modal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carl Mercier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-31 00:00:00.000000000 Z
11
+ date: 2023-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex-rails
@@ -73,7 +73,7 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  description: An easy-to-use, flexible, and powerful Turbo Modal solution for Rails
76
- 7+ built with Stimulus.js, Tailwind CSS and Hotwire.
76
+ 7+ built with Stimulus.js, Tailwind CSS (or vanilla CSS) and Hotwire.
77
77
  email:
78
78
  - foss@carlmercier.com
79
79
  executables: []
@@ -93,6 +93,7 @@ files:
93
93
  - lib/ultimate_turbo_modal.rb
94
94
  - lib/ultimate_turbo_modal/base.rb
95
95
  - lib/ultimate_turbo_modal/flavors/tailwind.rb
96
+ - lib/ultimate_turbo_modal/flavors/vanilla.rb
96
97
  - lib/ultimate_turbo_modal/helpers/controller_helper.rb
97
98
  - lib/ultimate_turbo_modal/helpers/stream_helper.rb
98
99
  - lib/ultimate_turbo_modal/helpers/view_helper.rb