lookbook 1.0.0.beta.2 → 1.0.0.beta.3

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +180 -40
  3. data/app/components/lookbook/{component.rb → base_component.rb} +1 -1
  4. data/app/components/lookbook/button/component.rb +1 -1
  5. data/app/components/lookbook/button_group/component.rb +1 -1
  6. data/app/components/lookbook/code/component.rb +1 -1
  7. data/app/components/lookbook/copy_button/component.html.erb +1 -1
  8. data/app/components/lookbook/copy_button/component.rb +1 -1
  9. data/app/components/lookbook/dimensions_display/component.rb +1 -1
  10. data/app/components/lookbook/embed/component.html.erb +3 -2
  11. data/app/components/lookbook/embed/component.rb +1 -1
  12. data/app/components/lookbook/filter/component.html.erb +1 -1
  13. data/app/components/lookbook/filter/component.rb +1 -1
  14. data/app/components/lookbook/header/component.html.erb +5 -10
  15. data/app/components/lookbook/header/component.rb +1 -1
  16. data/app/components/lookbook/icon/component.rb +1 -1
  17. data/app/components/lookbook/nav/component.rb +1 -1
  18. data/app/components/lookbook/nav/item/component.html.erb +2 -2
  19. data/app/components/lookbook/nav/item/component.rb +1 -1
  20. data/app/components/lookbook/page_tabs/component.rb +1 -1
  21. data/app/components/lookbook/params_editor/component.rb +1 -1
  22. data/app/components/lookbook/params_editor/field/component.rb +1 -1
  23. data/app/components/lookbook/prose/component.rb +1 -1
  24. data/app/components/lookbook/split_layout/component.rb +1 -1
  25. data/app/components/lookbook/tab_panels/component.rb +1 -1
  26. data/app/components/lookbook/tab_panels/panel/component.rb +2 -2
  27. data/app/components/lookbook/tabs/component.js +6 -6
  28. data/app/components/lookbook/tabs/component.rb +1 -1
  29. data/app/components/lookbook/tabs/dropdown_tab/component.rb +1 -1
  30. data/app/components/lookbook/tabs/tab/component.rb +1 -1
  31. data/app/components/lookbook/toolbar/component.rb +1 -1
  32. data/app/components/lookbook/viewport/component.rb +1 -1
  33. data/app/controllers/lookbook/previews_controller.rb +24 -29
  34. data/app/helpers/lookbook/application_helper.rb +6 -0
  35. data/app/helpers/lookbook/component_helper.rb +4 -0
  36. data/app/helpers/lookbook/page_helper.rb +1 -1
  37. data/app/views/layouts/lookbook/application.html.erb +1 -1
  38. data/app/views/layouts/lookbook/shell.html.erb +1 -1
  39. data/app/views/layouts/lookbook/skeleton.html.erb +7 -1
  40. data/app/views/lookbook/404.html.erb +1 -1
  41. data/app/views/lookbook/index.html.erb +1 -1
  42. data/app/views/lookbook/pages/show.html.erb +2 -2
  43. data/app/views/lookbook/previews/panels/_notes.html.erb +1 -1
  44. data/app/views/lookbook/previews/show.html.erb +3 -3
  45. data/lib/lookbook/collection.rb +1 -1
  46. data/lib/lookbook/component.rb +31 -0
  47. data/lib/lookbook/config.rb +54 -9
  48. data/lib/lookbook/engine.rb +72 -12
  49. data/lib/lookbook/page.rb +2 -2
  50. data/lib/lookbook/parser.rb +1 -4
  51. data/lib/lookbook/preview.rb +24 -7
  52. data/lib/lookbook/preview_example.rb +1 -1
  53. data/lib/lookbook/source_inspector.rb +10 -0
  54. data/lib/lookbook/utils.rb +2 -2
  55. data/lib/lookbook/version.rb +1 -1
  56. data/lib/lookbook.rb +1 -12
  57. data/public/lookbook-assets/js/lookbook.js +105 -104
  58. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  59. metadata +3 -2
@@ -30,7 +30,7 @@ module Lookbook
30
30
  @example_inspector.source.split("\n")[1..-2].join("\n").strip_heredoc
31
31
  end
32
32
 
33
- def source_lang
33
+ def lang
34
34
  Lookbook::Lang.find(:ruby)
35
35
  end
36
36
 
@@ -39,6 +39,16 @@ module Lookbook
39
39
  code_object&.tag(:position)&.text&.to_i || 10000
40
40
  end
41
41
 
42
+ def components
43
+ if code_object&.tags(:component).present?
44
+ code_object.tags(:component).map do |component|
45
+ component.text.constantize
46
+ end
47
+ else
48
+ []
49
+ end
50
+ end
51
+
42
52
  def display_params
43
53
  display_params = {}.with_indifferent_access
44
54
  if code_object&.tags(:display).present?
@@ -16,7 +16,7 @@ module Lookbook
16
16
  class_name(klass).to_s.chomp("ComponentPreview").chomp("Component::Preview").chomp("::Preview").chomp("Component").chomp("Preview").chomp("::")
17
17
  end
18
18
 
19
- def preview_class_name(klass)
19
+ def preview_class_path(klass)
20
20
  preview_class_basename(klass).underscore
21
21
  end
22
22
 
@@ -49,7 +49,7 @@ module Lookbook
49
49
  end
50
50
 
51
51
  def to_preview_path(*args)
52
- args.flatten.map { |arg| preview_class_name(arg) }.join("/")
52
+ args.flatten.map { |arg| preview_class_path(arg) }.join("/")
53
53
  end
54
54
 
55
55
  protected
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "1.0.0.beta.2"
2
+ VERSION = "1.0.0.beta.3"
3
3
  end
data/lib/lookbook.rb CHANGED
@@ -27,16 +27,5 @@ module Lookbook
27
27
  autoload :Markdown, "lookbook/markdown"
28
28
  autoload :Theme, "lookbook/theme"
29
29
  autoload :Store, "lookbook/store"
30
-
31
- class << self
32
- include Utils
33
-
34
- def previews
35
- Preview.all
36
- end
37
-
38
- def pages
39
- Page.all
40
- end
41
- end
30
+ autoload :Component, "lookbook/component"
42
31
  end
@@ -7849,17 +7849,7 @@ function $5439cede634b2921$var$toCamel(s) {
7849
7849
  }
7850
7850
 
7851
7851
 
7852
- var $6c7bb428bd81c9cb$exports = {};
7853
- var $99486586f6691564$exports = {};
7854
-
7855
- $parcel$defineInteropFlag($99486586f6691564$exports);
7856
-
7857
- $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
7858
- function $99486586f6691564$export$2e2bcd8739ae039() {
7859
- return {};
7860
- }
7861
-
7862
-
7852
+ var $e44b48ce5635d6e0$exports = {};
7863
7853
  var $cbd28b10fa9798c7$exports = {};
7864
7854
 
7865
7855
  $parcel$defineInteropFlag($cbd28b10fa9798c7$exports);
@@ -11512,36 +11502,13 @@ function $cbd28b10fa9798c7$export$2e2bcd8739ae039() {
11512
11502
  }
11513
11503
 
11514
11504
 
11515
- var $e398acaded942bbe$exports = {};
11516
-
11517
- $parcel$defineInteropFlag($e398acaded942bbe$exports);
11505
+ var $99486586f6691564$exports = {};
11518
11506
 
11519
- $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11507
+ $parcel$defineInteropFlag($99486586f6691564$exports);
11520
11508
 
11521
- function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11522
- return {
11523
- width: 0,
11524
- height: 0,
11525
- resizing: false,
11526
- target: null,
11527
- init () {
11528
- this.target = document.querySelector(targetSelector);
11529
- if (this.target) {
11530
- this.width = Math.round(this.target.clientWidth);
11531
- this.height = Math.round(this.target.clientHeight);
11532
- this.createObserver();
11533
- }
11534
- },
11535
- createObserver () {
11536
- if (this.target) this.observer = $9930d46698775b42$export$a2214cc2adb2dc44(document.querySelector(targetSelector), ({ width: width , height: height })=>{
11537
- this.width = width;
11538
- this.height = height;
11539
- });
11540
- },
11541
- tearDown () {
11542
- if (this.observer) this.observer.disconnect();
11543
- }
11544
- };
11509
+ $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
11510
+ function $99486586f6691564$export$2e2bcd8739ae039() {
11511
+ return {};
11545
11512
  }
11546
11513
 
11547
11514
 
@@ -11601,6 +11568,39 @@ function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11601
11568
  }
11602
11569
 
11603
11570
 
11571
+ var $e398acaded942bbe$exports = {};
11572
+
11573
+ $parcel$defineInteropFlag($e398acaded942bbe$exports);
11574
+
11575
+ $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11576
+
11577
+ function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11578
+ return {
11579
+ width: 0,
11580
+ height: 0,
11581
+ resizing: false,
11582
+ target: null,
11583
+ init () {
11584
+ this.target = document.querySelector(targetSelector);
11585
+ if (this.target) {
11586
+ this.width = Math.round(this.target.clientWidth);
11587
+ this.height = Math.round(this.target.clientHeight);
11588
+ this.createObserver();
11589
+ }
11590
+ },
11591
+ createObserver () {
11592
+ if (this.target) this.observer = $9930d46698775b42$export$a2214cc2adb2dc44(document.querySelector(targetSelector), ({ width: width , height: height })=>{
11593
+ this.width = width;
11594
+ this.height = height;
11595
+ });
11596
+ },
11597
+ tearDown () {
11598
+ if (this.observer) this.observer.disconnect();
11599
+ }
11600
+ };
11601
+ }
11602
+
11603
+
11604
11604
  var $e1f51f020443edd4$exports = {};
11605
11605
 
11606
11606
  $parcel$defineInteropFlag($e1f51f020443edd4$exports);
@@ -12466,31 +12466,6 @@ function $e1f51f020443edd4$export$2e2bcd8739ae039(id, embedStore) {
12466
12466
  }
12467
12467
 
12468
12468
 
12469
- var $e9904a14dabf652d$exports = {};
12470
-
12471
- $parcel$defineInteropFlag($e9904a14dabf652d$exports);
12472
-
12473
- $parcel$export($e9904a14dabf652d$exports, "default", () => $e9904a14dabf652d$export$2e2bcd8739ae039);
12474
- function $e9904a14dabf652d$export$2e2bcd8739ae039(store) {
12475
- return {
12476
- focussed: false,
12477
- get active () {
12478
- return store.active;
12479
- },
12480
- get text () {
12481
- return store.text;
12482
- },
12483
- clear () {
12484
- if (store.raw === "") this.$refs.input.blur();
12485
- else store.raw = "";
12486
- },
12487
- focus () {
12488
- this.$refs.input.focus();
12489
- }
12490
- };
12491
- }
12492
-
12493
-
12494
12469
  var $36506012e0c6e9e3$exports = {};
12495
12470
 
12496
12471
  $parcel$defineInteropFlag($36506012e0c6e9e3$exports);
@@ -12545,6 +12520,31 @@ function $d92d9d5253f84566$export$2e2bcd8739ae039(store) {
12545
12520
  }
12546
12521
 
12547
12522
 
12523
+ var $e9904a14dabf652d$exports = {};
12524
+
12525
+ $parcel$defineInteropFlag($e9904a14dabf652d$exports);
12526
+
12527
+ $parcel$export($e9904a14dabf652d$exports, "default", () => $e9904a14dabf652d$export$2e2bcd8739ae039);
12528
+ function $e9904a14dabf652d$export$2e2bcd8739ae039(store) {
12529
+ return {
12530
+ focussed: false,
12531
+ get active () {
12532
+ return store.active;
12533
+ },
12534
+ get text () {
12535
+ return store.text;
12536
+ },
12537
+ clear () {
12538
+ if (store.raw === "") this.$refs.input.blur();
12539
+ else store.raw = "";
12540
+ },
12541
+ focus () {
12542
+ this.$refs.input.focus();
12543
+ }
12544
+ };
12545
+ }
12546
+
12547
+
12548
12548
  var $b63b9c6d236b3f65$exports = {};
12549
12549
 
12550
12550
  $parcel$defineInteropFlag($b63b9c6d236b3f65$exports);
@@ -12563,6 +12563,33 @@ function $b63b9c6d236b3f65$export$2e2bcd8739ae039() {
12563
12563
  }
12564
12564
 
12565
12565
 
12566
+ var $a87dacf5139b5e2f$exports = {};
12567
+
12568
+ $parcel$defineInteropFlag($a87dacf5139b5e2f$exports);
12569
+
12570
+ $parcel$export($a87dacf5139b5e2f$exports, "default", () => $a87dacf5139b5e2f$export$2e2bcd8739ae039);
12571
+ function $a87dacf5139b5e2f$export$2e2bcd8739ae039(store) {
12572
+ return {
12573
+ get store () {
12574
+ return store || this;
12575
+ },
12576
+ get id () {
12577
+ return this.$root.id;
12578
+ },
12579
+ get panels () {
12580
+ return Array.from(this.$refs.panels.children);
12581
+ },
12582
+ isActive (el) {
12583
+ return this.store.activeTab === this._getRef(el);
12584
+ },
12585
+ // protected
12586
+ _getRef (el) {
12587
+ return el.getAttribute("x-ref");
12588
+ }
12589
+ };
12590
+ }
12591
+
12592
+
12566
12593
  var $506dabb2bf255b38$exports = {};
12567
12594
 
12568
12595
  $parcel$defineInteropFlag($506dabb2bf255b38$exports);
@@ -13116,33 +13143,6 @@ function $506dabb2bf255b38$var$sizeSplits(sizes) {
13116
13143
  }
13117
13144
 
13118
13145
 
13119
- var $a87dacf5139b5e2f$exports = {};
13120
-
13121
- $parcel$defineInteropFlag($a87dacf5139b5e2f$exports);
13122
-
13123
- $parcel$export($a87dacf5139b5e2f$exports, "default", () => $a87dacf5139b5e2f$export$2e2bcd8739ae039);
13124
- function $a87dacf5139b5e2f$export$2e2bcd8739ae039(store) {
13125
- return {
13126
- get store () {
13127
- return store || this;
13128
- },
13129
- get id () {
13130
- return this.$root.id;
13131
- },
13132
- get panels () {
13133
- return Array.from(this.$refs.panels.children);
13134
- },
13135
- isActive (el) {
13136
- return this.store.activeTab === this._getRef(el);
13137
- },
13138
- // protected
13139
- _getRef (el) {
13140
- return el.getAttribute("x-ref");
13141
- }
13142
- };
13143
- }
13144
-
13145
-
13146
13146
  var $0db07828cadc68e0$exports = {};
13147
13147
 
13148
13148
  $parcel$defineInteropFlag($0db07828cadc68e0$exports);
@@ -13153,7 +13153,7 @@ $parcel$export($0db07828cadc68e0$exports, "default", () => $0db07828cadc68e0$exp
13153
13153
 
13154
13154
 
13155
13155
  function $0db07828cadc68e0$export$2e2bcd8739ae039(store) {
13156
- const initial = store ? store.activeTab : null;
13156
+ const initial1 = store ? store.activeTab : null;
13157
13157
  let dropdown = null;
13158
13158
  return {
13159
13159
  visibleTabsCount: 0,
@@ -13162,7 +13162,7 @@ function $0db07828cadc68e0$export$2e2bcd8739ae039(store) {
13162
13162
  return store || this;
13163
13163
  },
13164
13164
  get tabs () {
13165
- return Array.from(this.$refs.tabs.children);
13165
+ return this.$refs.tabs ? Array.from(this.$refs.tabs.children) : [];
13166
13166
  },
13167
13167
  get dropdownTabs () {
13168
13168
  return Array.from(this.$refs.tabsDropdown ? this.$refs.tabsDropdown.children : []);
@@ -13183,9 +13183,9 @@ function $0db07828cadc68e0$export$2e2bcd8739ae039(store) {
13183
13183
  placement: "bottom",
13184
13184
  appendTo: this.$root
13185
13185
  });
13186
- const initialTab = initial ? this.tabs.find((t)=>this._getRef(t) === initial
13186
+ const initialTab = initial1 ? this.tabs.find((t)=>this._getRef(t) === initial1
13187
13187
  ) : this.tabs[0];
13188
- this.selectTab(initialTab);
13188
+ this.selectTab(initialTab, true);
13189
13189
  this.parentObserver = $9930d46698775b42$export$a2214cc2adb2dc44(this.$root.parentElement, (/*@__PURE__*/$parcel$interopDefault($d3ec6a576bb30dc9$exports))(this.handleResize.bind(this), 10));
13190
13190
  this.$watch("visibleTabsCount", (value)=>{
13191
13191
  this.debug(`'#${this.$root.id}' visible tabs count:`, value);
@@ -13195,11 +13195,9 @@ function $0db07828cadc68e0$export$2e2bcd8739ae039(store) {
13195
13195
  handleResize ({ width: width }) {
13196
13196
  if (width === this._lastMeasuredWidth) return;
13197
13197
  if (width === this.$root.offsetWidth) {
13198
- console.log("uep");
13199
13198
  this.visibleTabsCount = this.tabs.length;
13200
13199
  return;
13201
13200
  }
13202
- console.log(width);
13203
13201
  let sumTabWidths = 60;
13204
13202
  let triggerLeft = 20;
13205
13203
  let visibleTabsCount = 0;
@@ -13214,9 +13212,12 @@ function $0db07828cadc68e0$export$2e2bcd8739ae039(store) {
13214
13212
  this.triggerLeft = triggerLeft;
13215
13213
  this._lastMeasuredWidth = width;
13216
13214
  },
13217
- selectTab (el) {
13215
+ selectTab (el, initial = false) {
13218
13216
  this.store.activeTab = this._getRef(el);
13219
13217
  dropdown.hide();
13218
+ if (!initial) this.$dispatch("tabs:change", {
13219
+ tabs: this
13220
+ });
13220
13221
  },
13221
13222
  isSelected (el) {
13222
13223
  return this.store.activeTab === this._getRef(el);
@@ -13363,18 +13364,18 @@ function $6d64716f0b34fdf4$export$2e2bcd8739ae039(store) {
13363
13364
  }
13364
13365
 
13365
13366
 
13366
- $6c7bb428bd81c9cb$exports = {
13367
- "code": $99486586f6691564$exports,
13367
+ $e44b48ce5635d6e0$exports = {
13368
13368
  "button": $cbd28b10fa9798c7$exports,
13369
- "dimensions_display": $e398acaded942bbe$exports,
13369
+ "code": $99486586f6691564$exports,
13370
13370
  "copy_button": $47a1c62621be0c54$exports,
13371
+ "dimensions_display": $e398acaded942bbe$exports,
13371
13372
  "embed": $e1f51f020443edd4$exports,
13372
- "filter": $e9904a14dabf652d$exports,
13373
13373
  "icon": $36506012e0c6e9e3$exports,
13374
13374
  "nav": $d92d9d5253f84566$exports,
13375
+ "filter": $e9904a14dabf652d$exports,
13375
13376
  "params_editor": $b63b9c6d236b3f65$exports,
13376
- "split_layout": $506dabb2bf255b38$exports,
13377
13377
  "tab_panels": $a87dacf5139b5e2f$exports,
13378
+ "split_layout": $506dabb2bf255b38$exports,
13378
13379
  "tabs": $0db07828cadc68e0$exports,
13379
13380
  "viewport": $6d64716f0b34fdf4$exports
13380
13381
  };
@@ -13523,7 +13524,7 @@ $caa9439642c6336c$export$2e2bcd8739ae039.store("settings", $96e0343bbb13096b$exp
13523
13524
  // Components
13524
13525
  $caa9439642c6336c$export$2e2bcd8739ae039.data("app", $d709d0f4027033b2$export$2e2bcd8739ae039);
13525
13526
  [
13526
- $6c7bb428bd81c9cb$exports,
13527
+ $e44b48ce5635d6e0$exports,
13527
13528
  $e4eab7529959b73b$exports,
13528
13529
  $4979d2d897a1c01f$exports
13529
13530
  ].forEach((scripts)=>{