lookbook 0.2.1 → 0.3.0.beta.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 +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))
|