playbook_ui 11.13.0.pre.alpha.fileupload1 → 11.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_button/_button.scss +1 -1
  3. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +50 -50
  4. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +3 -0
  5. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_time.html.erb +1 -1
  6. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_time.jsx +28 -12
  7. data/app/pb_kits/playbook/pb_date_picker/plugins/timeSelect.ts +93 -90
  8. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +1 -15
  9. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +48 -8
  10. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +22 -8
  11. data/app/pb_kits/playbook/pb_dialog/dialog.rb +32 -0
  12. data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +18 -2
  13. data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +10 -6
  14. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +6 -3
  15. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.html.erb +4 -4
  16. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.html.erb +58 -0
  17. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +1 -1
  18. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.md +1 -2
  19. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.html.erb +58 -0
  20. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.md +2 -2
  22. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.html.erb +11 -0
  23. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.html.erb +12 -0
  24. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.html.erb +12 -12
  25. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx +1 -1
  26. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.html.erb +49 -0
  27. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.md +1 -1
  28. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.html.erb +96 -0
  29. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.md +3 -1
  30. data/app/pb_kits/playbook/pb_dialog/docs/example.yml +7 -0
  31. data/app/pb_kits/playbook/pb_enhanced_element/{element_observer.js → element_observer.ts} +27 -19
  32. data/app/pb_kits/playbook/pb_enhanced_element/{index.js → index.ts} +22 -15
  33. data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +15 -4
  34. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +24 -2
  35. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +3 -0
  36. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.html.erb +1 -1
  37. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +6 -0
  38. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +32 -0
  39. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +7 -2
  40. data/lib/playbook/version.rb +2 -2
  41. metadata +12 -6
@@ -1,6 +1,6 @@
1
1
  /* @flow */
2
2
 
3
- import React, { Node } from 'react'
3
+ import React, { Node, useState } from 'react'
4
4
  import classnames from 'classnames'
5
5
 
6
6
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
@@ -50,8 +50,19 @@ const SelectableListItem = ({
50
50
  className
51
51
  )
52
52
 
53
+ const initialCheckedState = checked
54
+ const [checkedState, setCheckedState] = useState(initialCheckedState)
55
+
56
+ const handleChecked = (event) => {
57
+ onChange(event)
58
+ setCheckedState(event.target.checked)
59
+ }
60
+
53
61
  return (
54
- <ListItem {...props}>
62
+ <ListItem
63
+ {...props}
64
+ className={classnames(checkedState ? "checked_item" : "", className)}
65
+ >
55
66
  <div
56
67
  {...ariaProps}
57
68
  {...dataProps}
@@ -60,10 +71,10 @@ const SelectableListItem = ({
60
71
  <Choose>
61
72
  <When condition={variant == 'checkbox'}>
62
73
  <Checkbox
63
- checked={checked}
74
+ checked={checkedState}
64
75
  id={id}
65
76
  name={name}
66
- onChange={onChange}
77
+ onChange={handleChecked}
67
78
  // eslint suppressor, text is needed to display on screen
68
79
  text={label || (text && false)}
69
80
  type="checkbox"
@@ -1,5 +1,5 @@
1
1
  /* @flow */
2
- import React from 'react'
2
+ import React, { useState } from 'react'
3
3
  import classnames from 'classnames'
4
4
 
5
5
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
@@ -29,7 +29,29 @@ const SelectableList = (props: SelectableListProps) => {
29
29
  const ariaProps = buildAriaProps(aria)
30
30
  const classes = classnames(buildCss('pb_selectable_list_kit'), globalProps(props), className)
31
31
  const dataProps = buildDataProps(data)
32
+ const isRadio = props.variant === "radio"
33
+ const defaultCheckedRadioValue = children.filter(item => item.props.defaultChecked)[0]?.props?.value
34
+ const [selectedRadioValue, setSelectedRadioValue] = useState(defaultCheckedRadioValue)
35
+
36
+ const onChangeRadioValue = ({ target }) => {
37
+ setSelectedRadioValue(target.value)
38
+ }
32
39
 
40
+ let selectableListItems = children
41
+
42
+ if (isRadio) {
43
+ selectableListItems = children.map(({ props }) => {
44
+ return (
45
+ <SelectableListItem
46
+ {...props}
47
+ className={classnames(selectedRadioValue === props.value ? "checked_item" : "", props.className)}
48
+ key={props.value}
49
+ onChange={evt => { onChangeRadioValue(evt); props?.onChange?.(evt); }}
50
+ />
51
+ )
52
+ })
53
+ }
54
+
33
55
  return (
34
56
  <div
35
57
  {...ariaProps}
@@ -38,7 +60,7 @@ const SelectableList = (props: SelectableListProps) => {
38
60
  id={id}
39
61
  >
40
62
  <List {...props}>
41
- {children}
63
+ {selectableListItems}
42
64
  </List>
43
65
  </div>
44
66
  )
@@ -7,6 +7,9 @@
7
7
  &:hover {
8
8
  background-color: $bg_light;
9
9
  }
10
+ &[class*=checked_item] {
11
+ background-color: $bg_light;
12
+ }
10
13
  }
11
14
  [class^=pb_radio_kit] {
12
15
  margin-left: $space_xs;
@@ -5,7 +5,7 @@
5
5
  id: object.id) do %>
6
6
  <%= pb_rails("list") do %>
7
7
  <% object.items.each do |item| %>
8
- <%= pb_rails("selectable_list/selectable_list_item", props: item.merge(variant: object.variant) )%>
8
+ <%= pb_rails("selectable_list/selectable_list_item", props: item.merge(variant: object.variant, id: object.get_id(item)) )%>
9
9
  <% end %>
10
10
  <% end %>
11
11
  <% end %>
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "securerandom"
4
+
3
5
  module Playbook
4
6
  module PbSelectableList
5
7
  class SelectableList < Playbook::KitBase
@@ -15,6 +17,10 @@ module Playbook
15
17
  def classname
16
18
  generate_classname("pb_selectable_list_kit")
17
19
  end
20
+
21
+ def get_id(item)
22
+ item[:id] || ("a".."z").to_a.sample(12).join
23
+ end
18
24
  end
19
25
  end
20
26
  end
@@ -14,4 +14,36 @@
14
14
  <%= content %>
15
15
  <% end %>
16
16
  <% end %>
17
+
18
+ <% if object.variant == "checkbox"%>
19
+ <script>
20
+ var checkboxElement = document.querySelector("#<%=object.id%> input[type=checkbox]")
21
+
22
+ checkboxElement.addEventListener("change", (evt) => {
23
+ var listItemElement = document.querySelector("#<%=object.id%>")
24
+
25
+ if (evt.target.checked) {
26
+ listItemElement.classList.add("checked_item");
27
+ } else {
28
+ listItemElement.classList.remove("checked_item")
29
+ }
30
+ })
31
+ </script>
32
+ <% else %>
33
+ <script>
34
+ var radioElement = document.querySelector("#<%=object.id%> input[type=radio]")
35
+
36
+ radioElement.addEventListener("change", () => {
37
+ var radios = radioElement.closest("ul").querySelectorAll("input[type=radio]")
38
+
39
+ radios.forEach((radio) => {
40
+ if (radio.checked) {
41
+ radio.closest("li").classList.add("checked_item");
42
+ } else {
43
+ radio.closest("li").classList.remove("checked_item")
44
+ }
45
+ });
46
+ })
47
+ </script>
48
+ <% end %>
17
49
  <% end %>
@@ -4,7 +4,6 @@ module Playbook
4
4
  module PbSelectableList
5
5
  class SelectableListItem < Playbook::KitBase
6
6
  prop :tabindex
7
-
8
7
  prop :checked, type: Playbook::Props::Boolean,
9
8
  default: false
10
9
  prop :name, type: Playbook::Props::String
@@ -17,7 +16,13 @@ module Playbook
17
16
  default: {}
18
17
 
19
18
  def classname
20
- generate_classname("pb_item_kit")
19
+ generate_classname("pb_item_kit") + checked_class
20
+ end
21
+
22
+ private
23
+
24
+ def checked_class
25
+ checked ? " checked_item" : ""
21
26
  end
22
27
  end
23
28
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "11.12.0"
5
- VERSION = "11.13.0.pre.alpha.fileupload1"
4
+ PREVIOUS_VERSION = "11.12.1"
5
+ VERSION = "11.13.0"
6
6
  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: 11.13.0.pre.alpha.fileupload1
4
+ version: 11.13.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: 2022-11-18 00:00:00.000000000 Z
12
+ date: 2022-12-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -836,20 +836,26 @@ files:
836
836
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_default.html.erb
837
837
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx
838
838
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_default.md
839
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.html.erb
839
840
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx
840
841
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.md
842
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.html.erb
841
843
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx
842
844
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.md
845
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.html.erb
843
846
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.jsx
844
847
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.md
845
848
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_separators.jsx
846
849
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_separators.md
850
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.html.erb
847
851
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.jsx
848
852
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.md
849
853
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.html.erb
850
854
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx
855
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.html.erb
851
856
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.jsx
852
857
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.md
858
+ - app/pb_kits/playbook/pb_dialog/docs/_dialog_status.html.erb
853
859
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx
854
860
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_status.md
855
861
  - app/pb_kits/playbook/pb_dialog/docs/example.yml
@@ -870,8 +876,8 @@ files:
870
876
  - app/pb_kits/playbook/pb_docs/kit_api.rb
871
877
  - app/pb_kits/playbook/pb_docs/kit_example.html.erb
872
878
  - app/pb_kits/playbook/pb_docs/kit_example.rb
873
- - app/pb_kits/playbook/pb_enhanced_element/element_observer.js
874
- - app/pb_kits/playbook/pb_enhanced_element/index.js
879
+ - app/pb_kits/playbook/pb_enhanced_element/element_observer.ts
880
+ - app/pb_kits/playbook/pb_enhanced_element/index.ts
875
881
  - app/pb_kits/playbook/pb_file_upload/_file_upload.scss
876
882
  - app/pb_kits/playbook/pb_file_upload/_file_upload.tsx
877
883
  - app/pb_kits/playbook/pb_file_upload/docs/_description.md
@@ -2352,9 +2358,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2352
2358
  version: '0'
2353
2359
  required_rubygems_version: !ruby/object:Gem::Requirement
2354
2360
  requirements:
2355
- - - ">"
2361
+ - - ">="
2356
2362
  - !ruby/object:Gem::Version
2357
- version: 1.3.1
2363
+ version: '0'
2358
2364
  requirements: []
2359
2365
  rubygems_version: 3.3.7
2360
2366
  signing_key: