playbook_ui_docs 13.10.0 → 13.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_button/docs/_button_circle_swift.md +28 -0
  3. data/app/pb_kits/playbook/pb_button/docs/_button_default_swift.md +23 -0
  4. data/app/pb_kits/playbook/pb_button/docs/_button_full_width_swift.md +9 -0
  5. data/app/pb_kits/playbook/pb_button/docs/_button_icon_options_swift.md +18 -0
  6. data/app/pb_kits/playbook/pb_button/docs/_button_props_swift.md +11 -0
  7. data/app/pb_kits/playbook/pb_button/docs/_button_size_swift.md +20 -0
  8. data/app/pb_kits/playbook/pb_button/docs/example.yml +8 -0
  9. data/app/pb_kits/playbook/pb_card/docs/_card_background_swift.md +29 -0
  10. data/app/pb_kits/playbook/pb_card/docs/_card_border_none_swift.md +7 -0
  11. data/app/pb_kits/playbook/pb_card/docs/_card_border_radius_swift.md +33 -0
  12. data/app/pb_kits/playbook/pb_card/docs/_card_header_swift.md +33 -0
  13. data/app/pb_kits/playbook/pb_card/docs/_card_highlight_swift.md +17 -0
  14. data/app/pb_kits/playbook/pb_card/docs/_card_light_swift.md +7 -0
  15. data/app/pb_kits/playbook/pb_card/docs/_card_padding_swift.md +33 -0
  16. data/app/pb_kits/playbook/pb_card/docs/_card_props_swift.md +10 -0
  17. data/app/pb_kits/playbook/pb_card/docs/_card_selected_swift.md +0 -0
  18. data/app/pb_kits/playbook/pb_card/docs/_card_separator_swift.md +11 -0
  19. data/app/pb_kits/playbook/pb_card/docs/_card_shadow_swift.md +21 -0
  20. data/app/pb_kits/playbook/pb_card/docs/_card_styles_swift.md +17 -0
  21. data/app/pb_kits/playbook/pb_card/docs/_card_tag_swift.md +0 -0
  22. data/app/pb_kits/playbook/pb_card/docs/example.yml +12 -0
  23. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default_swift.md +10 -0
  24. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_error_swift.md +12 -0
  25. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_swift.md +12 -0
  26. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_props_swift.md +7 -0
  27. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +7 -0
  28. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_props.md +6 -0
  29. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_swift.md +16 -0
  30. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_defaul_swift.md +7 -0
  31. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_swift.md +11 -0
  32. data/app/pb_kits/playbook/pb_icon_circle/docs/example.yml +7 -0
  33. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb +0 -1
  34. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.html.erb +104 -45
  35. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.jsx +100 -43
  36. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.md +1 -0
  37. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.html.erb +138 -0
  38. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.jsx +150 -0
  39. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.md +1 -0
  40. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +2 -0
  41. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
  42. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.jsx +33 -0
  43. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.md +3 -0
  44. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +1 -0
  45. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +2 -1
  46. data/app/pb_kits/playbook/pb_table/docs/_table_header.html.erb +47 -31
  47. data/app/pb_kits/playbook/pb_table/docs/_table_header.md +5 -0
  48. data/dist/app/components/playbook/pb_docs/kit_example.html.erb +3 -3
  49. data/dist/menu.yml +284 -110
  50. data/dist/pb_doc_helper.rb +5 -5
  51. data/dist/playbook-doc.js +8 -8
  52. metadata +35 -2
@@ -0,0 +1,3 @@
1
+ Because our default variant's toolbar requires [Tiptap's StarterKit](https://tiptap.dev/api/extensions/starter-kit) which may include features that are not relevant to your project or even block some custom extensions, optionally setting `advancedEditorToolbar` to `false` creates an editor without a toolbar, using only the minimum requirements.
2
+
3
+ __NOTE__: Omitting the Starter Kit requires that the editor’s default extensions (`document`, `paragraph`, and `text`) __must__ be imported directly from Tiptap or as a custom extensions.
@@ -15,6 +15,7 @@ examples:
15
15
  - rich_text_editor_default: Default
16
16
  - rich_text_editor_advanced_default: Advanced Default
17
17
  - rich_text_editor_more_extensions: Advanced (Extra Extensions)
18
+ - rich_text_editor_toolbar_disabled: Advanced (Toolbar disabled)
18
19
  - rich_text_editor_simple: Simple
19
20
  - rich_text_editor_attributes: Attributes
20
21
  - rich_text_editor_focus: Focus
@@ -8,4 +8,5 @@ export { default as RichTextEditorToolbarBottom } from './_rich_text_editor_tool
8
8
  export { default as RichTextEditorInline } from './_rich_text_editor_inline.jsx'
9
9
  export { default as RichTextEditorPreview } from './_rich_text_editor_preview.jsx'
10
10
  export { default as RichTextEditorAdvancedDefault } from './_rich_text_editor_advanced_default.jsx'
11
- export { default as RichTextEditorMoreExtensions } from './_rich_text_editor_more_extensions.jsx'
11
+ export { default as RichTextEditorMoreExtensions } from './_rich_text_editor_more_extensions.jsx'
12
+ export { default as RichTextEditorToolbarDisabled } from './_rich_text_editor_toolbar_disabled.jsx'
@@ -1,12 +1,37 @@
1
- <%= pb_rails("table", props: { size: "lg"} ) do %>
1
+ <%# Example data for demonstration purposes %>
2
+ <% data_rows = [
3
+ { 'territory' => 'North', 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 30, 'job' => 'Engineer' },
4
+ { 'territory' => 'South', 'firstname' => 'Alice', 'lastname' => 'Smith', 'age' => 28, 'job' => 'Designer' },
5
+ { 'territory' => 'East', 'firstname' => 'Mike', 'lastname' => 'Johnson', 'age' => 35, 'job' => 'Manager' },
6
+ { 'territory' => 'West', 'firstname' => 'Sarah', 'lastname' => 'Brown', 'age' => 29, 'job' => 'Developer' },
7
+ { 'territory' => 'Central', 'firstname' => 'David', 'lastname' => 'Wilson', 'age' => 32, 'job' => 'Analyst' }
8
+ ]
9
+ %>
10
+
11
+ <%# Example sort method for demonstration purposes %>
12
+ <% if params["sort"] %>
13
+ <% sort_param = params["sort"].gsub(/_(asc|desc)\z/, "") %>
14
+ <% sort_direction = params["sort"].end_with?("_asc") ? 1 : -1 %>
15
+ <% data_rows.sort! do |a, b|
16
+ value_a = a[sort_param]
17
+ value_b = b[sort_param]
18
+
19
+ value_a = value_a.to_i if value_a.is_a?(String) && value_a.match?(/^\d+$/)
20
+ value_b = value_b.to_i if value_b.is_a?(String) && value_b.match?(/^\d+$/)
21
+
22
+ sort_direction * (value_a <=> value_b)
23
+ end %>
24
+ <% end %>
25
+
26
+ <%= pb_rails("table", props: { data_table: true, vertical_border: true, id: "table-header" } ) do %>
2
27
  <thead>
3
28
  <tr>
4
29
  <%= pb_rails("table/table_header", props: {
5
30
  text: "Territory",
6
31
  id: "territory",
7
32
  sort_menu: [
8
- { item: "Territory", link: "?sort=territory_desc", active: params["sort"] == "territory_desc", direction: "desc" },
9
- { item: "Territory", link: "?sort=territory_asc", active: params["sort"] == "territory_asc", direction: "asc" }
33
+ { item: "Territory", link: "?sort=territory_asc#table-header", active: params["sort"] == "territory_asc", direction: "asc" },
34
+ { item: "Territory", link: "?sort=territory_desc#table-header", active: params["sort"] == "territory_desc", direction: "desc" }
10
35
  ],
11
36
  }) %>
12
37
  <%= pb_rails("table/table_header", props: {
@@ -14,45 +39,36 @@
14
39
  text: "Full Name",
15
40
  colspan: 2,
16
41
  sort_menu: [
17
- { item: "First Name Descending", link: "?sort=firstname_desc", active: params["sort"] == "firstname_desc", direction: "desc" },
18
- { item: "First Name Ascending", link: "?sort=firstname_asc", active: params["sort"] == "firstname_asc", direction: "asc" },
19
- { item: "Last Name Descending", link: "?sort=lastname_desc", active: params["sort"] == "lastname_desc", direction: "desc" },
20
- { item: "Last Name Ascending", link: "?sort=lastname_asc", active: params["sort"] == "lastname_asc", direction: "asc" }
42
+ { item: "First Name Descending", link: "?sort=firstname_desc#table-header", active: params["sort"] == "firstname_desc", direction: "desc" },
43
+ { item: "First Name Ascending", link: "?sort=firstname_asc#table-header", active: params["sort"] == "firstname_asc", direction: "asc" },
44
+ { item: "Last Name Descending", link: "?sort=lastname_desc#table-header", active: params["sort"] == "lastname_desc", direction: "desc" },
45
+ { item: "Last Name Ascending", link: "?sort=lastname_asc#table-header", active: params["sort"] == "lastname_asc", direction: "asc" }
21
46
  ],
22
47
  }) %>
23
48
  <%= pb_rails("table/table_header", props: {
24
49
  text: "Age",
25
50
  id: "age",
26
- sort_dropdown: true,
27
51
  sort_menu: [
28
- { item: "Age Descending", link: "?sort=age_desc", active: params["sort"] == "age_desc", direction: "desc" },
29
- { item: "Age Ascending", link: "?sort=age_asc", active: params["sort"] == "age_asc", direction: "asc" }
52
+ { item: "Age Descending", link: "?sort=age_desc#table-header", active: params["sort"] == "age_desc", direction: "desc" },
53
+ { item: "Age Ascending", link: "?sort=age_asc#table-header", active: params["sort"] == "age_asc", direction: "asc" }
30
54
  ],
31
55
  }) %>
32
56
  <%= pb_rails("table/table_header", props: { text: "Job Title" }) %>
33
57
  </tr>
34
58
  </thead>
35
59
  <tbody>
36
- <tr>
37
- <td>Ter 1</td>
38
- <td>First Name 1</td>
39
- <td>Last Name 1</td>
40
- <td>Age 1</td>
41
- <td>Job 1</td>
42
- </tr>
43
- <tr>
44
- <td>Ter 2</td>
45
- <td>First Name 2</td>
46
- <td>Last Name 2</td>
47
- <td>Age 2</td>
48
- <td>Job 2</td>
49
- </tr>
50
- <tr>
51
- <td>Ter 3</td>
52
- <td>First Name 3</td>
53
- <td>Last Name 3</td>
54
- <td>Age 3</td>
55
- <td>Job 3</td>
56
- </tr>
60
+ <% data_rows.each do |row| %>
61
+ <tr>
62
+ <% row.each do |key, value| %>
63
+ <%= pb_rails("background", props: {
64
+ background_color: (params["sort"] && params["sort"].start_with?(key) ? "info_subtle" : "card_light"),
65
+ text_align: (value.is_a?(Integer) ? "right" : ""),
66
+ tag: "td"
67
+ }) do %>
68
+ <%= value %>
69
+ <% end %>
70
+ <% end %>
71
+ </tr>
72
+ <% end %>
57
73
  </tbody>
58
74
  <% end %>
@@ -6,3 +6,8 @@ presence of `sort_menu` enables the sort link within the header
6
6
  * `sort_dropdown` (boolean) optionally declares that (true) clicking a header's sort link opens a dropdown of sort options, or (false) each sort link click cycles through available sort_menu items in the order they are passed
7
7
  * passing a valid `colspan` will render sort options within a dropdown by default, without requiring `sort_dropdown` explicitly. Alternatively, the default sort dropdown can be prevented on headers with `colspan` by setting `sort_dropdown: false`, which reverts the column to sorting to multi-click default (each click of the sort link cycles through the available sort_menu items in the order they are passed)
8
8
  * `id` (string) is required for headers that have a dropdown (for popover reference); otherwise they are optional
9
+
10
+ </br>
11
+ <div class="pb_pill_kit_warning"><div class="pb_title_kit_size_4 pb_pill_text">Disclaimer</div></div>
12
+
13
+ This example uses a custom sort method that may need to be modified or replaced within your project.
@@ -1,7 +1,7 @@
1
1
  <% example_html = ERB.new(example).result %>
2
2
 
3
3
  <%= pb_rails("card", props: { classname: "pb--doc", padding: "none", dark: dark }) do %>
4
- <% unless (action_name == "kit_show_swift") %>
4
+ <% unless (type == "swift") %>
5
5
  <div class="pb--kit-example">
6
6
  <%= pb_rails("caption", props: { text: example_title, dark: dark }) %>
7
7
  <br />
@@ -9,12 +9,12 @@
9
9
  <br>
10
10
  </div>
11
11
  <% else %>
12
- <div class="pb--kit-example-markdown pt_none markdown <%= dark ? "dark" : "" %>">
12
+ <div class="pb--kit-example-markdown pt_none markdown kit_show_swift <%= dark ? "dark" : "" %>">
13
13
  <%= pb_rails("caption", props: { text: example_title, dark: dark, margin_top: "md" }) %>
14
14
  <%= render_markdown(description) %>
15
15
  </div>
16
16
  <% end %>
17
- <% if show_code %>
17
+ <% if show_code && type != "swift" %>
18
18
  <div class="markdown pb--kit-example-markdown markdown <%= dark ? "dark" : "" %>">
19
19
  <%= render_markdown(description) %>
20
20
  </div>
data/dist/menu.yml CHANGED
@@ -1,111 +1,285 @@
1
+ web: &web ["rails", "react"]
2
+ all: &all ["rails", "react", "swift"]
3
+ rails_swift: &rails_swift ["rails", "swift"]
4
+ react_swift: &react_swift ["swift", "react"]
5
+ rails_only: &rails_only ["rails"]
6
+ react_only: &react_only ["react"]
7
+ swift_only: &swift_only ["swift"]
8
+
1
9
  kits:
2
- - avatars:
3
- - avatar
4
- - avatar_action_button
5
- - multiple_users
6
- - multiple_users_stacked
7
- - user
8
- - background
9
- - bread_crumbs
10
- - buttons:
11
- - button
12
- - button_toolbar
13
- - circle_icon_button
14
- - card
15
- - collapsible
16
- - charts_and_graphs:
17
- - bar_graph
18
- - circle_chart
19
- - distribution_bar
20
- - gauge
21
- - legend
22
- - line_graph
23
- - treemap_chart
24
- - dialog
25
- - filter
26
- - fixed_confirmation_toast
27
- - forms:
28
- - checkbox
29
- - date_picker
30
- - file_upload
31
- - form
32
- - form_group
33
- - form_pill
34
- - multi_level_select
35
- - passphrase
36
- - phone_number_input
37
- - radio
38
- - rich_text_editor
39
- - select
40
- - selectable_card
41
- - selectable_card_icon
42
- - selectable_icon
43
- - selectable_list
44
- - text_input
45
- - textarea
46
- - toggle
47
- - typeahead
48
- - highlight
49
- - icon
50
- - icon_circle
51
- - icon_stat_value
52
- - icon_value
53
- - image
54
- - layouts:
55
- - flex
56
- - layout
57
- - lightbox
58
- - list
59
- - loading_inline
60
- - map
61
- - nav
62
- - tags:
63
- - badge
64
- - hashtag
65
- - pill
66
- - pagination
67
- - popover
68
- - progress:
69
- - progress_pills
70
- - progress_simple
71
- - progress_step
72
- - section_separator
73
- - star_rating
74
- - table
75
- - timeline
76
- - time_and_date:
77
- - date
78
- - date_range_inline
79
- - date_range_stacked
80
- - date_stacked
81
- - date_time
82
- - date_time_stacked
83
- - date_year_stacked
84
- - time
85
- - time_range_inline
86
- - time_stacked
87
- - timestamp
88
- - weekday_stacked
89
- - tooltip
90
- - typography:
91
- - body
92
- - caption
93
- - detail
94
- - title
95
- - typography_patterns:
96
- - contact
97
- - currency
98
- - dashboard_value
99
- - home_address_street
100
- - label_pill
101
- - label_value
102
- - message
103
- - person
104
- - person_contact
105
- - source
106
- - stat_change
107
- - stat_value
108
- - title_count
109
- - title_detail
110
- - user_badge
111
- - walkthrough
10
+ - name: "avatars"
11
+ components:
12
+ - name: "avatar"
13
+ platforms: *all
14
+ - name: "avatar_action_button"
15
+ platforms: *web
16
+ - name: "multiple_users"
17
+ platforms: *web
18
+ - name: "multiple_users_stacked"
19
+ platforms: *web
20
+ - name: "user"
21
+ platforms: *web
22
+ - name: "background"
23
+ components:
24
+ - name: "background"
25
+ platforms: *web
26
+ - name: "bread_crumbs"
27
+ components:
28
+ - name: "bread_crumbs"
29
+ platforms: *web
30
+ - name: "buttons"
31
+ components:
32
+ - name: "button"
33
+ platforms: *web
34
+ - name: "button_toolbar"
35
+ platforms: *web
36
+ - name: "circle_icon_button"
37
+ platforms: *web
38
+ - name: "card"
39
+ components:
40
+ - name: "card"
41
+ platforms: *all
42
+ - name: "collapsible"
43
+ components:
44
+ - name: "collapsible"
45
+ platforms: *web
46
+ - name: "charts_and_graphs"
47
+ components:
48
+ - name: "bar_graph"
49
+ platforms: *web
50
+ - name: "circle_chart"
51
+ platforms: *web
52
+ - name: "distribution_bar"
53
+ platforms: *web
54
+ - name: "gauge"
55
+ platforms: *web
56
+ - name: "legend"
57
+ platforms: *web
58
+ - name: "line_graph"
59
+ platforms: *web
60
+ - name: "treemap_chart"
61
+ platforms: *web
62
+ - name: "dialog"
63
+ components:
64
+ - name: "dialog"
65
+ platforms: *web
66
+ - name: "filter"
67
+ components:
68
+ - name: "filter"
69
+ platforms: *web
70
+ - name: "fixed_confirmation_toast"
71
+ components:
72
+ - name: "fixed_confirmation_toast"
73
+ platforms: *web
74
+ - name: "forms"
75
+ components:
76
+ - name: "checkbox"
77
+ platforms: *web
78
+ - name: "date_picker"
79
+ platforms: *web
80
+ - name: "file_upload"
81
+ platforms: *web
82
+ - name: "form"
83
+ platforms: *rails_only
84
+ - name: "form_group"
85
+ platforms: *web
86
+ - name: "form_pill"
87
+ platforms: *web
88
+ - name: "multi_level_select"
89
+ platforms: *web
90
+ - name: "passphrase"
91
+ platforms: *web
92
+ - name: "phone_number_input"
93
+ platforms: *web
94
+ - name: "radio"
95
+ platforms: *all
96
+ - name: "rich_text_editor"
97
+ platforms: *web
98
+ - name: "select"
99
+ platforms: *web
100
+ - name: "selectable_card"
101
+ platforms: *web
102
+ - name: "selectable_card_icon"
103
+ platforms: *web
104
+ - name: "selectable_icon"
105
+ platforms: *web
106
+ - name: "selectable_list"
107
+ platforms: *web
108
+ - name: "text_input"
109
+ platforms: *web
110
+ - name: "textarea"
111
+ platforms: *web
112
+ - name: "toggle"
113
+ platforms: *web
114
+ - name: "typeahead"
115
+ platforms: *web
116
+ - name: "highlight"
117
+ components:
118
+ - name: "highlight"
119
+ platforms: *web
120
+ - name: "icon"
121
+ components:
122
+ - name: "icon"
123
+ platforms: *web
124
+ - name: "icon_circle"
125
+ components:
126
+ - name: "icon_circle"
127
+ platforms: *web
128
+ - name: "icon_stat_value"
129
+ components:
130
+ - name: "icon_stat_value"
131
+ platforms: *web
132
+ - name: "icon_value"
133
+ components:
134
+ - name: "icon_value"
135
+ platforms: *web
136
+ - name: "image"
137
+ components:
138
+ - name: "image"
139
+ platforms: *web
140
+ - name: "layouts"
141
+ components:
142
+ - name: "flex"
143
+ platforms: *web
144
+ - name: "layout"
145
+ platforms: *web
146
+ - name: "lightbox"
147
+ components:
148
+ - name: "lightbox"
149
+ platforms: *react_only
150
+ - name: "list"
151
+ components:
152
+ - name: "list"
153
+ platforms: *web
154
+ - name: "loading_inline"
155
+ components:
156
+ - name: "loading_inline"
157
+ platforms: *web
158
+ - name: "map"
159
+ components:
160
+ - name: "map"
161
+ platforms: *react_only
162
+ - name: "nav"
163
+ components:
164
+ - name: "nav"
165
+ platforms: *web
166
+ - name: "pagination"
167
+ components:
168
+ - name: "pagination"
169
+ platforms: *rails_only
170
+ - name: "popover"
171
+ components:
172
+ - name: "popover"
173
+ platforms: *web
174
+ - name: "progress"
175
+ components:
176
+ - name: "progress_pills"
177
+ platforms: *web
178
+ - name: "progress_simple"
179
+ platforms: *web
180
+ - name: "progress_step"
181
+ platforms: *web
182
+ - name: "section_separator"
183
+ components:
184
+ - name: "section_separator"
185
+ platforms: *web
186
+ - name: "star_rating"
187
+ components:
188
+ - name: "star_rating"
189
+ platforms: *web
190
+ - name: "table"
191
+ components:
192
+ - name: "table"
193
+ platforms: *web
194
+ - name: "tags"
195
+ components:
196
+ - name: "tags"
197
+ platforms: *web
198
+ - name: "badge"
199
+ platforms: *web
200
+ - name: "hashtag"
201
+ platforms: *web
202
+ - name: "pill"
203
+ platforms: *all
204
+ - name: "timeline"
205
+ components:
206
+ - name: "timeline"
207
+ platforms: *web
208
+ - name: "time_and_date"
209
+ components:
210
+ - name: "date"
211
+ platforms: *web
212
+ - name: "date_range_inline"
213
+ platforms: *web
214
+ - name: "date_range_stacked"
215
+ platforms: *web
216
+ - name: "date_stacked"
217
+ platforms: *web
218
+ - name: "date_time"
219
+ platforms: *web
220
+ - name: "date_time_stacked"
221
+ platforms: *web
222
+ - name: "date_year_stacked"
223
+ platforms: *web
224
+ - name: "time"
225
+ platforms: *web
226
+ - name: "time_range_inline"
227
+ platforms: *web
228
+ - name: "time_stacked"
229
+ platforms: *web
230
+ - name: "timestamp"
231
+ platforms: *all
232
+ - name: "weekday_stacked"
233
+ platforms: *web
234
+ - name: "tooltip"
235
+ components:
236
+ - name: "tooltip"
237
+ platforms: *web
238
+ - name: "typography"
239
+ components:
240
+ - name: "body"
241
+ platforms: *web
242
+ - name: "caption"
243
+ platforms: *web
244
+ - name: "detail"
245
+ platforms: *web
246
+ - name: "title"
247
+ platforms: *web
248
+ - name: "typography_patterns"
249
+ components:
250
+ - name: "contact"
251
+ platforms: *web
252
+ - name: "currency"
253
+ platforms: *web
254
+ - name: "dashboard_value"
255
+ platforms: *web
256
+ - name: "home_address_street"
257
+ platforms: *web
258
+ - name: "label_pill"
259
+ platforms: *web
260
+ - name: "label_value"
261
+ platforms: *web
262
+ - name: "message"
263
+ platforms: *web
264
+ - name: "person"
265
+ platforms: *web
266
+ - name: "person_contact"
267
+ platforms: *web
268
+ - name: "source"
269
+ platforms: *web
270
+ - name: "stat_change"
271
+ platforms: *web
272
+ - name: "stat_value"
273
+ platforms: *web
274
+ - name: "title_count"
275
+ platforms: *web
276
+ - name: "title_detail"
277
+ platforms: *web
278
+ - name: "user_badge"
279
+ components:
280
+ - name: "user_badge"
281
+ platforms: *web
282
+ - name: "walkthrough"
283
+ components:
284
+ - name: "walkthrough"
285
+ platforms: *web
@@ -33,9 +33,9 @@ module PlaybookWebsite
33
33
  kits.each do |kit|
34
34
  if kit.is_a?(Hash)
35
35
  nav_hash_array(kit).each do |sub_kit|
36
- display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode)
36
+ display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode) if pb_doc_has_kit_type?(sub_kit, type)
37
37
  end
38
- else
38
+ elsif pb_doc_has_kit_type?(kit, type)
39
39
  display_kits << render_pb_doc_kit(kit, type, limit_examples, false, dark_mode)
40
40
  end
41
41
  end
@@ -44,9 +44,9 @@ module PlaybookWebsite
44
44
  # rubocop:enable Style/StringConcatenation
45
45
 
46
46
  # rubocop:disable Naming/AccessorMethodName
47
- def get_kits
48
- menu = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml"))
49
- menu["kits"]
47
+ def get_kits(_type = "rails")
48
+ aggregate_kits || []
49
+ # Filter kits that have at least one component compatible with the type
50
50
  end
51
51
 
52
52
  def get_kits_pb_website