vitrail 0.4.0 → 1.0.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -30
  3. data/app/components/vitrail/badge.rb +7 -7
  4. data/app/components/vitrail/button_tag/component.rb +74 -0
  5. data/app/components/vitrail/card/component.html.erb +18 -0
  6. data/app/components/vitrail/card/component.rb +9 -0
  7. data/app/components/vitrail/link_to/component.rb +64 -0
  8. data/app/components/vitrail/notice.html.erb +5 -5
  9. data/app/components/vitrail/notice.rb +6 -6
  10. data/app/components/vitrail/table/component.html.erb +15 -0
  11. data/app/components/vitrail/table/component.rb +10 -0
  12. data/app/components/vitrail/table/division.html.erb +1 -1
  13. data/app/components/vitrail/table/division.rb +3 -3
  14. data/app/components/vitrail/table/header.rb +3 -3
  15. data/app/components/vitrail/table/row.rb +2 -2
  16. data/app/components/vitrail/title/component.rb +34 -0
  17. data/lib/generators/vitrail/install/install_generator.rb +50 -0
  18. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/button_tag.css.tt +36 -0
  19. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/card.css.tt +20 -0
  20. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/config.css.tt +23 -0
  21. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/index.css.tt +8 -0
  22. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/link_to.css.tt +36 -0
  23. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/primitives.css.tt +24 -0
  24. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/table.css.tt +37 -0
  25. data/lib/generators/vitrail/install/templates/stylesheets/vitrail/title.css.tt +21 -0
  26. data/lib/generators/vitrail/install/templates/vitrail_preset.js.tt +41 -0
  27. data/lib/vitrail/engine.rb +18 -2
  28. data/lib/vitrail/helper.rb +9 -0
  29. data/lib/vitrail/tasks/install.rake +8 -0
  30. data/lib/vitrail/version.rb +1 -1
  31. data/lib/vitrail.rb +2 -0
  32. metadata +25 -19
  33. data/Rakefile +0 -8
  34. data/app/assets/config/vitrail_manifest.js +0 -1
  35. data/app/assets/stylesheets/vitrail/application.css +0 -15
  36. data/app/assets/stylesheets/vitrail/vitrail.css +0 -891
  37. data/app/assets/stylesheets/vitrail.tailwind.css +0 -13
  38. data/app/components/vitrail/card.html.erb +0 -12
  39. data/app/components/vitrail/card.rb +0 -18
  40. data/app/components/vitrail/link_to.rb +0 -40
  41. data/app/components/vitrail/table.html.erb +0 -19
  42. data/app/components/vitrail/table.rb +0 -10
  43. data/app/components/vitrail/title.rb +0 -29
  44. data/app/views/layouts/vitrail/component_preview.html.erb +0 -16
  45. data/config/tailwind.config.js +0 -22
@@ -0,0 +1,37 @@
1
+ @layer components {
2
+ .vt-table--container {
3
+ @apply relative w-full overflow-auto;
4
+ }
5
+
6
+ .vt-table {
7
+ @apply w-full caption-bottom text-sm;
8
+ }
9
+
10
+ .vt-table--head {
11
+ @apply [&_tr]:border-b;
12
+ }
13
+
14
+ .vt-table--body {
15
+ @apply divide-y divide-gray-200;
16
+ }
17
+
18
+ .vt-table--header {
19
+ @apply h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0;
20
+ }
21
+
22
+ .vt-table--row {
23
+ @apply border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted;
24
+ }
25
+
26
+ .vt-table--division {
27
+ @apply p-4 align-middle [&:has([role=checkbox])]:pr-0;
28
+ }
29
+
30
+ .vt-table--division-link-to-container {
31
+ @apply group-hover:bg-gray-50;
32
+ }
33
+
34
+ .vt-table--division-link-to {
35
+ @apply block -mx-3 px-3 -my-4 py-4;
36
+ }
37
+ }
@@ -0,0 +1,21 @@
1
+ @layer components {
2
+ .vt-title {
3
+ @apply scroll-m-20 font-semibold tracking-tight mt-8;
4
+ }
5
+
6
+ .vt-title.vt-title--level1 {
7
+ @apply text-4xl font-extrabold lg:text-5xl;
8
+ }
9
+
10
+ .vt-title.vt-title--level2 {
11
+ @apply border-b mb-4 pb-2 text-3xl;
12
+ }
13
+
14
+ .vt-title.vt-title--level3 {
15
+ @apply text-2xl;
16
+ }
17
+
18
+ .vt-title.vt-title--level4 {
19
+ @apply text-xl;
20
+ }
21
+ }
@@ -0,0 +1,41 @@
1
+ module.exports = {
2
+ theme: {
3
+ extend: {
4
+ colors: {
5
+ border: "hsl(var(--border) / <alpha-value>)",
6
+ input: "hsl(var(--input) / <alpha-value>)",
7
+ ring: "hsl(var(--ring) / <alpha-value>)",
8
+ background: "hsl(var(--background) / <alpha-value>)",
9
+ foreground: "hsl(var(--foreground) / <alpha-value>)",
10
+ primary: {
11
+ DEFAULT: "hsl(var(--primary) / <alpha-value>)",
12
+ foreground: "hsl(var(--primary-foreground) / <alpha-value>)",
13
+ },
14
+ secondary: {
15
+ DEFAULT: "hsl(var(--secondary) / <alpha-value>)",
16
+ foreground: "hsl(var(--secondary-foreground) / <alpha-value>)",
17
+ },
18
+ destructive: {
19
+ DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
20
+ foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
21
+ },
22
+ muted: {
23
+ DEFAULT: "hsl(var(--muted) / <alpha-value>)",
24
+ foreground: "hsl(var(--muted-foreground) / <alpha-value>)",
25
+ },
26
+ accent: {
27
+ DEFAULT: "hsl(var(--accent) / <alpha-value>)",
28
+ foreground: "hsl(var(--accent-foreground) / <alpha-value>)",
29
+ },
30
+ popover: {
31
+ DEFAULT: "hsl(var(--popover) / <alpha-value>)",
32
+ foreground: "hsl(var(--popover-foreground) / <alpha-value>)",
33
+ },
34
+ card: {
35
+ DEFAULT: "hsl(var(--card) / <alpha-value>)",
36
+ foreground: "hsl(var(--card-foreground) / <alpha-value>)",
37
+ },
38
+ },
39
+ },
40
+ },
41
+ }
@@ -2,8 +2,24 @@ module Vitrail
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Vitrail
4
4
 
5
- initializer "vitrail.precompile" do |app|
6
- app.config.assets.precompile += %w[vitrail_manifest]
5
+ initializer "vitrail.action_controller" do |app|
6
+ ActiveSupport.on_load :action_controller do
7
+ helper Vitrail::Helper
8
+ end
9
+ end
10
+
11
+ initializer "vitrail.assets.precompile" do |app|
12
+ app.config.assets.paths << root.join("app", "components")
13
+ app.config.assets.precompile += ["vitrail/index.css"]
14
+ end
15
+
16
+ # Load the generator
17
+ config.generators do |g|
18
+ g.templates.unshift File.expand_path("templates", __dir__)
19
+ end
20
+
21
+ rake_tasks do
22
+ load "vitrail/tasks/install.rake"
7
23
  end
8
24
  end
9
25
  end
@@ -0,0 +1,9 @@
1
+ module Vitrail
2
+ module Helper
3
+ def vt_link_to(*args, &block) = render(Vitrail::LinkTo::Component.new(*args), &block)
4
+ def vt_button_tag(*args, &block) = render(Vitrail::ButtonTag::Component.new(*args), &block)
5
+ def vt_card(*args, &block) = render(Vitrail::Card::Component.new(*args), &block)
6
+ def vt_title(*args, &block) = render(Vitrail::Title::Component.new(*args), &block)
7
+ def vt_table(*args, &block) = render(Vitrail::Table::Component.new(*args), &block)
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :vitrail do
4
+ desc "Install Vitrail with default stylesheets"
5
+ task install: :environment do
6
+ Rails::Generators.invoke "vitrail:install"
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module Vitrail
2
- VERSION = "0.4.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/vitrail.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require "vitrail/version"
2
2
  require "vitrail/engine"
3
+ require "vitrail/helper"
4
+ require "view_component"
3
5
 
4
6
  module Vitrail
5
7
  # Your code goes here...
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vitrail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume CABANEL
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-22 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -61,30 +61,36 @@ extra_rdoc_files: []
61
61
  files:
62
62
  - MIT-LICENSE
63
63
  - README.md
64
- - Rakefile
65
- - app/assets/config/vitrail_manifest.js
66
- - app/assets/stylesheets/vitrail.tailwind.css
67
- - app/assets/stylesheets/vitrail/application.css
68
- - app/assets/stylesheets/vitrail/vitrail.css
69
64
  - app/components/vitrail/badge.rb
70
65
  - app/components/vitrail/base_component.rb
71
- - app/components/vitrail/card.html.erb
72
- - app/components/vitrail/card.rb
73
- - app/components/vitrail/link_to.rb
66
+ - app/components/vitrail/button_tag/component.rb
67
+ - app/components/vitrail/card/component.html.erb
68
+ - app/components/vitrail/card/component.rb
69
+ - app/components/vitrail/link_to/component.rb
74
70
  - app/components/vitrail/notice.html.erb
75
71
  - app/components/vitrail/notice.rb
76
- - app/components/vitrail/table.html.erb
77
- - app/components/vitrail/table.rb
72
+ - app/components/vitrail/table/component.html.erb
73
+ - app/components/vitrail/table/component.rb
78
74
  - app/components/vitrail/table/division.html.erb
79
75
  - app/components/vitrail/table/division.rb
80
76
  - app/components/vitrail/table/header.rb
81
77
  - app/components/vitrail/table/row.rb
82
- - app/components/vitrail/title.rb
83
- - app/views/layouts/vitrail/component_preview.html.erb
84
- - config/tailwind.config.js
78
+ - app/components/vitrail/title/component.rb
79
+ - lib/generators/vitrail/install/install_generator.rb
80
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/button_tag.css.tt
81
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/card.css.tt
82
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/config.css.tt
83
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/index.css.tt
84
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/link_to.css.tt
85
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/primitives.css.tt
86
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/table.css.tt
87
+ - lib/generators/vitrail/install/templates/stylesheets/vitrail/title.css.tt
88
+ - lib/generators/vitrail/install/templates/vitrail_preset.js.tt
85
89
  - lib/tasks/vitrail_tasks.rake
86
90
  - lib/vitrail.rb
87
91
  - lib/vitrail/engine.rb
92
+ - lib/vitrail/helper.rb
93
+ - lib/vitrail/tasks/install.rake
88
94
  - lib/vitrail/version.rb
89
95
  homepage: https://github.com/kuartz-org/vitrail
90
96
  licenses:
@@ -94,7 +100,7 @@ metadata:
94
100
  homepage_uri: https://github.com/kuartz-org/vitrail
95
101
  source_code_uri: https://github.com/kuartz-org/vitrail
96
102
  changelog_uri: https://github.com/kuartz-org/vitrail/blob/main/CHANGELOG.md
97
- post_install_message:
103
+ post_install_message:
98
104
  rdoc_options: []
99
105
  require_paths:
100
106
  - lib
@@ -109,8 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
115
  - !ruby/object:Gem::Version
110
116
  version: '0'
111
117
  requirements: []
112
- rubygems_version: 3.4.14
113
- signing_key:
118
+ rubygems_version: 3.4.19
119
+ signing_key:
114
120
  specification_version: 4
115
121
  summary: Kuartz design system
116
122
  test_files: []
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require "bundler/setup"
2
-
3
- APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
- load "rails/tasks/engine.rake"
5
-
6
- load "rails/tasks/statistics.rake"
7
-
8
- require "bundler/gem_tasks"
@@ -1 +0,0 @@
1
- //= link_directory ../stylesheets/vitrail .css
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
- * files in this directory. Styles in this file should be added after the last require_* statement.
11
- * It is generally better to create a new file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */