playbook_ui 6.4.1 → 6.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a08150d876a7028d6cc8b9118e531fa9a16ba7c9c4fa77f7ffa4faf7cab44c7
4
- data.tar.gz: ae48bc22ae443725b97cac2b5ab18d4de996462b6331e4fa4d7d92f98996b825
3
+ metadata.gz: 043d8ee7ffc205305e575f5a1b2dbc33a7044509a8907c19b1fdd2496df7995c
4
+ data.tar.gz: 7c38d3f71179c5f552836a74d7bb85c84035a304d3190b90f3a5d0a9be043a46
5
5
  SHA512:
6
- metadata.gz: 41f73dc0530334c77b1ab50f920f7bb570db7cea6864d1eb86dcf63da41995c88c2db83932bbb97b9156a2d4372c01d42f8e943e53d875ac12216a68b8dc7142
7
- data.tar.gz: 345d508437f8769cf5abd601e21d973628bea9455a90904041952f549b8a54df4bf17f2c7893ccb6679aaa4c5ba824af1b0ff47b199d546ce7f8ac383e943266
6
+ metadata.gz: 6c4ba1186d30795d4dc2a85ab19fe898b9ef043d1cb42e0db2aea26df4b7a0ea34ffd3e39f7272db76deb03533777d34798c3e1f9aac0a514d4d0133d3dbac2c
7
+ data.tar.gz: f6a7e045c41272b2a13c2035fe0b2100d792ab969f2cfd968008646b2c0c1a51bcd5ee467c831a4aba06a24fdebf7c662e7845e8d0e4f41af6af6e2d67070b80
@@ -1,38 +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
- <!-- icon -->
8
- <% if object.show_icon %>
9
- <%= pb_rails("body", props: {
10
- color: "light",
11
- tag: "div",
12
- }) do %>
13
- <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
14
- <% end %>
15
- <% end %>
16
-
17
- <!-- day_of_week -->
18
- <% if object.show_day_of_week %>
19
- <%= pb_rails("title", props: { tag: "div", text: object.date_day_of_week, size: 4 }) %>
20
- <%= pb_rails("body", props: {
21
- text: "•",
22
- color: "light",
23
- tag: "div",
24
- }) %>
25
- <% end %>
26
-
27
- <!-- month day, year -->
28
-
29
- <%# if not current year %>
30
- <% if object.year.to_s == DateTime.now.year.to_s %>
31
- <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}", size: 4 }) %>
32
- <%# if is current year %>
33
- <% else %>
34
- <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}, #{object.year}", size: 4 }) %>
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 }) %>
10
+ <% else %>
11
+ <%= pb_rails("title", props: { text: object.xs_date, size: 4 }) %>
35
12
  <% end %>
36
-
37
13
  <% end %>
38
14
 
@@ -2,91 +2,82 @@
2
2
 
3
3
  import React from 'react'
4
4
  import DateTime from '../pb_kit/dateTime.js'
5
- import { Body, 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
- aria: Object,
12
- date: string | date,
13
- className?: string,
14
- data?: Object,
15
- id?: string,
16
- showIcon?: boolean,
17
- showDayOfWeek?: boolean,
18
- alignment?: "left" | "center" | "right"
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}`
19
15
  }
20
16
 
21
- const PbDate = (props: PbDateProps) => {
22
- const {
23
- aria = {},
24
- alignment = 'left',
25
- className,
26
- date,
27
- data = {},
28
- id,
29
- showDayOfWeek = false,
30
- showIcon = false,
31
- } = props
17
+ const largeDateString = (value: DateTime) => {
18
+ const month = value.toMonth().toUpperCase()
19
+ const day = value.toDay()
20
+
21
+ return `${month} ${day}`
22
+ }
32
23
 
33
- const dateTimestamp = new DateTime({ value: date })
34
- const weekday = dateTimestamp.toWeekday()
35
- const month = dateTimestamp.toMonth()
36
- const day = dateTimestamp.toDay()
37
- const year = dateTimestamp.toYear()
38
- const currentYear = new Date().getFullYear().toString()
24
+ type DateSubcomponent = {
25
+ value: DateTime,
26
+ }
39
27
 
40
- const ariaProps = buildAriaProps(aria)
41
- const dataProps = buildDataProps(data)
28
+ const ExtraSmallDate = ({ value, ...props }: DateSubcomponent) => (
29
+ <h3 className={classnames('pb_title_kit_4', globalProps(props))}>
30
+ {defaultDateString(value)}
31
+ </h3>
32
+ )
42
33
 
43
- const classes = classnames(
44
- className,
45
- buildCss('pb_date_kit', alignment),
46
- globalProps(props)
47
- )
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
+ )
43
+
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
+ )
48
75
  return (
49
- <div
50
- {...ariaProps}
51
- {...dataProps}
52
- className={classes}
53
- id={id}
54
- >
55
- <Title
56
- size={4}
57
- tag="h4"
58
- >
59
- <If condition={showIcon}>
60
- <Body
61
- color="light"
62
- tag="span"
63
- >
64
- <Icon
65
- fixedWidth
66
- icon="calendar-alt"
67
- />
68
- </Body>
69
- </If>
70
- <If condition={showDayOfWeek}>
71
- {weekday}
72
- <Body
73
- color="light"
74
- tag="span"
75
- text=" • "
76
- />
77
- </If>
78
- <span>
79
- {month}
80
- {' '}
81
- {day}
82
- </span>
83
- <If condition={currentYear != year}>
84
- <span>
85
- {` , ${year}`}
86
- </span>
87
- </If>
88
- </Title>
89
- </div>
76
+ <SmallDate
77
+ {...props}
78
+ className={className}
79
+ value={date}
80
+ />
90
81
  )
91
82
  }
92
83
 
@@ -1,27 +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 {
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
- }
@@ -10,39 +10,30 @@ module Playbook
10
10
  partial "pb_date/date"
11
11
 
12
12
  prop :date, required: true
13
- prop :timezone, default: "America/New_York"
14
- prop :alignment, type: Playbook::Props::Enum,
15
- values: %w[left center right],
16
- default: "left"
17
- prop :show_icon, type: Playbook::Props::Boolean,
18
- default: false
19
- prop :show_day_of_week, type: Playbook::Props::Boolean,
20
- default: false
13
+ prop :size, type: Playbook::Props::Enum,
14
+ values: %w[lg sm xs],
15
+ default: "sm"
21
16
 
22
17
  def classname
23
- generate_classname("pb_date_kit", alignment)
18
+ generate_classname("pb_date_kit")
24
19
  end
25
20
 
26
- def date_day_of_week
27
- pb_date_time.to_day_of_week
21
+ def xs_date
22
+ "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
28
23
  end
29
24
 
30
- def day
31
- pb_date_time.to_day
25
+ def lg_date
26
+ "#{pb_date_time.to_month.upcase} #{pb_date_time.to_day}"
32
27
  end
33
28
 
34
- def month
35
- pb_date_time.to_month.capitalize
36
- end
37
-
38
- def year
39
- pb_date_time.to_year
29
+ def sm_date
30
+ "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
40
31
  end
41
32
 
42
33
  private
43
34
 
44
35
  def pb_date_time
45
- Playbook::PbKit::PbDateTime.new(date, timezone)
36
+ Playbook::PbKit::PbDateTime.new(date)
46
37
  end
47
38
  end
48
39
  end
@@ -1,9 +1,17 @@
1
1
  <%= pb_rails("date", props: {
2
2
  date: Date.today,
3
+ size: "lg"
3
4
  }) %>
4
5
 
5
- <br />
6
+ <br>
7
+
8
+ <%= pb_rails("date", props: {
9
+ date: DateTime.now
10
+ }) %>
11
+
12
+ <br>
6
13
 
7
14
  <%= pb_rails("date", props: {
8
15
  date: "2012-08-02T15:49:29Z",
16
+ size: "xs"
9
17
  }) %>
@@ -0,0 +1,28 @@
1
+ import React from 'react'
2
+ import { Date } from '../../'
3
+
4
+ const DateDefault = () => {
5
+ return (
6
+ <div>
7
+ <Date
8
+ size="lg"
9
+ value="1995-12-25"
10
+ />
11
+
12
+ <br />
13
+
14
+ <Date
15
+ value="17 Mar 69"
16
+ />
17
+
18
+ <br />
19
+
20
+ <Date
21
+ size="xs"
22
+ value="2020-04-20T04:20:00.000Z"
23
+ />
24
+ </div>
25
+ )
26
+ }
27
+
28
+ export default DateDefault
@@ -1,3 +1 @@
1
1
  Use to display the date. Year will not display if it is the current year.
2
-
3
- `DateTime` defaults to the "America/New_York" timezone. `Date` ignores timezone.
@@ -2,12 +2,8 @@ examples:
2
2
 
3
3
  rails:
4
4
  - date_default: Default
5
- - date_timezone: Timezones
6
- - date_variants: Variants
7
- - date_alignment: Alignment
5
+
8
6
 
9
7
  react:
10
- - date_default_react: Default
11
- - date_variants: Variants
12
- - date_alignment: Alignment
8
+ - date_default: Default
13
9
 
@@ -1,3 +1 @@
1
- export { default as DateDefaultReact } from './_date_default_react.jsx'
2
- export { default as DateVariants } from './_date_variants.jsx'
3
- export { default as DateAlignment } from './_date_alignment.jsx'
1
+ export { default as DateDefault } from './_date_default.jsx'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "6.4.1"
4
+ VERSION = "6.4.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.1
4
+ version: 6.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-31 00:00:00.000000000 Z
12
+ date: 2020-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -702,15 +702,8 @@ files:
702
702
  - app/pb_kits/playbook/pb_date/_date.jsx
703
703
  - app/pb_kits/playbook/pb_date/_date.scss
704
704
  - app/pb_kits/playbook/pb_date/date.rb
705
- - app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb
706
- - app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx
707
705
  - app/pb_kits/playbook/pb_date/docs/_date_default.html.erb
708
- - app/pb_kits/playbook/pb_date/docs/_date_default_react.jsx
709
- - app/pb_kits/playbook/pb_date/docs/_date_default_react.md
710
- - app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb
711
- - app/pb_kits/playbook/pb_date/docs/_date_timezone.md
712
- - app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb
713
- - app/pb_kits/playbook/pb_date/docs/_date_variants.jsx
706
+ - app/pb_kits/playbook/pb_date/docs/_date_default.jsx
714
707
  - app/pb_kits/playbook/pb_date/docs/_description.md
715
708
  - app/pb_kits/playbook/pb_date/docs/example.yml
716
709
  - app/pb_kits/playbook/pb_date/docs/index.js
@@ -1954,8 +1947,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1954
1947
  - !ruby/object:Gem::Version
1955
1948
  version: '0'
1956
1949
  requirements: []
1957
- rubyforge_project:
1958
- rubygems_version: 2.7.3
1950
+ rubygems_version: 3.1.4
1959
1951
  signing_key:
1960
1952
  specification_version: 4
1961
1953
  summary: Playbook Design System
@@ -1,24 +0,0 @@
1
-
2
- <%= pb_rails("date", props: {
3
- date: DateTime.now,
4
- show_icon: true,
5
- show_day_of_week: true
6
- }) %>
7
-
8
- <br><br>
9
-
10
- <%= pb_rails("date", props: {
11
- date: DateTime.now,
12
- show_icon: true,
13
- show_day_of_week: true,
14
- alignment: "center"
15
- }) %>
16
-
17
- <br><br>
18
-
19
- <%= pb_rails("date", props: {
20
- date: DateTime.now,
21
- show_icon: true,
22
- show_day_of_week: true,
23
- alignment: "right"
24
- }) %>
@@ -1,32 +0,0 @@
1
- import React from 'react'
2
- import { Date as FormattedDate } from '../..'
3
-
4
- const DateAlignment = () => {
5
- return (
6
- <div>
7
- <FormattedDate
8
- date="1995-12-25"
9
- dayOfWeek
10
- icon
11
- />
12
-
13
- <br />
14
-
15
- <FormattedDate
16
- alignment="center"
17
- date="2020-12-25"
18
- dayOfWeek
19
- icon
20
- />
21
-
22
- <br />
23
-
24
- <FormattedDate
25
- alignment="right"
26
- date={new Date()}
27
- />
28
- </div>
29
- )
30
- }
31
-
32
- export default DateAlignment
@@ -1,20 +0,0 @@
1
- import React from 'react'
2
- import { Date as FormattedDate } from '../..'
3
-
4
- const DateDefaultReact = () => {
5
- return (
6
- <div>
7
- <FormattedDate
8
- date="2012-12-25"
9
- />
10
-
11
- <br />
12
-
13
- <FormattedDate
14
- date={new Date()}
15
- />
16
- </div>
17
- )
18
- }
19
-
20
- export default DateDefaultReact
@@ -1,3 +0,0 @@
1
- *Development Note* - We are reviewing this kit for a potential name change due to naming collisions when `new Date()` is used.
2
-
3
- To avoid this bug, please use name spacing as shown in the code examples. ie `import { Date as AliasedComponentName } from '../../'`
@@ -1,51 +0,0 @@
1
- <%= pb_rails("caption", props: { text: "East Coast (Default)"}) %>
2
- <%= pb_rails("date", props: {
3
- date: DateTime.now,
4
- timezone: "America/New_York"
5
- }) %>
6
-
7
- <br>
8
-
9
- <%= pb_rails("caption", props: { text: "West Coast"}) %>
10
- <%= pb_rails("date", props: {
11
- date: DateTime.now,
12
- timezone: "America/Los_Angeles"
13
- }) %>
14
-
15
- <br>
16
-
17
- <%= pb_rails("caption", props: { text: "Toyko, Japan"}) %>
18
- <%= pb_rails("date", props: {
19
- date: DateTime.now,
20
- timezone: "Asia/Tokyo"
21
- }) %>
22
-
23
- <br>
24
-
25
- <%= pb_rails("caption", props: { text: "Anti-pattern example"}) %>
26
-
27
- <%= pb_rails("date", props: {
28
- date: Date.today,
29
- timezone: "Australia/Sydney"
30
- }) %>
31
- <%= pb_rails("body", props: { text: "Date.today ignores Timezone"}) %>
32
-
33
- <br>
34
-
35
- <%= pb_rails("caption", props: { text: "DateTime respects Timezone"}) %>
36
-
37
- <%= pb_rails("date", props: {
38
- date: DateTime.now,
39
- timezone: "Australia/Sydney"
40
- }) %>
41
-
42
- <%= pb_rails("body", props: { text: "'.now' in Australia is tomorrow (if you're EST after 10am)"}) %>
43
-
44
- <br>
45
-
46
- <%= pb_rails("caption", props: { text: "String Dates"}) %>
47
- <%= pb_rails("date", props: {
48
- date: "2012-08-02T00:49:29Z",
49
- }) %>
50
-
51
- <%= pb_rails("body", props: { text: "Defaults to UTC, then changes due to EST Timezone."}) %>
@@ -1,6 +0,0 @@
1
- Depending on the data you send to the `date` prop you might have unexpected results due to ruby `Date` and `DateTime` classes.
2
-
3
- Don't care about timezones? Use `Date`.
4
-
5
- If you need a date that recognizes a timezone, especially when paired with the [Time kit](/kits/time), leverage `DateTime`.
6
-
@@ -1,27 +0,0 @@
1
- <div>
2
- <%= pb_rails("date", props: {
3
- date: DateTime.now,
4
- }) %>
5
-
6
- <br><br>
7
-
8
- <%= pb_rails("date", props: {
9
- date: DateTime.now,
10
- show_icon: true
11
- }) %>
12
-
13
- <br><br>
14
-
15
- <%= pb_rails("date", props: {
16
- date: DateTime.now,
17
- show_day_of_week: true
18
- }) %>
19
-
20
- <br><br>
21
-
22
- <%= pb_rails("date", props: {
23
- date: DateTime.now,
24
- show_icon: true,
25
- show_day_of_week: true
26
- }) %>
27
- </div>
@@ -1,39 +0,0 @@
1
- import React from 'react'
2
- import { Date as FormattedDate } from '../..'
3
-
4
- const DateVariants = () => {
5
- return (
6
- <div>
7
- <FormattedDate
8
- date="1995-12-25"
9
- />
10
-
11
- <br />
12
- <br />
13
-
14
- <FormattedDate
15
- date="1995-12-25"
16
- showIcon
17
- />
18
-
19
- <br />
20
- <br />
21
-
22
- <FormattedDate
23
- date="1995-12-25"
24
- showDayOfWeek
25
- />
26
-
27
- <br />
28
- <br />
29
-
30
- <FormattedDate
31
- date="1995-12-25"
32
- showDayOfWeek
33
- showIcon
34
- />
35
- </div>
36
- )
37
- }
38
-
39
- export default DateVariants