playbook_ui_docs 13.6.0.pre.alpha.tiptapreacthookformbug1210 → 13.7.0.pre.alpha.play845allkitsbytypes1231

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: 63100a9d6982f397ccaadd75ecf40e5c73434483c996c9337e0c0be4f436cd6a
4
- data.tar.gz: 77591cf9bd6f29dc2d5c952c453cf2524591f37fe49405239c4cf397d7f3e4b4
3
+ metadata.gz: 8295b610278e94b1a6c778a22b304f236b02c0e4a85708a614d8fd81343c40d2
4
+ data.tar.gz: 4bd7ffd601d3d13a0c785c7d093d60a83f341762c1ec0721f03e713a45ae4ce9
5
5
  SHA512:
6
- metadata.gz: 902996a2e597911ae9698f12331583e28755280d9e6b28741f6a93f2912ff29d9ed1fbb9191af4ce155b5489ac6706e23d09beb211d0ef83a34fdd0cd9cd7716
7
- data.tar.gz: f0f0f01b74494e8ab35206385bde1ac331243d10dc1db519b512a28b2f60d9256a848d40f98798b37d6e031097ad586b9756388855b16dccb8e065d0a757d62c
6
+ metadata.gz: 10d4587be4978e333564a762da7b84b03f3bdd36a3e7f003542d604bf3c9d7b026d737e28b6664abc656b60455279952119cae5966c2955047be9c4671ec6883
7
+ data.tar.gz: 01f0b3ee3c0d5ce939b5f9b47c41440e925b1834ec4495ec4d8d62b2fdcaad3cd15bb26dfdc6b3c0cd88f58a34f35a914ce024f46209b1554608c44e1b9daf82
@@ -0,0 +1,12 @@
1
+ <% lorem = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis, minus. Nisi beatae voluptatum labore sequi. Nemo accusantium corrupti, reiciendis magnam tenetur perferendis esse pariatur voluptas eaque hic vel rem nihil quidem dolorum ex dolor, libero ullam placeat, sapiente eos. Cumque obcaecati dignissimos molestiae, minima quibusdam sint maxime libero accusantium animi quis quia maiores enim ipsum, esse, modi laudantium illum error!" %>
2
+
3
+ <%= pb_rails("flex", props: { orientation: "column", max_width: "md" }) do %>
4
+ <%= pb_rails("caption", props: { text: "After first row" }) %>
5
+ <%= pb_rails("body", props: { text: lorem, truncate: "1", margin_bottom: "md" }) %>
6
+
7
+ <%= pb_rails("caption", props: { text: "After second row" }) %>
8
+ <%= pb_rails("body", props: { text: lorem, truncate: "2", margin_bottom: "md" }) %>
9
+
10
+ <%= pb_rails("caption", props: { text: "After third row" }) %>
11
+ <%= pb_rails("body", props: { text: lorem, truncate: "3" }) %>
12
+ <% end %>
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+
3
+ import Body from '../_body';
4
+ import Caption from '../../pb_caption/_caption'
5
+ import Flex from '../../pb_flex/_flex'
6
+
7
+ const BodyTruncate = (props) => {
8
+ const lorem = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis, minus. Nisi beatae voluptatum labore sequi. Nemo accusantium corrupti, reiciendis magnam tenetur perferendis esse pariatur voluptas eaque hic vel rem nihil quidem dolorum ex dolor, libero ullam placeat, sapiente eos. Cumque obcaecati dignissimos molestiae, minima quibusdam sint maxime libero accusantium animi quis quia maiores enim ipsum, esse, modi laudantium illum error!"
9
+
10
+ return (
11
+ <Flex
12
+ maxWidth="md"
13
+ orientation="column"
14
+ >
15
+ <Caption
16
+ text="After first row"
17
+ {...props}
18
+ />
19
+ <Body
20
+ marginBottom="md"
21
+ text={lorem}
22
+ truncate="1"
23
+ {...props}
24
+ />
25
+
26
+ <Caption
27
+ text="After second row"
28
+ {...props}
29
+ />
30
+ <Body
31
+ marginBottom="md"
32
+ text={lorem}
33
+ truncate="2"
34
+ {...props}
35
+ />
36
+
37
+ <Caption
38
+ text="After third row"
39
+ {...props}
40
+ />
41
+ <Body
42
+ text={lorem}
43
+ truncate="3"
44
+ {...props}
45
+ />
46
+ </Flex>
47
+ )
48
+ }
49
+
50
+ export default BodyTruncate
@@ -0,0 +1,4 @@
1
+ ##### Prop
2
+ `truncate` | **Type**: String | **Values**: "1" | "2" | "3" | "4" | "5"
3
+
4
+ The `truncate` prop truncates overflowing text up to a maximum of five rows and adds an ellipsis at the end.
@@ -4,8 +4,11 @@ examples:
4
4
  - body_block: Block
5
5
  - body_articles: Best settings for articles
6
6
  - body_styled: Styled tags
7
+ - body_truncate: Truncate
8
+
7
9
  react:
8
10
  - body_light: Default
9
11
  - body_block: Block
10
12
  - body_articles: Best settings for articles
11
13
  - body_styled: Styled tags
14
+ - body_truncate: Truncate
@@ -2,3 +2,4 @@ export { default as BodyLight } from './_body_light.jsx'
2
2
  export { default as BodyBlock } from './_body_block.jsx'
3
3
  export { default as BodyStyled } from './_body_styled.jsx'
4
4
  export { default as BodyArticles } from './_body_articles.jsx'
5
+ export { default as BodyTruncate } from './_body_truncate.jsx'
@@ -0,0 +1,12 @@
1
+ <% lorem = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis, minus. Nisi beatae voluptatum labore sequi. Nemo accusantium corrupti, reiciendis magnam tenetur perferendis esse pariatur voluptas eaque hic vel rem nihil quidem dolorum ex dolor, libero ullam placeat, sapiente eos. Cumque obcaecati dignissimos molestiae, minima quibusdam sint maxime libero accusantium animi quis quia maiores enim ipsum, esse, modi laudantium illum error!" %>
2
+
3
+ <%= pb_rails("flex", props: { orientation: "column", max_width: "md" }) do %>
4
+ <%= pb_rails("caption", props: { text: "After first row" }) %>
5
+ <%= pb_rails("title", props: { text: lorem, truncate: "1", size: 4, margin_bottom: "md" }) %>
6
+
7
+ <%= pb_rails("caption", props: { text: "After second row" }) %>
8
+ <%= pb_rails("title", props: { text: lorem, truncate: "2", size: 4, margin_bottom: "md" }) %>
9
+
10
+ <%= pb_rails("caption", props: { text: "After third row" }) %>
11
+ <%= pb_rails("title", props: { text: lorem, truncate: "3", size: 4 }) %>
12
+ <% end %>
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+
3
+ import Title from '../_title';
4
+ import Caption from '../../pb_caption/_caption'
5
+ import Flex from '../../pb_flex/_flex'
6
+
7
+ const TitleTruncate = (props) => {
8
+ const lorem = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis, minus. Nisi beatae voluptatum labore sequi. Nemo accusantium corrupti, reiciendis magnam tenetur perferendis esse pariatur voluptas eaque hic vel rem nihil quidem dolorum ex dolor, libero ullam placeat, sapiente eos. Cumque obcaecati dignissimos molestiae, minima quibusdam sint maxime libero accusantium animi quis quia maiores enim ipsum, esse, modi laudantium illum error!"
9
+
10
+ return (
11
+ <Flex
12
+ maxWidth="md"
13
+ orientation="column"
14
+ >
15
+ <Caption
16
+ text="After first row"
17
+ {...props}
18
+ />
19
+ <Title
20
+ marginBottom="md"
21
+ size={4}
22
+ text={lorem}
23
+ truncate="1"
24
+ {...props}
25
+ />
26
+
27
+ <Caption
28
+ text="After second row"
29
+ {...props}
30
+ />
31
+ <Title
32
+ marginBottom="md"
33
+ size={4}
34
+ text={lorem}
35
+ truncate="2"
36
+ {...props}
37
+ />
38
+
39
+ <Caption
40
+ text="After third row"
41
+ {...props}
42
+ />
43
+ <Title
44
+ size={4}
45
+ text={lorem}
46
+ truncate="3"
47
+ {...props}
48
+ />
49
+ </Flex>
50
+ )
51
+ }
52
+
53
+ export default TitleTruncate
@@ -0,0 +1,4 @@
1
+ ##### Prop
2
+ `truncate` | **Type**: String | **Values**: "1" | "2" | "3" | "4" | "5"
3
+
4
+ The `truncate` prop truncates overflowing text up to a maximum of five rows and adds an ellipsis at the end.
@@ -4,9 +4,11 @@ examples:
4
4
  - title_light_weight: Light Weight UI
5
5
  - title_colors: Colors
6
6
  - title_responsive: Responsive
7
+ - title_truncate: Truncate
7
8
 
8
9
  react:
9
10
  - title_default: Default UI
10
11
  - title_light_weight: Light Weight UI
11
12
  - title_colors: Colors
12
13
  - title_responsive: Responsive
14
+ - title_truncate: Truncate
@@ -2,3 +2,4 @@ export { default as TitleDefault } from './_title_default.jsx'
2
2
  export { default as TitleLightWeight } from './_title_light_weight.jsx'
3
3
  export { default as TitleColors } from './_title_colors.jsx'
4
4
  export { default as TitleResponsive } from './_title_responsive.jsx'
5
+ export { default as TitleTruncate } from './_title_truncate.jsx'
data/dist/menu.yml CHANGED
@@ -1,111 +1,236 @@
1
1
  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
2
+ rails:
3
+ - avatars:
4
+ - avatar
5
+ - avatar_action_button
6
+ - multiple_users
7
+ - multiple_users_stacked
8
+ - user
9
+ - background
10
+ - bread_crumbs
11
+ - buttons:
12
+ - button
13
+ - button_toolbar
14
+ - circle_icon_button
15
+ - card
16
+ - collapsible
17
+ - charts_and_graphs:
18
+ - bar_graph
19
+ - circle_chart
20
+ - distribution_bar
21
+ - gauge
22
+ - legend
23
+ - line_graph
24
+ - treemap_chart
25
+ - dialog
26
+ - filter
27
+ - fixed_confirmation_toast
28
+ - forms:
29
+ - checkbox
30
+ - date_picker
31
+ - file_upload
32
+ - form
33
+ - form_group
34
+ - form_pill
35
+ - multi_level_select
36
+ - passphrase
37
+ - phone_number_input
38
+ - radio
39
+ - rich_text_editor
40
+ - select
41
+ - selectable_card
42
+ - selectable_card_icon
43
+ - selectable_icon
44
+ - selectable_list
45
+ - text_input
46
+ - textarea
47
+ - toggle
48
+ - typeahead
49
+ - highlight
50
+ - icon
51
+ - icon_circle
52
+ - icon_stat_value
53
+ - icon_value
54
+ - image
55
+ - layouts:
56
+ - flex
57
+ - layout
58
+ - list
59
+ - loading_inline
60
+ - nav
61
+ - tags:
62
+ - badge
63
+ - hashtag
64
+ - pill
65
+ - pagination
66
+ - popover
67
+ - progress:
68
+ - progress_pills
69
+ - progress_simple
70
+ - progress_step
71
+ - section_separator
72
+ - star_rating
73
+ - table
74
+ - timeline
75
+ - time_and_date:
76
+ - date
77
+ - date_range_inline
78
+ - date_range_stacked
79
+ - date_stacked
80
+ - date_time
81
+ - date_time_stacked
82
+ - date_year_stacked
83
+ - time
84
+ - time_range_inline
85
+ - time_stacked
86
+ - timestamp
87
+ - weekday_stacked
88
+ - tooltip
89
+ - typography:
90
+ - body
91
+ - caption
92
+ - detail
93
+ - title
94
+ - typography_patterns:
95
+ - contact
96
+ - currency
97
+ - dashboard_value
98
+ - home_address_street
99
+ - label_pill
100
+ - label_value
101
+ - message
102
+ - person
103
+ - person_contact
104
+ - source
105
+ - stat_change
106
+ - stat_value
107
+ - title_count
108
+ - title_detail
109
+ - user_badge
110
+
111
+ react:
112
+ - avatars:
113
+ - avatar
114
+ - avatar_action_button
115
+ - multiple_users
116
+ - multiple_users_stacked
117
+ - user
118
+ - background
119
+ - bread_crumbs
120
+ - buttons:
121
+ - button
122
+ - button_toolbar
123
+ - circle_icon_button
124
+ - card
125
+ - collapsible
126
+ - charts_and_graphs:
127
+ - bar_graph
128
+ - circle_chart
129
+ - distribution_bar
130
+ - gauge
131
+ - legend
132
+ - line_graph
133
+ - treemap_chart
134
+ - dialog
135
+ - filter
136
+ - fixed_confirmation_toast
137
+ - forms:
138
+ - checkbox
139
+ - date_picker
140
+ - file_upload
141
+ - form_group
142
+ - form_pill
143
+ - multi_level_select
144
+ - passphrase
145
+ - phone_number_input
146
+ - radio
147
+ - rich_text_editor
148
+ - select
149
+ - selectable_card
150
+ - selectable_card_icon
151
+ - selectable_icon
152
+ - selectable_list
153
+ - text_input
154
+ - textarea
155
+ - toggle
156
+ - typeahead
157
+ - highlight
158
+ - icon
159
+ - icon_circle
160
+ - icon_stat_value
161
+ - icon_value
162
+ - image
163
+ - layouts:
164
+ - flex
165
+ - layout
166
+ - lightbox
167
+ - list
168
+ - loading_inline
169
+ - map
170
+ - nav
171
+ - tags:
172
+ - badge
173
+ - hashtag
174
+ - pill
175
+ - popover
176
+ - progress:
177
+ - progress_pills
178
+ - progress_simple
179
+ - progress_step
180
+ - section_separator
181
+ - star_rating
182
+ - table
183
+ - timeline
184
+ - time_and_date:
185
+ - date
186
+ - date_range_inline
187
+ - date_range_stacked
188
+ - date_stacked
189
+ - date_time
190
+ - date_time_stacked
191
+ - date_year_stacked
192
+ - time
193
+ - time_range_inline
194
+ - time_stacked
195
+ - timestamp
196
+ - weekday_stacked
197
+ - tooltip
198
+ - typography:
199
+ - body
200
+ - caption
201
+ - detail
202
+ - title
203
+ - typography_patterns:
204
+ - contact
205
+ - currency
206
+ - dashboard_value
207
+ - home_address_street
208
+ - label_pill
209
+ - label_value
210
+ - message
211
+ - person
212
+ - person_contact
213
+ - source
214
+ - stat_change
215
+ - stat_value
216
+ - title_count
217
+ - title_detail
218
+ - user_badge
219
+ - walkthrough
220
+
221
+ swift:
222
+ - avatars:
223
+ - avatar
224
+ - buttons:
225
+ - charts_and_graphs:
226
+ - forms:
227
+ - radio
228
+ - layouts:
229
+ - tags:
230
+ - badge
231
+ - pill
232
+ - progress:
233
+ - time_and_date:
234
+ - timestamp
235
+ - typography:
236
+ - typography_patterns:
@@ -27,33 +27,56 @@ module PlaybookWebsite
27
27
 
28
28
  # Deal with lists of kits, used in Playbook doc and Externally
29
29
  # rubocop:disable Style/StringConcatenation
30
- def pb_kits(type: "rails", limit_examples: false, dark_mode: false, method: get_kits)
30
+ def pb_kits(type: "rails", limit_examples: false, dark_mode: false)
31
31
  display_kits = []
32
- kits = method
32
+ kits = get_kits(type)
33
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)
34
+ nav_array = nav_hash_array(kit)
35
+ next unless nav_array.is_a?(Array)
36
+
37
+ nav_array.each do |sub_kit|
38
+ display_kits << render_pb_doc_kit(sub_kit, type, limit_examples, false, dark_mode)
40
39
  end
41
40
  end
42
41
  raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>")
43
42
  end
44
43
  # rubocop:enable Style/StringConcatenation
45
44
 
46
- # rubocop:disable Naming/AccessorMethodName
47
- def get_kits
48
- menu = YAML.load_file(Playbook::Engine.root.join("dist/menu.yml"))
49
- menu["kits"]
45
+ def get_kits(type = "rails")
46
+ MENU["kits"][type]
50
47
  end
51
48
 
52
- def get_kits_pb_website
53
- menu = YAML.load_file(Rails.root.join("config/menu.yml"))
54
- menu["kits"]
49
+ def aggregate_kits
50
+ all_kits = []
51
+
52
+ # Loop over each type (rails, react, swift, etc.)
53
+ MENU["kits"].each do |_type, kits|
54
+ kits.each do |kit|
55
+ case kit
56
+ when Hash
57
+ kit_name = kit.keys.first
58
+ existing_kit = all_kits.find { |k| k.is_a?(Hash) && k.keys.first == kit_name }
59
+
60
+ if existing_kit
61
+ existing_kit[kit_name] += kit[kit_name] unless kit[kit_name].nil?
62
+ existing_kit[kit_name].uniq!
63
+ existing_kit[kit_name].sort!
64
+ else
65
+ all_kits << { kit_name => kit[kit_name] }
66
+ end
67
+ when String
68
+ all_kits << kit unless all_kits.include?(kit)
69
+ end
70
+ end
71
+ end
72
+
73
+ # Sort the top-level entries
74
+ all_kits.sort_by! do |kit|
75
+ kit.is_a?(Hash) ? kit.keys.first : kit
76
+ end
77
+
78
+ all_kits
55
79
  end
56
- # rubocop:enable Naming/AccessorMethodName
57
80
 
58
81
  # rubocop:disable Style/OptionalBooleanParameter
59
82
  def render_pb_doc_kit(kit, type, limit_examples, code = true, dark_mode = false)