playbook_ui 4.11.0.pre.alpha.pre.2 → 4.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/pages_controller.rb +1 -1
  3. data/app/helpers/playbook/pb_doc_helper.rb +55 -7
  4. data/app/pb_kits/playbook/_playbook.scss +4 -1
  5. data/app/pb_kits/playbook/data/menu.yml +3 -0
  6. data/app/pb_kits/playbook/index.js +3 -0
  7. data/app/pb_kits/playbook/packs/examples.js +6 -0
  8. data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +8 -5
  9. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -0
  10. data/app/pb_kits/playbook/pb_card/_card.html.erb +2 -1
  11. data/app/pb_kits/playbook/pb_card/_card.jsx +3 -0
  12. data/app/pb_kits/playbook/pb_card/_card.scss +2 -0
  13. data/app/pb_kits/playbook/pb_card/card.rb +8 -1
  14. data/app/pb_kits/playbook/pb_card/docs/_card_content.html.erb +1 -1
  15. data/app/pb_kits/playbook/pb_card/docs/_card_dark.html.erb +3 -0
  16. data/app/pb_kits/playbook/pb_card/docs/_card_dark.jsx +12 -0
  17. data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
  18. data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
  19. data/app/pb_kits/playbook/pb_filter/_filter.jsx +192 -56
  20. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -1
  21. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +47 -5
  22. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +52 -0
  24. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +40 -0
  25. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +48 -0
  26. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +51 -0
  27. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +18 -0
  28. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +48 -0
  29. data/app/pb_kits/playbook/pb_filter/docs/example.yml +6 -0
  30. data/app/pb_kits/playbook/pb_filter/docs/index.js +4 -0
  31. data/app/pb_kits/playbook/pb_filter/filter.rb +12 -1
  32. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +37 -26
  33. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +13 -9
  34. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.html.erb +19 -15
  35. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +46 -45
  36. data/app/pb_kits/playbook/pb_flex/docs/_flex_horizontal.html.erb +54 -50
  37. data/app/pb_kits/playbook/pb_flex/docs/_flex_horizontal.jsx +172 -171
  38. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.html.erb +19 -15
  39. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.jsx +48 -47
  40. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.html.erb +19 -15
  41. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +51 -50
  42. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +27 -23
  43. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +93 -92
  44. data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.html.erb +68 -64
  45. data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.jsx +192 -191
  46. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.html.erb +31 -27
  47. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +83 -82
  48. data/app/pb_kits/playbook/pb_kit/dateTime.js +23 -1
  49. data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +17 -0
  50. data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +19 -0
  51. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +96 -0
  52. data/app/pb_kits/playbook/pb_logistic/_logistic.scss +7 -0
  53. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.html.erb +27 -0
  54. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.jsx +39 -0
  55. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.html.erb +24 -0
  56. data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.jsx +35 -0
  57. data/app/pb_kits/playbook/pb_logistic/docs/example.yml +11 -0
  58. data/app/pb_kits/playbook/pb_logistic/docs/index.js +2 -0
  59. data/app/pb_kits/playbook/pb_logistic/logistic.rb +31 -0
  60. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +8 -2
  61. data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +9 -1
  62. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.html.erb +16 -0
  63. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +134 -0
  64. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +33 -0
  65. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_dark.html.erb +72 -0
  66. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_dark.jsx +81 -0
  67. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.html.erb +64 -0
  68. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.jsx +73 -0
  69. data/app/pb_kits/playbook/pb_time_range_inline/docs/example.yml +11 -0
  70. data/app/pb_kits/playbook/pb_time_range_inline/docs/index.js +2 -0
  71. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +72 -0
  72. data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +2 -1
  73. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +30 -9
  74. data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_with_context.html.erb → _typeahead_with_context_dark.html.erb} +2 -1
  75. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -1
  76. data/app/pb_kits/playbook/pb_typeahead/index.js +6 -4
  77. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +10 -2
  78. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.html.erb +7 -0
  79. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +66 -0
  80. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +11 -0
  81. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.html.erb +9 -0
  82. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.jsx +48 -0
  83. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.html.erb +1 -0
  84. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.jsx +14 -0
  85. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.html.erb +1 -0
  86. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.jsx +14 -0
  87. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.html.erb +3 -0
  88. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.jsx +14 -0
  89. data/app/pb_kits/playbook/pb_weekday_stacked/docs/example.yml +15 -0
  90. data/app/pb_kits/playbook/pb_weekday_stacked/docs/index.js +4 -0
  91. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.rb +61 -0
  92. data/app/pb_kits/playbook/tokens/_colors.scss +2 -2
  93. data/app/views/layouts/playbook/_sidebar.html.erb +26 -10
  94. data/app/views/playbook/pages/kit_category_show.html.erb +14 -0
  95. data/app/views/playbook/pages/kit_show.html.erb +33 -0
  96. data/app/views/playbook/pages/kits.html.erb +12 -0
  97. data/lib/playbook/version.rb +1 -1
  98. metadata +52 -24
  99. data/app/views/playbook/pages/kit_category_show.html.slim +0 -10
  100. data/app/views/playbook/pages/kit_show.html.slim +0 -23
  101. data/app/views/playbook/pages/kits.html.slim +0 -10
@@ -1,31 +1,35 @@
1
- <%= pb_rails("title", props: {size: 4, text: "Wrap"}) %><br/>
1
+ <div class="flex-doc-example">
2
2
 
3
- <%= pb_rails("flex", props: {wrap: true}) do %>
4
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
5
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
6
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
7
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
8
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
9
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
10
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
11
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
12
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
13
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
14
- <% end %>
3
+ <%= pb_rails("title", props: {size: 4, text: "Wrap"}) %><br/>
15
4
 
16
- <br/><br/>
5
+ <%= pb_rails("flex", props: {wrap: true}) do %>
6
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
7
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
8
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
9
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
10
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
11
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
12
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
13
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
14
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
15
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
16
+ <% end %>
17
17
 
18
- <%= pb_rails("title", props: {size: 4, text: "No Wrap"}) %><br/>
18
+ <br/><br/>
19
19
 
20
- <%= pb_rails("flex") do %>
21
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
22
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
23
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
24
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
25
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
26
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
27
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
28
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
29
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
30
- <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
31
- <% end %>
20
+ <%= pb_rails("title", props: {size: 4, text: "No Wrap"}) %><br/>
21
+
22
+ <%= pb_rails("flex") do %>
23
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
24
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
25
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
26
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
27
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
28
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
29
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
30
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
31
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
32
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
33
+ <% end %>
34
+
35
+ </div>
@@ -4,89 +4,90 @@ import { Body, Flex, FlexItem, Title } from '../..'
4
4
  const FlexWrap = () => {
5
5
  return (
6
6
  <>
7
- <Body
8
- text="Resize your browser"
9
- />
10
- <Title
11
- size={4}
12
- text="Wrap"
13
- />
14
- <br />
15
- <Flex
16
- className="bg_light"
17
- wrap
18
- >
19
- <FlexItem fixedSize="300px">
20
- {'1'}
21
- </FlexItem>
22
- <FlexItem fixedSize="300px">
23
- {'2'}
24
- </FlexItem>
25
- <FlexItem fixedSize="300px">
26
- {'3'}
27
- </FlexItem>
28
- <FlexItem fixedSize="300px">
29
- {'4'}
30
- </FlexItem>
31
- <FlexItem fixedSize="300px">
32
- {'5'}
33
- </FlexItem>
34
- <FlexItem fixedSize="300px">
35
- {'6'}
36
- </FlexItem>
37
- <FlexItem fixedSize="300px">
38
- {'7'}
39
- </FlexItem>
40
- <FlexItem fixedSize="300px">
41
- {'8'}
42
- </FlexItem>
43
- <FlexItem fixedSize="300px">
44
- {'9'}
45
- </FlexItem>
46
- <FlexItem fixedSize="300px">
47
- {'10'}
48
- </FlexItem>
49
- </Flex>
50
-
51
- <br />
52
- <Title
53
- size={4}
54
- text="No Wrap"
55
- />
56
- <br />
57
- <Flex className="bg_light wide">
58
- <FlexItem fixedSize="300px">
59
- {'1'}
60
- </FlexItem>
61
- <FlexItem fixedSize="300px">
62
- {'2'}
63
- </FlexItem>
64
- <FlexItem fixedSize="300px">
65
- {'3'}
66
- </FlexItem>
67
- <FlexItem fixedSize="300px">
68
- {'4'}
69
- </FlexItem>
70
- <FlexItem fixedSize="300px">
71
- {'5'}
72
- </FlexItem>
73
- <FlexItem fixedSize="300px">
74
- {'6'}
75
- </FlexItem>
76
- <FlexItem fixedSize="300px">
77
- {'7'}
78
- </FlexItem>
79
- <FlexItem fixedSize="300px">
80
- {'8'}
81
- </FlexItem>
82
- <FlexItem fixedSize="300px">
83
- {'9'}
84
- </FlexItem>
85
- <FlexItem fixedSize="300px">
86
- {'10'}
87
- </FlexItem>
88
- </Flex>
7
+ <div className="flex-doc-example">
8
+ <Body
9
+ text="Resize your browser"
10
+ />
11
+ <Title
12
+ size={4}
13
+ text="Wrap"
14
+ />
15
+ <br />
16
+ <Flex
17
+ className="bg_light"
18
+ wrap
19
+ >
20
+ <FlexItem fixedSize="300px">
21
+ {'1'}
22
+ </FlexItem>
23
+ <FlexItem fixedSize="300px">
24
+ {'2'}
25
+ </FlexItem>
26
+ <FlexItem fixedSize="300px">
27
+ {'3'}
28
+ </FlexItem>
29
+ <FlexItem fixedSize="300px">
30
+ {'4'}
31
+ </FlexItem>
32
+ <FlexItem fixedSize="300px">
33
+ {'5'}
34
+ </FlexItem>
35
+ <FlexItem fixedSize="300px">
36
+ {'6'}
37
+ </FlexItem>
38
+ <FlexItem fixedSize="300px">
39
+ {'7'}
40
+ </FlexItem>
41
+ <FlexItem fixedSize="300px">
42
+ {'8'}
43
+ </FlexItem>
44
+ <FlexItem fixedSize="300px">
45
+ {'9'}
46
+ </FlexItem>
47
+ <FlexItem fixedSize="300px">
48
+ {'10'}
49
+ </FlexItem>
50
+ </Flex>
89
51
 
52
+ <br />
53
+ <Title
54
+ size={4}
55
+ text="No Wrap"
56
+ />
57
+ <br />
58
+ <Flex className="bg_light wide">
59
+ <FlexItem fixedSize="300px">
60
+ {'1'}
61
+ </FlexItem>
62
+ <FlexItem fixedSize="300px">
63
+ {'2'}
64
+ </FlexItem>
65
+ <FlexItem fixedSize="300px">
66
+ {'3'}
67
+ </FlexItem>
68
+ <FlexItem fixedSize="300px">
69
+ {'4'}
70
+ </FlexItem>
71
+ <FlexItem fixedSize="300px">
72
+ {'5'}
73
+ </FlexItem>
74
+ <FlexItem fixedSize="300px">
75
+ {'6'}
76
+ </FlexItem>
77
+ <FlexItem fixedSize="300px">
78
+ {'7'}
79
+ </FlexItem>
80
+ <FlexItem fixedSize="300px">
81
+ {'8'}
82
+ </FlexItem>
83
+ <FlexItem fixedSize="300px">
84
+ {'9'}
85
+ </FlexItem>
86
+ <FlexItem fixedSize="300px">
87
+ {'10'}
88
+ </FlexItem>
89
+ </Flex>
90
+ </div>
90
91
  </>
91
92
  )
92
93
  }
@@ -10,6 +10,8 @@ type DateTimeType = {
10
10
  zone?: String,
11
11
  }
12
12
 
13
+ const ABBR_DAYS = ['SU', 'M', 'T', 'W', 'TH', 'F', 'S']
14
+
13
15
  export default class DateTime {
14
16
  constructor({ value, zone = 'America/New_York' }: DateTimeType) {
15
17
  this.value = this.convertToTimestampZone(value, zone)
@@ -20,7 +22,7 @@ export default class DateTime {
20
22
  }
21
23
 
22
24
  convertToTimezone() {
23
- return this.value.strftime('%a')
25
+ return this.value.strftime('%Z')
24
26
  }
25
27
 
26
28
  toYear() {
@@ -31,6 +33,10 @@ export default class DateTime {
31
33
  return this.value.strftime('%b')
32
34
  }
33
35
 
36
+ toMonthNum() {
37
+ return this.value.strftime('%-m')
38
+ }
39
+
34
40
  toMonthFull() {
35
41
  return this.value.strftime('%B')
36
42
  }
@@ -39,10 +45,26 @@ export default class DateTime {
39
45
  return this.value.strftime('%e')
40
46
  }
41
47
 
48
+ toDayAbbr() {
49
+ return ABBR_DAYS[this.value.day()]
50
+ }
51
+
42
52
  toWeekday() {
43
53
  return this.value.strftime('%a')
44
54
  }
45
55
 
56
+ toHour() {
57
+ return this.value.strftime('%l')
58
+ }
59
+
60
+ toMinute() {
61
+ return this.value.strftime('%M')
62
+ }
63
+
64
+ toMeridian() {
65
+ return this.value.strftime('%P')[0]
66
+ }
67
+
46
68
  toIso() {
47
69
  return this.value.toISOString()
48
70
  }
@@ -26,6 +26,11 @@ module Playbook
26
26
  @value.strftime("%a")
27
27
  end
28
28
 
29
+ def to_day_of_week_compact
30
+ abbr_days = %w[SU M T W TH F S]
31
+ abbr_days[@value.strftime("%w").to_i]
32
+ end
33
+
29
34
  def to_year
30
35
  @value.strftime("%Y")
31
36
  end
@@ -34,6 +39,14 @@ module Playbook
34
39
  @value.strftime("%^b")
35
40
  end
36
41
 
42
+ def to_month_number
43
+ @value.strftime("%m")
44
+ end
45
+
46
+ def to_unpadded_month_number
47
+ @value.strftime("%-m")
48
+ end
49
+
37
50
  def to_month_downcase
38
51
  @value.strftime("%b")
39
52
  end
@@ -46,6 +59,10 @@ module Playbook
46
59
  @value.strftime("%e")
47
60
  end
48
61
 
62
+ def to_unpadded_day
63
+ @value.strftime("%-d")
64
+ end
65
+
49
66
  def to_hour
50
67
  @value.strftime("%l")
51
68
  end
@@ -0,0 +1,19 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) do %>
5
+ <%= pb_rails("body", props: {color: "light" }) do %>
6
+ <%= pb_rails("caption", props: { text: "Project" }) %>
7
+ <%= pb_rails("icon", props: { icon: "home", fixed_width: true }) %>
8
+ <%= object.project_number%>
9
+ <% if object.link %>
10
+ <%= link_to object.link, class: "pb_logistic_kit_links" do %>
11
+ <%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4, dark: object.dark }) %>
12
+ <%= pb_rails("title", props: { text: object.date_element, tag: "span", size: 4, dark: object.dark }) if object.date.present? %>
13
+ <% end %>
14
+ <% else %>
15
+ <%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4, dark: object.dark }) %>
16
+ <%= pb_rails("title", props: { text: object.date_element, tag: "span", size: 4, dark: object.dark} ) if object.date.present? %>
17
+ <% end %>
18
+ <% end %>
19
+ <% end %>
@@ -0,0 +1,96 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+ import DateTime from '../pb_kit/dateTime.js'
6
+ import { Body, Caption, Icon, Title } from '../'
7
+
8
+ const dateString = (value: DateTime) => {
9
+ const month = value.toMonthNumber()
10
+ const day = value.toDay()
11
+
12
+ return ` · ${month}/${day}`
13
+ }
14
+
15
+ type LogisticProps = {
16
+ dark?: Boolean,
17
+ date: String,
18
+ link?: String,
19
+ projectName: String,
20
+ projectNumber: Number,
21
+ }
22
+
23
+ const Logistic = ({
24
+ dark = false,
25
+ date,
26
+ link,
27
+ projectName,
28
+ projectNumber,
29
+ }: LogisticProps) => {
30
+ const formattedDate = new DateTime({ value: date })
31
+
32
+ return (
33
+ <div
34
+ className={classnames('pb_logistic_kit')}
35
+ >
36
+ <Body color="light">
37
+ <Caption text="Project" />
38
+ <Icon
39
+ fixedWidth
40
+ icon="home"
41
+ />
42
+
43
+ {` ${projectNumber}`}
44
+
45
+ <Choose>
46
+ <When condition={link}>
47
+ <a
48
+ className="pb_logistic_kit_links"
49
+ href={link}
50
+ >
51
+ <Choose>
52
+ <When condition={date}>
53
+ <Title
54
+ size={4}
55
+ tag="span"
56
+ text={' ' + projectName + dateString(formattedDate)}
57
+ />
58
+ </When>
59
+ <Otherwise>
60
+ <Title
61
+ size={4}
62
+ tag="span"
63
+ text={' ' + projectName}
64
+ />
65
+ </Otherwise>
66
+ </Choose>
67
+ </a>
68
+ </When>
69
+ <Otherwise>
70
+ <Choose>
71
+ <When condition={date}>
72
+ <Title
73
+ dark={dark}
74
+ size={4}
75
+ tag="span"
76
+ text={' ' + projectName + dateString(formattedDate)}
77
+ />
78
+ </When>
79
+ <Otherwise>
80
+ <Title
81
+ dark={dark}
82
+ size={4}
83
+ tag="span"
84
+ text={' ' + projectName}
85
+ />
86
+ </Otherwise>
87
+ </Choose>
88
+
89
+ </Otherwise>
90
+ </Choose>
91
+ </Body>
92
+ </div>
93
+ )
94
+ }
95
+
96
+ export default Logistic
@@ -0,0 +1,7 @@
1
+ [class^=pb_logistic_kit] {
2
+ .pb_logistic_kit_links {
3
+ span {
4
+ color: $data_1;
5
+ }
6
+ }
7
+ }