playbook_ui 5.5.1 → 6.0.1.pre.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -2
  3. data/app/pb_kits/playbook/data/menu.yml +0 -2
  4. data/app/pb_kits/playbook/index.js +0 -1
  5. data/app/pb_kits/playbook/packs/examples.js +0 -4
  6. data/app/pb_kits/playbook/pb_button/_button.jsx +2 -0
  7. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +3 -0
  8. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +21 -11
  9. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +10 -0
  10. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +14 -0
  11. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.html.erb +26 -0
  12. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.html.erb +20 -0
  13. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.html.erb +22 -0
  14. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +5 -1
  15. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +6 -2
  16. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  17. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  18. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +3 -1
  19. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +3 -1
  20. data/app/pb_kits/playbook/pb_form/form_builder.rb +2 -0
  21. data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +26 -0
  22. data/app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb +1 -0
  23. data/app/pb_kits/playbook/pb_image/_image.html.erb +2 -1
  24. data/app/pb_kits/playbook/pb_image/_image.jsx +31 -8
  25. data/app/pb_kits/playbook/pb_image/docs/_default_image.jsx +3 -3
  26. data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +20 -2
  27. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +109 -5
  28. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +0 -10
  29. data/app/pb_kits/playbook/pb_label_value/docs/_description.md +3 -1
  30. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details.html.erb +39 -0
  31. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details.jsx +50 -0
  32. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details.md +1 -0
  33. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_dark.html.erb +43 -0
  34. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_dark.jsx +54 -0
  35. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples.html.erb +72 -0
  36. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples.jsx +92 -0
  37. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples_dark.html.erb +80 -0
  38. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples_dark.jsx +101 -0
  39. data/app/pb_kits/playbook/pb_label_value/docs/example.yml +9 -0
  40. data/app/pb_kits/playbook/pb_label_value/docs/index.js +5 -0
  41. data/app/pb_kits/playbook/pb_label_value/label_value.rb +19 -2
  42. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +5 -1
  43. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +12 -1
  44. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.html.erb +9 -0
  45. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.jsx +26 -0
  46. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.md +1 -0
  47. data/app/pb_kits/playbook/pb_progress_simple/docs/example.yml +2 -0
  48. data/app/pb_kits/playbook/pb_progress_simple/docs/index.js +2 -0
  49. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.rb +8 -1
  50. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.html.erb +2 -2
  51. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +24 -10
  52. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +3 -1
  53. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +6 -0
  54. data/app/pb_kits/playbook/pb_title/_title.scss +3 -4
  55. data/app/pb_kits/playbook/pb_title/title.rb +2 -2
  56. data/app/pb_kits/playbook/plugins/pb_chart.js +49 -4
  57. data/lib/playbook/version.rb +1 -1
  58. metadata +20 -23
  59. data/app/pb_kits/playbook/pb_installer/_installer.html.erb +0 -16
  60. data/app/pb_kits/playbook/pb_installer/_installer.jsx +0 -54
  61. data/app/pb_kits/playbook/pb_installer/_installer.scss +0 -7
  62. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.html.erb +0 -8
  63. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.jsx +0 -16
  64. data/app/pb_kits/playbook/pb_installer/docs/example.yml +0 -9
  65. data/app/pb_kits/playbook/pb_installer/docs/index.js +0 -1
  66. data/app/pb_kits/playbook/pb_installer/installer.rb +0 -18
  67. data/app/pb_kits/playbook/pb_label_value/docs/index.html.erb +0 -25
  68. data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +0 -20
  69. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +0 -111
  70. data/app/pb_kits/playbook/pb_logistic/_logistic.scss +0 -7
  71. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.html.erb +0 -27
  72. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.jsx +0 -39
  73. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.html.erb +0 -24
  74. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.jsx +0 -35
  75. data/app/pb_kits/playbook/pb_logistic/docs/example.yml +0 -11
  76. data/app/pb_kits/playbook/pb_logistic/docs/index.js +0 -2
  77. data/app/pb_kits/playbook/pb_logistic/logistic.rb +0 -31
@@ -0,0 +1,92 @@
1
+ import React from 'react'
2
+ import { Flex, LabelValue, Title } from '../../'
3
+
4
+ const LabelValueDetailsExamples = () => {
5
+ return (
6
+ <div>
7
+ <Title
8
+ marginBottom="sm"
9
+ size={4}
10
+ text="Patient Profile"
11
+ />
12
+
13
+ <Flex>
14
+ <Flex
15
+ marginRight="lg"
16
+ orientation="column"
17
+ >
18
+ <LabelValue
19
+ icon="user"
20
+ label="Age"
21
+ paddingBottom="sm"
22
+ title="24 yrs old"
23
+ variant="details"
24
+ />
25
+ <LabelValue
26
+ icon="weight"
27
+ label="Weight"
28
+ title="91 kg"
29
+ variant="details"
30
+ />
31
+ </Flex>
32
+ <Flex
33
+ orientation="column"
34
+ >
35
+ <LabelValue
36
+ icon="tint"
37
+ label="Blood"
38
+ paddingBottom="sm"
39
+ title="A +"
40
+ variant="details"
41
+ />
42
+ <LabelValue
43
+ icon="arrows-v"
44
+ label="Height"
45
+ title="187 cm"
46
+ variant="details"
47
+ />
48
+ </Flex>
49
+ </Flex>
50
+
51
+ <br />
52
+ <br />
53
+ <br />
54
+
55
+ <Title
56
+ marginBottom="sm"
57
+ size={4}
58
+ text="Workout Schedule"
59
+ />
60
+
61
+ <LabelValue
62
+ active
63
+ description="6 sets • 8 reps • 40-100 kg"
64
+ icon="dumbbell"
65
+ label="Chest"
66
+ paddingBottom="sm"
67
+ title="Bench Press"
68
+ variant="details"
69
+ />
70
+ <LabelValue
71
+ active
72
+ description="5 sets • 12 reps • 20-40 kg"
73
+ icon="dumbbell"
74
+ label="Biceps"
75
+ paddingBottom="sm"
76
+ title="Barbell Curl"
77
+ variant="details"
78
+ />
79
+ <LabelValue
80
+ active
81
+ description="8 sets • 8 reps • 40-120 kg"
82
+ icon="dumbbell"
83
+ label="Back"
84
+ paddingBottom="sm"
85
+ title="Back Squat"
86
+ variant="details"
87
+ />
88
+ </div>
89
+ )
90
+ }
91
+
92
+ export default LabelValueDetailsExamples
@@ -0,0 +1,80 @@
1
+ <%= pb_rails("title", props: { text: "Patient Profile", tag: "h4", size: 4, margin_bottom: "sm", dark: true }) %>
2
+
3
+ <%= pb_rails("flex") do %>
4
+ <%= pb_rails("flex", props: {orientation: "column", margin_right: "lg" }) do %>
5
+
6
+ <%= pb_rails("label_value", props: {
7
+ variant: "details",
8
+ label: "Age",
9
+ icon: "user",
10
+ title: "24 yrs old",
11
+ padding_bottom: "sm",
12
+ dark: true
13
+ }) %>
14
+ <%= pb_rails("label_value", props: {
15
+ variant: "details",
16
+ label: "Weight",
17
+ icon: "weight",
18
+ title: "91 kg",
19
+ dark: true
20
+ }) %>
21
+
22
+ <% end %>
23
+ <%= pb_rails("flex", props: {orientation: "column"}) do %>
24
+
25
+ <%= pb_rails("label_value", props: {
26
+ variant: "details",
27
+ label: "Blood",
28
+ icon: "tint",
29
+ title: "A +",
30
+ padding_bottom: "sm",
31
+ dark: true
32
+ }) %>
33
+ <%= pb_rails("label_value", props: {
34
+ variant: "details",
35
+ label: "Height",
36
+ icon: "arrows-v",
37
+ title: "187 cm",
38
+ dark: true
39
+ }) %>
40
+
41
+ <% end %>
42
+ <% end %>
43
+
44
+
45
+ <br><br><br>
46
+
47
+ <%= pb_rails("title", props: { text: "Workout Schedule", tag: "h4", size: 4, margin_bottom: "sm", dark: true }) %>
48
+
49
+ <%= pb_rails("label_value", props: {
50
+ variant: "details",
51
+ label: "Chest",
52
+ icon: "dumbbell",
53
+ description: "6 sets • 8 reps • 40-100 kg",
54
+ title: "Bench Press",
55
+ padding_bottom: "sm",
56
+ dark: true,
57
+ active: true
58
+ }) %>
59
+
60
+ <%= pb_rails("label_value", props: {
61
+ variant: "details",
62
+ label: "Biceps",
63
+ icon: "dumbbell",
64
+ description: "5 sets • 12 reps • 20-40 kg",
65
+ title: "Barbell Curl",
66
+ padding_bottom: "sm",
67
+ dark: true,
68
+ active: true
69
+ }) %>
70
+
71
+ <%= pb_rails("label_value", props: {
72
+ variant: "details",
73
+ label: "Back",
74
+ icon: "dumbbell",
75
+ description: "8 sets • 8 reps • 40-120 kg",
76
+ title: "Back Squat",
77
+ padding_bottom: "sm",
78
+ dark: true,
79
+ active: true
80
+ }) %>
@@ -0,0 +1,101 @@
1
+ import React from 'react'
2
+ import { Flex, LabelValue, Title } from '../../'
3
+
4
+ const LabelValueDetailsExamplesDark = () => {
5
+ return (
6
+ <div>
7
+ <Title
8
+ dark
9
+ marginBottom="sm"
10
+ size={4}
11
+ text="Patient Profile"
12
+ />
13
+
14
+ <Flex>
15
+ <Flex
16
+ marginRight="lg"
17
+ orientation="column"
18
+ >
19
+ <LabelValue
20
+ dark
21
+ icon="user"
22
+ label="Age"
23
+ paddingBottom="sm"
24
+ title="24 yrs old"
25
+ variant="details"
26
+ />
27
+ <LabelValue
28
+ dark
29
+ icon="weight"
30
+ label="Weight"
31
+ title="91 kg"
32
+ variant="details"
33
+ />
34
+ </Flex>
35
+ <Flex
36
+ orientation="column"
37
+ >
38
+ <LabelValue
39
+ dark
40
+ icon="tint"
41
+ label="Blood"
42
+ paddingBottom="sm"
43
+ title="A +"
44
+ variant="details"
45
+ />
46
+ <LabelValue
47
+ dark
48
+ icon="arrows-v"
49
+ label="Height"
50
+ title="187 cm"
51
+ variant="details"
52
+ />
53
+ </Flex>
54
+ </Flex>
55
+
56
+ <br />
57
+ <br />
58
+ <br />
59
+
60
+ <Title
61
+ dark
62
+ marginBottom="sm"
63
+ size={4}
64
+ text="Workout Schedule"
65
+ />
66
+
67
+ <LabelValue
68
+ active
69
+ dark
70
+ description="6 sets • 8 reps • 40-100 kg"
71
+ icon="dumbbell"
72
+ label="Chest"
73
+ paddingBottom="sm"
74
+ title="Bench Press"
75
+ variant="details"
76
+ />
77
+ <LabelValue
78
+ active
79
+ dark
80
+ description="5 sets • 12 reps • 20-40 kg"
81
+ icon="dumbbell"
82
+ label="Biceps"
83
+ paddingBottom="sm"
84
+ title="Barbell Curl"
85
+ variant="details"
86
+ />
87
+ <LabelValue
88
+ active
89
+ dark
90
+ description="8 sets • 8 reps • 40-120 kg"
91
+ icon="dumbbell"
92
+ label="Back"
93
+ paddingBottom="sm"
94
+ title="Back Squat"
95
+ variant="details"
96
+ />
97
+ </div>
98
+ )
99
+ }
100
+
101
+ export default LabelValueDetailsExamplesDark
@@ -2,9 +2,18 @@ examples:
2
2
 
3
3
  rails:
4
4
  - label_value_default: Default
5
+ - label_value_details: Details
6
+ - label_value_details_examples: Other Examples
5
7
  - label_value_dark: Dark
8
+ - label_value_details_dark: Details Dark
9
+ - label_value_details_examples_dark: Other Examples Dark
6
10
 
7
11
 
8
12
  react:
9
13
  - label_value_default: Default
14
+ - label_value_details: Details
15
+ - label_value_details_examples: Other Examples
10
16
  - label_value_dark: Dark
17
+ - label_value_details_dark: Details Dark
18
+ - label_value_details_examples_dark: Other Examples Dark
19
+
@@ -1,2 +1,7 @@
1
1
  export { default as LabelValueDefault } from './_label_value_default.jsx'
2
+ export { default as LabelValueDetails } from './_label_value_details.jsx'
3
+ export { default as LabelValueDetailsExamples } from './_label_value_details_examples.jsx'
4
+
2
5
  export { default as LabelValueDark } from './_label_value_dark.jsx'
6
+ export { default as LabelValueDetailsDark } from './_label_value_details_dark.jsx'
7
+ export { default as LabelValueDetailsExamplesDark } from './_label_value_details_examples_dark.jsx'
@@ -8,11 +8,24 @@ module Playbook
8
8
  partial "pb_label_value/label_value"
9
9
 
10
10
  prop :label, required: true
11
- prop :value, required: true
11
+ prop :value
12
12
  prop :dark, type: Playbook::Props::Boolean, default: false
13
+ prop :variant, type: Playbook::Props::Enum,
14
+ values: %w[default details],
15
+ default: "default"
16
+ prop :icon
17
+ prop :description
18
+ prop :title
19
+ prop :date
20
+ prop :active, type: Playbook::Props::Boolean, default: false
21
+
13
22
 
14
23
  def classname
15
- generate_classname("pb_label_value_kit", dark_class)
24
+ generate_classname("pb_label_value_kit", variant_class, dark_class)
25
+ end
26
+
27
+ def date_element
28
+ "&middot; #{date.strftime('%m/%d')}".html_safe
16
29
  end
17
30
 
18
31
  private
@@ -20,6 +33,10 @@ module Playbook
20
33
  def dark_class
21
34
  dark ? "dark" : nil
22
35
  end
36
+
37
+ def variant_class
38
+ variant == "details" ? "details" : nil
39
+ end
23
40
  end
24
41
  end
25
42
  end
@@ -14,6 +14,7 @@ type ProgressSimpleProps = {
14
14
  muted: Boolean,
15
15
  percent: String,
16
16
  value: Number,
17
+ variant?: "default" | "positive" | "negative",
17
18
  width: String,
18
19
  }
19
20
 
@@ -26,12 +27,15 @@ const ProgressSimple = (props: ProgressSimpleProps) => {
26
27
  muted = false,
27
28
  percent = '',
28
29
  value,
30
+ variant = 'default',
29
31
  width = '100%',
30
32
  } = props
31
33
  const styles = {
32
34
  width: width,
33
35
  }
34
36
 
37
+ const variantStyle = variant == 'default' ? '' : variant
38
+
35
39
  const valueStyles = {
36
40
  width: percent ? `${percent}%` : `${(value * 100) / max}%`,
37
41
  }
@@ -44,7 +48,7 @@ const ProgressSimple = (props: ProgressSimpleProps) => {
44
48
 
45
49
  const kitClass = classnames(
46
50
  className,
47
- buildCss('pb_progress_simple_kit', align, { muted: muted })
51
+ buildCss('pb_progress_simple_kit', { muted: muted }, variantStyle, align)
48
52
  )
49
53
 
50
54
  return (
@@ -1,5 +1,6 @@
1
1
  @import "../tokens/colors";
2
2
  @import "../tokens/opacity";
3
+ @import "../tokens/colors";
3
4
 
4
5
  $pb_progress_simple_height: 4px;
5
6
 
@@ -22,8 +23,18 @@ $pb_progress_simple_height: 4px;
22
23
  height: $pb_progress_simple_height;
23
24
  border-radius: $pb_progress_simple_height/2;
24
25
  background: rgba($primary, $opacity-1);
26
+ &[class*=_positive] {
27
+ .progress_simple_value {
28
+ background: $success;
29
+ }
30
+ }
31
+ &[class*=_negative] {
32
+ .progress_simple_value {
33
+ background: $error;
34
+ }
35
+ }
25
36
 
26
- .progress_simple_value {
37
+ [class^=progress_simple_value] {
27
38
  width: 0%;
28
39
  height: 100%;
29
40
  border-radius: $pb_progress_simple_height/2;
@@ -0,0 +1,9 @@
1
+ <%= pb_rails("progress_simple", props: { percent: 64.9, variant: "default" }) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("progress_simple", props: { percent: 90, variant: "positive" }) %>
6
+
7
+ <br>
8
+
9
+ <%= pb_rails("progress_simple", props: { percent: 10, variant: "negative" }) %>
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+ import { ProgressSimple } from '../..'
3
+
4
+ const ProgressSimpleVariants = () => {
5
+ return (
6
+ <div>
7
+ <ProgressSimple percent={64.5} />
8
+
9
+ <br />
10
+
11
+ <ProgressSimple
12
+ percent={90}
13
+ variant="positive"
14
+ />
15
+
16
+ <br />
17
+
18
+ <ProgressSimple
19
+ percent={10}
20
+ variant="negative"
21
+ />
22
+ </div>
23
+ )
24
+ }
25
+
26
+ export default ProgressSimpleVariants
@@ -0,0 +1 @@
1
+ Progress Simple can pass colors - primary, green and red. Variants names are `default`, `positive`, and `negative` respectively.
@@ -4,6 +4,7 @@ examples:
4
4
  - progress_simple_default: Default
5
5
  - progress_simple_value: Setting Values
6
6
  - progress_simple_width: Progress Bar Width
7
+ - progress_simple_variants: Variants
7
8
  - progress_simple_muted: Muted
8
9
  - progress_simple_align: Align
9
10
 
@@ -12,6 +13,7 @@ examples:
12
13
  - progress_simple_default: Default
13
14
  - progress_simple_value: Setting Values
14
15
  - progress_simple_width: Progress Bar Width
16
+ - progress_simple_variants: Variants
15
17
  - progress_simple_muted: Muted
16
18
  - progress_simple_align: Align
17
19