playbook_ui 14.6.2.pre.alpha.PLAY1613darkdatetimecolors4432 → 14.6.2.pre.alpha.PLAY15814348

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +1 -8
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +28 -21
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -37
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.jsx +2 -13
  7. data/app/pb_kits/playbook/pb_card/_card.tsx +3 -2
  8. data/app/pb_kits/playbook/pb_card/docs/_card_light.jsx +17 -3
  9. data/app/pb_kits/playbook/pb_date/_date.scss +0 -3
  10. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +7 -8
  11. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -6
  12. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +26 -30
  13. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +1 -24
  14. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +2 -25
  15. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.md +1 -0
  16. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +8 -46
  17. data/app/pb_kits/playbook/pb_timeline/_item.tsx +23 -59
  18. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +0 -8
  19. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +1 -2
  20. data/app/pb_kits/playbook/pb_timeline/docs/index.js +0 -1
  21. data/app/pb_kits/playbook/pb_timeline/item.html.erb +21 -17
  22. data/app/pb_kits/playbook/pb_timeline/item.rb +0 -4
  23. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +0 -84
  24. data/app/pb_kits/playbook/utilities/_hover.scss +43 -46
  25. data/app/pb_kits/playbook/utilities/globalPropNames.mjs +0 -1
  26. data/app/pb_kits/playbook/utilities/globalProps.ts +0 -5
  27. data/dist/chunks/_typeahead-BtdghxJo.js +22 -0
  28. data/dist/chunks/_weekday_stacked-D1RoR5CN.js +45 -0
  29. data/dist/chunks/vendor.js +1 -1
  30. data/dist/menu.yml +1 -4
  31. data/dist/playbook-doc.js +1 -1
  32. data/dist/playbook-rails-react-bindings.js +1 -1
  33. data/dist/playbook-rails.js +1 -1
  34. data/dist/playbook.css +1 -1
  35. data/lib/playbook/hover.rb +1 -4
  36. data/lib/playbook/kit_base.rb +15 -33
  37. data/lib/playbook/version.rb +1 -1
  38. metadata +5 -37
  39. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_rails.md +0 -3
  40. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_react.md +0 -1
  41. data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading.scss +0 -37
  42. data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading.tsx +0 -67
  43. data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading_mixins.scss +0 -40
  44. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.jsx +0 -51
  45. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.md +0 -1
  46. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.jsx +0 -26
  47. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.md +0 -1
  48. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.html.erb +0 -1
  49. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.jsx +0 -11
  50. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.jsx +0 -59
  51. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.md +0 -3
  52. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.jsx +0 -20
  53. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.md +0 -3
  54. data/app/pb_kits/playbook/pb_skeleton_loading/docs/example.yml +0 -13
  55. data/app/pb_kits/playbook/pb_skeleton_loading/docs/index.js +0 -5
  56. data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.html.erb +0 -12
  57. data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.rb +0 -8
  58. data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.test.jsx +0 -81
  59. data/app/pb_kits/playbook/pb_timeline/detail.html.erb +0 -3
  60. data/app/pb_kits/playbook/pb_timeline/detail.rb +0 -11
  61. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.html.erb +0 -43
  62. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.jsx +0 -68
  63. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.md +0 -2
  64. data/app/pb_kits/playbook/pb_timeline/label.html.erb +0 -12
  65. data/app/pb_kits/playbook/pb_timeline/label.rb +0 -13
  66. data/app/pb_kits/playbook/pb_timeline/step.html.erb +0 -14
  67. data/app/pb_kits/playbook/pb_timeline/step.rb +0 -16
  68. data/app/pb_kits/playbook/pb_timeline/subcomponents/Detail.tsx +0 -29
  69. data/app/pb_kits/playbook/pb_timeline/subcomponents/Label.tsx +0 -38
  70. data/app/pb_kits/playbook/pb_timeline/subcomponents/Step.tsx +0 -42
  71. data/app/pb_kits/playbook/pb_timeline/subcomponents/index.tsx +0 -3
  72. data/dist/chunks/_typeahead-DhLic2Fe.js +0 -22
  73. data/dist/chunks/_weekday_stacked-Mx8TYP5I.js +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db6a77d5d0d5f2f583dec0ae055971d993b86ed35cebb3df70a3eb46c520f60e
4
- data.tar.gz: 9f214f19a94bce463d9561600773513112947c453c8a87248c4a37740103ac47
3
+ metadata.gz: 014bc2684f60ff1adb9fdcdf0d8602a2ca8a0d7b47389b12af8a5a5402fa5017
4
+ data.tar.gz: 949941602000ddd6530a70c74d8cb647ea7c95537895bd7abb2abc3e09d96926
5
5
  SHA512:
6
- metadata.gz: 6d30fd7598b3c3094e108bfe2f611be040ccdc4ce8bdfdf085c6757e62b386031f890e58607e825da501479e5734974f8134fb4738a0890d1bf8caf5fb923da2
7
- data.tar.gz: 19958248e4ee7a1a3d13efc7ba1debe4891bc58bd2ff790b33fc272a739a24789d98454b6e61b61210fafb5ceef4af94afe75f27a77122fde54b91fca6e0bd76
6
+ metadata.gz: ee89877910514e40e1203e7d920bdc9e778598740db0b38006d39a1441c2e1ab7c014061c533d8685038aa63ba4825f3c1fd9df504b881b13bf0314a242b1ecf
7
+ data.tar.gz: 201c7a4d5b40a73f97a1b17727d900aff6bf1e0dea35944c78c11953bfc97cff720a4f913aac7017ca19704cbdba8ebbcf6b6d584f15ec88d396ea212322fdcd
@@ -1,3 +1,4 @@
1
+
1
2
  @import 'pb_advanced_table/advanced_table';
2
3
  @import 'pb_avatar/avatar';
3
4
  @import 'pb_avatar_action_button/avatar_action_button';
@@ -84,7 +85,6 @@
84
85
  @import 'pb_selectable_card_icon/selectable_card_icon';
85
86
  @import 'pb_selectable_icon/selectable_icon';
86
87
  @import 'pb_selectable_list/selectable_list';
87
- @import 'pb_skeleton_loading/skeleton_loading';
88
88
  @import 'pb_source/source';
89
89
  @import 'pb_star_rating/star_rating';
90
90
  @import 'pb_stat_change/stat_change';
@@ -16,7 +16,6 @@ interface CustomCellProps {
16
16
  onRowToggleClick?: (arg: Row<GenericObject>) => void
17
17
  row: Row<GenericObject>
18
18
  value?: string
19
- customRenderer?: (row: Row<GenericObject>, value: string | undefined) => React.ReactNode
20
19
  }
21
20
 
22
21
  export const CustomCell = ({
@@ -24,7 +23,6 @@ export const CustomCell = ({
24
23
  onRowToggleClick,
25
24
  row,
26
25
  value,
27
- customRenderer,
28
26
  }: CustomCellProps & GlobalProps) => {
29
27
  const { setExpanded, expanded, expandedControl, inlineRowLoading } = useContext(AdvancedTableContext);
30
28
 
@@ -63,12 +61,7 @@ export const CustomCell = ({
63
61
  </button>
64
62
  ) : null}
65
63
  <FlexItem paddingLeft={renderButton? "none" : "xs"}>
66
- {row.depth === 0 ? (
67
- customRenderer ? customRenderer(row, getValue()) : getValue()
68
- ) :(
69
- customRenderer ? customRenderer(row, value) : value
70
- )
71
- }
64
+ {row.depth === 0 ? getValue() : value}
72
65
  </FlexItem>
73
66
  </Flex>
74
67
  </div>
@@ -90,8 +90,8 @@ const AdvancedTable = (props: AdvancedTableProps) => {
90
90
 
91
91
  const columnHelper = createColumnHelper()
92
92
 
93
- //Create cells for columns, with customization for first column
94
- const createCellFunction = (cellAccessors: string[], customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element, index?: number) => {
93
+ //Create cells for first columns
94
+ const createCellFunction = (cellAccessors: string[], customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element) => {
95
95
  const columnCells = ({
96
96
  row,
97
97
  getValue,
@@ -101,16 +101,19 @@ const AdvancedTable = (props: AdvancedTableProps) => {
101
101
  }) => {
102
102
  const rowData = row.original
103
103
 
104
- if (index === 0) {
104
+ // Use customRenderer if provided, otherwise default rendering
105
+ if (customRenderer) {
106
+ return customRenderer(row, getValue())
107
+ }
108
+
105
109
  switch (row.depth) {
106
110
  case 0: {
107
111
  return (
108
- <CustomCell
109
- customRenderer={customRenderer}
110
- getValue={getValue}
111
- onRowToggleClick={onRowToggleClick}
112
- row={row}
113
- />
112
+ <CustomCell
113
+ getValue={getValue}
114
+ onRowToggleClick={onRowToggleClick}
115
+ row={row}
116
+ />
114
117
  )
115
118
  }
116
119
  default: {
@@ -119,7 +122,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
119
122
  const accessorValue = rowData[depthAccessor]
120
123
  return accessorValue ? (
121
124
  <CustomCell
122
- customRenderer={customRenderer}
123
125
  onRowToggleClick={onRowToggleClick}
124
126
  row={row}
125
127
  value={accessorValue}
@@ -130,13 +132,11 @@ const AdvancedTable = (props: AdvancedTableProps) => {
130
132
  }
131
133
  }
132
134
  }
133
- return customRenderer
134
- ? customRenderer(row, getValue())
135
- : getValue()
136
- }
135
+
137
136
  return columnCells
138
137
  }
139
- //Create column array in format needed by Tanstack
138
+
139
+ //Create column array in format needed by Tanstack
140
140
  const columns =
141
141
  columnDefinitions &&
142
142
  columnDefinitions.map((column, index) => {
@@ -147,12 +147,19 @@ const AdvancedTable = (props: AdvancedTableProps) => {
147
147
  }),
148
148
  }
149
149
 
150
- if (column.cellAccessors || column.customRenderer) {
151
- columnStructure.cell = createCellFunction(
152
- column.cellAccessors,
153
- column.customRenderer,
154
- index
155
- )
150
+ // Use the custom renderer if provided, EXCEPT for the first column
151
+ if (index !== 0) {
152
+ if (column.cellAccessors || column.customRenderer) {
153
+ columnStructure.cell = createCellFunction(
154
+ column.cellAccessors,
155
+ column.customRenderer
156
+ )
157
+ }
158
+ } else {
159
+ // For the first column, apply createCellFunction without customRenderer
160
+ if (column.cellAccessors) {
161
+ columnStructure.cell = createCellFunction(column.cellAccessors)
162
+ }
156
163
  }
157
164
 
158
165
  return columnStructure
@@ -1,7 +1,7 @@
1
1
  import React, {useState} from "react"
2
2
  import { render, screen, waitFor } from "../utilities/test-utils"
3
3
 
4
- import { AdvancedTable, Pill } from "playbook-ui"
4
+ import { AdvancedTable } from "playbook-ui"
5
5
 
6
6
  const MOCK_DATA = [
7
7
  {
@@ -88,28 +88,6 @@ const columnDefinitions = [
88
88
  },
89
89
  ]
90
90
 
91
- const columnDefinitionsCustomRenderer = [
92
- {
93
- accessor: "year",
94
- label: "Year",
95
- cellAccessors: ["quarter", "month", "day"],
96
- },
97
- {
98
- accessor: "newEnrollments",
99
- label: "New Enrollments",
100
- customRenderer: (row, value) => (
101
- <Pill text={value}
102
- variant="success"
103
- />
104
- ),
105
- },
106
- {
107
- accessor: "scheduledMeetings",
108
- label: "Scheduled Meetings",
109
- },
110
- ]
111
-
112
-
113
91
  const subRowHeaders = ["Quarter"]
114
92
 
115
93
  const testId = "advanced_table"
@@ -485,17 +463,3 @@ test("responsive none prop functions as expected", () => {
485
463
  const kit = screen.getByTestId(testId)
486
464
  expect(kit).toHaveClass("pb_advanced_table table-responsive-none")
487
465
  })
488
-
489
- test("customRenderer prop functions as expected", () => {
490
- render(
491
- <AdvancedTable
492
- columnDefinitions={columnDefinitionsCustomRenderer}
493
- data={{ testid: testId }}
494
- tableData={MOCK_DATA}
495
- />
496
- )
497
-
498
- const kit = screen.getByTestId(testId)
499
- const pill = kit.querySelector(".pb_pill_kit_success_lowercase")
500
- expect(pill).toBeInTheDocument()
501
- })
@@ -1,5 +1,5 @@
1
1
  import React from "react"
2
- import { AdvancedTable, Pill, Body, Flex, Detail, Caption, Badge, Title } from "playbook-ui"
2
+ import { AdvancedTable, Pill, Body, Flex, Detail, Caption } from "playbook-ui"
3
3
  import MOCK_DATA from "./advanced_table_mock_data.json"
4
4
 
5
5
  const AdvancedTableCustomCell = (props) => {
@@ -8,18 +8,7 @@ const AdvancedTableCustomCell = (props) => {
8
8
  accessor: "year",
9
9
  label: "Year",
10
10
  cellAccessors: ["quarter", "month", "day"],
11
- customRenderer: (row, value) => (
12
- <Flex>
13
- <Title size={4}
14
- text={value}
15
- />
16
- <Badge dark
17
- marginLeft="xxs"
18
- text={row.original.newEnrollments > 20 ? "High" : "Low"}
19
- variant="neutral"
20
- />
21
- </Flex>
22
- ),
11
+
23
12
  },
24
13
  {
25
14
  accessor: "newEnrollments",
@@ -109,8 +109,8 @@ const Card = (props: CardPropTypes): React.ReactElement => {
109
109
  // coerce to array
110
110
  const cardChildren = React.Children.toArray(children)
111
111
  const dynamicInlineProps = globalInlineProps(props);
112
- const { style: htmlStyle = {}, ...restHtmlProps } = htmlProps as { style?: React.CSSProperties };
113
- const mergedStyles: React.CSSProperties = { ...htmlStyle, ...dynamicInlineProps };
112
+ const { style: htmlStyle, ...restHtmlProps } = htmlProps;
113
+ const mergedStyles = { ...htmlStyle, ...dynamicInlineProps };
114
114
 
115
115
 
116
116
  const subComponentTags = (tagName: string) => {
@@ -135,6 +135,7 @@ const Card = (props: CardPropTypes): React.ReactElement => {
135
135
  <Draggable.Item dragId={dragId}
136
136
  key={dragId}
137
137
  >
138
+ <h1>{htmlProps}</h1>
138
139
  <Tag
139
140
  {...ariaProps}
140
141
  {...dataProps}
@@ -1,12 +1,26 @@
1
- import React from 'react'
2
- import Card from '../_card'
1
+ import React from "react"
2
+ import Card from "../_card"
3
3
 
4
4
  const CardLight = (props) => {
5
5
  return (
6
6
  <div>
7
- <Card {...props}>{'Card content'}</Card>
7
+ <Card
8
+ height="100%"
9
+ htmlOptions={{
10
+ style: {
11
+ width: "100%",
12
+ backgroundColor: "blue",
13
+ },
14
+ tabIndex: 7
15
+ }}
16
+ minHeight="189px"
17
+ {...props}
18
+ >
19
+ {"HELLO WORLD!!!"}
20
+ </Card>
8
21
  </div>
9
22
  )
10
23
  }
11
24
 
12
25
  export default CardLight
26
+
@@ -28,8 +28,5 @@
28
28
  [class^=pb_title_kit] {
29
29
  color: $text_dk_default !important;
30
30
  }
31
- [class^=pb_body_kit], [class^=pb_caption_kit] {
32
- color: $text_dk_light !important;
33
- }
34
31
  }
35
32
  }
@@ -47,7 +47,7 @@ interface DropdownComponent
47
47
  Container: typeof DropdownContainer;
48
48
  }
49
49
 
50
- let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
50
+ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
51
51
  const {
52
52
  aria = {},
53
53
  autocomplete = false,
@@ -260,7 +260,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
260
260
  <DropdownContainer>
261
261
  {optionsWithBlankSelection &&
262
262
  optionsWithBlankSelection?.map((option: GenericObject) => (
263
- <DropdownOption key={option.id}
263
+ <Dropdown.Option key={option.id}
264
264
  option={option}
265
265
  />
266
266
  ))}
@@ -278,12 +278,11 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
278
278
  </DropdownContext.Provider>
279
279
  </div>
280
280
  )
281
- }
281
+ }) as DropdownComponent
282
282
 
283
- Dropdown = forwardRef(Dropdown) as unknown as DropdownComponent;
284
- (Dropdown as DropdownComponent).displayName = "Dropdown";
285
- (Dropdown as DropdownComponent).Option = DropdownOption;
286
- (Dropdown as DropdownComponent).Trigger = DropdownTrigger;
287
- (Dropdown as DropdownComponent).Container = DropdownContainer;
283
+ Dropdown.displayName = "Dropdown";
284
+ Dropdown.Option = DropdownOption;
285
+ Dropdown.Trigger = DropdownTrigger;
286
+ Dropdown.Container = DropdownContainer;
288
287
 
289
288
  export default Dropdown;
@@ -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
 
@@ -63,30 +62,6 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
63
62
  const dataProps = buildDataProps(data)
64
63
  const htmlProps = buildHtmlProps(htmlOptions)
65
64
 
66
- const renderTitle = (content: string, className: string) => {
67
- const titleComponent = (
68
- <Title
69
- className={className}
70
- size={4}
71
- text={content}
72
- truncate={props.truncate}
73
- />
74
- )
75
- if (props.truncate) {
76
- return (
77
- <Tooltip
78
- interaction
79
- placement="top"
80
- position="fixed"
81
- text={content}
82
- >
83
- {titleComponent}
84
- </Tooltip>
85
- )
86
- }
87
- return titleComponent
88
- }
89
-
90
65
  return (
91
66
  <div className={css}
92
67
  id={id}
@@ -102,7 +77,12 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
102
77
  size="xxs"
103
78
  status={null}
104
79
  />
105
- {renderTitle(name, "pb_form_pill_text")}
80
+ <Title
81
+ className="pb_form_pill_text"
82
+ size={4}
83
+ text={name}
84
+ truncate={props.truncate}
85
+ />
106
86
  </>
107
87
  )}
108
88
  {((name && icon && !text) || (name && icon && text)) && (
@@ -113,7 +93,12 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
113
93
  size="xxs"
114
94
  status={null}
115
95
  />
116
- {renderTitle(name, "pb_form_pill_text")}
96
+ <Title
97
+ className="pb_form_pill_text"
98
+ size={4}
99
+ text={name}
100
+ truncate={props.truncate}
101
+ />
117
102
  <Icon
118
103
  className="pb_form_pill_icon"
119
104
  color={color}
@@ -128,10 +113,22 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
128
113
  color={color}
129
114
  icon={icon}
130
115
  />
131
- {renderTitle(text, "pb_form_pill_tag")}
116
+ <Title
117
+ className="pb_form_pill_tag"
118
+ size={4}
119
+ text={text}
120
+ truncate={props.truncate}
121
+ />
132
122
  </>
133
123
  )}
134
- {(!name && !icon && text) && renderTitle(text, "pb_form_pill_tag")}
124
+ {(!name && !icon && text) && (
125
+ <Title
126
+ className="pb_form_pill_tag"
127
+ size={4}
128
+ text={text}
129
+ truncate={props.truncate}
130
+ />
131
+ )}
135
132
  <div
136
133
  className="pb_form_pill_close"
137
134
  onClick={onClick}
@@ -146,5 +143,4 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
146
143
  </div>
147
144
  )
148
145
  }
149
-
150
146
  export default FormPill
@@ -13,30 +13,7 @@
13
13
  id: "typeahead-form-pill",
14
14
  is_multi: true,
15
15
  options: names,
16
- label: "Truncation Within Typeahead",
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
- id: "truncation-1"
29
- }) %>
30
- <%= pb_rails("form_pill", props: {
31
- icon: "badge-check",
32
- text: "icon and a very long tag to show truncation",
33
- tabindex: 0,
34
- truncate: 1,
35
- id: "truncation-2"
36
- }) %>
37
- <%= pb_rails("form_pill", props: {
38
- text: "form pill long tag no tooltip show truncation",
39
- tabindex: 0,
40
- truncate: 1,
41
- }) %>
42
- <% end %>
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { Card, Caption, FormPill, Typeahead } from 'playbook-ui'
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="Truncation Within Typeahead"
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
  }
@@ -0,0 +1 @@
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,57 +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
- <% if object.truncate %>
5
- <div>
6
- <%= pb_rails("title", props: {
7
- classname: "pb_form_pill_text truncate_#{object.truncate}",
8
- id: object.id,
9
- size: 4,
10
- text: object.name,
11
- }) %>
12
- <% if object.id.present? %>
13
- <%= pb_rails("tooltip", props: {
14
- position: "top",
15
- tooltip_id: "tooltip-#{object.id}",
16
- trigger_element_selector: "##{object.id}"
17
- }) do %>
18
- <%= object.name %>
19
- <% end %>
20
- <% end %>
21
- </div>
22
- <% else %>
23
- <%= pb_rails("title", props: { classname: "pb_form_pill_text", id: object.id, size: 4, text: object.name }) %>
24
- <% end %>
4
+ <%= pb_rails("title", props: { text: object.name, size: 4, classname: "pb_form_pill_text" }) %>
25
5
  <% if object.icon.present? %>
26
6
  <%= pb_rails("icon", props: { classname: "pb_form_pill_icon", color: object.color, icon: object.icon }) %>
27
7
  <% end %>
28
8
  <% elsif object.text.present? %>
29
- <% if object.icon.present? %>
30
- <%= pb_rails("icon", props: { classname: "pb_form_pill_icon", color: object.color, icon: object.icon }) %>
31
- <% end %>
32
- <% if object.truncate %>
33
- <div>
34
- <%= pb_rails("title", props: {
35
- classname: "pb_form_pill_tag truncate_#{object.truncate}",
36
- id: object.id,
37
- size: 4,
38
- text: object.text,
39
- }) %>
40
- <% if object.id.present? %>
41
- <%= pb_rails("tooltip", props: {
42
- position: "top",
43
- tooltip_id: "tooltip-#{object.id}",
44
- trigger_element_selector: "##{object.id}"
45
- }) do %>
46
- <%= object.text %>
47
- <% end %>
48
- <% end %>
49
- </div>
50
- <% else %>
51
- <%= pb_rails("title", props: { classname: "pb_form_pill_tag", id: object.id, size: 4, text: object.text, }) %>
52
- <% 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" }) %>
14
+ <% end %>
53
15
  <% end %>
54
16
  <%= pb_rails("body", props: { classname: "pb_form_pill_close" }) do %>
55
17
  <%= pb_rails("icon", props: { icon: 'times', fixed_width: true, size: object.close_icon_size }) %>
56
18
  <% end %>
57
- <% end %>
19
+ <% end %>