lookbook 1.0.8 → 1.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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/lookbook/css/lookbook.css +76 -2
  3. data/app/assets/lookbook/js/app.js +20 -2
  4. data/app/{components/lookbook/params_editor/field/component.js → assets/lookbook/js/components/params_input.js} +1 -14
  5. data/app/assets/lookbook/js/lookbook.js +2 -1
  6. data/app/components/lookbook/base_component.rb +2 -3
  7. data/app/components/lookbook/button/component.html.erb +2 -2
  8. data/app/components/lookbook/button/component.rb +6 -1
  9. data/app/components/lookbook/button_group/component.rb +3 -4
  10. data/app/components/lookbook/copy_button/component.html.erb +1 -1
  11. data/app/components/lookbook/debug_menu/component.html.erb +51 -0
  12. data/app/components/lookbook/debug_menu/component.rb +18 -0
  13. data/app/components/lookbook/embed/component.html.erb +3 -3
  14. data/app/components/lookbook/header/component.html.erb +19 -44
  15. data/app/components/lookbook/inspector_panel/component.html.erb +5 -3
  16. data/app/components/lookbook/inspector_panel/component.rb +6 -18
  17. data/app/components/lookbook/nav/component.js +4 -0
  18. data/app/components/lookbook/nav/component.rb +1 -1
  19. data/app/components/lookbook/nav/item/component.html.erb +4 -4
  20. data/app/components/lookbook/nav/item/component.rb +1 -1
  21. data/app/components/lookbook/page_tabs/component.html.erb +4 -4
  22. data/app/components/lookbook/page_tabs/component.rb +1 -1
  23. data/app/components/lookbook/params/editor/component.html.erb +21 -0
  24. data/app/components/lookbook/{params_editor → params/editor}/component.js +1 -1
  25. data/app/components/lookbook/params/editor/component.rb +40 -0
  26. data/app/components/lookbook/params/field/component.css +76 -0
  27. data/app/components/lookbook/params/field/component.html.erb +27 -0
  28. data/app/components/lookbook/params/field/component.js +7 -0
  29. data/app/components/lookbook/params/field/component.rb +101 -0
  30. data/app/components/lookbook/tabs/component.html.erb +2 -2
  31. data/app/components/lookbook/tag_component.rb +1 -0
  32. data/app/components/lookbook/viewport/component.css +1 -1
  33. data/app/components/lookbook/viewport/component.html.erb +11 -0
  34. data/app/controllers/lookbook/previews_controller.rb +1 -1
  35. data/app/helpers/lookbook/component_helper.rb +45 -26
  36. data/app/helpers/lookbook/page_helper.rb +1 -1
  37. data/app/views/layouts/lookbook/application.html.erb +18 -4
  38. data/app/views/layouts/lookbook/page.html.erb +4 -4
  39. data/app/views/layouts/lookbook/shell.html.erb +4 -4
  40. data/app/views/layouts/lookbook/skeleton.html.erb +0 -6
  41. data/app/views/lookbook/error.html.erb +1 -1
  42. data/app/views/lookbook/pages/show.html.erb +2 -2
  43. data/app/views/lookbook/previews/inputs/_color.html.erb +5 -0
  44. data/app/views/lookbook/previews/inputs/_range.html.erb +15 -0
  45. data/app/views/lookbook/previews/inputs/_select.html.erb +5 -0
  46. data/app/views/lookbook/previews/inputs/_text.html.erb +5 -0
  47. data/app/views/lookbook/previews/inputs/_textarea.html.erb +5 -0
  48. data/app/views/lookbook/previews/inputs/_toggle.html.erb +20 -0
  49. data/app/views/lookbook/previews/panels/_content.html.erb +2 -2
  50. data/app/views/lookbook/previews/panels/_notes.html.erb +2 -2
  51. data/app/views/lookbook/previews/panels/_output.html.erb +1 -1
  52. data/app/views/lookbook/previews/panels/_params.html.erb +3 -3
  53. data/app/views/lookbook/previews/panels/_preview.html.erb +1 -1
  54. data/app/views/lookbook/previews/panels/_source.html.erb +2 -2
  55. data/app/views/lookbook/previews/show.html.erb +13 -19
  56. data/lib/lookbook/config.rb +16 -1
  57. data/lib/lookbook/engine.rb +16 -6
  58. data/lib/lookbook/markdown.rb +1 -1
  59. data/lib/lookbook/panels.rb +14 -4
  60. data/lib/lookbook/params.rb +66 -35
  61. data/lib/lookbook/parser.rb +1 -0
  62. data/lib/lookbook/preview.rb +10 -4
  63. data/lib/lookbook/preview_controller.rb +7 -19
  64. data/lib/lookbook/preview_example.rb +1 -1
  65. data/lib/lookbook/source_inspector.rb +10 -4
  66. data/lib/lookbook/tag.rb +13 -3
  67. data/lib/lookbook/tag_options.rb +111 -0
  68. data/lib/lookbook/tags.rb +6 -2
  69. data/lib/lookbook/template_parser.rb +72 -0
  70. data/lib/lookbook/theme.rb +1 -1
  71. data/lib/lookbook/utils.rb +23 -0
  72. data/lib/lookbook/version.rb +1 -1
  73. data/lib/lookbook.rb +2 -0
  74. data/public/lookbook-assets/css/lookbook.css +369 -126
  75. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  76. data/public/lookbook-assets/js/embed.js +13 -13
  77. data/public/lookbook-assets/js/embed.js.map +1 -1
  78. data/public/lookbook-assets/js/lookbook.js +706 -621
  79. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  80. metadata +42 -10
  81. data/app/components/lookbook/params_editor/component.html.erb +0 -3
  82. data/app/components/lookbook/params_editor/component.rb +0 -11
  83. data/app/components/lookbook/params_editor/field/component.html.erb +0 -49
  84. data/app/components/lookbook/params_editor/field/component.rb +0 -44
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lookbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Perkins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-15 00:00:00.000000000 Z
11
+ date: 2022-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: css_parser
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activemodel
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: railties
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +98,22 @@ dependencies:
84
98
  name: rouge
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - "~>"
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '3.26'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '5.0'
90
107
  type: :runtime
91
108
  prerelease: false
92
109
  version_requirements: !ruby/object:Gem::Requirement
93
110
  requirements:
94
- - - "~>"
111
+ - - ">="
95
112
  - !ruby/object:Gem::Version
96
113
  version: '3.26'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '5.0'
97
117
  - !ruby/object:Gem::Dependency
98
118
  name: listen
99
119
  requirement: !ruby/object:Gem::Requirement
@@ -165,6 +185,7 @@ files:
165
185
  - app/assets/lookbook/css/tooltip.css
166
186
  - app/assets/lookbook/js/app.js
167
187
  - app/assets/lookbook/js/components/clipboard.js
188
+ - app/assets/lookbook/js/components/params_input.js
168
189
  - app/assets/lookbook/js/components/tooltip.js
169
190
  - app/assets/lookbook/js/config.js
170
191
  - app/assets/lookbook/js/embed.js
@@ -200,6 +221,8 @@ files:
200
221
  - app/components/lookbook/copy_button/component.html.erb
201
222
  - app/components/lookbook/copy_button/component.js
202
223
  - app/components/lookbook/copy_button/component.rb
224
+ - app/components/lookbook/debug_menu/component.html.erb
225
+ - app/components/lookbook/debug_menu/component.rb
203
226
  - app/components/lookbook/dimensions_display/component.html.erb
204
227
  - app/components/lookbook/dimensions_display/component.js
205
228
  - app/components/lookbook/dimensions_display/component.rb
@@ -226,12 +249,13 @@ files:
226
249
  - app/components/lookbook/nav/item/component.rb
227
250
  - app/components/lookbook/page_tabs/component.html.erb
228
251
  - app/components/lookbook/page_tabs/component.rb
229
- - app/components/lookbook/params_editor/component.html.erb
230
- - app/components/lookbook/params_editor/component.js
231
- - app/components/lookbook/params_editor/component.rb
232
- - app/components/lookbook/params_editor/field/component.html.erb
233
- - app/components/lookbook/params_editor/field/component.js
234
- - app/components/lookbook/params_editor/field/component.rb
252
+ - app/components/lookbook/params/editor/component.html.erb
253
+ - app/components/lookbook/params/editor/component.js
254
+ - app/components/lookbook/params/editor/component.rb
255
+ - app/components/lookbook/params/field/component.css
256
+ - app/components/lookbook/params/field/component.html.erb
257
+ - app/components/lookbook/params/field/component.js
258
+ - app/components/lookbook/params/field/component.rb
235
259
  - app/components/lookbook/prose/component.css
236
260
  - app/components/lookbook/prose/component.html.erb
237
261
  - app/components/lookbook/prose/component.rb
@@ -279,6 +303,12 @@ files:
279
303
  - app/views/lookbook/index.html.erb
280
304
  - app/views/lookbook/pages/show.html.erb
281
305
  - app/views/lookbook/preview.html.erb
306
+ - app/views/lookbook/previews/inputs/_color.html.erb
307
+ - app/views/lookbook/previews/inputs/_range.html.erb
308
+ - app/views/lookbook/previews/inputs/_select.html.erb
309
+ - app/views/lookbook/previews/inputs/_text.html.erb
310
+ - app/views/lookbook/previews/inputs/_textarea.html.erb
311
+ - app/views/lookbook/previews/inputs/_toggle.html.erb
282
312
  - app/views/lookbook/previews/panels/_content.html.erb
283
313
  - app/views/lookbook/previews/panels/_notes.html.erb
284
314
  - app/views/lookbook/previews/panels/_output.html.erb
@@ -314,7 +344,9 @@ files:
314
344
  - lib/lookbook/source_inspector.rb
315
345
  - lib/lookbook/store.rb
316
346
  - lib/lookbook/tag.rb
347
+ - lib/lookbook/tag_options.rb
317
348
  - lib/lookbook/tags.rb
349
+ - lib/lookbook/template_parser.rb
318
350
  - lib/lookbook/theme.rb
319
351
  - lib/lookbook/utils.rb
320
352
  - lib/lookbook/version.rb
@@ -1,3 +0,0 @@
1
- <%= render_component_tag do %>
2
- <%= safe_join(fields) %>
3
- <% end %>
@@ -1,11 +0,0 @@
1
- module Lookbook
2
- class ParamsEditor::Component < Lookbook::BaseComponent
3
- renders_many :fields, Lookbook::ParamsEditor::Field::Component
4
-
5
- protected
6
-
7
- def alpine_component
8
- "paramsEditorComponent"
9
- end
10
- end
11
- end
@@ -1,49 +0,0 @@
1
- <%= render_component_tag class: "px-4 py-3" do %>
2
- <div class="flex items-start max-w-[800px]" :class="isNarrowLayout && '!block'">
3
- <label
4
- for="param-<%= name %>"
5
- class="block font-bold cursor-pointer flex-none py-2 w-[140px] truncate pr-2">
6
- <%= label %>
7
- </label>
8
-
9
- <div class="flex-grow">
10
- <% if field_type == "text" %>
11
-
12
- <input
13
- class="form-input"
14
- value="<%= value %>"
15
- type="<%= input_type %>"
16
- x-bind="bindings.input || {}">
17
-
18
- <% elsif field_type == "textarea" %>
19
-
20
- <textarea
21
- class="form-input"
22
- rows="4"
23
- x-bind="bindings.input || {}"><%= value %></textarea>
24
-
25
- <% elsif field_type == "select" %>
26
-
27
- <select
28
- class="form-input"
29
- x-bind="bindings.input || {}"
30
- x-model="value"
31
- name="<%= name %>">
32
- <%= options_for_select(@options || [], value) %>
33
- </select>
34
-
35
- <% elsif field_type == "toggle" %>
36
- <button type="button"
37
- class="<%= value == true ? "bg-lookbook-input-toggle-active" : "bg-lookbook-input-toggle" %> relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-input-border-focus"
38
- role="switch"
39
- @click.stop="value = !value">
40
- <span
41
- aria-hidden="true"
42
- class="<%= value == true ? "translate-x-5" : "translate-x-0" %> pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition ease-in-out duration-200"
43
- ></span>
44
- </button>
45
- <% end %>
46
- </div>
47
- </div>
48
- <% end %>
49
-
@@ -1,44 +0,0 @@
1
- module Lookbook
2
- class ParamsEditor::Field::Component < Lookbook::BaseComponent
3
- attr_reader :name
4
-
5
- def initialize(input:, name:, default: nil, value: nil, input_type: nil, type: nil, options: nil, **html_attrs)
6
- @input = input
7
- @name = name
8
- @value = value
9
- @default_value = default
10
- @input_type = input_type
11
- @type = type
12
- @options = options
13
- super(**html_attrs)
14
- end
15
-
16
- def label
17
- name.titleize
18
- end
19
-
20
- def value
21
- val = @value.presence || @default_value
22
- @type == "Boolean" ? val == "true" || val == true : val
23
- end
24
-
25
- def field_type
26
- @input.to_s
27
- end
28
-
29
- def input_type
30
- @input_type.nil? && field_type == "text" ? "text" : @input_type
31
- end
32
-
33
- protected
34
-
35
- def alpine_data
36
- escaped_value = json_escape(value.to_json)
37
- "{name: '#{name}', value: #{escaped_value}}"
38
- end
39
-
40
- def alpine_component
41
- "paramsEditorFieldComponent"
42
- end
43
- end
44
- end