playbook_ui 14.6.2.pre.alpha.PBNTR576tooltiptruncatedformpills4296 → 14.6.2.pre.alpha.PBNTR633dropdownavailablepropstable4303
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +10 -8
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -6
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +26 -32
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +1 -22
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +2 -25
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.md +1 -1
- data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +7 -39
- data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +0 -2
- data/dist/chunks/{_typeahead-CGyRnRCQ.js → _typeahead-BV_n6U5W.js} +2 -2
- data/dist/chunks/_weekday_stacked-BeZ0h2P0.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +4 -4
- data/dist/chunks/_weekday_stacked-BTMWkeKM.js +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e0a61942ce72178bc4995507346515c1ca4a4347152d168cc9e84061d66231f
|
4
|
+
data.tar.gz: b40339fc9adb7796cdb029c5450f3f3d9065ca3122f3659692bbfd42a94c3c67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0dba16c359445b2daebcfcd0f56b4cfd50a678fdf09959ed37cbda194900cabaa6da73d557fe064f1e9f9c89eda514341bf72e7db65df606cd2d96039518c3af
|
7
|
+
data.tar.gz: 2bd784894bceafb2c1fdf90aa9aea4f69d19020e2017c900e03a5f87846b7c04b32cf8c4f1fa5113db4853d4db266978c5836556f9b87af16e529cc0bbaa2dcd
|
@@ -47,7 +47,7 @@ interface DropdownComponent
|
|
47
47
|
Container: typeof DropdownContainer;
|
48
48
|
}
|
49
49
|
|
50
|
-
const Dropdown =
|
50
|
+
const Dropdown: React.ForwardRefRenderFunction<unknown, DropdownProps> = (props, ref) => {
|
51
51
|
const {
|
52
52
|
aria = {},
|
53
53
|
autocomplete = false,
|
@@ -260,7 +260,8 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
|
|
260
260
|
<DropdownContainer>
|
261
261
|
{optionsWithBlankSelection &&
|
262
262
|
optionsWithBlankSelection?.map((option: GenericObject) => (
|
263
|
-
|
263
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
264
|
+
<ForwardedDropdown.Option key={option.id}
|
264
265
|
option={option}
|
265
266
|
/>
|
266
267
|
))}
|
@@ -278,11 +279,12 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
|
|
278
279
|
</DropdownContext.Provider>
|
279
280
|
</div>
|
280
281
|
)
|
281
|
-
}
|
282
|
+
}
|
282
283
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
284
|
+
const ForwardedDropdown = forwardRef(Dropdown) as DropdownComponent;
|
285
|
+
ForwardedDropdown.displayName = "Dropdown";
|
286
|
+
ForwardedDropdown.Option = DropdownOption;
|
287
|
+
ForwardedDropdown.Trigger = DropdownTrigger;
|
288
|
+
ForwardedDropdown.Container = DropdownContainer;
|
287
289
|
|
288
|
-
export default
|
290
|
+
export default ForwardedDropdown;
|
@@ -142,9 +142,7 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
|
|
142
142
|
height: 12px !important;
|
143
143
|
width: 12px !important;
|
144
144
|
padding-right: $space_xs;
|
145
|
-
+ .pb_form_pill_text, + .pb_form_pill_tag
|
146
|
-
+ .pb_tooltip_kit .pb_form_pill_text, + .pb_tooltip_kit .pb_form_pill_tag,
|
147
|
-
+ div .pb_form_pill_text, + div .pb_form_pill_tag {
|
145
|
+
+ .pb_form_pill_text, + .pb_form_pill_tag {
|
148
146
|
padding-left: 0;
|
149
147
|
}
|
150
148
|
}
|
@@ -171,9 +169,7 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
|
|
171
169
|
}
|
172
170
|
.pb_form_pill_icon {
|
173
171
|
padding-right: $space_xxs;
|
174
|
-
+ .pb_form_pill_text, + .pb_form_pill_tag
|
175
|
-
+ .pb_tooltip_kit .pb_form_pill_text, + .pb_tooltip_kit .pb_form_pill_tag,
|
176
|
-
+ div .pb_form_pill_text, + div .pb_form_pill_tag {
|
172
|
+
+ .pb_form_pill_text, + .pb_form_pill_tag {
|
177
173
|
padding-left: 0;
|
178
174
|
}
|
179
175
|
}
|
@@ -3,7 +3,6 @@ import classnames from 'classnames'
|
|
3
3
|
import Title from '../pb_title/_title'
|
4
4
|
import Icon from '../pb_icon/_icon'
|
5
5
|
import Avatar from '../pb_avatar/_avatar'
|
6
|
-
import Tooltip from '../pb_tooltip/_tooltip'
|
7
6
|
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
8
7
|
import { buildDataProps, buildHtmlProps } from '../utilities/props'
|
9
8
|
|
@@ -22,7 +21,6 @@ type FormPillProps = {
|
|
22
21
|
data?: {[key: string]: string},
|
23
22
|
tabIndex?: number,
|
24
23
|
icon?: string,
|
25
|
-
truncate?: number,
|
26
24
|
closeProps?: {
|
27
25
|
onClick?: React.MouseEventHandler<HTMLSpanElement>,
|
28
26
|
onMouseDown?: React.MouseEventHandler<HTMLSpanElement>,
|
@@ -45,7 +43,6 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
45
43
|
data = {},
|
46
44
|
tabIndex,
|
47
45
|
icon = "",
|
48
|
-
truncate,
|
49
46
|
} = props
|
50
47
|
|
51
48
|
const iconClass = icon ? "_icon" : ""
|
@@ -65,30 +62,6 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
65
62
|
const dataProps = buildDataProps(data)
|
66
63
|
const htmlProps = buildHtmlProps(htmlOptions)
|
67
64
|
|
68
|
-
const renderTitle = (content: string, className: string) => {
|
69
|
-
const titleComponent = (
|
70
|
-
<Title
|
71
|
-
className={className}
|
72
|
-
size={4}
|
73
|
-
text={content}
|
74
|
-
truncate={truncate}
|
75
|
-
/>
|
76
|
-
)
|
77
|
-
if (truncate) {
|
78
|
-
return (
|
79
|
-
<Tooltip
|
80
|
-
interaction
|
81
|
-
placement="top"
|
82
|
-
position="fixed"
|
83
|
-
text={content}
|
84
|
-
>
|
85
|
-
{titleComponent}
|
86
|
-
</Tooltip>
|
87
|
-
)
|
88
|
-
}
|
89
|
-
return titleComponent
|
90
|
-
}
|
91
|
-
|
92
65
|
return (
|
93
66
|
<div className={css}
|
94
67
|
id={id}
|
@@ -104,7 +77,12 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
104
77
|
size="xxs"
|
105
78
|
status={null}
|
106
79
|
/>
|
107
|
-
|
80
|
+
<Title
|
81
|
+
className="pb_form_pill_text"
|
82
|
+
size={4}
|
83
|
+
text={name}
|
84
|
+
truncate={props.truncate}
|
85
|
+
/>
|
108
86
|
</>
|
109
87
|
)}
|
110
88
|
{((name && icon && !text) || (name && icon && text)) && (
|
@@ -115,7 +93,12 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
115
93
|
size="xxs"
|
116
94
|
status={null}
|
117
95
|
/>
|
118
|
-
|
96
|
+
<Title
|
97
|
+
className="pb_form_pill_text"
|
98
|
+
size={4}
|
99
|
+
text={name}
|
100
|
+
truncate={props.truncate}
|
101
|
+
/>
|
119
102
|
<Icon
|
120
103
|
className="pb_form_pill_icon"
|
121
104
|
color={color}
|
@@ -130,10 +113,22 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
130
113
|
color={color}
|
131
114
|
icon={icon}
|
132
115
|
/>
|
133
|
-
|
116
|
+
<Title
|
117
|
+
className="pb_form_pill_tag"
|
118
|
+
size={4}
|
119
|
+
text={text}
|
120
|
+
truncate={props.truncate}
|
121
|
+
/>
|
134
122
|
</>
|
135
123
|
)}
|
136
|
-
{(!name && !icon && text) &&
|
124
|
+
{(!name && !icon && text) && (
|
125
|
+
<Title
|
126
|
+
className="pb_form_pill_tag"
|
127
|
+
size={4}
|
128
|
+
text={text}
|
129
|
+
truncate={props.truncate}
|
130
|
+
/>
|
131
|
+
)}
|
137
132
|
<div
|
138
133
|
className="pb_form_pill_close"
|
139
134
|
onClick={onClick}
|
@@ -148,5 +143,4 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
|
|
148
143
|
</div>
|
149
144
|
)
|
150
145
|
}
|
151
|
-
|
152
146
|
export default FormPill
|
@@ -13,28 +13,7 @@
|
|
13
13
|
id: "typeahead-form-pill",
|
14
14
|
is_multi: true,
|
15
15
|
options: names,
|
16
|
-
label: "
|
16
|
+
label: "Names",
|
17
17
|
pills: true,
|
18
18
|
truncate: 1,
|
19
19
|
}) %>
|
20
|
-
|
21
|
-
<%= pb_rails("caption", props: { text: "Form Pill Truncation" }) %>
|
22
|
-
<%= pb_rails("card", props: { max_width: "xs" }) do %>
|
23
|
-
<%= pb_rails("form_pill", props: {
|
24
|
-
name: "Princess Amelia Mignonette Grimaldi Thermopolis Renaldo",
|
25
|
-
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg",
|
26
|
-
tabindex: 0,
|
27
|
-
truncate: 1,
|
28
|
-
}) %>
|
29
|
-
<%= pb_rails("form_pill", props: {
|
30
|
-
icon: "badge-check",
|
31
|
-
text: "icon and a very long tag to show truncation",
|
32
|
-
tabindex: 0,
|
33
|
-
truncate: 1,
|
34
|
-
}) %>
|
35
|
-
<%= pb_rails("form_pill", props: {
|
36
|
-
text: "form pill with a very long tag to show truncation",
|
37
|
-
tabindex: 0,
|
38
|
-
truncate: 1,
|
39
|
-
}) %>
|
40
|
-
<% end %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import Typeahead from '../../pb_typeahead/_typeahead'
|
3
3
|
|
4
4
|
const names = [
|
5
5
|
{ label: 'Alexander Nathaniel Montgomery', value: 'Alexander Nathaniel Montgomery' },
|
@@ -15,34 +15,11 @@ const FormPillTruncatedText = (props) => {
|
|
15
15
|
<Typeahead
|
16
16
|
htmlOptions={{ style: { maxWidth: "240px" }}}
|
17
17
|
isMulti
|
18
|
-
label="
|
18
|
+
label="Names"
|
19
19
|
options={names}
|
20
20
|
truncate={1}
|
21
21
|
{...props}
|
22
22
|
/>
|
23
|
-
<Caption text="Form Pill Truncation"/>
|
24
|
-
<Card maxWidth="xs">
|
25
|
-
<FormPill
|
26
|
-
avatarUrl="https://randomuser.me/api/portraits/women/44.jpg"
|
27
|
-
name="Princess Amelia Mignonette Grimaldi Thermopolis Renaldo"
|
28
|
-
onClick={() => alert('Click!')}
|
29
|
-
tabIndex={0}
|
30
|
-
truncate={1}
|
31
|
-
/>
|
32
|
-
<FormPill
|
33
|
-
icon="badge-check"
|
34
|
-
onClick={() => {alert('Click!')}}
|
35
|
-
tabIndex={0}
|
36
|
-
text="icon and a very long tag to show truncation"
|
37
|
-
truncate={1}
|
38
|
-
/>
|
39
|
-
<FormPill
|
40
|
-
onClick={() => {alert('Click!')}}
|
41
|
-
tabIndex={0}
|
42
|
-
text="form pill with a very long tag to show truncation"
|
43
|
-
truncate={1}
|
44
|
-
/>
|
45
|
-
</Card>
|
46
23
|
</>
|
47
24
|
)
|
48
25
|
}
|
@@ -1 +1 @@
|
|
1
|
-
For pills with longer text, the `truncate` global prop can be used to truncate the label within each Form Pill.
|
1
|
+
For pills with longer text, the `truncate` global prop can be used to truncate the label within each Form Pill. See [here](https://playbook.powerapp.cloud/visual_guidelines/truncate) for more information on the truncate global prop.
|
@@ -1,51 +1,19 @@
|
|
1
1
|
<%= content_tag(:div, id: object.id, data: object.data, class: object.classname + object.size_class, tabindex: object.tabindex, **combined_html_options) do %>
|
2
2
|
<% if object.name.present? %>
|
3
3
|
<%= pb_rails("avatar", props: { name: object.name, image_url: object.avatar_url, size: "xxs" }) %>
|
4
|
-
|
5
|
-
<div>
|
6
|
-
<%= pb_rails("title", props: {
|
7
|
-
classname: "pb_form_pill_text #{object.truncate ? "truncate_#{object.truncate}" : ""}",
|
8
|
-
id: element_id,
|
9
|
-
size: 4,
|
10
|
-
text: object.name,
|
11
|
-
}) %>
|
12
|
-
<% if object.truncate %>
|
13
|
-
<%= pb_rails("tooltip", props: {
|
14
|
-
position: "top",
|
15
|
-
tooltip_id: "tooltip-#{element_id}",
|
16
|
-
trigger_element_selector: "##{element_id}"
|
17
|
-
}) do %>
|
18
|
-
<%= object.name %>
|
19
|
-
<% end %>
|
20
|
-
<% end %>
|
21
|
-
</div>
|
4
|
+
<%= pb_rails("title", props: { text: object.name, size: 4, classname: "pb_form_pill_text" }) %>
|
22
5
|
<% if object.icon.present? %>
|
23
6
|
<%= pb_rails("icon", props: { classname: "pb_form_pill_icon", color: object.color, icon: object.icon }) %>
|
24
7
|
<% end %>
|
25
8
|
<% elsif object.text.present? %>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
<%= pb_rails("title", props: {
|
32
|
-
classname: "pb_form_pill_tag #{object.truncate ? "truncate_#{object.truncate}" : ""}",
|
33
|
-
id: element_id,
|
34
|
-
size: 4,
|
35
|
-
text: object.text
|
36
|
-
}) %>
|
37
|
-
<% if object.truncate %>
|
38
|
-
<%= pb_rails("tooltip", props: {
|
39
|
-
position: "top",
|
40
|
-
tooltip_id: "tooltip-#{element_id}",
|
41
|
-
trigger_element_selector: "##{element_id}"
|
42
|
-
}) do %>
|
43
|
-
<%= object.text %>
|
44
|
-
<% end %>
|
9
|
+
<% if object.icon.present? %>
|
10
|
+
<%= pb_rails("icon", props: { classname: "pb_form_pill_icon", color: object.color, icon: object.icon }) %>
|
11
|
+
<% end %>
|
12
|
+
<% if object.text.present? %>
|
13
|
+
<%= pb_rails("title", props: { text: object.text, size: 4, classname: "pb_form_pill_tag" }) %>
|
45
14
|
<% end %>
|
46
|
-
</div>
|
47
15
|
<% end %>
|
48
16
|
<%= pb_rails("body", props: { classname: "pb_form_pill_close" }) do %>
|
49
17
|
<%= pb_rails("icon", props: { icon: 'times', fixed_width: true, size: object.close_icon_size }) %>
|
50
18
|
<% end %>
|
51
|
-
<% end %>
|
19
|
+
<% end %>
|