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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_button/_button.scss +1 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +50 -50
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +3 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_time.html.erb +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_time.jsx +28 -12
- data/app/pb_kits/playbook/pb_date_picker/plugins/timeSelect.ts +93 -90
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +1 -15
- data/app/pb_kits/playbook/pb_dialog/_dialog.scss +48 -8
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +22 -8
- data/app/pb_kits/playbook/pb_dialog/dialog.rb +32 -0
- data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +18 -2
- data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +10 -6
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +6 -3
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.html.erb +4 -4
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.html.erb +58 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +1 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.md +1 -2
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.html.erb +58 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +1 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.md +2 -2
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.html.erb +11 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.html.erb +12 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.html.erb +12 -12
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx +1 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.html.erb +49 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.md +1 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.html.erb +96 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.md +3 -1
- data/app/pb_kits/playbook/pb_dialog/docs/example.yml +7 -0
- data/app/pb_kits/playbook/pb_enhanced_element/{element_observer.js → element_observer.ts} +27 -19
- data/app/pb_kits/playbook/pb_enhanced_element/{index.js → index.ts} +22 -15
- data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +15 -4
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +24 -2
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +3 -0
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list.html.erb +1 -1
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +6 -0
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +32 -0
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +7 -2
- data/lib/playbook/version.rb +2 -2
- 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
|
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={
|
74
|
+
checked={checkedState}
|
64
75
|
id={id}
|
65
76
|
name={name}
|
66
|
-
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
|
-
{
|
63
|
+
{selectableListItems}
|
42
64
|
</List>
|
43
65
|
</div>
|
44
66
|
)
|
@@ -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
|
data/lib/playbook/version.rb
CHANGED
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
|
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-
|
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.
|
874
|
-
- app/pb_kits/playbook/pb_enhanced_element/index.
|
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:
|
2363
|
+
version: '0'
|
2358
2364
|
requirements: []
|
2359
2365
|
rubygems_version: 3.3.7
|
2360
2366
|
signing_key:
|