dialkit-rails

Rails integration for DialKit, built for React + Motion apps running inside Rails.

This repository contains:

  • Ruby gem integration (engine + installer generator)
  • JS wrapper package at packages/dialkit-rails (thin re-export of upstream dialkit)

Install in a Rails app

Option A: Install from RubyGems (after publish)

gem "dialkit-rails", require: "dialkit/rails"

Option B: Install from Git (available now)

gem "dialkit-rails",
  git: "https://github.com/alex-friedman-modo/dialkit-rails.git",
  branch: "locate-gridkit-source",
  require: "dialkit/rails"

Then run:

bundle install
bin/rails g dialkit:install
npm install dialkit-rails motion react react-dom
npm run build

The installer adds:

  • app/javascript/dialkit_demo.jsx
  • import "./dialkit_demo" in app/javascript/application.js
  • <%= dialkit_stylesheet_tag "data-turbo-track": "reload" %> in your layout

To mount the demo panel, render:

<section id="dialkit-root" aria-label="DialKit demo app"></section>

Local development (this repo)

bundle install
npm install
bin/dev

Open http://localhost:3000.

Release and publish

Release version must match in:

  • lib/dialkit/rails/version.rb
  • packages/dialkit-rails/package.json

Manual publish

  1. Bump both versions.
  2. Build and verify:
gem build dialkit-rails.gemspec
ruby scripts/check_release_versions.rb
  1. Publish the gem:
gem signin
gem push dialkit-rails-<version>.gem
  1. Publish npm package:
cd packages/dialkit-rails
npm publish --access public

Push a tag matching the version (v0.1.0, etc.). The release workflow publishes both artifacts.

Required GitHub secrets:

  • RUBYGEMS_API_KEY
  • NPM_TOKEN

Commands:

git tag v0.1.0
git push origin v0.1.0

Full checklist and external app verification:

  • docs/publish-and-smoke-test.md

Key paths

  • Gem entrypoint: lib/dialkit/rails.rb
  • Engine wiring: lib/dialkit/rails/engine.rb
  • Install generator: lib/generators/dialkit/install/install_generator.rb
  • JS wrapper package: packages/dialkit-rails/
  • Release version check: scripts/check_release_versions.rb