playbook_ui 4.8.2 → 4.9.0.pre.alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/pages_controller.rb +8 -0
  3. data/app/helpers/playbook/pb_doc_helper.rb +8 -2
  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_avatar/_avatar.scss +3 -0
  9. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +60 -0
  10. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +6 -0
  11. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx +34 -0
  12. data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +7 -0
  13. data/app/pb_kits/playbook/pb_file_upload/docs/index.js +1 -0
  14. data/app/pb_kits/playbook/pb_file_upload/file_upload.rb +11 -0
  15. data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -2
  16. data/app/pb_kits/playbook/pb_filter/docs/index.js +0 -1
  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_label_value/_label_value.jsx +31 -14
  20. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +8 -0
  21. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_dark.html.erb +24 -0
  22. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_dark.jsx +35 -0
  23. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_default.jsx +24 -1
  24. data/app/pb_kits/playbook/pb_label_value/docs/example.yml +2 -1
  25. data/app/pb_kits/playbook/pb_label_value/docs/index.js +1 -0
  26. data/app/pb_kits/playbook/pb_label_value/label_value.rb +8 -1
  27. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +1 -3
  28. data/app/pb_kits/playbook/pb_online_status/docs/index.js +0 -1
  29. data/app/pb_kits/playbook/pb_source/docs/example.yml +0 -1
  30. data/app/pb_kits/playbook/pb_source/docs/index.js +0 -1
  31. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +0 -1
  32. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +0 -1
  33. data/app/pb_kits/playbook/pb_table/_table.jsx +3 -1
  34. data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.html.erb +47 -0
  35. data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.jsx +61 -0
  36. data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
  37. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -0
  38. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +13 -14
  39. data/app/pb_kits/playbook/pb_time/docs/example.yml +0 -1
  40. data/app/pb_kits/playbook/pb_time/docs/index.js +0 -1
  41. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +0 -2
  42. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -1
  43. data/app/pb_kits/playbook/pb_title_detail/docs/example.yml +0 -2
  44. data/app/pb_kits/playbook/pb_title_detail/docs/index.js +0 -1
  45. data/app/pb_kits/playbook/tokens/_colors.scss +2 -2
  46. data/app/views/layouts/playbook/application.html.slim +1 -0
  47. data/app/views/playbook/pages/utilities.html.slim +1 -1
  48. data/lib/playbook/version.rb +1 -1
  49. metadata +16 -14
  50. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +0 -9
  51. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +0 -9
  52. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +0 -9
  53. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +0 -9
  54. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +0 -9
  55. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +0 -9
  56. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +0 -9
  57. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f41335e55a92455ba28930fa6ed89497e3b54fb3fed16c22fb16f49b55f1c45
4
- data.tar.gz: 6ff3cf889a066d1fc7f030206b7e66cee9d5b6c8888361b4656ebdf9356836cc
3
+ metadata.gz: 4bf167d5819d52fd311f42011552c99f5751162188c78d6e5b0323d31fe2b8b3
4
+ data.tar.gz: 8f3f6b3c81345d2eac3f089996e8c2d47eff1501dd51bf2b1f99c0efe7d5a2c1
5
5
  SHA512:
6
- metadata.gz: a787d0ea25cfcf3ec2ae01ab16cba660b1e267d4ce69eea2f34f3d1ba8334c0d7dade17d5a81f3d520c694965582558d1e617274962be771f7c78dbdf1447abc
7
- data.tar.gz: 530eb8478cd47f7ed0572617b2831bbc57e6b2c5cc9c7a4b885f3505fd6a8785ff95f7880ec83dd5f462ddc5141de8ab2d5d432717502f60462a037b8bfc3772
6
+ metadata.gz: 925331069d01cf6923aff7df667e20a6f58d87f556d95ba7ec5eaff283c9f76dda103c535c0cc837828b940ef2f8fc57ca7c622e606a257bf7cd2a53d0ee228a
7
+ data.tar.gz: 6cff5497adc01543477c14687c409d132957a8f27f2ec5f87214eb83cc4547977da2fd39094960019e96bfb12a03147d1af8536237ac39a5a940c0d719efb395
@@ -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_rails_kit_exists, only: %i[kit_show_rails]
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,12 @@ 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_rails_kit_exists
70
+ # TODO: unsure why we cannot simply use the helpers that are included in ApplicationController - fix this
71
+ erbfiles = File.join("**", "*.erb")
72
+ kit_files = Dir.glob(erbfiles, base: "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit}/docs").present?
73
+ redirect_to action: "kit_show_react" unless kit_files.present?
74
+ end
67
75
  end
68
76
  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,6 +25,10 @@ module Playbook
23
25
  end
24
26
  end
25
27
 
28
+ def kit_path(kit)
29
+ "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}"
30
+ end
31
+
26
32
  def get_kit_description(kit)
27
33
  filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{@kit}/docs/_description.md"
28
34
  read_file(filename)
@@ -65,4 +65,5 @@
65
65
  @import 'pb_typeahead/typeahead';
66
66
  @import 'pb_user/user';
67
67
  @import 'pb_user_badge/user_badge';
68
+ @import 'pb_file_upload/file_upload';
68
69
  @import 'pb_filter/filter';
@@ -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
@@ -74,3 +75,4 @@ kits:
74
75
  - title_detail
75
76
  - user
76
77
  - user_badge
78
+
@@ -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'
@@ -99,6 +100,7 @@ WebpackerReact.setup({
99
100
  ...DateStacked,
100
101
  ...DateYearStacked,
101
102
  ...DistributionBar,
103
+ ...FileUpload,
102
104
  ...Filter,
103
105
  ...FixedConfirmationToast,
104
106
  ...Flex,
@@ -60,6 +60,9 @@ $avatar-sizes: (
60
60
  top: 0;
61
61
  left: 0;
62
62
  z-index: 1;
63
+ border-radius: $border-rad-mega;
64
+ object-fit: cover;
65
+ display: block;
63
66
  }
64
67
  }
65
68
  [class^=pb_online_status] {
@@ -0,0 +1,60 @@
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
+ acceptedFiles?: FileList,
20
+ className?: String,
21
+ onFilesAccepted: Callback,
22
+ }
23
+
24
+ const FileUpload = ({
25
+ acceptedFiles = [],
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({ onDrop })
38
+
39
+ return (
40
+ <div
41
+ className={buildCss('pb_file_upload_kit', className)}
42
+ {...getRootProps()}
43
+ >
44
+ <Card>
45
+ <input {...getInputProps()} />
46
+ <Body
47
+ color="light"
48
+ >
49
+ <If condition={isDragActive}>
50
+ <p>{'Drop the files here ...'}</p>
51
+ <Else />
52
+ <p>{'Drag & drop some files here, or click to select files'}</p>
53
+ </If>
54
+ </Body>
55
+ </Card>
56
+ </div>
57
+ )
58
+ }
59
+
60
+ 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,34 @@
1
+ import React, { useState } from 'react'
2
+ import {
3
+ FileUpload,
4
+ List,
5
+ ListItem,
6
+ } from '../..'
7
+
8
+ const AcceptedFilesList = ({files}: FileList) => (
9
+ <List>
10
+ {files.map(file => (
11
+ <ListItem key={file.name}>{file.name}</ListItem>
12
+ ))}
13
+ </List>
14
+ )
15
+
16
+ const FileUploadDefault = () => {
17
+ const [filesToUpload, setFilesToUpload] = useState([])
18
+
19
+ const handleOnFilesAccepted = files => {
20
+ setFilesToUpload([...filesToUpload, ...files])
21
+ }
22
+
23
+ return (
24
+ <div>
25
+ <AcceptedFilesList files={filesToUpload} />
26
+ <FileUpload
27
+ acceptedFiles={filesToUpload}
28
+ onFilesAccepted={handleOnFilesAccepted}
29
+ />
30
+ </div>
31
+ )
32
+ }
33
+
34
+ export default FileUploadDefault
@@ -0,0 +1,7 @@
1
+ examples:
2
+
3
+ rails:
4
+
5
+ react:
6
+ - file_upload_default: Default List of Files to Upload
7
+
@@ -0,0 +1 @@
1
+ export { default as FileUploadDefault } from './_file_upload_default.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
@@ -6,5 +6,3 @@ examples:
6
6
  - filter_no_background: No Background
7
7
 
8
8
  react:
9
- - filter_default: Default
10
-
@@ -1 +0,0 @@
1
- export { default as FilterDefault } from './_filter_default.jsx'
@@ -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'
@@ -1,21 +1,38 @@
1
+ /* @flow */
2
+
1
3
  import React from 'react'
2
- import PropTypes from 'prop-types'
4
+ import classnames from 'classnames'
5
+ import { Body, Caption } from '../'
3
6
 
4
- const propTypes = {
5
- className: PropTypes.string,
6
- id: PropTypes.string,
7
+ type LabelValueProps = {
8
+ className?: String,
9
+ label: String,
10
+ value: String,
11
+ dark?: Boolean
7
12
  }
8
13
 
9
- class LabelValue extends React.Component {
10
- render() {
11
- return (
12
- <div className="pb_label_value">
13
- <span>{'LABEL VALUE CONTENT'}</span>
14
- </div>
15
- )
16
- }
17
- }
14
+ const LabelValue = ({
15
+ className,
16
+ label,
17
+ value,
18
+ dark = false,
19
+ }: LabelValueProps) => {
20
+ const themeStyle = dark === true ? '_dark' : ''
21
+ const css = classnames([
22
+ 'pb_label_value_kit' + themeStyle,
23
+ className,
24
+ ])
18
25
 
19
- LabelValue.propTypes = propTypes
26
+ return (
27
+ <div className={css}>
28
+ <Caption
29
+ text={label}
30
+ />
31
+ <Body
32
+ text={value}
33
+ />
34
+ </div>
35
+ )
36
+ }
20
37
 
21
38
  export default LabelValue
@@ -6,4 +6,12 @@
6
6
  [class^=pb_caption_kit] {
7
7
  margin-bottom: $space-xs/1.5;
8
8
  }
9
+ &[class*=_dark] {
10
+ [class^=pb_caption_kit] {
11
+ color: $text_dk_light;
12
+ }
13
+ [class^=pb_body_kit] {
14
+ color: $text_dk_default;
15
+ }
16
+ }
9
17
  }
@@ -0,0 +1,24 @@
1
+ <%= pb_rails("label_value", props: {
2
+ label: "Role",
3
+ value: "Administrator, Moderator",
4
+ dark: true
5
+ }) %>
6
+
7
+ <br>
8
+
9
+ <%= pb_rails("label_value", props: {
10
+ label: "Email",
11
+ value: "anna.black@powerhrg.com",
12
+ dark: true
13
+ }) %>
14
+
15
+ <br>
16
+
17
+ <%= pb_rails("label_value", props: {
18
+ label: "Bio",
19
+ value: "Proin pulvinar feugiat massa in luctus. Donec urna nulla,
20
+ elementum sit amet tincidunt nec, mattis nec urna. Cras viverra
21
+ lorem odio, id pretium dui interdum ut. Nullam dignissim nisl vitae
22
+ orci vehicula condimentum.",
23
+ dark: true
24
+ }) %>
@@ -0,0 +1,35 @@
1
+ import React from 'react'
2
+ import { LabelValue } from '../../'
3
+
4
+ const LabelValueDark = () => {
5
+ return (
6
+ <div>
7
+ <LabelValue
8
+ dark
9
+ label="Role"
10
+ value="Administrator, Moderator"
11
+ />
12
+
13
+ <br />
14
+
15
+ <LabelValue
16
+ dark
17
+ label="Email"
18
+ value="anna.black@powerhrg.com"
19
+ />
20
+
21
+ <br />
22
+
23
+ <LabelValue
24
+ dark
25
+ label="Bio"
26
+ value="Proin pulvinar feugiat massa in luctus. Donec urna nulla,
27
+ elementum sit amet tincidunt nec, mattis nec urna. Cras viverra
28
+ lorem odio, id pretium dui interdum ut. Nullam dignissim nisl vitae
29
+ orci vehicula condimentum"
30
+ />
31
+ </div>
32
+ )
33
+ }
34
+
35
+ export default LabelValueDark
@@ -1,8 +1,31 @@
1
1
  import React from 'react'
2
+ import { LabelValue } from '../../'
2
3
 
3
4
  const LabelValueDefault = () => {
4
5
  return (
5
- <h1>{'Coming Soon...'}</h1>
6
+ <div>
7
+ <LabelValue
8
+ label="Role"
9
+ value="Administrator, Moderator"
10
+ />
11
+
12
+ <br />
13
+
14
+ <LabelValue
15
+ label="Email"
16
+ value="anna.black@powerhrg.com"
17
+ />
18
+
19
+ <br />
20
+
21
+ <LabelValue
22
+ label="Bio"
23
+ value="Proin pulvinar feugiat massa in luctus. Donec urna nulla,
24
+ elementum sit amet tincidunt nec, mattis nec urna. Cras viverra
25
+ lorem odio, id pretium dui interdum ut. Nullam dignissim nisl vitae
26
+ orci vehicula condimentum"
27
+ />
28
+ </div>
6
29
  )
7
30
  }
8
31
 
@@ -2,8 +2,9 @@ examples:
2
2
 
3
3
  rails:
4
4
  - label_value_default: Default
5
+ - label_value_dark: Dark
5
6
 
6
7
 
7
8
  react:
8
9
  - label_value_default: Default
9
-
10
+ - label_value_dark: Dark
@@ -1 +1,2 @@
1
1
  export { default as LabelValueDefault } from './_label_value_default.jsx'
2
+ export { default as LabelValueDark } from './_label_value_dark.jsx'
@@ -9,9 +9,16 @@ module Playbook
9
9
 
10
10
  prop :label, required: true
11
11
  prop :value, required: true
12
+ prop :dark, type: Playbook::Props::Boolean, default: false
12
13
 
13
14
  def classname
14
- generate_classname("pb_label_value_kit")
15
+ generate_classname("pb_label_value_kit", dark_class)
16
+ end
17
+
18
+ private
19
+
20
+ def dark_class
21
+ dark ? "dark" : nil
15
22
  end
16
23
  end
17
24
  end
@@ -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'
@@ -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'
@@ -12,6 +12,7 @@ type TableProps = {
12
12
  // @deprecated disable_hover since version 3.2.0, please use `disableHover`
13
13
  disable_hover: boolean, // eslint-disable-line camelcase
14
14
  disableHover: boolean,
15
+ responsive: "collapse" | "scroll" | "none",
15
16
  // @deprecated single_line since version 3.2.0, please use `singleLine`
16
17
  single_line: boolean, // eslint-disable-line camelcase
17
18
  singleLine: boolean,
@@ -26,6 +27,7 @@ const Table = ({
26
27
  dataTable = false,
27
28
  disable_hover = false, // eslint-disable-line camelcase
28
29
  disableHover = false,
30
+ responsive = 'collapse',
29
31
  single_line = false, // eslint-disable-line camelcase
30
32
  singleLine = false,
31
33
  size = 'sm',
@@ -33,7 +35,7 @@ const Table = ({
33
35
  disableHover = disableHover || disable_hover // eslint-disable-line camelcase
34
36
  singleLine = singleLine || single_line // eslint-disable-line camelcase
35
37
 
36
- const classes = classnames(className, 'pb_table', `table-${size}`, {
38
+ const classes = classnames(className, 'pb_table', `table-${size}`, `table-responsive-${responsive}`, {
37
39
  'table-card': container,
38
40
  'table-dark': dark,
39
41
  'data_table': dataTable,
@@ -0,0 +1,47 @@
1
+ <%= pb_rails("title", props: { size: 4, text: "Default" }) %>
2
+
3
+ <%= pb_rails("table", props: { responsive: "collapse" }) do %>
4
+ <thead>
5
+ <tr>
6
+ <th>Column 1</th>
7
+ <th>Column 2</th>
8
+ <th>Column 3</th>
9
+ <th>Column 4</th>
10
+ <th>Column 5</th>
11
+ </tr>
12
+ </thead>
13
+ <tbody>
14
+ <tr>
15
+ <td>Value 1</td>
16
+ <td>Value 2</td>
17
+ <td>Value 3</td>
18
+ <td>Value 4</td>
19
+ <td>Value 5</td>
20
+ </tr>
21
+ </tbody>
22
+ <% end %>
23
+
24
+ <br>
25
+
26
+ <%= pb_rails("title", props: { size: 4, text: "Responsive Off" }) %>
27
+
28
+ <%= pb_rails("table", props: { responsive: "none" }) do %>
29
+ <thead>
30
+ <tr>
31
+ <th>Column 1</th>
32
+ <th>Column 2</th>
33
+ <th>Column 3</th>
34
+ <th>Column 4</th>
35
+ <th>Column 5</th>
36
+ </tr>
37
+ </thead>
38
+ <tbody>
39
+ <tr>
40
+ <td>Value 1</td>
41
+ <td>Value 2</td>
42
+ <td>Value 3</td>
43
+ <td>Value 4</td>
44
+ <td>Value 5</td>
45
+ </tr>
46
+ </tbody>
47
+ <% end %>
@@ -0,0 +1,61 @@
1
+ import React from 'react'
2
+ import { Table, Title } from '../../'
3
+
4
+ const TableResponsiveTable = () => {
5
+ return (
6
+ <div>
7
+ <Title
8
+ size={4}
9
+ text="Default"
10
+ />
11
+ <Table>
12
+ <thead>
13
+ <tr>
14
+ <th>{'Column 1'}</th>
15
+ <th>{'Column 2'}</th>
16
+ <th>{'Column 3'}</th>
17
+ <th>{'Column 4'}</th>
18
+ <th>{'Column 5'}</th>
19
+ </tr>
20
+ </thead>
21
+ <tbody>
22
+ <tr>
23
+ <td>{'Value 1'}</td>
24
+ <td>{'Value 2'}</td>
25
+ <td>{'Value 3'}</td>
26
+ <td>{'Value 4'}</td>
27
+ <td>{'Value 5'}</td>
28
+ </tr>
29
+ </tbody>
30
+ </Table>
31
+ <br />
32
+ <br />
33
+ <Title
34
+ size={4}
35
+ text="Default"
36
+ />
37
+ <Table responsive="none">
38
+ <thead>
39
+ <tr>
40
+ <th>{'Column 1'}</th>
41
+ <th>{'Column 2'}</th>
42
+ <th>{'Column 3'}</th>
43
+ <th>{'Column 4'}</th>
44
+ <th>{'Column 5'}</th>
45
+ </tr>
46
+ </thead>
47
+ <tbody>
48
+ <tr>
49
+ <td>{'Value 1'}</td>
50
+ <td>{'Value 2'}</td>
51
+ <td>{'Value 3'}</td>
52
+ <td>{'Value 4'}</td>
53
+ <td>{'Value 5'}</td>
54
+ </tr>
55
+ </tbody>
56
+ </Table>
57
+ </div>
58
+ )
59
+ }
60
+
61
+ export default TableResponsiveTable
@@ -8,6 +8,7 @@ examples:
8
8
  - table_multiline: Multi-line
9
9
  - table_single_line: Force Single Line
10
10
  - table_data_table: Data Table
11
+ - table_responsive_table: Responsive Tables
11
12
  - table_dark: Table Dark
12
13
  - table_container_dark: Table Container Off Dark
13
14
  react:
@@ -19,5 +20,6 @@ examples:
19
20
  - table_multiline: Multi-line
20
21
  - table_single_line: Force Single Line
21
22
  - table_data_table: Data Table
23
+ - table_responsive_table: Responsive Tables
22
24
  - table_dark: Table Dark
23
25
  - table_container_dark: Table Container Off Dark
@@ -3,6 +3,7 @@ export { default as TableMd } from './_table_md.jsx'
3
3
  export { default as TableLg } from './_table_lg.jsx'
4
4
  export { default as TableContainer } from './_table_container.jsx'
5
5
  export { default as TableDataTable } from './_table_data_table.jsx'
6
+ export { default as TableResponsiveTable } from './_table_responsive_table.jsx'
6
7
  export { default as TableDark } from './_table_dark.jsx'
7
8
  export { default as TableContainerDark } from './_table_container_dark.jsx'
8
9
  export { default as TableDisableHover } from './_table_disable_hover.jsx'
@@ -3,9 +3,9 @@
3
3
 
4
4
  @media only screen and (max-width: $screen-xs-max) {
5
5
  [class^=pb_table] {
6
- &.table-sm,
7
- &.table-md,
8
- &.table-lg {
6
+ &.table-sm.table-responsive-collapse,
7
+ &.table-md.table-responsive-collapse,
8
+ &.table-lg.table-responsive-collapse {
9
9
  width: 100%;
10
10
  background: none !important;
11
11
 
@@ -31,7 +31,6 @@
31
31
  border-bottom-width: 0 !important;
32
32
  border-color: $border_light !important;
33
33
  min-height: 2.2em;
34
- // padding-left: 34%;
35
34
  position: relative;
36
35
  text-align:left;
37
36
  white-space: normal;
@@ -99,16 +98,16 @@
99
98
  }
100
99
  }
101
100
  }
102
- }
103
- // reset the first and last to normalize
104
- @each $name, $value in $cell-pad-list {
105
- &.#{$name} {
106
- tbody {
107
- tr {
108
- td {
109
- &:first-child,
110
- &:last-child {
111
- padding: $value $cell-gutter !important;
101
+ // reset the first and last to normalize
102
+ @each $name, $value in $cell-pad-list {
103
+ &.#{$name} {
104
+ tbody {
105
+ tr {
106
+ td {
107
+ &:first-child,
108
+ &:last-child {
109
+ padding: $value $cell-gutter !important;
110
+ }
112
111
  }
113
112
  }
114
113
  }
@@ -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'
@@ -178,14 +178,14 @@ $windows: $royal;
178
178
  $siding: $yellow;
179
179
  $doors: $red;
180
180
  $solar: $green;
181
- $roofs: $teal;
181
+ $roofing: $teal;
182
182
  $gutters: $purple;
183
183
  $product_colors: (
184
184
  windows: $windows,
185
185
  siding: $siding,
186
186
  doors: $doors,
187
187
  solar: $solar,
188
- roofs: $roofs,
188
+ roofing: $roofing,
189
189
  gutters: $gutters
190
190
  );
191
191
 
@@ -5,6 +5,7 @@ html
5
5
  = csrf_meta_tags
6
6
  = csp_meta_tag
7
7
  = stylesheet_pack_tag 'main'
8
+ meta content="user-scalable=0, initial-scale=1.0, minimum-scale=1" name="viewport"
8
9
 
9
10
  body
10
11
  = render 'layouts/playbook/nav'
@@ -84,5 +84,5 @@ br
84
84
  {name: "Siding", variable: "siding"},
85
85
  {name: "Doors", variable: "doors"},
86
86
  {name: "Solar", variable: "solar"},
87
- {name: "Roofs", variable: "roofs"},
87
+ {name: "Roofing", variable: "roofing"},
88
88
  {name: "Gutters", variable: "gutters"}]}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "4.8.2"
4
+ VERSION = "4.9.0-alpha1"
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.8.2
4
+ version: 4.9.0.pre.alpha1
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-03-24 00:00:00.000000000 Z
12
+ date: 2020-04-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -175,14 +175,14 @@ dependencies:
175
175
  requirements:
176
176
  - - '='
177
177
  - !ruby/object:Gem::Version
178
- version: 4.0.7
178
+ version: 4.2.2
179
179
  type: :runtime
180
180
  prerelease: false
181
181
  version_requirements: !ruby/object:Gem::Requirement
182
182
  requirements:
183
183
  - - '='
184
184
  - !ruby/object:Gem::Version
185
- version: 4.0.7
185
+ version: 4.2.2
186
186
  - !ruby/object:Gem::Dependency
187
187
  name: webpacker-react
188
188
  requirement: !ruby/object:Gem::Requirement
@@ -757,11 +757,16 @@ files:
757
757
  - app/pb_kits/playbook/pb_distribution_bar/docs/index.js
758
758
  - app/pb_kits/playbook/pb_enhanced_element/element_observer.js
759
759
  - app/pb_kits/playbook/pb_enhanced_element/index.js
760
+ - app/pb_kits/playbook/pb_file_upload/_file_upload.jsx
761
+ - app/pb_kits/playbook/pb_file_upload/_file_upload.scss
762
+ - app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx
763
+ - app/pb_kits/playbook/pb_file_upload/docs/example.yml
764
+ - app/pb_kits/playbook/pb_file_upload/docs/index.js
765
+ - app/pb_kits/playbook/pb_file_upload/file_upload.rb
760
766
  - app/pb_kits/playbook/pb_filter/_filter.html.erb
761
767
  - app/pb_kits/playbook/pb_filter/_filter.jsx
762
768
  - app/pb_kits/playbook/pb_filter/_filter.scss
763
769
  - app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb
764
- - app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx
765
770
  - app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb
766
771
  - app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb
767
772
  - app/pb_kits/playbook/pb_filter/docs/example.yml
@@ -952,7 +957,6 @@ files:
952
957
  - app/pb_kits/playbook/pb_label_pill/docs/_description.md
953
958
  - app/pb_kits/playbook/pb_label_pill/docs/_footer.md
954
959
  - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.html.erb
955
- - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx
956
960
  - app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.md
957
961
  - app/pb_kits/playbook/pb_label_pill/docs/example.yml
958
962
  - app/pb_kits/playbook/pb_label_pill/docs/index.js
@@ -962,6 +966,8 @@ files:
962
966
  - app/pb_kits/playbook/pb_label_value/_label_value.scss
963
967
  - app/pb_kits/playbook/pb_label_value/docs/_description.md
964
968
  - app/pb_kits/playbook/pb_label_value/docs/_footer.md
969
+ - app/pb_kits/playbook/pb_label_value/docs/_label_value_dark.html.erb
970
+ - app/pb_kits/playbook/pb_label_value/docs/_label_value_dark.jsx
965
971
  - app/pb_kits/playbook/pb_label_value/docs/_label_value_default.html.erb
966
972
  - app/pb_kits/playbook/pb_label_value/docs/_label_value_default.jsx
967
973
  - app/pb_kits/playbook/pb_label_value/docs/_label_value_default.md
@@ -1116,7 +1122,6 @@ files:
1116
1122
  - app/pb_kits/playbook/pb_online_status/_online_status_mixins.scss
1117
1123
  - app/pb_kits/playbook/pb_online_status/docs/_description.md
1118
1124
  - app/pb_kits/playbook/pb_online_status/docs/_online_status_default.html.erb
1119
- - app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx
1120
1125
  - app/pb_kits/playbook/pb_online_status/docs/example.yml
1121
1126
  - app/pb_kits/playbook/pb_online_status/docs/index.js
1122
1127
  - app/pb_kits/playbook/pb_online_status/online_status.rb
@@ -1294,7 +1299,6 @@ files:
1294
1299
  - app/pb_kits/playbook/pb_source/_source.scss
1295
1300
  - app/pb_kits/playbook/pb_source/docs/_description.md
1296
1301
  - app/pb_kits/playbook/pb_source/docs/_source_default.html.erb
1297
- - app/pb_kits/playbook/pb_source/docs/_source_default.jsx
1298
1302
  - app/pb_kits/playbook/pb_source/docs/_source_noicon.html.erb
1299
1303
  - app/pb_kits/playbook/pb_source/docs/_source_types.html.erb
1300
1304
  - app/pb_kits/playbook/pb_source/docs/example.yml
@@ -1305,7 +1309,6 @@ files:
1305
1309
  - app/pb_kits/playbook/pb_star_rating/_star_rating.scss
1306
1310
  - app/pb_kits/playbook/pb_star_rating/docs/_description.md
1307
1311
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.html.erb
1308
- - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx
1309
1312
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.html.erb
1310
1313
  - app/pb_kits/playbook/pb_star_rating/docs/example.yml
1311
1314
  - app/pb_kits/playbook/pb_star_rating/docs/index.js
@@ -1354,6 +1357,8 @@ files:
1354
1357
  - app/pb_kits/playbook/pb_table/docs/_table_md.md
1355
1358
  - app/pb_kits/playbook/pb_table/docs/_table_multiline.html.erb
1356
1359
  - app/pb_kits/playbook/pb_table/docs/_table_multiline.jsx
1360
+ - app/pb_kits/playbook/pb_table/docs/_table_responsive_table.html.erb
1361
+ - app/pb_kits/playbook/pb_table/docs/_table_responsive_table.jsx
1357
1362
  - app/pb_kits/playbook/pb_table/docs/_table_single_line.html.erb
1358
1363
  - app/pb_kits/playbook/pb_table/docs/_table_single_line.jsx
1359
1364
  - app/pb_kits/playbook/pb_table/docs/_table_sm.html.erb
@@ -1423,7 +1428,6 @@ files:
1423
1428
  - app/pb_kits/playbook/pb_time/docs/_description.md
1424
1429
  - app/pb_kits/playbook/pb_time/docs/_footer.md
1425
1430
  - app/pb_kits/playbook/pb_time/docs/_time_default.html.erb
1426
- - app/pb_kits/playbook/pb_time/docs/_time_default.jsx
1427
1431
  - app/pb_kits/playbook/pb_time/docs/_time_default.md
1428
1432
  - app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb
1429
1433
  - app/pb_kits/playbook/pb_time/docs/example.yml
@@ -1437,7 +1441,6 @@ files:
1437
1441
  - app/pb_kits/playbook/pb_timestamp/docs/_footer.md
1438
1442
  - app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md
1439
1443
  - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb
1440
- - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx
1441
1444
  - app/pb_kits/playbook/pb_timestamp/docs/example.yml
1442
1445
  - app/pb_kits/playbook/pb_timestamp/docs/index.js
1443
1446
  - app/pb_kits/playbook/pb_timestamp/timestamp.rb
@@ -1471,7 +1474,6 @@ files:
1471
1474
  - app/pb_kits/playbook/pb_title_detail/docs/_description.md
1472
1475
  - app/pb_kits/playbook/pb_title_detail/docs/_footer.md
1473
1476
  - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.html.erb
1474
- - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx
1475
1477
  - app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.md
1476
1478
  - app/pb_kits/playbook/pb_title_detail/docs/example.yml
1477
1479
  - app/pb_kits/playbook/pb_title_detail/docs/index.js
@@ -1638,9 +1640,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1638
1640
  version: '0'
1639
1641
  required_rubygems_version: !ruby/object:Gem::Requirement
1640
1642
  requirements:
1641
- - - ">="
1643
+ - - ">"
1642
1644
  - !ruby/object:Gem::Version
1643
- version: '0'
1645
+ version: 1.3.1
1644
1646
  requirements: []
1645
1647
  rubyforge_project:
1646
1648
  rubygems_version: 2.7.3
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const FilterDefault = () => (
4
- <div>
5
- <h1>{'Coming Soon!'}</h1>
6
- </div>
7
- )
8
-
9
- export default FilterDefault
@@ -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