lookbook 2.0.0.rc.1 → 2.0.0.rc.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 174a4ec48c4ecd1c29e75dfe398b67432344d13e37129b24c344e54519b29734
4
- data.tar.gz: d1d3165449445809fa7ec6aad3b8005fb8607c7bd01a7a5752ff7802f0095778
3
+ metadata.gz: 8e65ff18c2a7f112552e6b9a7ef3936628b84690a03123736bfbd2d69734319a
4
+ data.tar.gz: 841ccc4584b2b66bf165f822a3be984370d9bc0df0095ded20ef9800e5f76877
5
5
  SHA512:
6
- metadata.gz: 65a1324e145f01c7287d016395bf98d3278bc6b552c4fba3dbfa9c525c98d8622d463d48787dc1aaccd2eac0f1fc32126547ef3f80f13128e83089b9088166a9
7
- data.tar.gz: 85ae77aa8223fb11f60e6d4ea075827f49f809f96dd3e017be0176e89ffe58b373a55e52079391132b5253ab241b33df4200c8ebeee4cfe97956ba4a51bc83e7
6
+ metadata.gz: 6e67bf7cf970cfb18166050d582b8daf29a9d13ceec465ce7e9ad49c3fdd12f04b9d5a72bba7786cb62be56a8be29464e34602f9758d68660b1f38bf0f2cddec
7
+ data.tar.gz: 50b18c05c31bd207acc07f40a07a564926aae7865f0770fe1612bab661a8342418fe3662f50a2fbfa13f105c48b66786e8ed67c261eb96962182b7abf63357ea
@@ -3,12 +3,23 @@ module Lookbook
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def preview_controller
6
- return @_preview_controller if @_preview_controller
6
+ @_preview_controller ||= begin
7
+ # In order to get URL helpers working correctly in the preview,
8
+ # the request needs to look like it's coming from the host app,
9
+ # not the Lookbook engine. So we try to get the controller and action
10
+ # for the root path and use that as the 'fake' request context instead.
11
+ request_path = main_app.respond_to?(:root_path) ? main_app.root_path : "/"
12
+ path_parameters = Rails.application.routes.recognize_path(request_path)
7
13
 
8
- controller = Engine.preview_controller.new
9
- controller.request = request
10
- controller.response = response
11
- @_preview_controller ||= controller
14
+ preview_request = request.clone
15
+ preview_request.path_parameters = path_parameters if path_parameters.present?
16
+
17
+ controller = Engine.preview_controller.new
18
+ controller.request = preview_request
19
+ controller.response = response
20
+
21
+ controller
22
+ end
12
23
  end
13
24
  end
14
25
  end
@@ -1,5 +1,9 @@
1
1
  <% if @render_args[:component] %>
2
- <%= render(@render_args[:component], @render_args[:args], &@render_args[:block]) %>
2
+ <% if defined?(Phlex::SGML) && @render_args[:component].is_a?(Phlex::SGML) %>
3
+ <%= raw(@render_args[:component].call(view_context: self, &@render_args[:block])) %>
4
+ <% else %>
5
+ <%= render(@render_args[:component], @render_args[:args], &@render_args[:block]) %>
6
+ <% end %>
3
7
  <% else %>
4
8
  <%= render(@render_args[:template], **@render_args[:locals], &@render_args[:block]) %>
5
9
  <% end %>
data/config/app.yml CHANGED
@@ -42,7 +42,7 @@ shared:
42
42
  theme: github
43
43
  dark: false
44
44
 
45
- component_paths: [app/views]
45
+ component_paths: [app/views, app/components]
46
46
 
47
47
  reload_on_change: ~
48
48
  live_updates: false
@@ -10,9 +10,5 @@ module Lookbook
10
10
  def lookbook_data(key, fallback = nil)
11
11
  Lookbook.data.fetch(key.to_sym, fallback)
12
12
  end
13
-
14
- def url_for(*args)
15
- main_app.url_for(*args)
16
- end
17
13
  end
18
14
  end
@@ -4,57 +4,58 @@ module Lookbook
4
4
 
5
5
  included do
6
6
  helper PreviewHelper
7
+ helper Rails.application.routes.url_helpers
7
8
  prepend_view_path Engine.root.join("app/views")
9
+ end
8
10
 
9
- def render_scenario_to_string(preview, scenario)
10
- prepend_application_view_paths
11
- prepend_preview_examples_view_path
12
-
13
- @preview = preview
14
- @scenario_name = scenario.name
15
- @render_args = @preview.render_args(@scenario_name, params: params.permit!)
16
- template = @render_args[:template]
17
- locals = @render_args[:locals]
18
- opts = {}
19
- opts[:layout] = nil
20
- opts[:locals] = locals if locals.present?
21
-
22
- rendered = render_to_string(template, **opts)
23
-
24
- if scenario.after_render_method.present?
25
- render_context = Store.new({
26
- preview: preview,
27
- scenario: scenario,
28
- params: user_request_parameters
29
- })
30
- rendered = @preview.after_render(method: scenario.after_render_method, html: rendered, context: render_context)
31
- end
11
+ def render_scenario_to_string(preview, scenario)
12
+ prepend_application_view_paths
13
+ prepend_preview_examples_view_path
14
+
15
+ @preview = preview
16
+ @scenario_name = scenario.name
17
+ @render_args = @preview.render_args(@scenario_name, params: params.permit!)
18
+ template = @render_args[:template]
19
+ locals = @render_args[:locals]
20
+ opts = {}
21
+ opts[:layout] = nil
22
+ opts[:locals] = locals if locals.present?
23
+
24
+ rendered = render_to_string(template, **opts)
25
+
26
+ if scenario.after_render_method.present?
27
+ render_context = Store.new({
28
+ preview: preview,
29
+ scenario: scenario,
30
+ params: user_request_parameters
31
+ })
32
+ rendered = @preview.after_render(method: scenario.after_render_method, html: rendered, context: render_context)
33
+ end
32
34
 
33
- with_optional_action_view_annotations do
34
- render html: rendered
35
- end
35
+ with_optional_action_view_annotations do
36
+ render html: rendered
36
37
  end
38
+ end
37
39
 
38
- def render_in_layout_to_string(template, locals, opts = {})
39
- with_optional_action_view_annotations do
40
- html = render_to_string(template, locals: locals, **determine_layout(opts[:layout]))
41
- if opts[:append_html].present?
42
- html += opts[:append_html]
43
- end
44
- render html: html
40
+ def render_in_layout_to_string(template, locals, opts = {})
41
+ with_optional_action_view_annotations do
42
+ html = render_to_string(template, locals: locals, **determine_layout(opts[:layout]))
43
+ if opts[:append_html].present?
44
+ html += opts[:append_html]
45
45
  end
46
+ render html: html
46
47
  end
48
+ end
47
49
 
48
- protected
50
+ protected
49
51
 
50
- def with_optional_action_view_annotations(&block)
51
- disable = Lookbook.config.preview_disable_action_view_annotations
52
- ActionViewAnnotationsHandler.call(disable_annotations: disable, &block)
53
- end
52
+ def with_optional_action_view_annotations(&block)
53
+ disable = Lookbook.config.preview_disable_action_view_annotations
54
+ ActionViewAnnotationsHandler.call(disable_annotations: disable, &block)
55
+ end
54
56
 
55
- def user_request_parameters
56
- request.query_parameters.to_h.filter { |k, v| !k.start_with?("_") }
57
- end
57
+ def user_request_parameters
58
+ request.query_parameters.to_h.filter { |k, v| !k.start_with?("_") }
58
59
  end
59
60
  end
60
61
  end
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "2.0.0.rc.1"
2
+ VERSION = "2.0.0.rc.2"
3
3
  end
@@ -7815,7 +7815,49 @@ function $12b7aa006b8a97e1$var$toCamel(s) {
7815
7815
  }
7816
7816
 
7817
7817
 
7818
- var $52abf2efa3492135$exports = {};
7818
+ var $57df4ec1d6bb80f5$exports = {};
7819
+ var $47a1c62621be0c54$exports = {};
7820
+
7821
+ $parcel$defineInteropFlag($47a1c62621be0c54$exports);
7822
+
7823
+ $parcel$export($47a1c62621be0c54$exports, "default", () => $47a1c62621be0c54$export$2e2bcd8739ae039);
7824
+ var $4e31c85e11272811$exports = {};
7825
+
7826
+ $parcel$defineInteropFlag($4e31c85e11272811$exports);
7827
+
7828
+ $parcel$export($4e31c85e11272811$exports, "initClipboard", () => $4e31c85e11272811$export$c6684e6159b21de3);
7829
+ $parcel$export($4e31c85e11272811$exports, "default", () => $4e31c85e11272811$export$2e2bcd8739ae039);
7830
+
7831
+ function $4e31c85e11272811$export$c6684e6159b21de3(context = {}) {
7832
+ let copyTimeout = null;
7833
+ return Object.assign(context, {
7834
+ copied: false,
7835
+ async copyToClipboard (target = null) {
7836
+ let targetEl;
7837
+ if (this.$refs.copyTarget) targetEl = this.$refs.copyTarget;
7838
+ else if (typeof target === "string") targetEl = document.querySelector(target);
7839
+ if (!targetEl) {
7840
+ this.warn("Could not find copy target");
7841
+ return false;
7842
+ }
7843
+ const content = (0, $fb8f79f7dd40b68f$export$6cb344a21ca18aec)(targetEl.innerHTML.trim());
7844
+ await window.navigator.clipboard.writeText(content);
7845
+ this.copied = true;
7846
+ if (copyTimeout) clearTimeout(copyTimeout);
7847
+ copyTimeout = setTimeout(()=>{
7848
+ this.copied = false;
7849
+ this.onCopyComplete();
7850
+ }, 1000);
7851
+ return content;
7852
+ },
7853
+ onCopyComplete () {}
7854
+ });
7855
+ }
7856
+ function $4e31c85e11272811$export$2e2bcd8739ae039() {
7857
+ return $4e31c85e11272811$export$c6684e6159b21de3({});
7858
+ }
7859
+
7860
+
7819
7861
  var $cbd28b10fa9798c7$exports = {};
7820
7862
 
7821
7863
  $parcel$defineInteropFlag($cbd28b10fa9798c7$exports);
@@ -11346,59 +11388,6 @@ function $cbd28b10fa9798c7$export$2e2bcd8739ae039() {
11346
11388
  }
11347
11389
 
11348
11390
 
11349
- var $99486586f6691564$exports = {};
11350
-
11351
- $parcel$defineInteropFlag($99486586f6691564$exports);
11352
-
11353
- $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
11354
- function $99486586f6691564$export$2e2bcd8739ae039() {
11355
- return {};
11356
- }
11357
-
11358
-
11359
- var $47a1c62621be0c54$exports = {};
11360
-
11361
- $parcel$defineInteropFlag($47a1c62621be0c54$exports);
11362
-
11363
- $parcel$export($47a1c62621be0c54$exports, "default", () => $47a1c62621be0c54$export$2e2bcd8739ae039);
11364
- var $4e31c85e11272811$exports = {};
11365
-
11366
- $parcel$defineInteropFlag($4e31c85e11272811$exports);
11367
-
11368
- $parcel$export($4e31c85e11272811$exports, "initClipboard", () => $4e31c85e11272811$export$c6684e6159b21de3);
11369
- $parcel$export($4e31c85e11272811$exports, "default", () => $4e31c85e11272811$export$2e2bcd8739ae039);
11370
-
11371
- function $4e31c85e11272811$export$c6684e6159b21de3(context = {}) {
11372
- let copyTimeout = null;
11373
- return Object.assign(context, {
11374
- copied: false,
11375
- async copyToClipboard (target = null) {
11376
- let targetEl;
11377
- if (this.$refs.copyTarget) targetEl = this.$refs.copyTarget;
11378
- else if (typeof target === "string") targetEl = document.querySelector(target);
11379
- if (!targetEl) {
11380
- this.warn("Could not find copy target");
11381
- return false;
11382
- }
11383
- const content = (0, $fb8f79f7dd40b68f$export$6cb344a21ca18aec)(targetEl.innerHTML.trim());
11384
- await window.navigator.clipboard.writeText(content);
11385
- this.copied = true;
11386
- if (copyTimeout) clearTimeout(copyTimeout);
11387
- copyTimeout = setTimeout(()=>{
11388
- this.copied = false;
11389
- this.onCopyComplete();
11390
- }, 1000);
11391
- return content;
11392
- },
11393
- onCopyComplete () {}
11394
- });
11395
- }
11396
- function $4e31c85e11272811$export$2e2bcd8739ae039() {
11397
- return $4e31c85e11272811$export$c6684e6159b21de3({});
11398
- }
11399
-
11400
-
11401
-
11402
11391
  function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11403
11392
  const button = (0, $cbd28b10fa9798c7$export$2e2bcd8739ae039)();
11404
11393
  return {
@@ -11412,6 +11401,17 @@ function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11412
11401
  }
11413
11402
 
11414
11403
 
11404
+
11405
+ var $99486586f6691564$exports = {};
11406
+
11407
+ $parcel$defineInteropFlag($99486586f6691564$exports);
11408
+
11409
+ $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
11410
+ function $99486586f6691564$export$2e2bcd8739ae039() {
11411
+ return {};
11412
+ }
11413
+
11414
+
11415
11415
  var $e398acaded942bbe$exports = {};
11416
11416
 
11417
11417
  $parcel$defineInteropFlag($e398acaded942bbe$exports);
@@ -12336,10 +12336,10 @@ function $6d64716f0b34fdf4$export$2e2bcd8739ae039(store) {
12336
12336
  }
12337
12337
 
12338
12338
 
12339
- $52abf2efa3492135$exports = {
12339
+ $57df4ec1d6bb80f5$exports = {
12340
+ "copy_button": $47a1c62621be0c54$exports,
12340
12341
  "button": $cbd28b10fa9798c7$exports,
12341
12342
  "code": $99486586f6691564$exports,
12342
- "copy_button": $47a1c62621be0c54$exports,
12343
12343
  "dimensions_display": $e398acaded942bbe$exports,
12344
12344
  "embed_code_dropdown": $216ef7001f59f21d$exports,
12345
12345
  "filter": $e9904a14dabf652d$exports,
@@ -13521,7 +13521,7 @@ const $22969b543678f572$var$prefix = window.APP_NAME;
13521
13521
  // Components
13522
13522
  (0, $caa9439642c6336c$export$2e2bcd8739ae039).data("app", (0, $5792afa4170ed552$export$2e2bcd8739ae039));
13523
13523
  [
13524
- $52abf2efa3492135$exports,
13524
+ $57df4ec1d6bb80f5$exports,
13525
13525
  $3b154185c6273749$exports,
13526
13526
  $338da9a25bc5c332$exports
13527
13527
  ].forEach((scripts)=>{