playbook_ui 4.11.0 → 4.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/pages_controller.rb +11 -0
  3. data/app/helpers/playbook/pb_doc_helper.rb +10 -4
  4. data/app/pb_kits/playbook/_playbook.scss +1 -0
  5. data/app/pb_kits/playbook/data/menu.yml +2 -0
  6. data/app/pb_kits/playbook/index.js +1 -0
  7. data/app/pb_kits/playbook/packs/examples.js +2 -0
  8. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +63 -0
  9. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +6 -0
  10. data/app/pb_kits/playbook/pb_file_upload/docs/_description.md +8 -0
  11. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_accept.jsx +36 -0
  12. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx +35 -0
  13. data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +8 -0
  14. data/app/pb_kits/playbook/pb_file_upload/docs/index.js +2 -0
  15. data/app/pb_kits/playbook/pb_file_upload/file_upload.rb +11 -0
  16. data/app/pb_kits/playbook/pb_kit/dateTime.js +4 -0
  17. data/app/pb_kits/playbook/pb_label_pill/docs/example.yml +0 -2
  18. data/app/pb_kits/playbook/pb_label_pill/docs/index.js +0 -1
  19. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +1 -3
  20. data/app/pb_kits/playbook/pb_online_status/docs/index.js +0 -1
  21. data/app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb +7 -1
  22. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +8 -2
  23. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +51 -1
  24. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dark.html.erb +1 -0
  25. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dark.jsx +14 -0
  26. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.html.erb +13 -0
  27. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx +25 -0
  28. data/app/pb_kits/playbook/pb_section_separator/docs/example.yml +4 -0
  29. data/app/pb_kits/playbook/pb_section_separator/docs/index.js +2 -0
  30. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +14 -3
  31. data/app/pb_kits/playbook/pb_source/docs/example.yml +0 -1
  32. data/app/pb_kits/playbook/pb_source/docs/index.js +0 -1
  33. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +0 -1
  34. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +0 -1
  35. data/app/pb_kits/playbook/pb_time/docs/example.yml +0 -1
  36. data/app/pb_kits/playbook/pb_time/docs/index.js +0 -1
  37. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +0 -2
  38. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -1
  39. data/app/pb_kits/playbook/pb_title_detail/docs/example.yml +0 -2
  40. data/app/pb_kits/playbook/pb_title_detail/docs/index.js +0 -1
  41. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +9 -8
  42. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.html.erb +3 -9
  43. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.jsx +8 -31
  44. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_variant.html.erb +3 -0
  45. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_variant.jsx +22 -0
  46. data/app/pb_kits/playbook/pb_weekday_stacked/docs/example.yml +4 -4
  47. data/app/pb_kits/playbook/pb_weekday_stacked/docs/index.js +2 -2
  48. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.rb +13 -8
  49. data/app/pb_kits/playbook/tokens/_colors.scss +5 -3
  50. data/app/views/playbook/pages/utilities.html.slim +2 -1
  51. data/lib/playbook/version.rb +1 -1
  52. metadata +16 -11
  53. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +0 -9
  54. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +0 -9
  55. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +0 -9
  56. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +0 -9
  57. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +0 -9
  58. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +0 -9
  59. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +0 -9
  60. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.html.erb +0 -1
  61. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.jsx +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5724cfc73bfc520ae0f5bbb89002649cc2c28eb1161692f1e3b45de3bc417abc
4
- data.tar.gz: d93b64cd6811f91f8eff71df0acdbed3d32da9e756e78003ce4f578f6822d1d5
3
+ metadata.gz: 23fd2a60198feffc9e13f9a1d57e3213d42a5dae6b6a62b32a751bbab4cf26b0
4
+ data.tar.gz: 9cbbf0ef694ee540ecc9bc97ef295b1498a41e43eca2648f5a371c99579d189e
5
5
  SHA512:
6
- metadata.gz: 978b10162d35e872ca37c0c4572668c3286908fc03b0929a7604ea08a457eb268de8401213192aa96158e4463a1bab032fdaee3f7dbf786b831fcdc846670e7f
7
- data.tar.gz: 61b4a2ee3e61c9f223fccb8623272fd74f5864b8facafb04672c50a4b8b9f17ba31c6db702852c2527e90f07129af62d95c0f34c4530059dff3c2b5d3bc1b859
6
+ metadata.gz: '079d706a4214c56dd4814f22983c54beec8a2389914c1b29fbb885377e7d2edcd3d05ac0ef692c1bd18df5219743c0ff4fee0b8183cd73727cbc6c06fc138af5'
7
+ data.tar.gz: ad397e8e2528f13331a0f61c4c694ea9c5f33acdb2eee917d51c8510a912eecc7e37b28532c532e1725009188c91c248c3d6818a86126c7fc7fa304dff5952ec
@@ -6,6 +6,7 @@ require "yaml"
6
6
  module Playbook
7
7
  class PagesController < ApplicationController
8
8
  before_action :set_kit, only: %i[kit_show_rails kit_show_react]
9
+ before_action :ensure_kit_type_exists, only: %i[kit_show_rails kit_show_react]
9
10
  before_action :set_category, only: %i[kit_category_show_rails kit_category_show_react]
10
11
 
11
12
  def home; end
@@ -64,5 +65,15 @@ module Playbook
64
65
  redirect_to root_path, flash: { error: "That kit does not exist" }
65
66
  end
66
67
  end
68
+
69
+ def ensure_kit_type_exists
70
+ # TODO: unsure why we cannot simply use the helpers that are included in ApplicationController - fix this
71
+ is_rails_kit = action_name == "kit_show_rails"
72
+ files = is_rails_kit ? File.join("**", "*.erb") : File.join("**", "*.jsx")
73
+ kit_files = Dir.glob(files, base: "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit}/docs").present?
74
+ if !kit_files.present?
75
+ redirect_to action: is_rails_kit ? "kit_show_react" : "kit_show_rails"
76
+ end
77
+ end
67
78
  end
68
79
  end
@@ -9,9 +9,11 @@ module Playbook
9
9
  def has_kit_type?(kit, type)
10
10
  type ||= "rails"
11
11
  if type == "rails"
12
- Dir["playbook/pb_#{kit}/*.html.erb"].empty?
12
+ erbfiles = File.join("**", "*.erb")
13
+ Dir.glob(erbfiles, base: "#{kit_path(kit)}/docs").present?
13
14
  elsif type == "react"
14
- Dir["playbook/pb_#{kit}/*.jsx"].empty?
15
+ jsxfiles = File.join("**", "*.jsx")
16
+ Dir.glob(jsxfiles, base: "#{kit_path(kit)}/docs").present?
15
17
  end
16
18
  end
17
19
 
@@ -23,8 +25,12 @@ module Playbook
23
25
  end
24
26
  end
25
27
 
26
- def get_kit_description(_kit)
27
- filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit}/docs/_description.md"
28
+ def kit_path(kit)
29
+ "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}"
30
+ end
31
+
32
+ def get_kit_description(kit)
33
+ filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}/docs/_description.md"
28
34
  read_file(filename)
29
35
  end
30
36
 
@@ -17,6 +17,7 @@
17
17
  @import 'pb_date_stacked/date_stacked';
18
18
  @import 'pb_date_year_stacked/date_year_stacked';
19
19
  @import 'pb_distribution_bar/distribution_bar';
20
+ @import 'pb_file_upload/file_upload';
20
21
  @import 'pb_filter/filter';
21
22
  @import 'pb_fixed_confirmation_toast/fixed_confirmation_toast';
22
23
  @import 'pb_form/form';
@@ -17,6 +17,7 @@ kits:
17
17
  - fixed_confirmation_toast
18
18
  - flex
19
19
  - forms:
20
+ - file_upload
20
21
  - form
21
22
  - form_pill
22
23
  - radio
@@ -77,3 +78,4 @@ kits:
77
78
  - weekday_stacked
78
79
  - user
79
80
  - user_badge
81
+
@@ -17,6 +17,7 @@ export DateRangeStacked from './pb_date_range_stacked/_date_range_stacked.jsx'
17
17
  export DateStacked from './pb_date_stacked/_date_stacked.jsx'
18
18
  export DateYearStacked from './pb_date_year_stacked/_date_year_stacked.jsx'
19
19
  export DistributionBar from './pb_distribution_bar/_distribution_bar.jsx'
20
+ export FileUpload from './pb_file_upload/_file_upload.jsx'
20
21
  export Filter from './pb_filter/_filter.jsx'
21
22
  export FixedConfirmationToast from './pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx'
22
23
  export Flex from './pb_flex/_flex.jsx'
@@ -31,6 +31,7 @@ import * as DateRangeStacked from 'pb_date_range_stacked/docs'
31
31
  import * as DateStacked from 'pb_date_stacked/docs'
32
32
  import * as DateYearStacked from 'pb_date_year_stacked/docs'
33
33
  import * as DistributionBar from 'pb_distribution_bar/docs'
34
+ import * as FileUpload from 'pb_file_upload/docs'
34
35
  import * as Filter from 'pb_filter/docs'
35
36
  import * as FixedConfirmationToast from 'pb_fixed_confirmation_toast/docs'
36
37
  import * as Flex from 'pb_flex/docs'
@@ -102,6 +103,7 @@ WebpackerReact.setup({
102
103
  ...DateStacked,
103
104
  ...DateYearStacked,
104
105
  ...DistributionBar,
106
+ ...FileUpload,
105
107
  ...Filter,
106
108
  ...FixedConfirmationToast,
107
109
  ...Flex,
@@ -0,0 +1,63 @@
1
+ /* @flow */
2
+
3
+ import React, { useCallback } from 'react'
4
+ import { useDropzone } from 'react-dropzone'
5
+
6
+ import {
7
+ buildCss,
8
+ noop,
9
+ } from '../utilities/props'
10
+
11
+ import type { Callback } from '../types.js'
12
+
13
+ import {
14
+ Body,
15
+ Card,
16
+ } from '..'
17
+
18
+ type FileUploadProps = {
19
+ accept?: Array<String>,
20
+ className?: String,
21
+ onFilesAccepted: Callback,
22
+ }
23
+
24
+ const FileUpload = ({
25
+ accept = ['image/png', 'image/jpg', 'image/jpeg', 'image/svg+xml'],
26
+ className,
27
+ onFilesAccepted = noop,
28
+ }: FileUploadProps) => {
29
+ const onDrop = useCallback((files) => {
30
+ onFilesAccepted(files)
31
+ })
32
+
33
+ const {
34
+ getRootProps,
35
+ getInputProps,
36
+ isDragActive,
37
+ } = useDropzone({
38
+ accept,
39
+ onDrop,
40
+ })
41
+
42
+ return (
43
+ <div
44
+ className={buildCss('pb_file_upload_kit', className)}
45
+ {...getRootProps()}
46
+ >
47
+ <Card>
48
+ <input {...getInputProps()} />
49
+ <Body
50
+ color="light"
51
+ >
52
+ <If condition={isDragActive}>
53
+ <p>{'Drop the files here ...'}</p>
54
+ <Else />
55
+ <p>{'Drag & drop some files here, or click to select files'}</p>
56
+ </If>
57
+ </Body>
58
+ </Card>
59
+ </div>
60
+ )
61
+ }
62
+
63
+ export default FileUpload
@@ -0,0 +1,6 @@
1
+ [class^='pb_file_upload_kit'] {
2
+ [class^='pb_card_kit'] {
3
+ border: 1px #ccc dashed;
4
+ text-align: center;
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ This kit provides a drag and drop interface for file uploads. Currently, the kit leverages [react-dropzone](https://github.com/react-dropzone/react-dropzone).
2
+
3
+ ### Props
4
+
5
+ `accept: [String]` Use this prop to set the list of valid file types
6
+ `onFilesAccepted: Function` The callback function, providing the list of dropped files
7
+
8
+
@@ -0,0 +1,36 @@
1
+ /* @flow */
2
+
3
+ import React, { useState } from 'react'
4
+ import {
5
+ FileUpload,
6
+ List,
7
+ ListItem,
8
+ } from '../..'
9
+
10
+ const AcceptedFilesList = ({ files }: FileList) => (
11
+ <List>
12
+ {files.map((file) => (
13
+ <ListItem key={file.name}>{file.name}</ListItem>
14
+ ))}
15
+ </List>
16
+ )
17
+
18
+ const FileUploadAccept = () => {
19
+ const [filesToUpload, setFilesToUpload] = useState([])
20
+
21
+ const handleOnFilesAccepted = (files) => {
22
+ setFilesToUpload([...filesToUpload, ...files])
23
+ }
24
+
25
+ return (
26
+ <div>
27
+ <AcceptedFilesList files={filesToUpload} />
28
+ <FileUpload
29
+ accept={['image/svg+xml']}
30
+ onFilesAccepted={handleOnFilesAccepted}
31
+ />
32
+ </div>
33
+ )
34
+ }
35
+
36
+ export default FileUploadAccept
@@ -0,0 +1,35 @@
1
+ /* @flow */
2
+
3
+ import React, { useState } from 'react'
4
+ import {
5
+ FileUpload,
6
+ List,
7
+ ListItem,
8
+ } from '../..'
9
+
10
+ const AcceptedFilesList = ({ files }: FileList) => (
11
+ <List>
12
+ {files.map((file) => (
13
+ <ListItem key={file.name}>{file.name}</ListItem>
14
+ ))}
15
+ </List>
16
+ )
17
+
18
+ const FileUploadDefault = () => {
19
+ const [filesToUpload, setFilesToUpload] = useState([])
20
+
21
+ const handleOnFilesAccepted = (files) => {
22
+ setFilesToUpload([...filesToUpload, ...files])
23
+ }
24
+
25
+ return (
26
+ <div>
27
+ <AcceptedFilesList files={filesToUpload} />
28
+ <FileUpload
29
+ onFilesAccepted={handleOnFilesAccepted}
30
+ />
31
+ </div>
32
+ )
33
+ }
34
+
35
+ export default FileUploadDefault
@@ -0,0 +1,8 @@
1
+ examples:
2
+
3
+ rails:
4
+
5
+ react:
6
+ - file_upload_default: Default List of files to upload
7
+ - file_upload_accept: Accept only certain types of files
8
+
@@ -0,0 +1,2 @@
1
+ export { default as FileUploadDefault } from './_file_upload_default.jsx'
2
+ export { default as FileUploadAccept } from './_file_upload_accept.jsx'
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbFileUpload
5
+ class FileUpload
6
+ include Playbook::Props
7
+
8
+ partial "pb_file_upload/file_upload"
9
+ end
10
+ end
11
+ end
@@ -25,6 +25,10 @@ export default class DateTime {
25
25
  return this.value.strftime('%Z')
26
26
  }
27
27
 
28
+ toCustomFormat(format = '%-m/%-d') {
29
+ return this.value.strftime(format)
30
+ }
31
+
28
32
  toYear() {
29
33
  return this.value.strftime('%Y')
30
34
  }
@@ -5,5 +5,3 @@ examples:
5
5
 
6
6
 
7
7
  react:
8
- - label_pill_default: Default
9
-
@@ -1 +0,0 @@
1
- export { default as LabelPillDefault } from './_label_pill_default.jsx'
@@ -3,7 +3,5 @@ examples:
3
3
  rails:
4
4
  - online_status_default: Default
5
5
 
6
-
7
6
  react:
8
- - online_status_default: Default
9
-
7
+
@@ -1 +0,0 @@
1
- export { default as OnlineStatusDefault } from './_online_status_default.jsx'
@@ -2,5 +2,11 @@
2
2
  id: object.id,
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
- <span><%= pb_rails("caption", props: { text: object.text }) %></span>
5
+ <% if object.orientation === 'horizontal' %>
6
+ <span><%= pb_rails("caption", props: { text: object.text }) %></span>
7
+ <% end %>
8
+ <% if object.orientation === 'vertical' %>
9
+ <%= pb_rails("flex", props: { orientation: "column"}) do %>
10
+ <% end %>
11
+ <%end%>
6
12
  <% end %>
@@ -1,21 +1,27 @@
1
1
  /* @flow */
2
2
  import React from 'react'
3
3
  import classnames from 'classnames'
4
-
5
4
  import Caption from '../pb_caption/_caption.jsx'
6
5
 
7
6
  type SectionSeparatorProps = {
8
7
  className: String,
9
8
  text: String,
9
+ orientation?: 'horizontal' | 'vertical',
10
10
  variant?: 'card' | 'background',
11
+ dark?: Boolean
11
12
  }
12
13
 
13
14
  const SectionSeparator = ({
14
15
  className,
15
16
  text,
17
+ orientation = 'horizontal',
16
18
  variant = 'card',
19
+ dark = false,
17
20
  }: SectionSeparatorProps) => {
18
- const css = classnames([`pb_section_separator_kit_${variant}`, className])
21
+ const themeStyle = dark === true ? '_dark' : ''
22
+ const css = classnames([
23
+ `pb_section_separator_kit_${variant}_${orientation}` + themeStyle,
24
+ className])
19
25
 
20
26
  return (
21
27
  <div className={css}>
@@ -24,7 +24,7 @@ $section_colors: (
24
24
  }
25
25
  }
26
26
  }
27
-
27
+
28
28
  &::after {
29
29
  content: "";
30
30
  height: 1px;
@@ -35,4 +35,54 @@ $section_colors: (
35
35
  left: 0;
36
36
  z-index: 0;
37
37
  }
38
+
39
+ &[class*=_horizontal] {
40
+ justify-content: center;
41
+ }
42
+ &[class*=_vertical] {
43
+ &::after {
44
+ content: "";
45
+ height: 100%;
46
+ width: 1px;
47
+ margin-left: $space_xs;
48
+ margin-right: $space_xs;
49
+ background: $border_light;
50
+ position: initial;
51
+ z-index: 0;
52
+ }
53
+ }
54
+
55
+ &[class*=_dark] {
56
+ &::after {
57
+ content: "";
58
+ height: 1px;
59
+ width: 100%;
60
+ background: $border_dark;
61
+ position: absolute;
62
+ top: 50%;
63
+ left: 0;
64
+ z-index: 0;
65
+ }
66
+ &[class*=_background] {
67
+ span {
68
+ display: inline-block;
69
+ padding: 0 $space_xs;
70
+ background: $bg_dark;
71
+ position: relative;
72
+ z-index: 1;
73
+ }
74
+ }
75
+ &[class*=_vertical] {
76
+ &::after {
77
+ content: "";
78
+ height: 100%;
79
+ width: 1px;
80
+ margin-left: $space_xs;
81
+ margin-right: $space_xs;
82
+ background: $border_dark;
83
+ position: initial;
84
+ z-index: 0;
85
+ }
86
+ }
87
+ }
38
88
  }
@@ -0,0 +1 @@
1
+ <%= pb_rails("section_separator", props: { text: "Title Separator", variant: "background", dark: true }) %>
@@ -0,0 +1,14 @@
1
+ import React from 'react'
2
+ import { SectionSeparator } from '../../'
3
+
4
+ const SectionSeparatorDark = () => {
5
+ return (
6
+ <SectionSeparator
7
+ dark
8
+ text="Title Separator"
9
+ variant="background"
10
+ />
11
+ )
12
+ }
13
+
14
+ export default SectionSeparatorDark
@@ -0,0 +1,13 @@
1
+ <%= pb_rails("flex", props: {classname: "flex-container", vertical: "stretch"}) do %>
2
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
3
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
4
+ <% end %>
5
+ <%= pb_rails("section_separator", props: { orientation: "vertical" }) %>
6
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
7
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
8
+ <% end %>
9
+ <%= pb_rails("section_separator", props: { orientation: "vertical" }) %>
10
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
11
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,25 @@
1
+ import React from 'react'
2
+ import { Flex, FlexItem, SectionSeparator } from '../../'
3
+
4
+ const SectionSeparatorVertical = () => {
5
+ return (
6
+ <Flex
7
+ inline="flex-container"
8
+ vertical="stretch"
9
+ >
10
+ <FlexItem>
11
+ {'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua'}
12
+ </FlexItem>
13
+ <SectionSeparator orientation="vertical" />
14
+ <FlexItem>
15
+ {'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua'}
16
+ </FlexItem>
17
+ <SectionSeparator orientation="vertical" />
18
+ <FlexItem>
19
+ {'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua'}
20
+ </FlexItem>
21
+ </Flex>
22
+ )
23
+ }
24
+
25
+ export default SectionSeparatorVertical
@@ -4,8 +4,12 @@ examples:
4
4
  - section_separator_text: Text Separator
5
5
  - section_separator_line: Line Separator
6
6
  - section_separator_text_background: Background Variant
7
+ - section_separator_vertical: Vertical
8
+ - section_separator_dark: Dark
7
9
 
8
10
  react:
9
11
  - section_separator_text: Text Separator
10
12
  - section_separator_line: Line Separator
11
13
  - section_separator_text_background: Background Variant
14
+ - section_separator_vertical: Vertical
15
+ - section_separator_dark: Dark
@@ -1,3 +1,5 @@
1
1
  export { default as SectionSeparatorLine } from './_section_separator_line.jsx'
2
2
  export { default as SectionSeparatorText } from './_section_separator_text.jsx'
3
3
  export { default as SectionSeparatorTextBackground } from './_section_separator_text_background.jsx'
4
+ export { default as SectionSeparatorVertical } from './_section_separator_vertical.jsx'
5
+ export { default as SectionSeparatorDark } from './_section_separator_dark.jsx'
@@ -9,11 +9,22 @@ module Playbook
9
9
 
10
10
  prop :text
11
11
  prop :variant, type: Playbook::Props::Enum,
12
- values: %w[card background],
13
- default: "card"
12
+ values: %w[card background],
13
+ default: "card"
14
+ prop :orientation, type: Playbook::Props::Enum,
15
+ values: %w[horizontal vertical],
16
+ default: "horizontal"
17
+ prop :dark, type: Playbook::Props::Boolean,
18
+ default: false
14
19
 
15
20
  def classname
16
- generate_classname("pb_section_separator_kit",variant)
21
+ generate_classname("pb_section_separator_kit", variant, orientation, dark_class)
22
+ end
23
+
24
+ private
25
+
26
+ def dark_class
27
+ dark ? "dark" : nil
17
28
  end
18
29
  end
19
30
  end
@@ -7,4 +7,3 @@ examples:
7
7
 
8
8
 
9
9
  react:
10
- - source_default: Default
@@ -1 +0,0 @@
1
- export { default as SourceDefault } from './_source_default.jsx'
@@ -6,4 +6,3 @@ examples:
6
6
 
7
7
 
8
8
  react:
9
- - star_rating_default: Default
@@ -1 +0,0 @@
1
- export { default as StarRatingDefault } from './_star_rating_default.jsx'
@@ -5,4 +5,3 @@ examples:
5
5
  - time_timestamp: Timestamp Values
6
6
 
7
7
  react:
8
- - time_default: Default
@@ -1 +0,0 @@
1
- export { default as TimeDefault } from './_time_default.jsx'
@@ -5,5 +5,3 @@ examples:
5
5
 
6
6
 
7
7
  react:
8
- - timestamp_default: Default
9
-
@@ -1 +0,0 @@
1
- export { default as TimestampDefault } from './_timestamp_default.jsx'
@@ -5,5 +5,3 @@ examples:
5
5
 
6
6
 
7
7
  react:
8
- - title_detail_default: Default
9
-
@@ -1 +0,0 @@
1
- export { default as TitleDetailDefault } from './_title_detail_default.jsx'
@@ -17,10 +17,10 @@ import DateTime from '../pb_kit/dateTime.js'
17
17
  type WeekdayStackedProps = {
18
18
  align?: 'left' | 'center' | 'right',
19
19
  className?: String,
20
- compact?: Boolean,
21
20
  dark?: Boolean,
22
21
  date: Date,
23
- dayOnly?: Boolean,
22
+ variant?: 'day_only' | 'month_day' | 'expanded',
23
+ compact?: Boolean,
24
24
  id?: String,
25
25
  }
26
26
 
@@ -33,22 +33,23 @@ const getDayOfWeek = (date, compact) => {
33
33
  }
34
34
  }
35
35
 
36
- const getFormattedDate = (date, dayOnly) => {
36
+ const getFormattedDate = (date, variant) => {
37
37
  const dateTime = new DateTime({ value: date })
38
- if (dayOnly) {
38
+ if (variant === 'day_only') {
39
39
  return dateTime.toDay()
40
40
  } else {
41
- return `${dateTime.toMonthNum()}/${dateTime.toDay()}`
41
+ const format = variant === 'expanded' ? '%b %-d' : '%-m/%-d'
42
+ return dateTime.toCustomFormat(format)
42
43
  }
43
44
  }
44
45
 
45
46
  const WeekdayStacked = ({
46
47
  align = 'left',
47
48
  className,
48
- compact = false,
49
49
  dark = false,
50
50
  date = new Date(),
51
- dayOnly = false,
51
+ variant = 'month_day',
52
+ compact = false,
52
53
  }: WeekdayStackedProps) => (
53
54
  <div
54
55
  className={classnames(buildCss('pb_weekday_stacked_kit', align), className)}
@@ -58,7 +59,7 @@ const WeekdayStacked = ({
58
59
  dark={dark}
59
60
  size={4}
60
61
  tag="span"
61
- text={getFormattedDate(date, dayOnly)}
62
+ text={getFormattedDate(date, variant)}
62
63
  />
63
64
  </div>
64
65
  )
@@ -1,9 +1,3 @@
1
- <%= pb_rails("flex", props: {spacing: "evenly"}) do %>
2
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/4")}) %>
3
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/5")}) %>
4
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/6")}) %>
5
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/7")}) %>
6
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/8")}) %>
7
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/9")}) %>
8
- <%= pb_rails("weekday_stacked", props: {compact: true, date: Date.parse("2019/11/10")}) %>
9
- <% end %>
1
+ <%= pb_rails("weekday_stacked", props: {variant: "expanded", compact: true}) %>
2
+ <%= pb_rails("weekday_stacked", props: { variant: "day_only" , compact: true, align: "center"}) %>
3
+ <%= pb_rails("weekday_stacked", props: { variant: "month_day", compact: true, align: "right" }) %>
@@ -1,48 +1,25 @@
1
1
  import React from 'react'
2
2
  import {
3
- Flex,
4
- // FlexItem,
5
3
  WeekdayStacked,
6
- } from '../..'
4
+ } from '../../'
7
5
 
8
6
  const WeekdayStackedCompact = () => (
9
- <Flex spacing="evenly">
7
+ <div>
10
8
  <WeekdayStacked
11
9
  compact
12
- date={new Date('2019/11/4')}
13
- dayOnly
10
+ variant="day_only"
14
11
  />
15
12
  <WeekdayStacked
13
+ align="center"
16
14
  compact
17
- date={new Date('2019/11/5')}
18
- dayOnly
15
+ variant="month_day"
19
16
  />
20
17
  <WeekdayStacked
18
+ align="right"
21
19
  compact
22
- date={new Date('2019/11/6')}
23
- dayOnly
20
+ variant="expanded"
24
21
  />
25
- <WeekdayStacked
26
- compact
27
- date={new Date('2019/11/7')}
28
- dayOnly
29
- />
30
- <WeekdayStacked
31
- compact
32
- date={new Date('2019/11/8')}
33
- dayOnly
34
- />
35
- <WeekdayStacked
36
- compact
37
- date={new Date('2019/11/9')}
38
- dayOnly
39
- />
40
- <WeekdayStacked
41
- compact
42
- date={new Date('2019/11/10')}
43
- dayOnly
44
- />
45
- </Flex>
22
+ </div>
46
23
  )
47
24
 
48
25
  export default WeekdayStackedCompact
@@ -0,0 +1,3 @@
1
+ <%= pb_rails("weekday_stacked", props: {variant: "expanded", }) %>
2
+ <%= pb_rails("weekday_stacked", props: { variant: "day_only", align: "center" }) %>
3
+ <%= pb_rails("weekday_stacked", props: { variant: "month_day", align: "right" }) %>
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+ import {
3
+ WeekdayStacked,
4
+ } from '../../'
5
+
6
+ const WeekdayStackedVariant = () => (
7
+ <div>
8
+ <WeekdayStacked
9
+ variant="day_only"
10
+ />
11
+ <WeekdayStacked
12
+ align="center"
13
+ variant="month_day"
14
+ />
15
+ <WeekdayStacked
16
+ align="right"
17
+ variant="expanded"
18
+ />
19
+ </div>
20
+ )
21
+
22
+ export default WeekdayStackedVariant
@@ -2,14 +2,14 @@ examples:
2
2
 
3
3
  rails:
4
4
  - weekday_stacked_default: Default
5
- - weekday_stacked_day_only: Day Only
6
- - weekday_stacked_compact: Day Only - Compact
7
5
  - weekday_stacked_dark: Dark
6
+ - weekday_stacked_compact: Compact
7
+ - weekday_stacked_variant: Variant
8
8
 
9
9
 
10
10
  react:
11
11
  - weekday_stacked_default: Default
12
- - weekday_stacked_day_only: Day Only
13
- - weekday_stacked_compact: Day Only - Compact
14
12
  - weekday_stacked_dark: Dark
13
+ - weekday_stacked_compact: Compact
14
+ - weekday_stacked_variant: Variant
15
15
 
@@ -1,4 +1,4 @@
1
1
  export { default as WeekdayStackedDefault } from './_weekday_stacked_default.jsx'
2
- export { default as WeekdayStackedDayOnly } from './_weekday_stacked_day_only.jsx'
3
- export { default as WeekdayStackedCompact } from './_weekday_stacked_compact.jsx'
4
2
  export { default as WeekdayStackedDark } from './_weekday_stacked_dark.jsx'
3
+ export { default as WeekdayStackedVariant } from './_weekday_stacked_variant.jsx'
4
+ export { default as WeekdayStackedCompact } from './_weekday_stacked_compact.jsx'
@@ -13,17 +13,18 @@ module Playbook
13
13
  values: %w[left center right],
14
14
  default: "left"
15
15
 
16
- prop :compact, type: Playbook::Props::Boolean,
17
- default: false
18
-
19
16
  prop :dark, type: Playbook::Props::Boolean,
20
17
  default: false
21
18
 
22
19
  prop :date, type: Playbook::Props::Date,
23
20
  default: ::Date.current
21
+
22
+ prop :compact, type: Playbook::Props::Boolean,
23
+ default: false
24
24
 
25
- prop :day_only, type: Playbook::Props::Boolean,
26
- default: false
25
+ prop :variant, type: Playbook::Props::Enum,
26
+ values: %w[day_only expanded month_day],
27
+ default: "month_day"
27
28
 
28
29
  def classname
29
30
  generate_classname("pb_weekday_stacked_kit", align)
@@ -38,15 +39,19 @@ module Playbook
38
39
  end
39
40
 
40
41
  def formatted_month_and_day
41
- compact || day_only ? day : month_and_day
42
+ case variant
43
+ when "day_only" then day
44
+ when "expanded" then month_and_day(format: "%b %-d")
45
+ else month_and_day
46
+ end
42
47
  end
43
48
 
44
49
  private
45
50
 
46
- def month_and_day
51
+ def month_and_day(format: "%-m/%-d")
47
52
  month_and_day = Playbook::PbKit::PbDateTime.new(date)
48
53
  content_tag(:time, datetime: month_and_day.to_iso) do
49
- "#{month_and_day.to_unpadded_month_number}/#{month_and_day.to_unpadded_day}"
54
+ date.strftime(format)
50
55
  end
51
56
  end
52
57
 
@@ -176,17 +176,19 @@ $primary_action: $primary;
176
176
  // Product colors ---------------------
177
177
  $windows: $royal;
178
178
  $siding: $yellow;
179
- $doors: $red;
179
+ $doors: $teal;
180
180
  $solar: $green;
181
- $roofing: $teal;
181
+ $roofing: $slate;
182
182
  $gutters: $purple;
183
+ $insulation: $red;
183
184
  $product_colors: (
184
185
  windows: $windows,
185
186
  siding: $siding,
186
187
  doors: $doors,
187
188
  solar: $solar,
188
189
  roofing: $roofing,
189
- gutters: $gutters
190
+ gutters: $gutters,
191
+ insulation: $insulation
190
192
  );
191
193
 
192
194
  $transparent: transparent;
@@ -85,4 +85,5 @@ br
85
85
  {name: "Doors", variable: "doors"},
86
86
  {name: "Solar", variable: "solar"},
87
87
  {name: "Roofing", variable: "roofing"},
88
- {name: "Gutters", variable: "gutters"}]}
88
+ {name: "Gutters", variable: "gutters"},
89
+ {name: "Attic Insulation", variable: "insulation"}]}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "4.11.0"
4
+ VERSION = "4.12.0"
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: 4.11.0
4
+ version: 4.12.0
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-04-10 00:00:00.000000000 Z
12
+ date: 2020-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -746,6 +746,14 @@ files:
746
746
  - app/pb_kits/playbook/pb_distribution_bar/docs/index.js
747
747
  - app/pb_kits/playbook/pb_enhanced_element/element_observer.js
748
748
  - app/pb_kits/playbook/pb_enhanced_element/index.js
749
+ - app/pb_kits/playbook/pb_file_upload/_file_upload.jsx
750
+ - app/pb_kits/playbook/pb_file_upload/_file_upload.scss
751
+ - app/pb_kits/playbook/pb_file_upload/docs/_description.md
752
+ - app/pb_kits/playbook/pb_file_upload/docs/_file_upload_accept.jsx
753
+ - app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx
754
+ - app/pb_kits/playbook/pb_file_upload/docs/example.yml
755
+ - app/pb_kits/playbook/pb_file_upload/docs/index.js
756
+ - app/pb_kits/playbook/pb_file_upload/file_upload.rb
749
757
  - app/pb_kits/playbook/pb_filter/_filter.html.erb
750
758
  - app/pb_kits/playbook/pb_filter/_filter.jsx
751
759
  - app/pb_kits/playbook/pb_filter/_filter.scss
@@ -947,7 +955,6 @@ files:
947
955
  - app/pb_kits/playbook/pb_label_pill/docs/_description.md
948
956
  - app/pb_kits/playbook/pb_label_pill/docs/_footer.md
949
957
  - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.html.erb
950
- - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx
951
958
  - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.md
952
959
  - app/pb_kits/playbook/pb_label_pill/docs/example.yml
953
960
  - app/pb_kits/playbook/pb_label_pill/docs/index.js
@@ -1123,7 +1130,6 @@ files:
1123
1130
  - app/pb_kits/playbook/pb_online_status/_online_status_mixins.scss
1124
1131
  - app/pb_kits/playbook/pb_online_status/docs/_description.md
1125
1132
  - app/pb_kits/playbook/pb_online_status/docs/_online_status_default.html.erb
1126
- - app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx
1127
1133
  - app/pb_kits/playbook/pb_online_status/docs/example.yml
1128
1134
  - app/pb_kits/playbook/pb_online_status/docs/index.js
1129
1135
  - app/pb_kits/playbook/pb_online_status/online_status.rb
@@ -1239,12 +1245,16 @@ files:
1239
1245
  - app/pb_kits/playbook/pb_section_separator/_section_separator.scss
1240
1246
  - app/pb_kits/playbook/pb_section_separator/docs/_description.md
1241
1247
  - app/pb_kits/playbook/pb_section_separator/docs/_footer.md
1248
+ - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dark.html.erb
1249
+ - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dark.jsx
1242
1250
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.html.erb
1243
1251
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx
1244
1252
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.html.erb
1245
1253
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx
1246
1254
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.html.erb
1247
1255
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx
1256
+ - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.html.erb
1257
+ - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx
1248
1258
  - app/pb_kits/playbook/pb_section_separator/docs/example.yml
1249
1259
  - app/pb_kits/playbook/pb_section_separator/docs/index.js
1250
1260
  - app/pb_kits/playbook/pb_section_separator/section_separator.rb
@@ -1301,7 +1311,6 @@ files:
1301
1311
  - app/pb_kits/playbook/pb_source/_source.scss
1302
1312
  - app/pb_kits/playbook/pb_source/docs/_description.md
1303
1313
  - app/pb_kits/playbook/pb_source/docs/_source_default.html.erb
1304
- - app/pb_kits/playbook/pb_source/docs/_source_default.jsx
1305
1314
  - app/pb_kits/playbook/pb_source/docs/_source_noicon.html.erb
1306
1315
  - app/pb_kits/playbook/pb_source/docs/_source_types.html.erb
1307
1316
  - app/pb_kits/playbook/pb_source/docs/example.yml
@@ -1312,7 +1321,6 @@ files:
1312
1321
  - app/pb_kits/playbook/pb_star_rating/_star_rating.scss
1313
1322
  - app/pb_kits/playbook/pb_star_rating/docs/_description.md
1314
1323
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.html.erb
1315
- - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx
1316
1324
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.html.erb
1317
1325
  - app/pb_kits/playbook/pb_star_rating/docs/example.yml
1318
1326
  - app/pb_kits/playbook/pb_star_rating/docs/index.js
@@ -1432,7 +1440,6 @@ files:
1432
1440
  - app/pb_kits/playbook/pb_time/docs/_description.md
1433
1441
  - app/pb_kits/playbook/pb_time/docs/_footer.md
1434
1442
  - app/pb_kits/playbook/pb_time/docs/_time_default.html.erb
1435
- - app/pb_kits/playbook/pb_time/docs/_time_default.jsx
1436
1443
  - app/pb_kits/playbook/pb_time/docs/_time_default.md
1437
1444
  - app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb
1438
1445
  - app/pb_kits/playbook/pb_time/docs/example.yml
@@ -1456,7 +1463,6 @@ files:
1456
1463
  - app/pb_kits/playbook/pb_timestamp/docs/_footer.md
1457
1464
  - app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md
1458
1465
  - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb
1459
- - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx
1460
1466
  - app/pb_kits/playbook/pb_timestamp/docs/example.yml
1461
1467
  - app/pb_kits/playbook/pb_timestamp/docs/index.js
1462
1468
  - app/pb_kits/playbook/pb_timestamp/timestamp.rb
@@ -1490,7 +1496,6 @@ files:
1490
1496
  - app/pb_kits/playbook/pb_title_detail/docs/_description.md
1491
1497
  - app/pb_kits/playbook/pb_title_detail/docs/_footer.md
1492
1498
  - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.html.erb
1493
- - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx
1494
1499
  - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.md
1495
1500
  - app/pb_kits/playbook/pb_title_detail/docs/example.yml
1496
1501
  - app/pb_kits/playbook/pb_title_detail/docs/index.js
@@ -1562,10 +1567,10 @@ files:
1562
1567
  - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.jsx
1563
1568
  - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.html.erb
1564
1569
  - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.jsx
1565
- - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.html.erb
1566
- - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.jsx
1567
1570
  - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.html.erb
1568
1571
  - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.jsx
1572
+ - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_variant.html.erb
1573
+ - app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_variant.jsx
1569
1574
  - app/pb_kits/playbook/pb_weekday_stacked/docs/example.yml
1570
1575
  - app/pb_kits/playbook/pb_weekday_stacked/docs/index.js
1571
1576
  - app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.rb
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const LabelPillDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default LabelPillDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const OnlineStatusDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default OnlineStatusDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const SourceDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default SourceDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const StarRatingDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default StarRatingDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const TimeDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default TimeDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const TimestampDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default TimestampDefault
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const TitleDetailDefault = () => {
4
- return (
5
- <h1>{'Coming Soon...'}</h1>
6
- )
7
- }
8
-
9
- export default TitleDetailDefault
@@ -1 +0,0 @@
1
- <%= pb_rails("weekday_stacked", props: {day_only: true}) %>
@@ -1,14 +0,0 @@
1
- import React from 'react'
2
- import {
3
- WeekdayStacked,
4
- } from '../..'
5
-
6
- const WeekdayStackedDayOnly = () => (
7
- <div>
8
- <WeekdayStacked
9
- dayOnly
10
- />
11
- </div>
12
- )
13
-
14
- export default WeekdayStackedDayOnly