opal-vite 0.1.0 → 0.2.1

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.
@@ -0,0 +1,31 @@
1
+ # backtick_javascript: true
2
+
3
+ module OpalVite
4
+ module Concerns
5
+ # Storable concern - provides LocalStorage functionality
6
+ module Storable
7
+ def storage_get(key)
8
+ stored = `localStorage.getItem(#{key})`
9
+ return nil unless stored
10
+
11
+ begin
12
+ `JSON.parse(stored)`
13
+ rescue
14
+ nil
15
+ end
16
+ end
17
+
18
+ def storage_set(key, data)
19
+ json = `JSON.stringify(#{data.to_n})`
20
+ `localStorage.setItem(#{key}, json)`
21
+ end
22
+
23
+ def storage_remove(key)
24
+ `localStorage.removeItem(#{key})`
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ # Alias for backward compatibility
31
+ Storable = OpalVite::Concerns::Storable
@@ -0,0 +1,36 @@
1
+ # backtick_javascript: true
2
+
3
+ module OpalVite
4
+ module Concerns
5
+ # Toastable concern - provides toast notification functionality
6
+ module Toastable
7
+ def dispatch_toast(message, type = 'info')
8
+ `
9
+ const event = new CustomEvent('show-toast', {
10
+ detail: { message: #{message}, type: #{type} }
11
+ });
12
+ window.dispatchEvent(event);
13
+ `
14
+ end
15
+
16
+ def show_success(message)
17
+ dispatch_toast(message, 'success')
18
+ end
19
+
20
+ def show_error(message)
21
+ dispatch_toast(message, 'error')
22
+ end
23
+
24
+ def show_warning(message)
25
+ dispatch_toast(message, 'warning')
26
+ end
27
+
28
+ def show_info(message)
29
+ dispatch_toast(message, 'info')
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ # Alias for backward compatibility
36
+ Toastable = OpalVite::Concerns::Toastable
@@ -0,0 +1,6 @@
1
+ # Load all OpalVite concerns
2
+ require 'opal_vite/concerns/js_proxy_ex'
3
+ require 'opal_vite/concerns/dom_helpers'
4
+ require 'opal_vite/concerns/toastable'
5
+ require 'opal_vite/concerns/storable'
6
+ require 'opal_vite/concerns/stimulus_helpers'
data/opal/opal_vite.rb ADDED
@@ -0,0 +1,16 @@
1
+ # OpalVite - Opal + Vite integration library
2
+ #
3
+ # Usage:
4
+ # require 'opal_vite'
5
+ # require 'opal_vite/concerns'
6
+ #
7
+ # Or require individual concerns:
8
+ # require 'opal_vite/concerns/js_proxy_ex'
9
+ # require 'opal_vite/concerns/dom_helpers'
10
+ # require 'opal_vite/concerns/toastable'
11
+ # require 'opal_vite/concerns/storable'
12
+
13
+ module OpalVite
14
+ module Concerns
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-vite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - stofu1234
@@ -110,6 +110,14 @@ files:
110
110
  - lib/opal/vite/config.rb
111
111
  - lib/opal/vite/source_map.rb
112
112
  - lib/opal/vite/version.rb
113
+ - opal/opal_vite.rb
114
+ - opal/opal_vite/concerns.rb
115
+ - opal/opal_vite/concerns/dom_helpers.rb
116
+ - opal/opal_vite/concerns/js_proxy_ex.rb
117
+ - opal/opal_vite/concerns/react_helpers.rb
118
+ - opal/opal_vite/concerns/stimulus_helpers.rb
119
+ - opal/opal_vite/concerns/storable.rb
120
+ - opal/opal_vite/concerns/toastable.rb
113
121
  homepage: https://github.com/stofu1234/opal-vite
114
122
  licenses:
115
123
  - MIT