playbook_ui 7.3.0 → 7.4.0.pre.alpha1

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -3
  3. data/app/pb_kits/playbook/data/menu.yml +2 -2
  4. data/app/pb_kits/playbook/index.js +2 -2
  5. data/app/pb_kits/playbook/pb_date/_date.html.erb +8 -64
  6. data/app/pb_kits/playbook/pb_date/_date.jsx +66 -115
  7. data/app/pb_kits/playbook/pb_date/_date.scss +0 -30
  8. data/app/pb_kits/playbook/pb_date/date.rb +9 -20
  9. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +6 -21
  10. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +12 -43
  11. data/app/pb_kits/playbook/pb_date/docs/example.yml +0 -4
  12. data/app/pb_kits/playbook/pb_date/docs/index.js +0 -2
  13. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +14 -19
  14. data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_flex/_flex.scss +0 -4
  16. data/app/pb_kits/playbook/pb_flex/flex.rb +1 -1
  17. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -52
  18. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
  20. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
  21. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +1 -19
  22. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -1
  23. data/app/pb_kits/playbook/pb_list/_list.jsx +9 -2
  24. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
  25. data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +92 -0
  26. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb +11 -0
  27. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +47 -0
  28. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +17 -0
  29. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb +18 -0
  30. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb +13 -0
  31. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +34 -0
  32. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb +13 -0
  33. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +38 -0
  34. data/app/pb_kits/playbook/pb_selectable_list/docs/example.yml +12 -0
  35. data/app/pb_kits/playbook/pb_selectable_list/docs/index.js +2 -0
  36. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +24 -0
  37. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +29 -0
  38. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +19 -46
  39. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +10 -46
  40. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +4 -4
  41. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +2 -3
  42. data/lib/playbook/version.rb +1 -1
  43. metadata +17 -38
  44. data/app/pb_kits/playbook/pb_background/_background.html.erb +0 -14
  45. data/app/pb_kits/playbook/pb_background/_background.jsx +0 -63
  46. data/app/pb_kits/playbook/pb_background/_background.scss +0 -35
  47. data/app/pb_kits/playbook/pb_background/background.rb +0 -35
  48. data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +0 -3
  49. data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +0 -13
  50. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb +0 -3
  51. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +0 -13
  52. data/app/pb_kits/playbook/pb_background/docs/_background_image.html.erb +0 -13
  53. data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +0 -30
  54. data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +0 -3
  55. data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +0 -13
  56. data/app/pb_kits/playbook/pb_background/docs/_background_white.html.erb +0 -3
  57. data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +0 -14
  58. data/app/pb_kits/playbook/pb_background/docs/_description.md +0 -1
  59. data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -15
  60. data/app/pb_kits/playbook/pb_background/docs/index.js +0 -6
  61. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +0 -24
  62. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +0 -35
  63. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +0 -27
  64. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +0 -43
  65. data/app/pb_kits/playbook/pb_date_time/_date_time.html.erb +0 -31
  66. data/app/pb_kits/playbook/pb_date_time/_date_time.jsx +0 -73
  67. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +0 -26
  68. data/app/pb_kits/playbook/pb_date_time/date_time.rb +0 -29
  69. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb +0 -17
  70. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +0 -35
  71. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb +0 -20
  72. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +0 -38
  73. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb +0 -26
  74. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +0 -75
  75. data/app/pb_kits/playbook/pb_date_time/docs/_description.md +0 -1
  76. data/app/pb_kits/playbook/pb_date_time/docs/example.yml +0 -11
  77. data/app/pb_kits/playbook/pb_date_time/docs/index.js +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9b11071227a394af722c14bca8f59f2abc059a816353af4ffa8b5a7694a5eaf
4
- data.tar.gz: b5eab2ae50132399b89d2a55f6b958148c4e6fbacbe9dbabc9f2ae3311052fc4
3
+ metadata.gz: 65207cc2e0d9d0d986ef6d6e235936601936bf97e7ec9e47ab06b175f9c4cd06
4
+ data.tar.gz: ae4bbe7a345e9efc5a831c8a9e2072f736ad6d203574d6a2a94ea7297dedade0
5
5
  SHA512:
6
- metadata.gz: 9824c9204448f3108c5fdd315aad2572768122ec6f3d3643bb7428d98a5fda418bb6dcd9b1b1853e674e3975323894de257c381293122382022aca10a7a4e150
7
- data.tar.gz: '09955236a98e1b3da1beb51c977f49c94dd99cf6fa74784d8d3d2f7dc670941c5a8a09a5e10ce9a9a889f3702fe1d30bdd1b78985d037e29edce9b466155b93b'
6
+ metadata.gz: 818330dff05e489079c3e83becb835689b1423765a2c7c80229b4b851c70dd7fee65506150ad54a76f85e73bffd29c95f30ed7fdf264fc3c8d9388eeaca176a0
7
+ data.tar.gz: 179e34db4ea530451ad5d1b9595ef3f61cd1c5d3cd6d1bc8c5632031d533b266674928ae6568affe0dcd4aa350c26f55fe52dfda04963fc3c4943fb7e06dc916
@@ -1,5 +1,4 @@
1
1
  @import "tokens/fonts";
2
- @import "pb_background/background";
3
2
  @import "pb_body/body";
4
3
  @import "pb_button/button";
5
4
  @import 'pb_button_toolbar/button_toolbar';
@@ -18,7 +17,6 @@
18
17
  @import 'pb_dashboard_value/dashboard_value';
19
18
  @import 'pb_date/date';
20
19
  @import 'pb_date_picker/date_picker';
21
- @import 'pb_date_time/date_time';
22
20
  @import 'pb_date_range_inline/date_range_inline';
23
21
  @import 'pb_date_range_stacked/date_range_stacked';
24
22
  @import 'pb_date_stacked/date_stacked';
@@ -64,6 +62,7 @@
64
62
  @import 'pb_selectable_card/selectable_card';
65
63
  @import 'pb_selectable_card_icon/selectable_card_icon';
66
64
  @import 'pb_selectable_icon/selectable_icon';
65
+ @import 'pb_selectable_list/selectable_list';
67
66
  @import 'pb_source/source';
68
67
  @import 'pb_star_rating/star_rating';
69
68
  @import 'pb_stat_change/stat_change';
@@ -85,4 +84,3 @@
85
84
  @import 'pb_time_stacked/time_stacked';
86
85
  @import 'pb_weekday_stacked/weekday_stacked';
87
86
  @import './utilities/spacing';
88
-
@@ -7,7 +7,6 @@ samples:
7
7
  kits:
8
8
  - avatar
9
9
  - avatar_action_button
10
- - background
11
10
  - buttons:
12
11
  - button
13
12
  - button_toolbar
@@ -21,6 +20,7 @@ kits:
21
20
  - gauge
22
21
  - legend
23
22
  - line_graph
23
+
24
24
  - filter
25
25
  - fixed_confirmation_toast
26
26
  - flex
@@ -34,6 +34,7 @@ kits:
34
34
  - selectable_card
35
35
  - selectable_card_icon
36
36
  - selectable_icon
37
+ - selectable_list
37
38
  - text_input
38
39
  - textarea
39
40
  - typeahead
@@ -78,7 +79,6 @@ kits:
78
79
  - date_range_inline
79
80
  - date_range_stacked
80
81
  - date_stacked
81
- - date_time
82
82
  - date_time_stacked
83
83
  - date_year_stacked
84
84
  - home_address_street
@@ -5,7 +5,6 @@ import 'lazysizes'
5
5
  // React Component JSX Imports from the React Kits
6
6
  export Avatar from './pb_avatar/_avatar.jsx'
7
7
  export AvatarActionButton from './pb_avatar_action_button/_avatar_action_button.jsx'
8
- export Background from 'pb_background/_background.jsx'
9
8
  export Badge from './pb_badge/_badge.jsx'
10
9
  export BarGraph from './pb_bar_graph/_bar_graph.jsx'
11
10
  export Body from './pb_body/_body.jsx'
@@ -24,7 +23,6 @@ export DatePicker from './pb_date_picker/_date_picker.jsx'
24
23
  export DateRangeInline from './pb_date_range_inline/_date_range_inline.jsx'
25
24
  export DateRangeStacked from './pb_date_range_stacked/_date_range_stacked.jsx'
26
25
  export DateStacked from './pb_date_stacked/_date_stacked.jsx'
27
- export DateTime from './pb_date_time/_date_time.jsx'
28
26
  export DateTimeStacked from './pb_date_time_stacked/_date_time_stacked.jsx'
29
27
  export DateYearStacked from './pb_date_year_stacked/_date_year_stacked.jsx'
30
28
  export DistributionBar from './pb_distribution_bar/_distribution_bar.jsx'
@@ -70,6 +68,8 @@ export Select from './pb_select/_select.jsx'
70
68
  export SelectableCard from './pb_selectable_card/_selectable_card.jsx'
71
69
  export SelectableCardIcon from './pb_selectable_card_icon/_selectable_card_icon.jsx'
72
70
  export SelectableIcon from './pb_selectable_icon/_selectable_icon.jsx'
71
+ export SelectableList from './pb_selectable_list/_selectable_list.jsx'
72
+ export SelectableListItem from './pb_selectable_list/_item.jsx'
73
73
  export Source from './pb_source/_source.jsx'
74
74
  export StarRating from './pb_star_rating/_star_rating.jsx'
75
75
  export StatChange from './pb_stat_change/_stat_change.jsx'
@@ -1,70 +1,14 @@
1
1
  <%= content_tag(:div,
2
2
  id: object.id,
3
3
  data: object.data,
4
- class: object.classname,
5
- aria: object.aria) do %>
6
-
7
- <% if object.size == "md" %>
8
- <!-- icon -->
9
- <% if object.show_icon %>
10
- <%= pb_rails("body", props: {
11
- color: "light",
12
- tag: "div",
13
- }) do %>
14
- <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
15
- <% end %>
16
- <% end %>
17
-
18
- <!-- day_of_week -->
19
- <% if object.show_day_of_week %>
20
- <%= pb_rails("title", props: { tag: "div", text: object.day_of_week, size: 4 }) %>
21
- <%= pb_rails("body", props: {
22
- text: "•",
23
- color: "light",
24
- tag: "div",
25
- }) %>
26
- <% end %>
27
-
28
- <!-- month day, year -->
29
-
30
- <%# if not current year %>
31
- <% if object.year.to_s == DateTime.now.year.to_s %>
32
- <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}", size: 4 }) %>
33
- <%# if is current year %>
4
+ class: object.classname) do %>
5
+ <% if object.size == "lg" %>
6
+ <%= pb_rails("title", props: { text: object.lg_date, size: 3 }) %>
7
+ <% elsif object.size == "sm" %>
8
+ <%= pb_rails("icon", props: { icon: "calendar", fixed_width: true }) %>
9
+ <%= pb_rails("title", props: { tag: "span", text: object.sm_date, size: 4 }) %>
34
10
  <% else %>
35
- <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}, #{object.year}", size: 4 }) %>
36
- <% end %>
37
-
38
- <% else %>
39
-
40
- <!-- icon -->
41
- <% if object.show_icon %>
42
- <%= pb_rails("body", props: {
43
- color: "light",
44
- tag: "div",
45
- }) do %>
46
- <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
47
- <% end %>
48
- <% end %>
49
-
50
- <!-- day_of_week -->
51
- <% if object.show_day_of_week %>
52
- <%= pb_rails("caption", props: { tag: "div", text: object.day_of_week }) %>
53
- <%= pb_rails("caption", props: {
54
- text: "•",
55
- color: "light",
56
- tag: "div",
57
- }) %>
58
- <% end %>
59
-
60
- <!-- month day, year -->
61
-
62
- <%# if not current year %>
63
- <% if object.year.to_s == DateTime.now.year.to_s %>
64
- <%= pb_rails("caption", props: { tag: "span", text: "#{object.month} #{object.day}" }) %>
65
- <%# if is current year %>
66
- <% else %>
67
- <%= pb_rails("caption", props: { tag: "span", text: "#{object.month} #{object.day}, #{object.year}" }) %>
68
- <% end %>
11
+ <%= pb_rails("title", props: { text: object.xs_date, size: 4 }) %>
69
12
  <% end %>
70
13
  <% end %>
14
+
@@ -2,131 +2,82 @@
2
2
 
3
3
  import React from 'react'
4
4
  import DateTime from '../pb_kit/dateTime.js'
5
- import { Body, Caption, Icon, Title } from '../'
5
+ import { Icon } from '../'
6
6
  import classnames from 'classnames'
7
7
  import { globalProps } from '../utilities/globalProps.js'
8
- import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
9
8
 
10
- type PbDateProps = {
11
- alignment?: "left" | "center" | "right",
12
- aria: Object,
13
- className?: string,
14
- data?: Object,
15
- id?: string,
16
- showDayOfWeek?: boolean,
17
- showIcon?: boolean,
18
- size?: string,
19
- value: string | date,
9
+ const defaultDateString = (value: DateTime) => {
10
+ const weekday = value.toWeekday().toUpperCase()
11
+ const month = value.toMonth().toUpperCase()
12
+ const day = value.toDay()
13
+
14
+ return `${weekday} · ${month} ${day}`
20
15
  }
21
16
 
22
- const PbDate = (props: PbDateProps) => {
23
- const {
24
- aria = {},
25
- alignment = 'left',
26
- className,
27
- data = {},
28
- id,
29
- showDayOfWeek = false,
30
- showIcon = false,
31
- size = 'md',
32
- value,
33
- } = props
17
+ const largeDateString = (value: DateTime) => {
18
+ const month = value.toMonth().toUpperCase()
19
+ const day = value.toDay()
34
20
 
35
- const dateTimestamp = new DateTime({ value: value })
36
- const weekday = dateTimestamp.toWeekday()
37
- const month = dateTimestamp.toMonth()
38
- const day = dateTimestamp.toDay()
39
- const year = dateTimestamp.toYear()
40
- const currentYear = new Date().getFullYear().toString()
21
+ return `${month} ${day}`
22
+ }
41
23
 
42
- const ariaProps = buildAriaProps(aria)
43
- const dataProps = buildDataProps(data)
24
+ type DateSubcomponent = {
25
+ value: DateTime,
26
+ }
44
27
 
45
- const classes = classnames(
46
- buildCss('pb_date_kit', alignment),
47
- globalProps(props),
48
- className
49
- )
28
+ const ExtraSmallDate = ({ value, ...props }: DateSubcomponent) => (
29
+ <h3 className={classnames('pb_title_kit_4', globalProps(props))}>
30
+ {defaultDateString(value)}
31
+ </h3>
32
+ )
50
33
 
51
- return (
52
- <div
53
- {...ariaProps}
54
- {...dataProps}
55
- className={classes}
56
- id={id}
57
- >
58
- <If condition={size == 'md' || size == 'lg'}>
34
+ const SmallDate = ({ value, ...props }: DateSubcomponent) => (
35
+ <h3 className={classnames('pb_title_kit_4', globalProps(props))}>
36
+ <Icon
37
+ fixedWidth
38
+ icon="calendar"
39
+ />
40
+ {defaultDateString(value)}
41
+ </h3>
42
+ )
59
43
 
60
- <Title
61
- size={4}
62
- tag="h4"
63
- >
64
- <If condition={showIcon}>
65
- <Body
66
- className="pb_icon_kit_container"
67
- color="light"
68
- tag="span"
69
- >
70
- <Icon
71
- fixedWidth
72
- icon="calendar-alt"
73
- />
74
- </Body>
75
- </If>
76
- <If condition={showDayOfWeek}>
77
- {weekday}
78
- <Body
79
- color="light"
80
- tag="span"
81
- text=" • "
82
- />
83
- </If>
84
- <span>
85
- {month}
86
- {' '}
87
- {day}
88
- </span>
89
- <If condition={currentYear != year}>
90
- <span>
91
- {`, ${year}`}
92
- </span>
93
- </If>
94
- </Title>
95
- <Else />
96
- <>
97
- <If condition={showIcon}>
98
- <Body
99
- className="pb_icon_kit_container"
100
- color="light"
101
- tag="span"
102
- >
103
- <Icon
104
- fixedWidth
105
- icon="calendar-alt"
106
- />
107
- </Body>
108
- </If>
109
- <If condition={showDayOfWeek}>
110
- <Caption tag="div">
111
- {weekday}
112
- </Caption>
113
- <Caption
114
- color="light"
115
- tag="div"
116
- text=" • "
117
- />
118
- </If>
119
- <Caption tag="span">
120
- {month}
121
- {' '}
122
- {day}
123
- <If condition={currentYear != year}>
124
- {`, ${year}`}
125
- </If>
126
- </Caption>
127
- </>
128
- </If>
129
- </div>
44
+ const LargeDate = ({ value, ...props }: DateSubcomponent) => (
45
+ <h3 className={classnames('pb_title_kit_3', globalProps(props))}>
46
+ {largeDateString(value)}
47
+ </h3>
48
+ )
49
+
50
+ type PbDateProps = {
51
+ size?: "xs" | "sm" | "lg",
52
+ value?: string,
53
+ className?: string
54
+ }
55
+
56
+ const PbDate = ({ size, value, className, ...props }: PbDateProps) => {
57
+ const date = new DateTime({ value: value })
58
+
59
+ if (size == 'xs')
60
+ return (
61
+ <ExtraSmallDate
62
+ {...props}
63
+ className={className}
64
+ value={date}
65
+ />
66
+ )
67
+ if (size == 'lg')
68
+ return (
69
+ <LargeDate
70
+ {...props}
71
+ className={className}
72
+ value={date}
73
+ />
74
+ )
75
+ return (
76
+ <SmallDate
77
+ {...props}
78
+ className={className}
79
+ value={date}
80
+ />
130
81
  )
131
82
  }
132
83
 
@@ -1,32 +1,2 @@
1
1
  @import "../pb_icon/icon";
2
2
  @import "../pb_title/title";
3
-
4
- [class^=pb_date_kit] {
5
- display: flex;
6
- flex-direction: row;
7
- align-items: center;
8
- > div, .pb_icon_kit_container {
9
- margin-right: 4px !important;
10
- }
11
-
12
- &[class*=_center] {
13
- display: flex;
14
- flex-direction: row;
15
- align-items: center;
16
- justify-content: center;
17
- margin-right: 4px !important;
18
- }
19
-
20
- &[class*=_right] {
21
- display: flex;
22
- flex-direction: row;
23
- align-items: center;
24
- justify-content: flex-end;
25
- margin-left: 4px !important;
26
- }
27
- &.dark {
28
- [class^=pb_title_kit] {
29
- color: $text_dk_default !important;
30
- }
31
- }
32
- }
@@ -10,36 +10,25 @@ module Playbook
10
10
  partial "pb_date/date"
11
11
 
12
12
  prop :date, required: true
13
- prop :alignment, type: Playbook::Props::Enum,
14
- values: %w[left center right],
15
- default: "left"
16
- prop :show_icon, type: Playbook::Props::Boolean,
17
- default: false
18
- prop :show_day_of_week, type: Playbook::Props::Boolean,
19
- default: false
20
13
  prop :size, type: Playbook::Props::Enum,
21
- values: %w[lg md sm xs],
22
- default: "md"
14
+ values: %w[lg sm xs],
15
+ default: "sm"
23
16
  prop :timezone, default: "America/New_York"
24
17
 
25
18
  def classname
26
- generate_classname("pb_date_kit", alignment)
19
+ generate_classname("pb_date_kit")
27
20
  end
28
21
 
29
- def day_of_week
30
- pb_date_time.to_day_of_week
22
+ def xs_date
23
+ "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
31
24
  end
32
25
 
33
- def day
34
- pb_date_time.to_day
26
+ def lg_date
27
+ "#{pb_date_time.to_month.upcase} #{pb_date_time.to_day}"
35
28
  end
36
29
 
37
- def month
38
- pb_date_time.to_month.capitalize
39
- end
40
-
41
- def year
42
- pb_date_time.to_year
30
+ def sm_date
31
+ "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
43
32
  end
44
33
 
45
34
  private