playbook_ui 7.8.2 → 7.11.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/application_controller.rb +5 -3
  3. data/app/helpers/playbook/application_helper.rb +13 -19
  4. data/app/helpers/playbook/pb_doc_helper.rb +41 -20
  5. data/app/helpers/playbook/pb_kit_helper.rb +1 -25
  6. data/app/helpers/playbook/pb_sample_helper.rb +24 -23
  7. data/app/pb_kits/playbook/config/_kit_example.html.erb +18 -4
  8. data/app/pb_kits/playbook/config/_kit_ui.html.erb +21 -21
  9. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +1 -1
  10. data/app/pb_kits/playbook/pb_currency/_currency.jsx +16 -1
  11. data/app/pb_kits/playbook/pb_currency/_currency.scss +23 -1
  12. data/app/pb_kits/playbook/pb_currency/currency.rb +22 -0
  13. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.html.erb → _currency_alignment.html.erb} +3 -3
  14. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.jsx → _currency_alignment.jsx} +5 -5
  15. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.html.erb +7 -0
  16. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx +17 -0
  17. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.html.erb → _currency_size.html.erb} +8 -7
  18. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.jsx → _currency_size.jsx} +9 -8
  19. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +24 -0
  20. data/app/pb_kits/playbook/pb_currency/docs/{_currency_medium.jsx → _currency_variants.jsx} +13 -10
  21. data/app/pb_kits/playbook/pb_currency/docs/example.yml +8 -6
  22. data/app/pb_kits/playbook/pb_currency/docs/index.js +4 -3
  23. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_anti_patterns.html.erb +23 -0
  24. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +4 -4
  25. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +2 -2
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
  27. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +8 -8
  28. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.html.erb +27 -0
  29. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.jsx +44 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +4 -4
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +2 -2
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +1 -1
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +4 -2
  35. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -1
  36. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  37. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +1 -0
  38. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +2 -2
  39. data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -2
  40. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +0 -41
  41. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.md +1 -0
  42. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.html.erb +35 -0
  43. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +47 -0
  44. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +1 -1
  45. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  46. data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +7 -9
  48. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +22 -0
  49. data/app/pb_kits/playbook/pb_nav/_item.jsx +3 -0
  50. data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +47 -0
  51. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +2 -46
  52. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.html.erb +6 -0
  53. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.jsx +34 -0
  54. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.html.erb +6 -0
  55. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.jsx +33 -0
  56. data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -1
  57. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  58. data/app/pb_kits/playbook/pb_nav/item.rb +5 -2
  59. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +1 -1
  60. data/app/pb_kits/playbook/pb_rich_text_editor/_trix_styles.scss +375 -0
  61. data/app/pb_kits/playbook/pb_stat_change/_stat_change.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +8 -4
  63. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  64. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.html.erb +17 -0
  65. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +28 -0
  66. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.html.erb +20 -0
  67. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +31 -0
  68. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.md +1 -0
  69. data/app/pb_kits/playbook/pb_stat_change/docs/example.yml +6 -4
  70. data/app/pb_kits/playbook/pb_stat_change/docs/index.js +2 -0
  71. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +12 -7
  72. data/app/pb_kits/playbook/pb_table/_table.scss +1 -57
  73. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +1 -1
  74. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +1 -1
  75. data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +32 -0
  76. data/app/pb_kits/playbook/pb_table/styles/_all.scss +4 -3
  77. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +24 -0
  78. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +0 -1
  79. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +1 -1
  80. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +10 -0
  81. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  82. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +5 -1
  83. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +2 -3
  84. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +19 -3
  85. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
  86. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +10 -2
  87. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -0
  88. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  89. data/lib/playbook.rb +7 -17
  90. data/lib/playbook/engine.rb +0 -3
  91. data/lib/playbook/markdown/template_handler.rb +45 -0
  92. data/{app/pb_kits → lib}/playbook/props.rb +0 -0
  93. data/{app/pb_kits → lib}/playbook/props/array.rb +0 -0
  94. data/{app/pb_kits → lib}/playbook/props/base.rb +19 -3
  95. data/{app/pb_kits → lib}/playbook/props/boolean.rb +0 -0
  96. data/{app/pb_kits → lib}/playbook/props/date.rb +0 -0
  97. data/{app/pb_kits → lib}/playbook/props/enum.rb +0 -0
  98. data/{app/pb_kits → lib}/playbook/props/hash.rb +0 -0
  99. data/{app/pb_kits → lib}/playbook/props/hash_array.rb +0 -0
  100. data/{app/pb_kits → lib}/playbook/props/number.rb +0 -0
  101. data/{app/pb_kits → lib}/playbook/props/number_array.rb +0 -0
  102. data/{app/pb_kits → lib}/playbook/props/numeric.rb +0 -0
  103. data/{app/pb_kits → lib}/playbook/props/percentage.rb +0 -0
  104. data/{app/pb_kits → lib}/playbook/props/proc.rb +0 -0
  105. data/{app/pb_kits → lib}/playbook/props/string.rb +0 -0
  106. data/lib/playbook/version.rb +1 -1
  107. metadata +52 -30
  108. data/app/helpers/playbook/layout_helper.rb +0 -9
  109. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.html.erb +0 -21
  110. data/app/pb_kits/playbook/pb_table/styles/_mixins.scss +0 -0
@@ -3,7 +3,7 @@
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
5
  <%= pb_rails("body", props: { status: object.status }) do %>
6
- <%= pb_rails("icon", props: { fixed_width: true, icon: object.icon }) if object.icon %>
6
+ <%= pb_rails("icon", props: { fixed_width: true, icon: object.returned_icon }) if object.returned_icon %>
7
7
  <%= "#{object.value}%" if object.value %>
8
8
  <% end %>
9
9
  <% end %>
@@ -20,14 +20,18 @@ const iconMap = {
20
20
  type StatChangeProps = {
21
21
  change?: "increase" | "decrease" | "neutral",
22
22
  className?: string,
23
+ icon?: string,
23
24
  id?: string,
24
25
  value?: string | number,
25
26
  }
26
27
 
27
28
  const StatChange = (props: StatChangeProps) => {
28
- const { change = 'neutral', className, id, value } = props
29
+ const { change = 'neutral', className, icon, id, value } = props
29
30
  const status = statusMap[change] || 'neutral'
30
- const icon = iconMap[change]
31
+ let returnedIcon = iconMap[change]
32
+ if (icon) {
33
+ returnedIcon = icon
34
+ }
31
35
 
32
36
  return (
33
37
  <If condition={value}>
@@ -40,10 +44,10 @@ const StatChange = (props: StatChangeProps) => {
40
44
  id={id}
41
45
  >
42
46
  <Body status={status}>
43
- <If condition={icon}>
47
+ <If condition={returnedIcon}>
44
48
  <Icon
45
49
  fixed_width
46
- icon={icon}
50
+ icon={returnedIcon}
47
51
  />
48
52
  {' '}
49
53
  </If>
@@ -1,6 +1,6 @@
1
1
  <%= pb_rails("stat_change", props: {
2
2
  change: "increase",
3
- value: 28.4
3
+ value: 28.4,
4
4
  }) %>
5
5
 
6
6
  <br>
@@ -0,0 +1,17 @@
1
+ <%= pb_rails("stat_change", props: {
2
+ value: 28.4,
3
+ icon: "chart-line",
4
+ }) %>
5
+
6
+ <br>
7
+
8
+ <%= pb_rails("stat_change", props: {
9
+ value: 6.1,
10
+ icon: "chart-line-down",
11
+ }) %>
12
+
13
+ <br>
14
+
15
+ <%= pb_rails("stat_change", props: {
16
+ value: 102,
17
+ }) %>
@@ -0,0 +1,28 @@
1
+ import React from 'react'
2
+ import { StatChange } from '../../'
3
+
4
+ const StatChangeUnit = () => {
5
+ return (
6
+ <div>
7
+ <StatChange
8
+ icon="chart-line"
9
+ value="28.4"
10
+ />
11
+
12
+ <br />
13
+
14
+ <StatChange
15
+ icon="chart-line-down"
16
+ value={6.1}
17
+ />
18
+
19
+ <br />
20
+
21
+ <StatChange
22
+ value={102}
23
+ />
24
+ </div>
25
+ )
26
+ }
27
+
28
+ export default StatChangeUnit
@@ -0,0 +1,20 @@
1
+ <%= pb_rails("stat_change", props: {
2
+ change: "increase",
3
+ value: 28.4,
4
+ icon: "level-up",
5
+ }) %>
6
+
7
+ <br>
8
+
9
+ <%= pb_rails("stat_change", props: {
10
+ change: "decrease",
11
+ value: 6.1,
12
+ icon: "level-down",
13
+ }) %>
14
+
15
+ <br>
16
+
17
+ <%= pb_rails("stat_change", props: {
18
+ change: "neutral",
19
+ value: 102,
20
+ }) %>
@@ -0,0 +1,31 @@
1
+ import React from 'react'
2
+ import { StatChange } from '../../'
3
+
4
+ const StatChangeUnitTwo = () => {
5
+ return (
6
+ <div>
7
+ <StatChange
8
+ change="increase"
9
+ icon="level-up"
10
+ value="28.4"
11
+ />
12
+
13
+ <br />
14
+
15
+ <StatChange
16
+ change="decrease"
17
+ icon="level-down"
18
+ value={6.1}
19
+ />
20
+
21
+ <br />
22
+
23
+ <StatChange
24
+ change="neutral"
25
+ value={102}
26
+ />
27
+ </div>
28
+ )
29
+ }
30
+
31
+ export default StatChangeUnitTwo
@@ -0,0 +1 @@
1
+ Increase colors your icon GREEN & Decrease colors your icon RED.
@@ -1,9 +1,11 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - stat_change_default: Default
5
-
6
-
5
+ - stat_change_unit: Icon
6
+ - stat_change_unit_two: Colors
7
+
7
8
  react:
8
9
  - stat_change_default: Default
9
-
10
+ - stat_change_unit: Icon
11
+ - stat_change_unit_two: Colors
@@ -1 +1,3 @@
1
1
  export { default as StatChangeDefault } from './_stat_change_default.jsx'
2
+ export { default as StatChangeUnit } from './_stat_change_unit.jsx'
3
+ export { default as StatChangeUnitTwo } from './_stat_change_unit_two.jsx'
@@ -10,6 +10,7 @@ module Playbook
10
10
  prop :change, type: Playbook::Props::Enum,
11
11
  values: %w[neutral increase decrease],
12
12
  default: "neutral"
13
+ prop :icon, type: Playbook::Props::String
13
14
  prop :value, type: Playbook::Props::Numeric
14
15
 
15
16
  def status
@@ -23,14 +24,18 @@ module Playbook
23
24
  end
24
25
  end
25
26
 
26
- def icon
27
- case change
28
- when "increase"
29
- "arrow-up"
30
- when "decrease"
31
- "arrow-down"
27
+ def returned_icon
28
+ if icon
29
+ icon
32
30
  else
33
- false
31
+ case change
32
+ when "increase"
33
+ "arrow-up"
34
+ when "decrease"
35
+ "arrow-down"
36
+ else
37
+ false
38
+ end
34
39
  end
35
40
  end
36
41
 
@@ -1,57 +1 @@
1
- @import "styles/all";
2
- @import "../tokens/colors";
3
-
4
- $pb_table_row_kit_side_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
5
-
6
- @mixin pb_table_row_kit_side_highlight($background) {
7
- box-shadow: inset 4px 0 0 0 $background;
8
- border-top: 0px;
9
- }
10
-
11
- [class^=pb_table] {
12
- tbody {
13
- [class^=pb_table_row_kit] {
14
- @each $color_name, $color_value in $pb_table_row_kit_side_highlight_colors {
15
- &[class*=_side_highlight_#{$color_name}] {
16
- td {
17
- &:first-child {
18
- @include pb_table_row_kit_side_highlight($color_value);
19
- }
20
- }
21
- }
22
- }
23
- }
24
- }
25
- tr[align=center] th,
26
- tr th[align=center] {
27
- text-align: center !important;
28
- }
29
-
30
- tr[align=right] th,
31
- tr th[align=right] {
32
- text-align: right !important;
33
- }
34
-
35
- tr[shift=up] {
36
- vertical-align: top;
37
- }
38
- tr[shift=down] {
39
- vertical-align: bottom;
40
- }
41
-
42
- td[shift=up] {
43
- vertical-align: top;
44
- }
45
- td[shift=down] {
46
- vertical-align: bottom;
47
- }
48
-
49
- th[shift=up] {
50
- vertical-align: top;
51
- }
52
-
53
- th[shift=down] {
54
- vertical-align: bottom;
55
- }
56
- }
57
-
1
+ @import "styles/all";
@@ -22,7 +22,7 @@
22
22
  <td>Value 4a</td>
23
23
  <td>Value 5a</td>
24
24
  </tr>
25
- <tr shift="up">
25
+ <tr shift="middle">
26
26
  <td>
27
27
  Value 1b
28
28
  <br/>
@@ -27,7 +27,7 @@ const TableAlignmentShiftRow = () => {
27
27
  <td>{'Value 4a'}</td>
28
28
  <td>{'Value 5a'}</td>
29
29
  </tr>
30
- <tr shift="up">
30
+ <tr shift="middle">
31
31
  <td>
32
32
  {'Value 1b'}
33
33
  <br />
@@ -0,0 +1,32 @@
1
+ [class^=pb_table] {
2
+ tr {
3
+ vertical-align: top;
4
+ }
5
+
6
+ // Text Align
7
+ tr[align=center] th,
8
+ tr th[align=center] {
9
+ text-align: center !important;
10
+ }
11
+ tr[align=right] th,
12
+ tr th[align=right] {
13
+ text-align: right !important;
14
+ }
15
+
16
+ // Column Align
17
+ tr[shift=up],
18
+ td[shift=up],
19
+ th[shift=up] {
20
+ vertical-align: top;
21
+ }
22
+ tr[shift=middle],
23
+ td[shift=middle],
24
+ th[shift=middle] {
25
+ vertical-align: middle;
26
+ }
27
+ tr[shift=down],
28
+ td[shift=down],
29
+ th[shift=down] {
30
+ vertical-align: bottom;
31
+ }
32
+ }
@@ -1,12 +1,13 @@
1
- @import "variables";
2
- @import "mixins";
1
+ @import "../../tokens/colors";
3
2
 
3
+ @import "variables";
4
4
  @import "reset";
5
5
  @import "structure";
6
6
  @import "table-card";
7
7
  @import "content";
8
8
  @import "headers";
9
-
9
+ @import "side_highlight";
10
+ @import "alignment";
10
11
  @import "hover";
11
12
  @import "as-cards";
12
13
  @import "single-line";
@@ -0,0 +1,24 @@
1
+ @import "../../tokens/colors";
2
+
3
+ $pb_table_row_kit_side_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
4
+
5
+ @mixin pb_table_row_kit_side_highlight($background) {
6
+ box-shadow: inset 4px 0 0 0 $background;
7
+ border-top: 0px;
8
+ }
9
+
10
+ [class^=pb_table] {
11
+ tbody {
12
+ [class^=pb_table_row_kit] {
13
+ @each $color_name, $color_value in $pb_table_row_kit_side_highlight_colors {
14
+ &[class*=_side_highlight_#{$color_name}] {
15
+ td {
16
+ &:first-child {
17
+ @include pb_table_row_kit_side_highlight($color_value);
18
+ }
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
24
+ }
@@ -49,7 +49,6 @@ $tooltip_shadow: rgba(60, 106, 172, 0.18);
49
49
  border-style: solid;
50
50
  border-width: 10px;
51
51
  margin-bottom: 50px;
52
- margin-left: -10px;
53
52
  }
54
53
  &.show {
55
54
  opacity: 1;
@@ -6,4 +6,4 @@
6
6
  position: 'top'
7
7
  }) do %>
8
8
  Whoa. I'm a white tooltip.
9
- <% end %>
9
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <%= pb_rails("icon_circle", props: { icon: "paper-plane", id: "result-1-sample-email-link" }) %>
2
+
3
+ <%= pb_rails("tooltip", props: {
4
+ trigger_element_id: "result-1-sample-email-link",
5
+ tooltip_id: "sample-email-tooltip-result-1",
6
+ position: "top",
7
+ dark: true
8
+ }) do %>
9
+ Send Email
10
+ <% end %>
@@ -3,3 +3,4 @@ examples:
3
3
  rails:
4
4
  - tooltip_default: Default
5
5
  - tooltip_white: White
6
+ - tooltip_with_icon_circle: Icon Circle Tooptip
@@ -27,6 +27,8 @@ type Props = {
27
27
  async?: boolean,
28
28
  label?: string,
29
29
  loadOptions?: noop | string,
30
+ getOptionLabel?: () => any,
31
+ getOptionValue?: () => any,
30
32
  name?: string,
31
33
  }
32
34
 
@@ -38,7 +40,6 @@ type Props = {
38
40
  const Typeahead = (props: Props) => {
39
41
  const selectProps = {
40
42
  cacheOptions: true,
41
- defaultOptions: true,
42
43
  components: {
43
44
  Control,
44
45
  ClearIndicator,
@@ -50,6 +51,7 @@ const Typeahead = (props: Props) => {
50
51
  Placeholder,
51
52
  ValueContainer,
52
53
  },
54
+ defaultOptions: true,
53
55
  id: 'react-select-input',
54
56
  isClearable: true,
55
57
  isSearchable: true,
@@ -58,6 +60,8 @@ const Typeahead = (props: Props) => {
58
60
  }
59
61
 
60
62
  if (typeof(props.loadOptions) === 'string') selectProps.loadOptions = get(window, props.loadOptions)
63
+ if (typeof(props.getOptionLabel) === 'string') selectProps.getOptionLabel = get(window, props.getOptionLabel)
64
+ if (typeof(props.getOptionValue) === 'string') selectProps.getOptionValue = get(window, props.getOptionValue)
61
65
 
62
66
  const Tag = props.async ? AsyncSelect : Select
63
67
 
@@ -10,7 +10,6 @@ import {
10
10
  const Option = (props: any) => {
11
11
  const {
12
12
  imageUrl,
13
- label,
14
13
  } = props.data
15
14
 
16
15
  return (
@@ -21,12 +20,12 @@ const Option = (props: any) => {
21
20
  <User
22
21
  align="left"
23
22
  avatarUrl={imageUrl}
24
- name={label}
23
+ name={props.label}
25
24
  orientation="horizontal"
26
25
  />
27
26
  </When>
28
27
  <When condition={!imageUrl}>
29
- {label}
28
+ {props.label}
30
29
  </When>
31
30
  </Choose>
32
31
  </div>