playbook_ui 13.16.0.pre.alpha.play1141iconkitusinglibrary2060 → 13.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_icon/_icon.scss +6 -48
  3. data/app/pb_kits/playbook/pb_icon/_icon.tsx +36 -107
  4. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.html.erb +11 -5
  5. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.jsx +18 -44
  6. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.md +5 -10
  7. data/app/pb_kits/playbook/pb_icon/icon.html.erb +4 -6
  8. data/app/pb_kits/playbook/pb_icon/icon.rb +10 -33
  9. data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +1 -1
  10. data/app/pb_kits/playbook/pb_layout/_layout.tsx +1 -2
  11. data/app/pb_kits/playbook/pb_layout/layout.test.js +4 -8
  12. data/app/pb_kits/playbook/pb_legend/_legend.tsx +6 -6
  13. data/app/pb_kits/playbook/pb_lightbox/Carousel/Slides.tsx +4 -4
  14. data/app/pb_kits/playbook/pb_lightbox/Carousel/Thumbnail.tsx +1 -1
  15. data/app/pb_kits/playbook/pb_lightbox/Carousel/index.tsx +3 -3
  16. data/app/pb_kits/playbook/pb_lightbox/Header/_lightbox_header.tsx +22 -30
  17. data/app/pb_kits/playbook/pb_lightbox/_lightbox.tsx +5 -5
  18. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +4 -4
  19. data/app/pb_kits/playbook/pb_list/_list.tsx +15 -15
  20. data/app/pb_kits/playbook/pb_list/_list_item.tsx +1 -1
  21. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +9 -9
  22. data/app/pb_kits/playbook/pb_map/_map.tsx +8 -8
  23. data/app/pb_kits/playbook/pb_map/_map_controls.tsx +7 -15
  24. data/app/pb_kits/playbook/pb_map/_map_custom_button.tsx +2 -4
  25. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -1
  26. data/app/pb_kits/playbook/pb_message/_message_mention.tsx +6 -6
  27. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +42 -46
  28. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.tsx +20 -20
  29. data/app/pb_kits/playbook/pb_nav/_item.tsx +47 -56
  30. data/app/pb_kits/playbook/pb_nav/_nav.tsx +15 -15
  31. data/app/pb_kits/playbook/pb_nav/_nav_item.test.js +2 -2
  32. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +1 -1
  33. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_highlight.jsx +2 -4
  34. data/dist/playbook-rails.js +6 -14
  35. data/lib/playbook/version.rb +2 -2
  36. metadata +7 -7
@@ -18,7 +18,7 @@ type NavItemProps = {
18
18
  children?: React.ReactNode[] | React.ReactNode;
19
19
  className?: string;
20
20
  collapsible?: boolean;
21
- data?: Record<string, unknown>;
21
+ data?: object;
22
22
  dark?: boolean;
23
23
  fontSize?: "normal" | "small";
24
24
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
@@ -76,7 +76,7 @@ const NavItem = (props: NavItemProps) => {
76
76
  id,
77
77
  imageUrl,
78
78
  link,
79
- onClick,
79
+ onClick = () => {},
80
80
  target = "_self",
81
81
  text = "",
82
82
  collapsibleTrail,
@@ -205,49 +205,46 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing);
205
205
  {collapsible ? (
206
206
  <>
207
207
  <Collapsible
208
- className={collapsibleClasses}
209
- collapsed={collapsed}
210
- icon={iconRight && iconRight}
211
- iconSize="xs"
212
- id={id}
213
- onClick={onClick}
214
- onIconClick={onIconRightClick}
208
+ className={collapsibleClasses}
209
+ icon={iconRight && iconRight}
210
+ iconSize="xs"
211
+ id={id}
212
+ collapsed={collapsed}
213
+ onIconClick={onIconRightClick}
214
+ onClick={onClick}
215
215
  >
216
216
  <Collapsible.Main
217
- className={globalProps({ ...finalItemSpacing })}
218
- dark={dark}
219
- >
217
+ className={globalProps({ ...finalItemSpacing })}
218
+ dark={dark}>
220
219
  <Tag
221
- {...ariaProps}
222
- {...dataProps}
223
- {...htmlProps}
224
- className={classes}
225
- href={link}
226
- id={id}
227
- target={target}
220
+ {...ariaProps}
221
+ {...dataProps}
222
+ {...htmlProps}
223
+ className={classes}
224
+ id={id}
225
+ href={link}
226
+ target={target}
228
227
  >
229
228
  {imageUrl && (
230
229
  <div
231
- className="pb_nav_list_item_icon_section_collapsible"
232
- key={imageUrl}
233
- onClick={(e) => handleIconClick(e)}
230
+ className="pb_nav_list_item_icon_section_collapsible"
231
+ key={imageUrl}
232
+ onClick={(e) => handleIconClick(e)}
234
233
  >
235
- <Image className="pb_nav_img_wrapper"
236
- url={imageUrl}
237
- />
234
+ <Image className="pb_nav_img_wrapper" url={imageUrl} />
238
235
  </div>
239
236
  )}
240
237
 
241
238
  {iconLeft && (
242
239
  <div
243
- className="pb_nav_list_item_icon_section_collapsible"
244
- key={iconLeft}
245
- onClick={(e) => handleIconClick(e)}
240
+ className="pb_nav_list_item_icon_section_collapsible"
241
+ key={iconLeft}
242
+ onClick={(e) => handleIconClick(e)}
246
243
  >
247
244
  <Icon
248
- className="pb_nav_list_item_icon_left_collapsible"
249
- fixedWidth
250
- icon={iconLeft}
245
+ className="pb_nav_list_item_icon_left_collapsible"
246
+ fixedWidth
247
+ icon={iconLeft}
251
248
  />
252
249
  </div>
253
250
  )}
@@ -261,33 +258,27 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing);
261
258
  </>
262
259
  ) : (
263
260
  <Tag
264
- {...ariaProps}
265
- {...dataProps}
266
- {...htmlProps}
267
- className={classes}
268
- href={link}
269
- id={id}
270
- onClick={onClick}
271
- target={target}
261
+ {...ariaProps}
262
+ {...dataProps}
263
+ {...htmlProps}
264
+ className={classes}
265
+ id={id}
266
+ href={link}
267
+ onClick={onClick}
268
+ target={target}
272
269
  >
273
270
  {imageUrl && (
274
- <div className="pb_nav_list_item_icon_section"
275
- key={imageUrl}
276
- >
277
- <Image className="pb_nav_img_wrapper"
278
- url={imageUrl}
279
- />
271
+ <div className="pb_nav_list_item_icon_section" key={imageUrl}>
272
+ <Image className="pb_nav_img_wrapper" url={imageUrl} />
280
273
  </div>
281
274
  )}
282
275
 
283
276
  {iconLeft && (
284
- <div className="pb_nav_list_item_icon_section"
285
- key={iconLeft}
286
- >
277
+ <div className="pb_nav_list_item_icon_section" key={iconLeft}>
287
278
  <Icon
288
- className="pb_nav_list_item_icon_left"
289
- fixedWidth
290
- icon={iconLeft}
279
+ className="pb_nav_list_item_icon_left"
280
+ fixedWidth
281
+ icon={iconLeft}
291
282
  />
292
283
  </div>
293
284
  )}
@@ -296,13 +287,13 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing);
296
287
 
297
288
  {iconRight && (
298
289
  <div
299
- className="pb_nav_list_item_icon_section"
300
- key={iconRight as string}
290
+ className="pb_nav_list_item_icon_section"
291
+ key={iconRight as string}
301
292
  >
302
293
  <Icon
303
- className="pb_nav_list_item_icon_right"
304
- fixedWidth
305
- icon={iconRight as string}
294
+ className="pb_nav_list_item_icon_right"
295
+ fixedWidth
296
+ icon={iconRight as string}
306
297
  />
307
298
  </div>
308
299
  )}
@@ -12,12 +12,12 @@ type NavProps = {
12
12
  borderless?: boolean,
13
13
  children?: React.ReactNode[] | React.ReactNode,
14
14
  className?: string | string[],
15
- data?: Record<string, unknown>,
15
+ data?: object,
16
16
  dark?: boolean,
17
17
  highlight?: boolean,
18
18
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
19
19
  id?: string,
20
- onClick?: () => void,
20
+ onClick?: React.MouseEventHandler<HTMLElement>,
21
21
  orientation?: "vertical" | "horizontal",
22
22
  link?: string,
23
23
  title?: string,
@@ -25,7 +25,7 @@ type NavProps = {
25
25
  itemSpacing?: SpacingObject
26
26
  } & GlobalProps
27
27
 
28
- const Nav = (props: NavProps): React.ReactElement => {
28
+ const Nav = (props: NavProps) => {
29
29
  const {
30
30
  aria = {},
31
31
  borderless = false,
@@ -37,7 +37,7 @@ const Nav = (props: NavProps): React.ReactElement => {
37
37
  htmlOptions = {},
38
38
  id,
39
39
  link = '#',
40
- onClick,
40
+ onClick = () => { },
41
41
  orientation = 'vertical',
42
42
  title = '',
43
43
  variant = 'normal',
@@ -71,23 +71,23 @@ const childrenWithProps = React.Children.map(children, (child) => {
71
71
 
72
72
  return (
73
73
  <nav
74
- {...ariaProps}
75
- {...dataProps}
76
- {...htmlProps}
77
- className={cardCss}
78
- id={id}
74
+ {...ariaProps}
75
+ {...dataProps}
76
+ {...htmlProps}
77
+ className={cardCss}
78
+ id={id}
79
79
  >
80
80
  {title &&
81
81
  <div className="pb_nav_list_title">
82
82
  <a
83
- className="pb_nav_list_item_link_text"
84
- href={link}
85
- onClick={onClick}
83
+ className="pb_nav_list_item_link_text"
84
+ href={link}
85
+ onClick={onClick}
86
86
  >
87
87
  <Caption
88
- dark={dark}
89
- size="md"
90
- text={`${title}`}
88
+ dark={dark}
89
+ size="md"
90
+ text={`${title}`}
91
91
  />
92
92
  </a>
93
93
  </div>
@@ -95,11 +95,11 @@ test('should not have a left border', () => {
95
95
  test('should have a right icon', () => {
96
96
  render(<NavDefault iconRight="angle-down" />)
97
97
  const kit = screen.getByTestId(itemTestId)
98
- expect(kit).toContainHTML('<i class="pb_icon_kit far pb_nav_list_item_icon_right fa-fw fa-1x fa-angle-down" />')
98
+ expect(kit).toContainHTML('<i class="pb_icon_kit far fa-fw fa-angle-down pb_nav_list_item_icon_right" />')
99
99
  })
100
100
 
101
101
  test('should have a left icon', () => {
102
102
  render(<NavDefault iconLeft="users-class" />)
103
103
  const kit = screen.getByTestId(itemTestId)
104
- expect(kit).toContainHTML('<i class="pb_icon_kit far pb_nav_list_item_icon_left fa-fw fa-1x fa-users-class" />')
104
+ expect(kit).toContainHTML('<i class="pb_icon_kit far fa-fw fa-users-class pb_nav_list_item_icon_left" />')
105
105
  })
@@ -148,7 +148,7 @@
148
148
  .placeholder {
149
149
  position: absolute;
150
150
  margin-right: 2px;
151
- margin-left: 10px;
151
+ margin-left: 2px;
152
152
  top: 50%;
153
153
  transform: translateY(-50%);
154
154
  box-sizing: border-box;
@@ -73,10 +73,8 @@ const TypeaheadWithHighlight = (props) => {
73
73
  Option: (highlightProps: OptionProps) => (
74
74
  <components.Option {...highlightProps}/>
75
75
  ),
76
- SingleValue: ({ ...props }) => (
77
- <components.SingleValue {...props}>
78
- <span>{props.data.name}</span>
79
- </components.SingleValue>
76
+ SingleValue: ({ data }: any) => (
77
+ <span>{data.name}</span>
80
78
  )
81
79
  }
82
80