lookbook 0.2.1 → 0.3.0.beta.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +155 -77
- data/app/assets/lookbook/css/app.css +28 -0
- data/app/assets/lookbook/js/app.js +51 -24
- data/app/assets/lookbook/js/nav/leaf.js +20 -0
- data/app/assets/lookbook/js/nav/node.js +31 -0
- data/app/assets/lookbook/js/nav.js +36 -0
- data/app/assets/lookbook/js/page.js +33 -0
- data/app/assets/lookbook/js/utils/clipboard.js +13 -0
- data/app/assets/lookbook/js/utils/morph.js +16 -0
- data/app/assets/lookbook/js/{reloader.js → utils/reloader.js} +0 -0
- data/app/assets/lookbook/js/utils/screen.js +44 -0
- data/app/assets/lookbook/js/{size_observer.js → utils/size_observer.js} +1 -1
- data/app/assets/lookbook/js/{split.js → utils/split.js} +4 -4
- data/app/assets/lookbook/js/workbench/inspector.js +11 -0
- data/app/assets/lookbook/js/workbench/preview.js +39 -0
- data/app/assets/lookbook/js/workbench.js +14 -0
- data/app/controllers/lookbook/{browser_controller.rb → app_controller.rb} +58 -31
- data/app/helpers/lookbook/application_helper.rb +1 -1
- data/app/views/lookbook/_sidebar.html.erb +45 -0
- data/app/views/lookbook/_workbench.html.erb +12 -0
- data/app/views/lookbook/{browser → app}/error.html.erb +0 -0
- data/app/views/lookbook/app/index.html.erb +11 -0
- data/app/views/lookbook/{browser → app}/not_found.html.erb +1 -1
- data/app/views/lookbook/app/show.html.erb +1 -0
- data/app/views/lookbook/layouts/app.html.erb +22 -30
- data/app/views/lookbook/layouts/group.html.erb +6 -0
- data/app/views/lookbook/nav/_collection.html.erb +5 -0
- data/app/views/lookbook/nav/_node.html.erb +19 -0
- data/app/views/lookbook/nav/_preview.html.erb +29 -0
- data/app/views/lookbook/shared/_clipboard.html.erb +11 -0
- data/app/views/lookbook/shared/_header.html.erb +8 -0
- data/app/views/lookbook/workbench/_header.html.erb +37 -0
- data/app/views/lookbook/workbench/_inspector.html.erb +32 -0
- data/app/views/lookbook/workbench/_preview.html.erb +24 -0
- data/app/views/lookbook/workbench/inspector/_code.html.erb +3 -0
- data/app/views/lookbook/workbench/inspector/_notes.html.erb +24 -0
- data/app/views/lookbook/{partials → workbench}/inspector/_plain.html.erb +0 -0
- data/config/routes.rb +6 -4
- data/lib/lookbook/engine.rb +6 -4
- data/lib/lookbook/preview.rb +25 -3
- data/lib/lookbook/preview_controller.rb +6 -1
- data/lib/lookbook/preview_example.rb +3 -2
- data/lib/lookbook/preview_group.rb +37 -0
- data/lib/lookbook/taggable.rb +5 -1
- data/lib/lookbook/version.rb +1 -1
- data/lib/lookbook.rb +1 -0
- data/lib/tasks/lookbook_tasks.rake +1 -1
- data/public/lookbook-assets/app.css +267 -113
- data/public/lookbook-assets/app.js +1014 -116
- data/{app/views/lookbook/partials/_icon_sprite.html.erb → public/lookbook-assets/feather-sprite.svg} +1 -1
- metadata +54 -27
- data/app/assets/lookbook/js/preview.js +0 -76
- data/app/views/lookbook/browser/index.html.erb +0 -8
- data/app/views/lookbook/browser/show.html.erb +0 -33
- data/app/views/lookbook/partials/_preview.html.erb +0 -18
- data/app/views/lookbook/partials/_sidebar.html.erb +0 -21
- data/app/views/lookbook/partials/inspector/_code.html.erb +0 -1
- data/app/views/lookbook/partials/inspector/_inspector.html.erb +0 -43
- data/app/views/lookbook/partials/inspector/_prose.html.erb +0 -3
- data/app/views/lookbook/partials/nav/_collection.html.erb +0 -17
- data/app/views/lookbook/partials/nav/_label.html.erb +0 -13
- data/app/views/lookbook/partials/nav/_nav.html.erb +0 -27
- data/app/views/lookbook/partials/nav/_preview.html.erb +0 -48
- data/config/lookbook_cable.yml +0 -8
data/lib/lookbook/engine.rb
CHANGED
@@ -28,6 +28,7 @@ module Lookbook
|
|
28
28
|
options.preview_paths += vc_options.preview_paths
|
29
29
|
|
30
30
|
options.preview_controller = vc_options.preview_controller if options.preview_controller.nil?
|
31
|
+
options.preview_srcdoc = true if options.preview_srcdoc.nil?
|
31
32
|
|
32
33
|
options.listen_paths = options.listen_paths.map(&:to_s)
|
33
34
|
options.listen_paths += options.preview_paths
|
@@ -35,10 +36,11 @@ module Lookbook
|
|
35
36
|
end
|
36
37
|
|
37
38
|
initializer "lookbook.cable.config" do |app|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
if app.config.lookbook.auto_refresh
|
40
|
+
Lookbook::Engine.cable.cable = {adapter: "async"}.with_indifferent_access
|
41
|
+
Lookbook::Engine.cable.mount_path = "/cable"
|
42
|
+
Lookbook::Engine.cable.connection_class = -> { Lookbook::Connection }
|
43
|
+
end
|
42
44
|
end
|
43
45
|
|
44
46
|
initializer "lookbook.cable.logger" do
|
data/lib/lookbook/preview.rb
CHANGED
@@ -2,6 +2,10 @@ module Lookbook
|
|
2
2
|
module Preview
|
3
3
|
include Taggable
|
4
4
|
|
5
|
+
def id
|
6
|
+
lookbook_path.tr("_", "-")
|
7
|
+
end
|
8
|
+
|
5
9
|
# Examples::FooBarComponent::Preview -> "Foo Bar"
|
6
10
|
def lookbook_label
|
7
11
|
super.presence || lookbook_path.split("/").last.titleize
|
@@ -19,9 +23,21 @@ module Lookbook
|
|
19
23
|
return @lookbook_examples if @lookbook_examples.present?
|
20
24
|
public_methods = public_instance_methods(false)
|
21
25
|
public_method_objects = code_object.meths.filter { |m| public_methods.include?(m.name) }
|
22
|
-
|
23
|
-
|
24
|
-
@lookbook_examples
|
26
|
+
visible = public_method_objects.map { |m| PreviewExample.new(m.name.to_s, self) }.reject(&:hidden?)
|
27
|
+
sorted = Lookbook.config.sort_examples ? visible.sort_by(&:label) : visible
|
28
|
+
@lookbook_examples = []
|
29
|
+
if code_object.groups.any?
|
30
|
+
sorted.group_by { |m| m.group }.each do |name, examples|
|
31
|
+
if name.nil?
|
32
|
+
@lookbook_examples += examples
|
33
|
+
else
|
34
|
+
@lookbook_examples << PreviewGroup.new(name.underscore, self, examples)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
else
|
38
|
+
@lookbook_examples = sorted
|
39
|
+
end
|
40
|
+
@lookbook_examples
|
25
41
|
end
|
26
42
|
|
27
43
|
# Examples::FooBarComponentPreview -> "Examples::FooBar"
|
@@ -57,6 +73,10 @@ module Lookbook
|
|
57
73
|
lookbook_path.tr("_", "-")
|
58
74
|
end
|
59
75
|
|
76
|
+
def lookbook_layout
|
77
|
+
defined?(@layout) ? @layout : nil
|
78
|
+
end
|
79
|
+
|
60
80
|
class << self
|
61
81
|
def all
|
62
82
|
ViewComponent::Preview.all
|
@@ -69,6 +89,8 @@ module Lookbook
|
|
69
89
|
def exists?(path)
|
70
90
|
!!find(path)
|
71
91
|
end
|
92
|
+
|
93
|
+
|
72
94
|
end
|
73
95
|
|
74
96
|
private
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Lookbook
|
2
2
|
module PreviewController
|
3
|
-
def
|
3
|
+
def render_example_to_string(preview, example_name)
|
4
4
|
prepend_application_view_paths
|
5
5
|
prepend_preview_examples_view_path
|
6
6
|
@preview = preview
|
@@ -13,5 +13,10 @@ module Lookbook
|
|
13
13
|
opts[:locals] = locals if locals.present?
|
14
14
|
render_to_string template, opts
|
15
15
|
end
|
16
|
+
|
17
|
+
def render_in_layout_to_string(content, layout_override)
|
18
|
+
layout = determine_layout(layout_override, prepend_views: false)[:layout]
|
19
|
+
render_to_string html: content, layout: layout
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
@@ -41,8 +41,8 @@ module Lookbook
|
|
41
41
|
:example
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
45
|
-
[
|
44
|
+
def matchers
|
45
|
+
[@preview.label, label].map { |m| m.gsub(/\s/, "").downcase }
|
46
46
|
end
|
47
47
|
|
48
48
|
def hierarchy_depth
|
@@ -62,6 +62,7 @@ module Lookbook
|
|
62
62
|
Pathname.new(Dir["#{base_path}/#{template_path}.html.*"].first)
|
63
63
|
end
|
64
64
|
|
65
|
+
alias_method :group, :lookbook_group
|
65
66
|
alias_method :notes, :lookbook_notes
|
66
67
|
alias_method :hidden?, :lookbook_hidden?
|
67
68
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Lookbook
|
2
|
+
class PreviewGroup
|
3
|
+
include Taggable
|
4
|
+
|
5
|
+
attr_reader :name, :examples
|
6
|
+
|
7
|
+
def initialize(name, preview, examples)
|
8
|
+
@name = name
|
9
|
+
@preview = preview
|
10
|
+
@examples = examples
|
11
|
+
end
|
12
|
+
|
13
|
+
def id
|
14
|
+
path.underscore.tr("_", "-")
|
15
|
+
end
|
16
|
+
|
17
|
+
def path
|
18
|
+
"#{@preview.lookbook_path}/#{name}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def label
|
22
|
+
name.titleize
|
23
|
+
end
|
24
|
+
|
25
|
+
def type
|
26
|
+
:group
|
27
|
+
end
|
28
|
+
|
29
|
+
def matchers
|
30
|
+
[@preview.label, label].map { |m| m.gsub(/\s/, "").downcase }
|
31
|
+
end
|
32
|
+
|
33
|
+
def hierarchy_depth
|
34
|
+
@preview.lookbook_hierarchy_depth + 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/lookbook/taggable.rb
CHANGED
data/lib/lookbook/version.rb
CHANGED
data/lib/lookbook.rb
CHANGED
@@ -10,5 +10,6 @@ module Lookbook
|
|
10
10
|
autoload :Preview, "lookbook/preview"
|
11
11
|
autoload :PreviewController, "lookbook/preview_controller"
|
12
12
|
autoload :PreviewExample, "lookbook/preview_example"
|
13
|
+
autoload :PreviewGroup, "lookbook/preview_group"
|
13
14
|
autoload :Taggable, "lookbook/taggable"
|
14
15
|
end
|
@@ -6,7 +6,7 @@ namespace :lookbook do
|
|
6
6
|
task :bump_version, [:version] do |t, args|
|
7
7
|
filename = Lookbook::Engine.root.join("lib/lookbook/version.rb")
|
8
8
|
current_version = Lookbook::VERSION.to_s
|
9
|
-
new_version = args[:version].sub("v", "")
|
9
|
+
new_version = args[:version].sub("v", "").gsub("-",".")
|
10
10
|
file = File.open(filename)
|
11
11
|
contents = file.read
|
12
12
|
File.write(filename, contents.gsub(current_version, new_version))
|