playbook_ui_docs 13.9.0.pre.alpha.play845addswiftkitspage1273 → 13.9.0.pre.alpha.play845allkitsbytypes1260

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/dist/pb_doc_helper.rb +68 -32
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b82c50a09897d2b971044496fb5bea8b9f30fb9c8f2991a892dc13883e3951d1
4
- data.tar.gz: d8bb57b5365b737f0bc23575a623fa8da21389b2a990eed090484cd0cd541baf
3
+ metadata.gz: dc7fe4e21bdb2641590dd0a5f0e036c98c3eec1da820b7da4c0eef6aecd21e72
4
+ data.tar.gz: 4d226fad24ddd4de0bde80b186bf39f370f7ae3edaafe0c74d748bda8c8ae71c
5
5
  SHA512:
6
- metadata.gz: 7449c2f0a4acf5aae0bc86b4e7ed44e0fad4bcc2f6abfad0fb39b238ebd089c7591a635e8d5e0f92b15cedd6e283c856fddfbbc90a2e201fa0ea14d56e3e33eb
7
- data.tar.gz: 5405eee881eaee131bd96b5102e5a772fb709f3ed203cac4e262a85677c9b81cb8ea0d369d6fe03ee7675522ee2925d9ca0169787b599073cc5695ce56af461e
6
+ metadata.gz: 896f8f8d62dc6389baf7881d4d179de7406f1c459d6967a2516f40520d6f1cbbb22118f94e6412858de2e319625a91ec492517b99ed6be3dadc25cbdc0634a7a
7
+ data.tar.gz: 7c62432b978a4a1b2ba87cf87a91d728b416287d24027120cdff3893c512c966137a4c4761666c6b257edf033c42fe860be02ede1c341b14fd7302c644c123cb
@@ -26,45 +26,81 @@ module PlaybookWebsite
26
26
  end
27
27
 
28
28
  # Deal with lists of kits, used in Playbook doc and Externally
29
- # rubocop:disable Style/StringConcatenation
30
- def pb_kits(type: "rails", limit_examples: false, dark_mode: false, method: get_kits)
31
- display_kits = []
32
- kits = method
33
- kits.each do |kit|
34
- if kit.is_a?(Hash)
35
- nav_hash_array(kit).each do |sub_kit|
36
- display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode)
37
- end
38
- else
39
- display_kits << render_pb_doc_kit(kit, type, limit_examples, false, dark_mode)
40
- end
41
- end
42
- raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>")
29
+ def pb_kits(type: "rails", limit_examples: false, dark_mode: false)
30
+ kits = get_kits(type)
31
+
32
+ # Iterate through the filtered kits and render them
33
+ kits.map do |kit|
34
+ render_pb_doc_kit(kit["name"], type, limit_examples, true, dark_mode)
35
+ end.join.html_safe
43
36
  end
44
- # rubocop:enable Style/StringConcatenation
45
-
46
- # rubocop:disable Naming/AccessorMethodName
47
- # def get_kits
48
- # menu = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml"))
49
- # menu["kits"]
50
- # end
51
- def get_kits(_type = "rails")
52
- aggregate_kits || []
37
+
38
+ def get_kits(type = "rails")
39
+ kits = MENU["kits"] || []
40
+
53
41
  # Filter kits that have at least one component compatible with the type
42
+ kits.select do |kit|
43
+ kit["components"].any? { |component| component["platforms"].include?(type) }
44
+ end
54
45
  end
55
46
 
56
- def get_kits_pb_website
57
- menu = YAML.load_file(Rails.root.join("config/menu.yml"))
58
- menu["kits"]
47
+ def aggregate_kits
48
+ all_kits = []
49
+
50
+ MENU["kits"].each do |kit|
51
+ kit_name = kit["name"]
52
+ components = kit["components"].map { |c| c["name"] }
53
+
54
+ all_kits << if components.size == 1
55
+ components.first
56
+ else
57
+ { kit_name => components }
58
+ end
59
+ end
60
+
61
+ all_kits
59
62
  end
60
- # rubocop:enable Naming/AccessorMethodName
61
63
 
62
64
  # rubocop:disable Style/OptionalBooleanParameter
63
- def render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false)
64
- title = pb_doc_render_clickable_title(kit, type)
65
- ui = raw("<div class='pb--docItem-ui'>
66
- #{pb_kit(kit: kit, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>")
67
- title + ui
65
+ def render_pb_doc_kit(kit_name, type, limit_examples, code = true, dark_mode = false)
66
+ parent_kit = MENU["kits"].find { |kit| kit["name"] == kit_name }
67
+
68
+ # Initialize component_content as an empty string
69
+ component_content = ""
70
+ title = ""
71
+
72
+ # Check if parent_kit is nil
73
+ if parent_kit.nil?
74
+ title = pb_doc_render_clickable_title(kit_name, type)
75
+ component_content = raw("<div class='pb--docItem-ui'>
76
+ #{pb_kit(kit: kit_name, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}</div>")
77
+ else
78
+ # Filter components based on the specified type
79
+ components = parent_kit["components"].select { |component| component["platforms"].include?(type) }
80
+
81
+ # If it's a parent with components, accumulate the UI content for child components
82
+ if components.any?
83
+ component_content = components.map do |component|
84
+ component_name = component["name"]
85
+ title = pb_doc_render_clickable_title(component_name, type) # Use component_name for the title
86
+
87
+ # Render the component UI content with the same styles/tags as the parent
88
+ component_ui = raw("<div class='pb--docItem-ui'>
89
+ #{pb_kit(kit: component_name, type: type, show_code: code, limit_examples: limit_examples, dark_mode: dark_mode)}
90
+ </div>")
91
+
92
+ # Combine the component name and component UI content
93
+ "#{title}#{component_ui}"
94
+ end.join.to_s
95
+ end
96
+ end
97
+
98
+ # Combine the component content and UI content for the parent kit
99
+ if parent_kit.nil?
100
+ "#{title}#{component_content}".to_s
101
+ else
102
+ component_content.to_s.to_s
103
+ end
68
104
  end
69
105
  # rubocop:enable Style/OptionalBooleanParameter
70
106
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.9.0.pre.alpha.play845addswiftkitspage1273
4
+ version: 13.9.0.pre.alpha.play845allkitsbytypes1260
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-10-06 00:00:00.000000000 Z
12
+ date: 2023-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: playbook_ui