playbook_ui 13.5.0 → 13.6.0.pre.alpha.tiptapreacthookformbug1210

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/pb_body/_body.tsx +1 -1
  4. data/app/pb_kits/playbook/pb_caption/_caption.tsx +1 -1
  5. data/app/pb_kits/playbook/pb_card/card.rb +1 -1
  6. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -1
  7. data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.rb +2 -2
  8. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -1
  9. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +2 -2
  10. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +1 -1
  11. data/app/pb_kits/playbook/pb_file_upload/file_upload.rb +1 -1
  12. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +0 -8
  13. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +1 -4
  14. data/app/pb_kits/playbook/pb_flex/flex_item.rb +1 -9
  15. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +6 -6
  16. data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +1 -1
  17. data/app/pb_kits/playbook/pb_radio/radio.rb +1 -1
  18. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/EditorButton.tsx +3 -1
  19. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/MoreExtensionsDropdown.tsx +2 -0
  20. data/app/pb_kits/playbook/pb_select/select.rb +1 -1
  21. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +1 -1
  22. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +1 -1
  23. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +1 -1
  24. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +1 -1
  25. data/app/pb_kits/playbook/pb_source/source.rb +1 -1
  26. data/app/pb_kits/playbook/pb_table/docs/_table_header.html.erb +31 -27
  27. data/app/pb_kits/playbook/pb_table/docs/_table_header.md +8 -1
  28. data/app/pb_kits/playbook/pb_table/styles/_table_header.scss +20 -1
  29. data/app/pb_kits/playbook/pb_table/table_header.html.erb +23 -49
  30. data/app/pb_kits/playbook/pb_table/table_header.rb +34 -6
  31. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -2
  32. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +1 -1
  33. data/app/pb_kits/playbook/pb_title/_title.tsx +1 -1
  34. data/app/pb_kits/playbook/pb_toggle/toggle.rb +1 -1
  35. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +1 -1
  36. data/app/pb_kits/playbook/tokens/_overflow.scss +10 -0
  37. data/app/pb_kits/playbook/utilities/_overflow.scss +22 -0
  38. data/app/pb_kits/playbook/utilities/globalProps.ts +23 -8
  39. data/dist/playbook-rails.js +2 -2
  40. data/lib/playbook/classnames.rb +1 -0
  41. data/lib/playbook/kit_base.rb +4 -2
  42. data/lib/playbook/overflow.rb +33 -0
  43. data/lib/playbook/props/base.rb +1 -1
  44. data/lib/playbook/props/hash.rb +1 -1
  45. data/lib/playbook/version.rb +2 -2
  46. metadata +10 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fbde0c47559510e98e402f39e88e8eee92d920fe6316a10cf69edd6433c593d
4
- data.tar.gz: 528eb97cc4627c05a97fdc42c44e2b306481fe8467f9abf38dd135e95916c5a1
3
+ metadata.gz: d8771c78a1ecc2d78dcac4e22ab2ada7e04f99d1e4426d5c824cefb854532cb0
4
+ data.tar.gz: ae5e324a57a9340ea86ada259e94943a975c16d0c721100b3551a4e30af63e55
5
5
  SHA512:
6
- metadata.gz: 476c5d3b3afc10856fad58a4a417b9124a45bce23ac7af0987fb94e7e5987785786472c35b35a8fe8c1acb8db6c5c040c423f29886c26a0dd8ec7c7ea2baf072
7
- data.tar.gz: ae782bd74d7a7cf8ee5f88a804079742e28044fc0f7228b1243292711c1d40bf6c8f54c2ed004bc8994321183d35efe7e975c867a99e5baba781f939d8eb76e9
6
+ metadata.gz: b031c275c0b45eac2065985bc48358cb2c9a05337d9cb198698c1af364486bcdbb42c3c8c4e65d5fb4aeef6998481b61d37ea8d17ec0caca1459cbc4c94eb571
7
+ data.tar.gz: e5e2848b9c33616179dac4582f8a3c5c0fecb04a1fa5c8dbddbaa2e2553fc75248bd1f6730c7ef76d2e66a6b27490753e3035f184464370e273a86173d4f8d0c
@@ -113,5 +113,6 @@
113
113
  @import './utilities/border_radius';
114
114
  @import './utilities/hover';
115
115
  @import './utilities/text_align';
116
+ @import './utilities/overflow';
116
117
 
117
118
  @import 'pb_multi_level_select/multi_level_select';
@@ -24,7 +24,7 @@ type BodyProps = {
24
24
  } & GlobalProps
25
25
 
26
26
  const Body = (props: BodyProps): React.ReactElement => {
27
- if (props.variant) deprecatedProps("Body", ["status"]) //status prop is deprecated, use color instead please
27
+ if (props.variant) deprecatedProps() //status prop is deprecated, use color instead please
28
28
  const {
29
29
  aria = {},
30
30
  children,
@@ -17,7 +17,7 @@ type CaptionProps = {
17
17
  } & GlobalProps;
18
18
 
19
19
  const Caption = (props: CaptionProps): React.ReactElement => {
20
- if (props.variant) deprecatedProps('Title', ['variant']) //variant prop is deprecated, use color instead
20
+ if (props.variant) deprecatedProps() //variant prop is deprecated, use color instead
21
21
  const {
22
22
  aria = {},
23
23
  children,
@@ -4,7 +4,7 @@ module Playbook
4
4
  module PbCard
5
5
  class Card < Playbook::KitBase
6
6
  prop :selected, type: Playbook::Props::Boolean, default: false
7
- prop :highlight, type: Playbook::Props::Hash,
7
+ prop :highlight, type: Playbook::Props::HashProp,
8
8
  default: {}
9
9
  prop :tag, type: Playbook::Props::Enum,
10
10
  values: %w[div section footer header article aside main nav],
@@ -10,7 +10,7 @@ module Playbook
10
10
  prop :value
11
11
  prop :name
12
12
 
13
- prop :input_options, type: Playbook::Props::Hash,
13
+ prop :input_options, type: Playbook::Props::HashProp,
14
14
  default: {}
15
15
  prop :required, type: Playbook::Props::Boolean,
16
16
  default: false
@@ -6,10 +6,10 @@ module Playbook
6
6
  prop :align, type: Playbook::Props::Enum,
7
7
  values: %w[left center right],
8
8
  default: "left"
9
- prop :stat_change, type: Playbook::Props::Hash,
9
+ prop :stat_change, type: Playbook::Props::HashProp,
10
10
  default: {}
11
11
  prop :stat_label
12
- prop :stat_value, type: Playbook::Props::Hash,
12
+ prop :stat_value, type: Playbook::Props::HashProp,
13
13
  default: {}
14
14
 
15
15
  def formatted_stat_value
@@ -49,7 +49,7 @@ type DatePickerProps = {
49
49
  } & GlobalProps
50
50
 
51
51
  const DatePicker = (props: DatePickerProps): React.ReactElement => {
52
- if (props.plugins) deprecatedProps('Date Picker', ['plugins'])
52
+ if (props.plugins) deprecatedProps()
53
53
 
54
54
  const {
55
55
  allowInput = false,
@@ -34,9 +34,9 @@ module Playbook
34
34
  default: false
35
35
  prop :label, type: Playbook::Props::String,
36
36
  default: "Date Picker"
37
- prop :input_aria, type: Playbook::Props::Hash,
37
+ prop :input_aria, type: Playbook::Props::HashProp,
38
38
  default: {}
39
- prop :input_data, type: Playbook::Props::Hash,
39
+ prop :input_data, type: Playbook::Props::HashProp,
40
40
  default: {}
41
41
  prop :max_date, type: Playbook::Props::String
42
42
  prop :min_date, type: Playbook::Props::String
@@ -19,7 +19,7 @@ type DateTimeStackedProps = {
19
19
  }
20
20
 
21
21
  const DateTimeStacked = (props: DateTimeStackedProps): React.ReactElement => {
22
- if (props.date) deprecatedProps('Date Time Stacked', ['date'])
22
+ if (props.date) deprecatedProps()
23
23
 
24
24
  const {
25
25
  date,
@@ -18,7 +18,7 @@ module Playbook
18
18
  prop :full_width, type: Playbook::Props::Boolean,
19
19
  default: false
20
20
 
21
- prop :input_options, type: Playbook::Props::Hash,
21
+ prop :input_options, type: Playbook::Props::HashProp,
22
22
  default: {}
23
23
 
24
24
  def classname
@@ -44,14 +44,6 @@
44
44
  order: -1;
45
45
  }
46
46
 
47
- $overflow_values: auto, hidden, inherit, initial, scroll, visible;
48
-
49
- @each $value in $overflow_values {
50
- &.overflow_#{$value} {
51
- overflow: #{$value}
52
- }
53
- }
54
-
55
47
  @for $i from 0 through 12 {
56
48
  &[class*=_flex_#{$i}]{
57
49
  flex: $i;
@@ -8,7 +8,6 @@ type FlexItemPropTypes = {
8
8
  grow?: boolean,
9
9
  shrink?: boolean,
10
10
  className?: string,
11
- overflow?: "auto" | "hidden" | "initial" | "inherit" | "scroll" | "visible",
12
11
  order?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'first' | 'none',
13
12
  alignSelf?: "start" | "end" | "center" | "stretch" | null,
14
13
  displayFlex?: boolean
@@ -20,7 +19,6 @@ const FlexItem = (props: FlexItemPropTypes): React.ReactElement => {
20
19
  className,
21
20
  fixedSize,
22
21
  grow,
23
- overflow = null,
24
22
  shrink,
25
23
  flex = 'none',
26
24
  order = 'none',
@@ -30,7 +28,6 @@ const FlexItem = (props: FlexItemPropTypes): React.ReactElement => {
30
28
  const growClass = grow === true ? 'grow' : ''
31
29
  const displayFlexClass = displayFlex === true ? `display_flex_${displayFlex}` : ''
32
30
  const flexClass = flex !== 'none' ? `flex_${flex}` : ''
33
- const overflowClass = overflow ? `overflow_${overflow}` : ''
34
31
  const shrinkClass = shrink === true ? 'shrink' : ''
35
32
  const alignSelfClass = alignSelf ? `align_self_${alignSelf}` : ''
36
33
  const fixedStyle =
@@ -39,7 +36,7 @@ const FlexItem = (props: FlexItemPropTypes): React.ReactElement => {
39
36
 
40
37
  return (
41
38
  <div
42
- className={classnames(buildCss('pb_flex_item_kit', growClass, shrinkClass, flexClass, displayFlexClass), overflowClass, orderClass, alignSelfClass, globalProps(props), className)}
39
+ className={classnames(buildCss('pb_flex_item_kit', growClass, shrinkClass, flexClass, displayFlexClass), orderClass, alignSelfClass, globalProps(props), className)}
43
40
  style={fixedStyle}
44
41
  >
45
42
  {children}
@@ -9,10 +9,6 @@ module Playbook
9
9
  prop :shrink, type: Playbook::Props::Boolean,
10
10
  default: false
11
11
 
12
- prop :overflow, type: Playbook::Props::Enum,
13
- values: %w[auto hidden inherit initial scroll visible] + [nil],
14
- default: nil
15
-
16
12
  prop :align_self, type: Playbook::Props::Enum,
17
13
  values: %w[start center end stretch] + [nil],
18
14
  default: nil
@@ -21,7 +17,7 @@ module Playbook
21
17
  default: false
22
18
 
23
19
  def classname
24
- generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, display_flex_class) + overflow_class + align_self_class
20
+ generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, display_flex_class) + align_self_class
25
21
  end
26
22
 
27
23
  def style_value
@@ -46,10 +42,6 @@ module Playbook
46
42
  grow ? "grow" : nil
47
43
  end
48
44
 
49
- def overflow_class
50
- overflow ? " overflow_#{overflow}" : ""
51
- end
52
-
53
45
  def shrink_class
54
46
  shrink ? "shrink" : nil
55
47
  end
@@ -33,7 +33,7 @@
33
33
  margin: 0;
34
34
  }
35
35
  &[class*="_active"] {
36
- .pb_collapsible_main_kit {
36
+ >.pb_collapsible_main_kit {
37
37
  background-color: $active_light;
38
38
  }
39
39
  }
@@ -46,7 +46,7 @@
46
46
  }
47
47
  }
48
48
  &[class*="_active"] {
49
- .pb_collapsible_main_kit {
49
+ >.pb_collapsible_main_kit {
50
50
  background-color: mix($white, $card_dark, 20%);
51
51
  .pb_nav_list_item_text_collapsible,
52
52
  svg {
@@ -63,7 +63,7 @@
63
63
  .pb_collapsible_kit {
64
64
  &[class*="_active"] {
65
65
  background-color: unset;
66
- .pb_collapsible_main_kit {
66
+ >.pb_collapsible_main_kit {
67
67
  background-color: $primary;
68
68
  border-radius: $border_rad_heavier;
69
69
  .pb_nav_list_item_text_collapsible,
@@ -94,7 +94,7 @@
94
94
  &.dark {
95
95
  .pb_collapsible_kit {
96
96
  &[class*="_active"] {
97
- .pb_collapsible_main_kit {
97
+ >.pb_collapsible_main_kit {
98
98
  background-color: $primary;
99
99
  }
100
100
  .pb_nav_list_item_link {
@@ -112,7 +112,7 @@
112
112
  .pb_collapsible_kit {
113
113
  &[class*="_active"] {
114
114
  background-color: unset;
115
- .pb_collapsible_main_kit {
115
+ >.pb_collapsible_main_kit {
116
116
  background-color: $active_light;
117
117
  border-radius: $border_rad_heavier;
118
118
  .pb_nav_list_item_text_collapsible,
@@ -128,7 +128,7 @@
128
128
  &.dark {
129
129
  .pb_collapsible_kit {
130
130
  &[class*="_active"] {
131
- .pb_collapsible_main_kit {
131
+ >.pb_collapsible_main_kit {
132
132
  background-color: mix($white, $card_dark, 20%) !important;
133
133
  .pb_nav_list_item_text_collapsible,
134
134
  svg {
@@ -4,7 +4,7 @@ module Playbook
4
4
  module PbPassphrase
5
5
  class Passphrase < Playbook::KitBase
6
6
  prop :confirmation, type: Playbook::Props::Boolean, default: false
7
- prop :input_props, type: Playbook::Props::Hash, default: {}
7
+ prop :input_props, type: Playbook::Props::HashProp, default: {}
8
8
  prop :label
9
9
  prop :show_tips_below, type: Playbook::Props::Enum,
10
10
  values: %w[always xs sm md lg xl],
@@ -11,7 +11,7 @@ module Playbook
11
11
  default: false
12
12
  prop :error, type: Playbook::Props::Boolean,
13
13
  default: false
14
- prop :input_options, type: Playbook::Props::Hash,
14
+ prop :input_options, type: Playbook::Props::HashProp,
15
15
  default: {}
16
16
  prop :name, type: Playbook::Props::String,
17
17
  default: "radio_name"
@@ -31,8 +31,10 @@ const EditorButton = ({
31
31
  >
32
32
  <button
33
33
  className={classname}
34
- onClick={onclick}
35
34
  disabled={disable}
35
+ onClick={onclick}
36
+ role="button"
37
+ type="button"
36
38
  >
37
39
  <Flex
38
40
  align="center"
@@ -22,6 +22,8 @@ const popoverReference = (
22
22
  <button
23
23
  className="toolbar_button"
24
24
  onClick={handleTogglePopover}
25
+ role="button"
26
+ type="button"
25
27
  >
26
28
  <Flex
27
29
  align="center"
@@ -6,7 +6,7 @@ require "action_view"
6
6
  module Playbook
7
7
  module PbSelect
8
8
  class Select < Playbook::KitBase
9
- prop :attributes, type: Playbook::Props::Hash,
9
+ prop :attributes, type: Playbook::Props::HashProp,
10
10
  default: {}
11
11
  prop :blank_selection
12
12
  prop :compact, type: Playbook::Props::Boolean, default: false
@@ -15,7 +15,7 @@ module Playbook
15
15
  default: true
16
16
  prop :input_id, type: Playbook::Props::String
17
17
 
18
- prop :input_options, type: Playbook::Props::Hash,
18
+ prop :input_options, type: Playbook::Props::HashProp,
19
19
  default: {}
20
20
  prop :name
21
21
  prop :text
@@ -23,7 +23,7 @@ module Playbook
23
23
  default: false
24
24
  prop :value
25
25
 
26
- prop :input_options, type: Playbook::Props::Hash,
26
+ prop :input_options, type: Playbook::Props::HashProp,
27
27
  default: {}
28
28
 
29
29
  def classname
@@ -21,7 +21,7 @@ module Playbook
21
21
  default: false
22
22
  prop :value
23
23
 
24
- prop :input_options, type: Playbook::Props::Hash,
24
+ prop :input_options, type: Playbook::Props::HashProp,
25
25
  default: {}
26
26
 
27
27
  # Conditional rendering for input field
@@ -12,7 +12,7 @@ module Playbook
12
12
  prop :variant, type: Playbook::Props::Enum,
13
13
  values: %w[radio checkbox],
14
14
  default: "radio"
15
- prop :input_options, type: Playbook::Props::Hash,
15
+ prop :input_options, type: Playbook::Props::HashProp,
16
16
  default: {}
17
17
 
18
18
  def classname
@@ -10,7 +10,7 @@ module Playbook
10
10
  prop :type, type: Playbook::Props::Enum,
11
11
  values: %w[user retail inbound outbound prospecting events referral],
12
12
  default: "inbound"
13
- prop :user, type: Playbook::Props::Hash, default: {}
13
+ prop :user, type: Playbook::Props::HashProp, default: {}
14
14
 
15
15
  def type_text
16
16
  if type == "user" || (type == "referral" && user.present?)
@@ -2,27 +2,31 @@
2
2
  <thead>
3
3
  <tr>
4
4
  <%= pb_rails("table/table_header", props: {
5
- id: "name",
6
- colspan: 2,
5
+ text: "Territory",
6
+ id: "territory",
7
7
  sort_menu: [
8
- { item: "Name", link: "?q[sorts]=name+desc", active: false, direction: "desc" },
9
- { item: "Name", link: "?q[sorts]=name+asc", active: true, direction: "asc" },
8
+ { item: "Territory", link: "?sort=territory_desc", active: params["sort"] == "territory_desc", direction: "desc" },
9
+ { item: "Territory", link: "?sort=territory_asc", active: params["sort"] == "territory_asc", direction: "asc" }
10
10
  ],
11
11
  }) %>
12
12
  <%= pb_rails("table/table_header", props: {
13
- text: "Age",
14
- id: "age",
13
+ id: "name",
14
+ text: "Full Name",
15
+ colspan: 2,
15
16
  sort_menu: [
16
- { item: "Age", link: "?q[sorts]=age+desc", active: false, direction: "desc" },
17
- { item: "Age", link: "?q[sorts]=age+asc", active: false, direction: "asc" },
17
+ { item: "First Name Descending", link: "?sort=firstname_desc", active: params["sort"] == "firstname_desc", direction: "desc" },
18
+ { item: "First Name Ascending", link: "?sort=firstname_asc", active: params["sort"] == "firstname_asc", direction: "asc" },
19
+ { item: "Last Name Descending", link: "?sort=lastname_desc", active: params["sort"] == "lastname_desc", direction: "desc" },
20
+ { item: "Last Name Ascending", link: "?sort=lastname_asc", active: params["sort"] == "lastname_asc", direction: "asc" }
18
21
  ],
19
22
  }) %>
20
23
  <%= pb_rails("table/table_header", props: {
21
- text: "Territory",
22
- id: "territory",
24
+ text: "Age",
25
+ id: "age",
26
+ sort_dropdown: true,
23
27
  sort_menu: [
24
- { item: "Territory", link: "?q[sorts]=territory+desc", active: false, direction: "desc" },
25
- { item: "Territory", link: "?q[sorts]=territory+asc", active: false, direction: "asc" },
28
+ { item: "Age Descending", link: "?sort=age_desc", active: params["sort"] == "age_desc", direction: "desc" },
29
+ { item: "Age Ascending", link: "?sort=age_asc", active: params["sort"] == "age_asc", direction: "asc" }
26
30
  ],
27
31
  }) %>
28
32
  <%= pb_rails("table/table_header", props: { text: "Job Title" }) %>
@@ -30,25 +34,25 @@
30
34
  </thead>
31
35
  <tbody>
32
36
  <tr>
33
- <td>Name 1</td>
34
- <td>Name 2</td>
35
- <td>Value 3</td>
36
- <td>Value 4</td>
37
- <td>Value 5</td>
37
+ <td>Ter 1</td>
38
+ <td>First Name 1</td>
39
+ <td>Last Name 1</td>
40
+ <td>Age 1</td>
41
+ <td>Job 1</td>
38
42
  </tr>
39
43
  <tr>
40
- <td>Name 1</td>
41
- <td>Name 2</td>
42
- <td>Value 3</td>
43
- <td>Value 4</td>
44
- <td>Value 5</td>
44
+ <td>Ter 2</td>
45
+ <td>First Name 2</td>
46
+ <td>Last Name 2</td>
47
+ <td>Age 2</td>
48
+ <td>Job 2</td>
45
49
  </tr>
46
50
  <tr>
47
- <td>Name 1</td>
48
- <td>Name 2</td>
49
- <td>Value 3</td>
50
- <td>Value 4</td>
51
- <td>Value 5</td>
51
+ <td>Ter 3</td>
52
+ <td>First Name 3</td>
53
+ <td>Last Name 3</td>
54
+ <td>Age 3</td>
55
+ <td>Job 3</td>
52
56
  </tr>
53
57
  </tbody>
54
58
  <% end %>
@@ -1 +1,8 @@
1
- A kit that produces a `<th>` tag. You can also use the `sort_menu` prop to make the header a sortable link, just like <a href="https://playbook.powerapp.cloud/kits/filter#sort-only" target="_blank">our filter kit.</a>
1
+ The `table_header` subcomponent creates `<th>` elements and optionally accepts:
2
+
3
+ * `colspan` (number) for setting column span
4
+ * `sort_menu` accepts sort options as an array of `item` objects.
5
+ presence of `sort_menu` enables the sort link within the header
6
+ * `sort_dropdown` (boolean) optionally declares that (true) clicking a header's sort link opens a dropdown of sort options, or (false) each sort link click cycles through available sort_menu items in the order they are passed
7
+ * passing a valid `colspan` will render sort options within a dropdown by default, without requiring `sort_dropdown` explicitly. Alternatively, the default sort dropdown can be prevented on headers with `colspan` by setting `sort_dropdown: false`, which reverts the column to sorting to multi-click default (each click of the sort link cycles through the available sort_menu items in the order they are passed)
8
+ * `id` (string) is required for headers that have a dropdown (for popover reference); otherwise they are optional
@@ -1,4 +1,3 @@
1
-
2
1
  $text_align_values: (
3
2
  start: start,
4
3
  end: end,
@@ -22,6 +21,15 @@ $text_align_values: (
22
21
  }
23
22
  }
24
23
 
24
+ .pb_th_link:hover {
25
+ background-color: rgba($primary, 0.03);
26
+ color: $primary !important;
27
+ }
28
+
29
+ .pb_th_link, .pb_th_nolink{
30
+ padding: $space_xxs;
31
+ }
32
+
25
33
  [class^=pb_table] {
26
34
  thead {
27
35
  [class^=pb_th_active] {
@@ -29,3 +37,14 @@ $text_align_values: (
29
37
  }
30
38
  }
31
39
  }
40
+
41
+ [class*="pb_table_header_dropdown"][class*="_vertical"] {
42
+ &[class*="_normal"] {
43
+ [class*="pb_nav_list_kit_item"][class*="pb_nav_list_item"] {
44
+ &[class*="_link"] {
45
+ border-left-width: 0px;
46
+ background-color: #fff !important;
47
+ }
48
+ }
49
+ }
50
+ }
@@ -4,61 +4,35 @@
4
4
  class: object.classname,
5
5
  data: object.data,
6
6
  id: "pb-th#{object.id}") do %>
7
- <% object.sort_menu.each do |item| %>
8
- <% if item[:active] == true %>
9
- <%= pb_rails("flex", props:{ align: object.align_content }) do %>
10
- <%= content.presence || content_tag(:span, item[:item], class: "pb_th_active") %>
11
- <span class="pb_th_active">
12
- <%= pb_rails("icon", props: { icon: object.sort_icon(item[:direction]),
13
- fixed_width: true,
14
- classname: "pb_th_active",
15
- padding_left: "xs" }) %>
16
- </span>
17
- <% end %>
18
- <% end %>
19
- <% end %>
20
- <% if object.sort_menu.all? { |item| item[:active] == false } %>
21
- <%= pb_rails("flex", props:{ align: object.align_content }) do %>
7
+ <% unless sorting_style? %>
8
+ <%= pb_rails("flex", props:{ align: object.align_content, justify: object.justify_sort_icon, classname: "pb_th_nolink" }) do %>
22
9
  <%= content.presence || object.text %>
23
- <%= pb_rails("icon", props: { icon: "arrow-up-arrow-down",
24
- fixed_width: true,
25
- padding_left: "xs" }) %>
26
10
  <% end %>
27
11
  <% else %>
28
- <%= content.presence || object.text %>
29
- <% end %>
30
- <% if object.sort_menu != [{}] && object.colspan > 1 %>
31
- <%= pb_rails("popover", props: { classname: "pb_filter_sort_menu",
32
- close_on_click: "outside",
33
- trigger_element_id: "pb-th#{object.id}",
34
- tooltip_id: "sort-filter-btn-tooltip#{object.id}",
35
- position: object.placement ,
36
- padding: 'none'}) do %>
37
- <%= pb_rails("list") do %>
38
- <% object.sort_menu.each do |item| %>
39
- <%= pb_rails("list/item") do %>
40
- <%= pb_rails("button", props: { variant: "link" ,
41
- classname: "p-0",
42
- text: item[:item],
43
- link: item[:link],
44
- icon: sort_icon(item[:direction]),
45
- icon_right: true }) %>
12
+ <%= link_to next_link, style: link_style do %>
13
+ <%= pb_rails("flex", props:{ align: object.align_content, justify: object.justify_sort_icon, classname: "pb_th_link" }) do %>
14
+ <%= content.presence || object.text %>
15
+ <% if sorting_style? %>
16
+ <%= pb_rails("icon", props: { icon: object.sort_icon(active_item[:direction], active_item[:active]),
17
+ fixed_width: true,
18
+ classname: active_item.any? ? "pb_th_active" : "",
19
+ padding_left: "xs" }) %>
20
+ <% end %>
21
+ <% end %>
22
+ <% end %>
23
+ <% if use_dropdown_select %>
24
+ <%= pb_rails("popover", props: { classname: "pb_filter_sort_menu",
25
+ close_on_click: "outside",
26
+ trigger_element_id: "pb-th#{object.id}",
27
+ tooltip_id: "sort-filter-btn-tooltip#{object.id}",
28
+ position: object.placement ,
29
+ padding: 'none'}) do %>
30
+ <%= pb_rails("nav", props: {classname: "pb_table_header_dropdown"}) do %>
31
+ <% object.sort_menu.each do |item| %>
32
+ <%= pb_rails("nav/item", props: { text: item[:item], link: item[:link], icon_right: sort_icon(item[:direction], item[:active]), active: item[:active] }) %>
46
33
  <% end %>
47
34
  <% end %>
48
35
  <% end %>
49
36
  <% end %>
50
37
  <% end %>
51
38
  <% end %>
52
- <% if object.sort_menu != [{}] && object.colspan == 1 %>
53
- <script>
54
- document.addEventListener("DOMContentLoaded", function() {
55
- var thId = `<%= "#pb-th#{object.id}" %>`
56
- var firstLink = `<%= next_link %>`
57
- var thElement = document.querySelector(thId);
58
-
59
- thElement.addEventListener("click", function() {
60
- window.location.href = firstLink;
61
- });
62
- });
63
- </script>
64
- <% end %>