playbook_ui 6.4.0 → 7.0.0.pre.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/application_controller.rb +0 -2
  3. data/app/helpers/playbook/pb_kit_helper.rb +1 -0
  4. data/app/pb_kits/playbook/_playbook.scss +1 -0
  5. data/app/pb_kits/playbook/index.js +4 -0
  6. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.html.erb +1 -12
  7. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +1 -1
  8. data/app/pb_kits/playbook/pb_body/_body.jsx +1 -1
  9. data/app/pb_kits/playbook/pb_body/_body.scss +1 -17
  10. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  11. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +17 -31
  12. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +8 -16
  13. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +0 -1
  14. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +6 -12
  15. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +18 -0
  16. data/app/pb_kits/playbook/pb_date/docs/_date_default_react.jsx +2 -2
  17. data/app/pb_kits/playbook/pb_date/docs/example.yml +2 -1
  18. data/app/pb_kits/playbook/pb_date/docs/index.js +1 -1
  19. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.html.erb +1 -8
  20. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -5
  22. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +1 -3
  23. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +5 -7
  24. data/app/pb_kits/playbook/pb_legend/_legend.html.erb +1 -11
  25. data/app/pb_kits/playbook/pb_line_graph/_line_graph.html.erb +1 -13
  26. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +1 -1
  27. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +4 -6
  28. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -7
  29. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +14 -18
  30. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +7 -6
  31. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +1 -0
  32. data/app/pb_kits/playbook/pb_radio/_radio.scss +4 -9
  33. data/app/pb_kits/playbook/pb_select/_select.scss +4 -8
  34. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +3 -6
  35. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +5 -9
  36. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +5 -9
  37. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +37 -35
  38. data/app/pb_kits/playbook/pb_table/styles/_hover.scss +12 -15
  39. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +4 -6
  40. data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +4 -6
  41. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +4 -4
  42. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +2 -4
  43. data/app/pb_kits/playbook/react_rails_kits.js +5 -0
  44. data/app/pb_kits/playbook/tokens/_colors.scss +22 -23
  45. data/app/pb_kits/playbook/tokens/_typography.scss +5 -5
  46. data/app/pb_kits/playbook/tokens/index.scss +11 -0
  47. data/app/pb_kits/playbook/vendor.js +5 -0
  48. data/lib/playbook/engine.rb +1 -0
  49. data/lib/playbook/version.rb +1 -1
  50. data/lib/tasks/pb_release.rake +3 -0
  51. metadata +6 -63
  52. data/app/controllers/playbook/guides_controller.rb +0 -11
  53. data/app/controllers/playbook/pages_controller.rb +0 -79
  54. data/app/controllers/playbook/samples_controller.rb +0 -40
  55. data/app/pb_kits/playbook/packs/application.js +0 -55
  56. data/app/pb_kits/playbook/packs/examples.js +0 -175
  57. data/app/pb_kits/playbook/packs/main.scss +0 -12
  58. data/app/pb_kits/playbook/packs/samples.js +0 -21
  59. data/app/pb_kits/playbook/packs/site_styles/_samples.scss +0 -72
  60. data/app/pb_kits/playbook/packs/site_styles/_scaffold.scss +0 -43
  61. data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +0 -135
  62. data/app/pb_kits/playbook/packs/site_styles/docs/_all.scss +0 -10
  63. data/app/pb_kits/playbook/packs/site_styles/docs/_bg_light_doc_example.scss +0 -7
  64. data/app/pb_kits/playbook/packs/site_styles/docs/_code_snippet.scss +0 -531
  65. data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +0 -92
  66. data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +0 -15
  67. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +0 -189
  68. data/app/pb_kits/playbook/packs/site_styles/docs/_kits_examples.scss +0 -18
  69. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +0 -82
  70. data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +0 -72
  71. data/app/views/layouts/playbook/_mobile_hamburger.html.erb +0 -2
  72. data/app/views/layouts/playbook/_nav.html.erb +0 -13
  73. data/app/views/layouts/playbook/_sidebar.html.erb +0 -52
  74. data/app/views/layouts/playbook/application.html.slim +0 -22
  75. data/app/views/layouts/playbook/fullscreen.html.slim +0 -10
  76. data/app/views/layouts/playbook/grid.html.slim +0 -10
  77. data/app/views/layouts/playbook/samples.html.erb +0 -19
  78. data/app/views/playbook/guides/create_kit.html.slim +0 -16
  79. data/app/views/playbook/guides/create_kit/_file_naming.html.md +0 -2
  80. data/app/views/playbook/guides/create_kit/_generator.html.md +0 -6
  81. data/app/views/playbook/guides/create_kit/_kit_examples.html.md +0 -2
  82. data/app/views/playbook/guides/create_kit/_kit_rails.html.md +0 -2
  83. data/app/views/playbook/guides/create_kit/_kit_react.html.md +0 -2
  84. data/app/views/playbook/guides/create_kit/_layout.html.md +0 -2
  85. data/app/views/playbook/guides/create_kit/_view_objects.html.md +0 -2
  86. data/app/views/playbook/guides/create_kit/_writing_sass.md +0 -10
  87. data/app/views/playbook/guides/use_nitro.html.slim +0 -6
  88. data/app/views/playbook/guides/use_nitro/_local.html.md +0 -2
  89. data/app/views/playbook/guides/use_nitro/_nitro_components.html.md +0 -2
  90. data/app/views/playbook/guides/use_nitro/_versions.html.md +0 -2
  91. data/app/views/playbook/pages/fullscreen.html.slim +0 -10
  92. data/app/views/playbook/pages/grid.html.slim +0 -2
  93. data/app/views/playbook/pages/home.html.slim +0 -4
  94. data/app/views/playbook/pages/kit_category_show.html.erb +0 -14
  95. data/app/views/playbook/pages/kit_show.html.erb +0 -33
  96. data/app/views/playbook/pages/kits.html.erb +0 -12
  97. data/app/views/playbook/pages/principals/_getting_started.html.md +0 -30
  98. data/app/views/playbook/pages/principles.html.slim +0 -3
  99. data/app/views/playbook/pages/tokens.html.slim +0 -15
  100. data/app/views/playbook/pages/tokens/_pb_doc_spacing.html.slim +0 -61
  101. data/app/views/playbook/pages/utilities.html.slim +0 -116
  102. data/app/views/playbook/pages/utilities/_pb_doc_color.html.slim +0 -15
  103. data/app/views/playbook/samples/collection_detail/index.html.erb +0 -169
  104. data/app/views/playbook/samples/collection_detail/index.jsx +0 -372
  105. data/app/views/playbook/samples/dashboards/index.html.erb +0 -81
  106. data/app/views/playbook/samples/dashboards/index.jsx +0 -130
  107. data/app/views/playbook/samples/filter_table/index.html.erb +0 -348
  108. data/app/views/playbook/samples/filter_table/index.jsx +0 -433
  109. data/app/views/playbook/samples/registration/index.html.erb +0 -316
  110. data/app/views/playbook/samples/registration/index.jsx +0 -476
  111. data/app/views/playbook/samples/sample_show.html.erb +0 -36
@@ -1,11 +1 @@
1
- <%= content_tag(:div, object.text,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname) do %>
6
- <%= pb_rails("body", props: {color: object.body_color}) do %>
7
- <span class="pb_legend_indicator_circle"></span>
8
- <%= pb_rails("title", props: { dark: object.dark, text: object.prefix_text, tag: "span", size: 4 }) %>
9
- <%= object.text %>
10
- <% end %>
11
- <% end %>
1
+ <%= react_component('Legend', object.chart_options) %>
@@ -1,13 +1 @@
1
- <%= content_tag(:div, "",
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname
6
- ) %>
7
- <% content_for :pb_js do %>
8
- <%= javascript_tag do %>
9
- window.addEventListener('DOMContentLoaded', function() {
10
- new pbChart('.selector', <%= object.chart_options %>)
11
- })
12
- <% end %>
13
- <% end %>
1
+ <%= react_component('LineGraph', object.chart_options) %>
@@ -44,7 +44,7 @@ module Playbook
44
44
  legend: legend,
45
45
  toggleLegendClick: toggle_legend_click,
46
46
  height: height,
47
- }.to_json.html_safe
47
+ }
48
48
  end
49
49
 
50
50
  def classname
@@ -45,13 +45,11 @@ $selector: ".pb_nav_list";
45
45
  color: $text_lt_default;
46
46
  }
47
47
 
48
- @media (hover:hover) {
49
- &:hover {
48
+ &:hover {
49
+ color: $primary;
50
+ #{$selector}_item_icon,
51
+ #{$selector}_item_text {
50
52
  color: $primary;
51
- #{$selector}_item_icon,
52
- #{$selector}_item_text {
53
- color: $primary;
54
- }
55
53
  }
56
54
  }
57
55
  }
@@ -36,13 +36,8 @@ const Nav = (props: NavProps) => {
36
36
 
37
37
  const ariaProps = buildAriaProps(aria)
38
38
  const dataProps = buildDataProps(data)
39
- const cardCss = classnames(
40
- buildCss('pb_nav_list', variant, orientation, {
41
- highlight: highlight,
42
- }),
43
- className,
44
- globalProps(props)
45
- )
39
+ const cardCss = classnames(buildCss('pb_nav_list', variant, orientation, {
40
+ highlight: highlight }, className, globalProps(props)))
46
41
 
47
42
  return (
48
43
  <div
@@ -46,15 +46,13 @@ $selector: ".pb_nav_list";
46
46
  transition-property: color, border-color, background-color;
47
47
  transition-duration: 0.15s;
48
48
  transition-timing-function: $bezier;
49
- @media (hover:hover) {
50
- &:hover {
51
- background-color: rgba($primary, 0.03);
52
- [class*=_icon] {
53
- color: $primary;
54
- }
55
- [class*=_text] {
56
- color: $primary;
57
- }
49
+ &:hover {
50
+ background-color: rgba($primary, 0.03);
51
+ [class*=_icon] {
52
+ color: $primary;
53
+ }
54
+ [class*=_text] {
55
+ color: $primary;
58
56
  }
59
57
  }
60
58
  [class*=_icon_left] {
@@ -112,15 +110,13 @@ $selector: ".pb_nav_list";
112
110
  flex: 1;
113
111
  font-weight: $regular;
114
112
  }
115
- @media (hover:hover) {
116
- &:hover {
117
- background-color: rgba($primary, 0.03);
118
- [class*=_icon] {
119
- color: $primary;
120
- }
121
- [class*=_text] {
122
- color: $primary;
123
- }
113
+ &:hover {
114
+ background-color: rgba($primary, 0.03);
115
+ [class*=_icon] {
116
+ color: $primary;
117
+ }
118
+ [class*=_text] {
119
+ color: $primary;
124
120
  }
125
121
  }
126
122
  }
@@ -73,22 +73,23 @@ const PersonContact = (props: PersonContactProps) => {
73
73
  contactDetail={contactObject.contactDetail}
74
74
  contactType={contactObject.contactType}
75
75
  contactValue={contactObject.contactValue}
76
- key={index}
76
+ key={`valid-contact-${index}`}
77
77
  />
78
- ))}
78
+ ))}
79
79
  {wrongContacts().map((contactObject, index) => (
80
- <>
80
+ <div key={`wrong-contact-caption-wrapper-${index}`}>
81
81
  <Caption
82
82
  className="wrong_numbers"
83
+ key={`wrong-contact-caption-${index}`}
83
84
  text="wrong number"
84
85
  />
85
86
  <Contact
86
87
  contactType={contactObject.contactType}
87
88
  contactValue={contactObject.contactValue}
88
- key={index}
89
+ key={`wrong-contact-${index}`}
89
90
  />
90
- </>
91
- ))}
91
+ </div>
92
+ ))}
92
93
  </div>
93
94
  )
94
95
  }
@@ -5,6 +5,7 @@ const PersonContactWithWrongNumbers = () => {
5
5
  return (
6
6
  <>
7
7
  <PersonContact
8
+ key="person-contact-1"
8
9
  contacts={[
9
10
  {
10
11
  contactType: 'email',
@@ -5,7 +5,6 @@
5
5
 
6
6
  [class^=pb_radio_kit] {
7
7
  display: inline-flex;
8
- cursor: pointer;
9
8
 
10
9
  .pb_radio_button {
11
10
  width: 22px;
@@ -19,10 +18,8 @@
19
18
  transition-timing-function: $easeIn;
20
19
  }
21
20
 
22
- @media (hover:hover) {
23
- &:hover .pb_radio_button {
24
- border-color: $primary_action;
25
- }
21
+ &:hover .pb_radio_button {
22
+ border-color: $primary_action;
26
23
  }
27
24
 
28
25
  input {
@@ -40,10 +37,8 @@
40
37
  border: 6px solid $primary;
41
38
  }
42
39
 
43
- @media (hover:hover) {
44
- &:hover .pb_radio_button {
45
- border-color: $primary_action;
46
- }
40
+ &:hover .pb_radio_button {
41
+ border-color: $primary_action;
47
42
  }
48
43
  &.error {
49
44
  > .pb_radio_button {
@@ -12,10 +12,8 @@
12
12
  cursor: pointer;
13
13
  box-shadow: inset 0 -11px 20px rgba($primary, 0.05);
14
14
  padding-right: $space_lg;
15
- @media (hover:hover) {
16
- &:hover, &:active, &:focus {
17
- background-color: $focus_input_light;
18
- }
15
+ &:hover, &:active, &:focus {
16
+ background-color: $focus_input_light;
19
17
  }
20
18
  &:disabled ~ .pb_select_kit_caret {
21
19
  opacity: 0.5;
@@ -62,10 +60,8 @@
62
60
  @include pb_title_dark;
63
61
  background: $focus_input_dark;
64
62
  box-shadow: inset 0 -11px 20px rgba($white, 0.05);
65
- @media (hover:hover) {
66
- &:hover, &:active, &:focus {
67
- background-color: tint($focus_input_dark, 5%);
68
- }
63
+ &:hover, &:active, &:focus {
64
+ background-color: tint($focus_input_dark, 5%);
69
65
  }
70
66
  text-shadow: 0 0 0 $text_dk_default;
71
67
  }
@@ -18,11 +18,9 @@ $pb_selectable_card_border: 2px;
18
18
  padding: $space_sm + 1;
19
19
  cursor: pointer;
20
20
 
21
- @media (hover:hover) {
22
- &:hover {
23
- box-shadow: $shadow-deep;
24
- border-color: $slate;
25
- }
21
+ &:hover {
22
+ box-shadow: $shadow-deep;
23
+ border-color: $slate;
26
24
  }
27
25
 
28
26
  .pb_selectable_card_circle {
@@ -68,7 +66,6 @@ $pb_selectable_card_border: 2px;
68
66
  }
69
67
 
70
68
  &.dark {
71
- color: $white;
72
69
  label {
73
70
  @include pb_card_dark;
74
71
  background: transparent;
@@ -51,15 +51,11 @@ const SelectableCardIcon = (props: SelectableCardIconProps) => {
51
51
  const ariaProps = buildAriaProps(aria)
52
52
  const dataProps = buildDataProps(data)
53
53
 
54
- const classes = classnames(
55
- buildCss('pb_selectable_card_icon_kit', {
56
- checked: checked,
57
- disabled: disabled,
58
- enabled: !disabled,
59
- }),
60
- globalProps(props),
61
- className
62
- )
54
+ const classes = classnames(buildCss('pb_selectable_card_icon_kit',
55
+ { 'checked': checked,
56
+ 'disabled': disabled,
57
+ 'enabled': !disabled },
58
+ className), globalProps(props))
63
59
 
64
60
  return (
65
61
  <div
@@ -45,15 +45,11 @@ const SelectableIcon = ({
45
45
  const ariaProps = buildAriaProps(aria)
46
46
  const dataProps = buildDataProps(data)
47
47
 
48
- const classes = classnames(
49
- buildCss('pb_selectable_icon_kit', {
50
- checked: checked,
51
- disabled: disabled,
52
- enabled: !disabled,
53
- }),
54
- globalProps(props),
55
- className
56
- )
48
+ const classes = classnames(buildCss('pb_selectable_icon_kit',
49
+ { 'checked': checked,
50
+ 'disabled': disabled,
51
+ 'enabled': !disabled },
52
+ className), globalProps(props))
57
53
 
58
54
  const inputType = multi === false ? 'radio' : 'checkbox'
59
55
 
@@ -1,80 +1,82 @@
1
- @import "../tokens/transition";
2
-
3
1
  [class^=pb_selectable_icon] {
4
2
 
5
- text-align: center;
6
- cursor: pointer;
7
- transition: all $transition_short ease;
8
- @media (hover:hover) {
9
- &:hover * {
10
- transition: all $transition_short ease;
11
- transform: translateY(-2px);
12
- }
13
- }
3
+ text-align: center;
4
+ cursor: pointer;
14
5
 
15
- * {
16
- cursor: pointer;
17
- }
6
+ :hover * {
7
+ filter: drop-shadow(0 0 8px rgba($shadow, 0.25));
8
+ transition-duration: $transition_short;
9
+ transition-timing-function: $easeIn;
10
+ }
18
11
 
19
- h4 {
20
- margin-top: $space_xs !important;
21
- user-select: none;
22
- transition: color $transition_short ease;
23
- }
12
+ * {
13
+ cursor: pointer;
14
+ }
24
15
 
25
- label {
26
- transition: color $transition_short ease;
27
- }
16
+ h4 {
17
+ margin-top: $space_xs !important;
18
+ user-select: none;
19
+ }
28
20
 
29
- &[class*=_disabled] {
21
+ &[class*=_disabled] {
30
22
  opacity: $opacity_6;
31
23
  cursor: not-allowed;
24
+
32
25
  * {
33
- cursor: not-allowed;
26
+ cursor: not-allowed;
34
27
  }
35
28
  }
36
29
 
37
- input[type="checkbox"],
38
- input[type="radio"] {
30
+ input[type="checkbox"],
31
+ input[type="radio"] {
39
32
  -webkit-appearance: none;
40
33
  -moz-appearance: none;
41
34
  display: none;
42
35
  appearance: none;
43
- transition: color $transition_short ease;
36
+
37
+ transition-property: color;
38
+ transition-duration: $transition_short;
44
39
 
45
40
  &:checked ~ label * {
46
- transition: color $transition_short ease;
41
+ transition-timing-function: $easeIn;
47
42
  color: $primary;
48
43
  }
49
44
 
50
45
  &:not(:checked) ~ label {
51
- transition: color $transition_short ease;
46
+ transition-timing-function: $easeOut;
52
47
  color: $slate;
53
48
 
49
+ h4 {
50
+ transition-delay: .15s;
51
+ }
54
52
  }
55
53
  }
56
54
 
57
55
 
58
- &.dark {
56
+ &.dark {
57
+
59
58
  input[type="checkbox"],
60
59
  input[type="radio"] {
61
60
  -webkit-appearance: none;
62
61
  -moz-appearance: none;
63
62
  display: none;
64
63
  appearance: none;
65
- transition: color $transition_short ease;
66
-
64
+
65
+ transition-property: color;
66
+ transition-duration: $transition_short;
67
+
68
+
67
69
  &:checked ~ label * {
68
- transition: color $transition_short ease;
70
+ transition-timing-function: $easeIn;
69
71
  color: $active_dark !important;
70
72
  }
71
73
 
72
74
  &:not(:checked) ~ label {
73
- transition: color $transition_short ease;
75
+ transition-timing-function: $easeOut;
74
76
  color: $text_dk_lighter;
75
77
 
76
78
  h4 {
77
- transition: color $transition_short ease;
79
+ transition-delay: .15s;
78
80
  color: $text_dk_default;
79
81
  }
80
82
  }
@@ -19,16 +19,14 @@ $transition-speed: 0.2s;
19
19
  transition: all $transition-speed ease;
20
20
  }
21
21
 
22
- @media (hover:hover) {
23
- &:hover {
24
- box-shadow: 0 2px 10px 0 rgba($slate, $opacity-6);
22
+ &:hover {
23
+ box-shadow: 0 2px 10px 0 rgba($slate, $opacity-6);
25
24
 
26
- td {
27
- background: $white;
28
- border-color: darken($border_light, 10%);
29
- border-top-width: 1px;
30
- border-top-color: transparent;
31
- }
25
+ td {
26
+ background: $white;
27
+ border-color: darken($border_light, 10%);
28
+ border-top-width: 1px;
29
+ border-top-color: transparent;
32
30
  }
33
31
  }
34
32
  }
@@ -40,12 +38,11 @@ $transition-speed: 0.2s;
40
38
  border-top-color: $border_light;
41
39
  border-top-width: 1px;
42
40
  }
43
- @media (hover:hover) {
44
- &:hover {
45
- td {
46
- border-top-width: 1px;
47
- border-top-color: $border_light;
48
- }
41
+
42
+ &:hover {
43
+ td {
44
+ border-top-width: 1px;
45
+ border-top-color: $border_light;
49
46
  }
50
47
  }
51
48
  }
@@ -91,12 +91,10 @@
91
91
  }
92
92
  }
93
93
  }
94
- @media (hover:hover) {
95
- &:hover {
96
- tbody {
97
- tr {
98
- box-shadow: 0 0 0 $white !important;
99
- }
94
+ &:hover {
95
+ tbody {
96
+ tr {
97
+ box-shadow: 0 0 0 $white !important;
100
98
  }
101
99
  }
102
100
  }