dialkit-rails 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/README.md +115 -0
- data/app/assets/stylesheets/dialkit.css +1058 -0
- data/lib/dialkit/rails/engine.rb +17 -0
- data/lib/dialkit/rails/helper.rb +11 -0
- data/lib/dialkit/rails/version.rb +7 -0
- data/lib/dialkit/rails.rb +5 -0
- data/lib/generators/dialkit/install/install_generator.rb +45 -0
- data/lib/generators/dialkit/install/templates/dialkit_demo.jsx +57 -0
- data/packages/dialkit-rails/index.d.ts +1 -0
- data/packages/dialkit-rails/index.js +1 -0
- data/packages/dialkit-rails/package.json +29 -0
- data/packages/dialkit-rails/styles.css +1 -0
- metadata +87 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dialkit
|
|
4
|
+
module Rails
|
|
5
|
+
class Engine < ::Rails::Engine
|
|
6
|
+
initializer "dialkit.rails.assets" do |app|
|
|
7
|
+
app.config.assets.precompile += %w[dialkit.css]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
initializer "dialkit.rails.helpers" do
|
|
11
|
+
ActiveSupport.on_load(:action_view) do
|
|
12
|
+
include Dialkit::Rails::Helper
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dialkit
|
|
4
|
+
module Generators
|
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
|
6
|
+
source_root File.expand_path("templates", __dir__)
|
|
7
|
+
|
|
8
|
+
def copy_demo_entrypoint
|
|
9
|
+
return if File.exist?("app/javascript/dialkit_demo.jsx")
|
|
10
|
+
|
|
11
|
+
template "dialkit_demo.jsx", "app/javascript/dialkit_demo.jsx"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def wire_application_entrypoint
|
|
15
|
+
path = "app/javascript/application.js"
|
|
16
|
+
return unless File.exist?(path)
|
|
17
|
+
|
|
18
|
+
import_line = 'import "./dialkit_demo";'
|
|
19
|
+
return if File.read(path).include?(import_line)
|
|
20
|
+
|
|
21
|
+
append_to_file(path, "\n#{import_line}\n")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def wire_layout_stylesheet
|
|
25
|
+
path = "app/views/layouts/application.html.erb"
|
|
26
|
+
return unless File.exist?(path)
|
|
27
|
+
|
|
28
|
+
stylesheet_line = '<%= dialkit_stylesheet_tag "data-turbo-track": "reload" %>'
|
|
29
|
+
return if File.read(path).include?(stylesheet_line)
|
|
30
|
+
return unless File.read(path).include?('<%= stylesheet_link_tag "application" %>')
|
|
31
|
+
|
|
32
|
+
inject_into_file(path, "\n #{stylesheet_line}", after: '<%= stylesheet_link_tag "application" %>')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def print_next_steps
|
|
36
|
+
say ""
|
|
37
|
+
say "DialKit Rails install complete.", :green
|
|
38
|
+
say "Next steps:"
|
|
39
|
+
say " 1. npm install dialkit-rails motion react react-dom"
|
|
40
|
+
say " 2. npm run build"
|
|
41
|
+
say " 3. Load a page with #dialkit-root to mount the demo panel"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import { DialRoot, useDialKit } from "dialkit-rails";
|
|
4
|
+
import { motion } from "motion/react";
|
|
5
|
+
|
|
6
|
+
function DemoCard() {
|
|
7
|
+
const params = useDialKit("Card", {
|
|
8
|
+
scale: [1, 0.7, 1.4, 0.01],
|
|
9
|
+
blur: [0, 0, 24, 1],
|
|
10
|
+
rotate: [0, -25, 25, 1],
|
|
11
|
+
opacity: [1, 0.2, 1, 0.01],
|
|
12
|
+
spring: {
|
|
13
|
+
type: "spring",
|
|
14
|
+
visualDuration: 0.35,
|
|
15
|
+
bounce: 0.25
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<motion.div
|
|
21
|
+
className="demo-card"
|
|
22
|
+
style={{ filter: `blur(${params.blur}px)` }}
|
|
23
|
+
animate={{
|
|
24
|
+
scale: params.scale,
|
|
25
|
+
rotate: params.rotate,
|
|
26
|
+
opacity: params.opacity
|
|
27
|
+
}}
|
|
28
|
+
transition={params.spring}
|
|
29
|
+
>
|
|
30
|
+
<h2>DialKit Demo</h2>
|
|
31
|
+
<p>Tweak scale, blur, rotation, opacity, and spring settings live.</p>
|
|
32
|
+
</motion.div>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function DialkitApp() {
|
|
37
|
+
return (
|
|
38
|
+
<>
|
|
39
|
+
<DialRoot position="top-right" />
|
|
40
|
+
<div className="demo-stage">
|
|
41
|
+
<DemoCard />
|
|
42
|
+
</div>
|
|
43
|
+
</>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const mount = () => {
|
|
48
|
+
const mountNode = document.getElementById("dialkit-root");
|
|
49
|
+
if (!mountNode || mountNode.dataset.reactMounted === "true") return;
|
|
50
|
+
|
|
51
|
+
const root = createRoot(mountNode);
|
|
52
|
+
root.render(<DialkitApp />);
|
|
53
|
+
mountNode.dataset.reactMounted = "true";
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
document.addEventListener("DOMContentLoaded", mount);
|
|
57
|
+
document.addEventListener("turbo:load", mount);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "dialkit";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "dialkit";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dialkit-rails",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Rails-friendly package wrapper that re-exports DialKit.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./index.js",
|
|
7
|
+
"types": "./index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./index.d.ts",
|
|
11
|
+
"default": "./index.js"
|
|
12
|
+
},
|
|
13
|
+
"./styles.css": "./styles.css"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"index.js",
|
|
17
|
+
"index.d.ts",
|
|
18
|
+
"styles.css"
|
|
19
|
+
],
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"motion": ">=12.0.0",
|
|
22
|
+
"react": ">=18.0.0",
|
|
23
|
+
"react-dom": ">=18.0.0"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"dialkit": "^0.2.2"
|
|
27
|
+
},
|
|
28
|
+
"license": "MIT"
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "dialkit/styles.css";
|
metadata
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: dialkit-rails
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Alex Friedman
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-02-21 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: railties
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '7.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '7.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: sprockets-rails
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.0'
|
|
41
|
+
description: Installable Rails engine and generator for wiring DialKit into Rails
|
|
42
|
+
apps.
|
|
43
|
+
email:
|
|
44
|
+
- alex.friedman@modo.energy
|
|
45
|
+
executables: []
|
|
46
|
+
extensions: []
|
|
47
|
+
extra_rdoc_files: []
|
|
48
|
+
files:
|
|
49
|
+
- README.md
|
|
50
|
+
- app/assets/stylesheets/dialkit.css
|
|
51
|
+
- lib/dialkit/rails.rb
|
|
52
|
+
- lib/dialkit/rails/engine.rb
|
|
53
|
+
- lib/dialkit/rails/helper.rb
|
|
54
|
+
- lib/dialkit/rails/version.rb
|
|
55
|
+
- lib/generators/dialkit/install/install_generator.rb
|
|
56
|
+
- lib/generators/dialkit/install/templates/dialkit_demo.jsx
|
|
57
|
+
- packages/dialkit-rails/index.d.ts
|
|
58
|
+
- packages/dialkit-rails/index.js
|
|
59
|
+
- packages/dialkit-rails/package.json
|
|
60
|
+
- packages/dialkit-rails/styles.css
|
|
61
|
+
homepage: https://github.com/alex-friedman-modo/dialkit-rails
|
|
62
|
+
licenses:
|
|
63
|
+
- MIT
|
|
64
|
+
metadata:
|
|
65
|
+
homepage_uri: https://github.com/alex-friedman-modo/dialkit-rails
|
|
66
|
+
source_code_uri: https://github.com/alex-friedman-modo/dialkit-rails
|
|
67
|
+
changelog_uri: https://github.com/alex-friedman-modo/dialkit-rails/blob/master/README.md
|
|
68
|
+
post_install_message:
|
|
69
|
+
rdoc_options: []
|
|
70
|
+
require_paths:
|
|
71
|
+
- lib
|
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - ">="
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '3.2'
|
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
requirements: []
|
|
83
|
+
rubygems_version: 3.5.22
|
|
84
|
+
signing_key:
|
|
85
|
+
specification_version: 4
|
|
86
|
+
summary: Rails integration for DialKit
|
|
87
|
+
test_files: []
|