playbook_ui 14.13.0.pre.alpha.play1852reacthookformsupportradio6153 → 14.13.0.pre.alpha.play1884progresspill6064

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
  3. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
  4. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -3
  5. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
  6. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
  7. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -2
  8. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  9. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
  10. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
  11. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
  12. data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
  13. data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
  14. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
  15. data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
  16. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +2 -1
  17. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
  18. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +7 -0
  19. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +1 -0
  20. data/app/pb_kits/playbook/pb_radio/_radio.tsx +73 -85
  21. data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -2
  22. data/app/pb_kits/playbook/pb_radio/docs/index.js +0 -1
  23. data/app/pb_kits/playbook/pb_radio/radio.test.js +0 -16
  24. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  25. data/app/pb_kits/playbook/pb_table/docs/example.yml +1 -4
  26. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -2
  27. data/app/pb_kits/playbook/pb_table/index.ts +9 -41
  28. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
  29. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
  30. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
  31. data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
  32. data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
  33. data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
  34. data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
  35. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
  36. data/app/pb_kits/playbook/pb_text_input/index.js +0 -9
  37. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
  38. data/dist/chunks/_typeahead-btjo1UN5.js +36 -0
  39. data/dist/chunks/_weekday_stacked-TIh9nTmZ.js +45 -0
  40. data/dist/chunks/{lib-D3us1bGD.js → lib-DjpLC8uO.js} +2 -2
  41. data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-S56UaHZl.js} +1 -1
  42. data/dist/chunks/vendor.js +1 -1
  43. data/dist/playbook-doc.js +1 -1
  44. data/dist/playbook-rails-react-bindings.js +1 -1
  45. data/dist/playbook-rails.js +1 -1
  46. data/dist/playbook.css +1 -1
  47. data/lib/playbook/version.rb +1 -1
  48. metadata +8 -19
  49. data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
  50. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  51. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  52. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
  53. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
  54. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -60
  55. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.md +0 -1
  56. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
  57. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
  58. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
  59. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
  60. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
  61. data/dist/chunks/_typeahead-B7kfgseZ.js +0 -36
  62. data/dist/chunks/_weekday_stacked-CQggx3_W.js +0 -45
  63. /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click_react.md → _table_with_collapsible_with_custom_click.md} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 175163ac60b7dc142ef508e4e2a35da11a51340bf6b66ee5671ecc9ec6799ac5
4
- data.tar.gz: 602be9083ca637efa4dc2f217dcc7aad3cf334439358b413a658172a947cb5f0
3
+ metadata.gz: 21317a1c7d5325bd88ac09a06b74859e30a5fcf6748c6b4b710c500189733796
4
+ data.tar.gz: 0f6e8ac0625c5ba45989ab65b84603c15e777699e9726e2a7769d6e2aa57dd5e
5
5
  SHA512:
6
- metadata.gz: fab8077fcece0d37fd9cf0eabfa31b436414694e2b0164a1d4c8b95bd622bc1f30565fc6cce05fc21e6ff08fcaa03bec3d440fe63df1bf1213a288e6860e6c5d
7
- data.tar.gz: 9cde7b19063245c07ad09aba133cf24482ba64af6506d9a8cbc8b146dae10092f89fed3ac3a865ff0f588ff001b4ec1aa4200114115cf23de2a950b0e05854cd
6
+ metadata.gz: a7555df6aeccfb138dd8a45ff0a86b1e1843ba3ae6640a29d27899f2a9972b717f26cda50b79da966a5681b5eea56394f0a97823b165e27194add95c3e892158
7
+ data.tar.gz: 275833538e43720396649195b958886d4d4cca24f5b9e8e977fc1b7ec520d6e1151665de6d02086b11e05c45414f2b9c03d941df3fd43ad2fcd78ce403f4472b
@@ -17,7 +17,6 @@ examples:
17
17
 
18
18
  react:
19
19
  - bar_graph_default: Default
20
- - bar_graph_pb_styles: Playbook Styles
21
20
  - bar_graph_legend: Legend
22
21
  - bar_graph_legend_position: Legend Position
23
22
  - bar_graph_legend_non_clickable: Legend Non Clickable
@@ -10,4 +10,3 @@ export { default as BarGraphStacked } from './_bar_graph_stacked.jsx'
10
10
  export { default as BarGraphNegativeNumbers } from './_bar_graph_negative_numbers.jsx'
11
11
  export { default as BarGraphSecondaryYAxis } from './_bar_graph_secondary_y_axis.jsx'
12
12
  export { default as BarGraphHorizontal } from './_bar_graph_horizontal.jsx'
13
- export { default as BarGraphPbStyles } from './_bar_graph_pb_styles.jsx'
@@ -29,7 +29,6 @@ type DatePickerProps = {
29
29
  hideLabel?: boolean,
30
30
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
31
31
  id?: string,
32
- initializeOnce?: boolean,
33
32
  inLine?: boolean,
34
33
  inputAria?: { [key: string]: string },
35
34
  inputData?: { [key: string]: string },
@@ -74,7 +73,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
74
73
  hideLabel = false,
75
74
  htmlOptions = {},
76
75
  id,
77
- initializeOnce = false,
78
76
  inLine = false,
79
77
  inputAria = {},
80
78
  inputData = {},
@@ -136,7 +134,7 @@ useEffect(() => {
136
134
  yearRange,
137
135
  required: false,
138
136
  }, scrollContainer)
139
- }, initializeOnce ? [] : undefined)
137
+ })
140
138
  const filteredProps = {...props}
141
139
  if (filteredProps.marginBottom === undefined) {
142
140
  filteredProps.marginBottom = "sm"
@@ -43,9 +43,9 @@
43
43
  <% end %>
44
44
  <% end %>
45
45
 
46
- <%= pb_rails("table/table_body", props: {draggable_container: true}) do %>
46
+ <%= pb_rails("draggable/draggable_container", props: {tag:"tbody"}) do %>
47
47
  <% initial_items.each do |item| %>
48
- <%= pb_rails("table/table_row", props:{drag_id: item[:id], draggable_item: true}) do %>
48
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id], tag:"tr"}) do %>
49
49
  <%= pb_rails("table/table_cell", props: { text: item[:id]}) %>
50
50
  <%= pb_rails("table/table_cell") do %>
51
51
  <%= pb_rails("flex", props:{align:"center"}) do %>
@@ -1,4 +1 @@
1
- The draggable kit can also be used in conjunction with the table kit to create draggable table rows. To do this:
2
-
3
- - use the `draggable_container` prop on the table/table_body to designate it as the Draggable Container
4
- - use the `draggable_item` prop on the table/table_row to designate it as the Draggable Item. Make sure to also pass id to the `drag_id` prop here.
1
+ The draggable kit can also be used in conjunction with the table kit to create draggable table rows. To do this, make use of the `tag` prop on the draggable_container to set it to 'tbody' and the same prop on the draggable_item to set that to 'tr'. This will create the functionality seen here.
@@ -4,9 +4,7 @@ examples:
4
4
  - draggable_with_list: Draggable with List Kit
5
5
  - draggable_with_selectable_list: Draggable with SelectableList Kit
6
6
  - draggable_with_cards: Draggable with Cards
7
- - draggable_with_table_react: Draggable with Table
8
7
  - draggable_multiple_containers: Dragging Across Multiple Containers
9
-
10
8
  rails:
11
9
  - draggable_default_rails: Default
12
10
  - draggable_with_list_rails: Draggable with List Kit
@@ -2,5 +2,4 @@ export { default as DraggableDefault } from './_draggable_default.jsx'
2
2
  export { default as DraggableWithCards } from './_draggable_with_cards.jsx'
3
3
  export { default as DraggableWithList } from './_draggable_with_list.jsx'
4
4
  export { default as DraggableWithSelectableList } from './_draggable_with_selectable_list.jsx'
5
- export { default as DraggableMultipleContainers } from './_draggable_multiple_containers.jsx'
6
- export { default as DraggableWithTableReact } from './_draggable_with_table_react.jsx'
5
+ export { default as DraggableMultipleContainers } from './_draggable_multiple_containers.jsx'
@@ -17,11 +17,10 @@ type DraggableContainerProps = {
17
17
  data?: { [key: string]: string };
18
18
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
19
19
  id?: string;
20
- tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'tr' | 'th' | 'td' | 'thead' | 'col' | 'tbody',
21
20
  };
22
21
 
23
22
  const DraggableContainer = (props: DraggableContainerProps) => {
24
- const { aria = {}, children, className, container, data = {}, htmlOptions = {}, id, tag="div" } = props;
23
+ const { aria = {}, children, className, container, data = {}, htmlOptions = {}, id } = props;
25
24
 
26
25
  const { handleDragOver, handleDrop, activeContainer } = DraggableContext();
27
26
 
@@ -29,8 +28,6 @@ const DraggableContainer = (props: DraggableContainerProps) => {
29
28
  const dataProps = buildDataProps(data);
30
29
  const htmlProps = buildHtmlProps(htmlOptions);
31
30
 
32
- const Tag: React.ReactElement | any = `${tag}`;
33
-
34
31
  const classes = classnames(
35
32
  buildCss("pb_draggable_container"),
36
33
  `${activeContainer === container ? "active" : ""}`,
@@ -39,18 +36,18 @@ const DraggableContainer = (props: DraggableContainerProps) => {
39
36
  );
40
37
 
41
38
  return (
42
- <Tag
39
+ <div
43
40
  {...ariaProps}
44
41
  {...dataProps}
45
42
  {...htmlProps}
46
43
  className={classes}
47
44
  id={id}
48
45
  key={container}
49
- onDragOver={(e: Event) => handleDragOver(e, container)}
46
+ onDragOver={(e) => handleDragOver(e, container)}
50
47
  onDrop={() => handleDrop(container)}
51
48
  >
52
49
  {children}
53
- </Tag>
50
+ </div>
54
51
  );
55
52
  };
56
53
 
@@ -18,11 +18,10 @@ type DraggableItemProps = {
18
18
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
19
19
  id?: string;
20
20
  dragId?: string;
21
- tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'tr' | 'th' | 'td' | 'thead' | 'col' | 'tbody',
22
21
  };
23
22
 
24
23
  const DraggableItem = (props: DraggableItemProps) => {
25
- const { aria = {}, children, className, container, data = {}, htmlOptions = {}, id, dragId, tag="div" } = props;
24
+ const { aria = {}, children, className, container, data = {}, htmlOptions = {}, id, dragId } = props;
26
25
 
27
26
  const { isDragging, handleDragStart, handleDragEnter, handleDragEnd } =
28
27
  DraggableContext();
@@ -31,8 +30,6 @@ const DraggableItem = (props: DraggableItemProps) => {
31
30
  const dataProps = buildDataProps(data);
32
31
  const htmlProps = buildHtmlProps(htmlOptions);
33
32
 
34
- const Tag: React.ReactElement | any = `${tag}`;
35
-
36
33
  const classes = classnames(
37
34
  buildCss("pb_draggable_item"),
38
35
  `${isDragging === dragId ? "is_dragging" : ""}`,
@@ -41,7 +38,7 @@ const DraggableItem = (props: DraggableItemProps) => {
41
38
  );
42
39
 
43
40
  return (
44
- <Tag
41
+ <div
45
42
  {...ariaProps}
46
43
  {...dataProps}
47
44
  {...htmlProps}
@@ -54,7 +51,7 @@ const DraggableItem = (props: DraggableItemProps) => {
54
51
  onDragStart={() => handleDragStart(dragId, container)}
55
52
  >
56
53
  {children}
57
- </Tag>
54
+ </div>
58
55
  );
59
56
  };
60
57
 
@@ -1,3 +1,8 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria,
3
+ data: object.data,
4
+ id: object.id,
5
+ class: object.classname,
6
+ **combined_html_options) do %>
2
7
  <%= react_component("MultiLevelSelect", object.multi_level_select_options) %>
3
8
  <% end %>
@@ -1,9 +1,15 @@
1
1
  <% if object.collapsible %>
2
2
  <%= pb_rails("collapsible", props: { name: "collapsible-nav-example", classname: object.collapsible_nav_classname }) do %>
3
3
  <%= pb_rails("collapsible/collapsible_main", props: { name: "default-collapsible-nav", icon: object.collapsible_icons, size: "xs", dark: object.dark, classname:object.margin_classes }) do %>
4
- <%= pb_content_tag( object.tag,
5
- href: object.link && object.link,
6
- target: object.link && object.target
4
+ <%= content_tag(object.tag,
5
+ aria: object.aria,
6
+ class: object.classname,
7
+ data: object.data,
8
+ dark: object.dark,
9
+ id: object.id,
10
+ href: object.link && object.link,
11
+ target: object.link && object.target,
12
+ **combined_html_options
7
13
  ) do %>
8
14
  <% if object.image_url %>
9
15
  <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper_collapsible" }) %>
@@ -14,16 +20,22 @@
14
20
  <span class="pb_nav_list_item_text_collapsible">
15
21
  <%= object.text %>
16
22
  </span>
17
- <% end %>
23
+ <% end %>
18
24
  <% end %>
19
25
  <%= pb_rails("collapsible/collapsible_content", props: {collapsed: object.collapsed}) do %>
20
26
  <%= content.presence %>
21
27
  <% end %>
22
28
  <% end %>
23
29
  <% else %>
24
- <%= pb_content_tag( object.tag,
25
- href: object.link && object.link,
26
- target: object.link && object.target
30
+ <%= content_tag(object.tag,
31
+ aria: object.aria,
32
+ class: object.classname,
33
+ **combined_html_options,
34
+ data: object.data,
35
+ dark: object.dark,
36
+ id: object.id,
37
+ href: object.link && object.link,
38
+ target: object.link && object.target
27
39
  ) do %>
28
40
  <% if object.image_url %>
29
41
  <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
@@ -1,7 +1,12 @@
1
- <%= pb_content_tag(:nav) do %>
1
+ <%= content_tag(:nav,
2
+ aria: object.aria,
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <% if object.title %>
3
- <%= pb_content_tag do %>
4
- <%= pb_content_tag(:a) do %>
8
+ <%= content_tag(:div, class: "pb_nav_list_title") do %>
9
+ <%= content_tag(:a, class: "pb_nav_list_item_link_text", href: object.link) do %>
5
10
  <%= pb_rails("caption", props: { text: object.title, dark: dark }) %>
6
11
  <% end %>
7
12
  <% end %>
@@ -1,2 +1,7 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria.merge!(label: object.status),
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <% end %>
@@ -1,4 +1,9 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria,
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <div class="pb_popover_tooltip hide" id="<%= object.tooltip_id %>" role="tooltip" style="<%= object.z_index_helper %>">
3
8
  <div class="pb_popover_body <%= object.width_height_class_helper %> <%= object.popover_spacing_helper %>" style="<%= object.width_height_helper %>">
4
9
  <%= content.presence %>
@@ -3,7 +3,8 @@
3
3
  @import "../tokens/border_radius";
4
4
 
5
5
  @mixin pb_progress_pill {
6
- width: 45px;
6
+ width: 100%;
7
+ max-width: 45px;
7
8
  height: 4px;
8
9
  border-radius: $border_rad_light;
9
10
  margin-right: $space_xs;
@@ -1 +1,2 @@
1
1
  <%= pb_rails("progress_pills", props: { aria: { label: "2 out of 3 steps complete" }, steps: 3, active: 2 }) %>
2
+ <%= pb_rails("progress_pills", props: { aria: { label: "9 out of 18 steps complete" }, steps: 18, active: 9, margin_top: "md" }) %>
@@ -10,6 +10,13 @@ const ProgressPillsDefault = (props) => {
10
10
  steps={3}
11
11
  {...props}
12
12
  />
13
+ <ProgressPills
14
+ active={9}
15
+ aria={{ label: '9 out of 18 steps complete' }}
16
+ marginTop="md"
17
+ steps={18}
18
+ {...props}
19
+ />
13
20
  </>
14
21
  )
15
22
  }
@@ -0,0 +1 @@
1
+ Progress pills start at `45px` wide if the container allows, but will shrink down to `1px` as the container gets smaller. Resize this window to see each pill shrink.
@@ -1,4 +1,6 @@
1
- import React, { useRef, forwardRef } from 'react'
1
+ /*eslint-disable react/no-multi-comp */
2
+
3
+ import React, { forwardRef, useRef } from 'react'
2
4
  import Body from '../pb_body/_body'
3
5
  import Flex from '../pb_flex/_flex'
4
6
  import classnames from 'classnames'
@@ -22,10 +24,10 @@ type RadioProps = {
22
24
  name?: string,
23
25
  value?: string,
24
26
  text?: string,
25
- onChange?: (event: React.FormEvent<HTMLInputElement> | null) => void,
27
+ onChange: (event: React.FormEvent<HTMLInputElement> | null) => void,
26
28
  } & GlobalProps
27
29
 
28
- const Radio = forwardRef<HTMLInputElement, RadioProps>(({
30
+ const Radio = ({
29
31
  aria = {},
30
32
  alignment,
31
33
  children,
@@ -41,124 +43,110 @@ const Radio = forwardRef<HTMLInputElement, RadioProps>(({
41
43
  name = 'radio_name',
42
44
  text = 'Radio Text',
43
45
  value = 'radio_text',
44
- checked = false,
45
46
  onChange = () => { void 0 },
46
47
  ...props
47
- }, ref) => {
48
- const internalRef = useRef<HTMLInputElement>(null)
49
- const setRefs = (el: HTMLInputElement) => {
50
- internalRef.current = el
51
- if (typeof ref === 'function') {
52
- ref(el)
53
- } else if (ref) {
54
- (ref as React.MutableRefObject<HTMLInputElement | null>).current = el
55
- }
56
- }
57
-
58
- // Since we're using defaultChecked for uncontrolled input,
59
- // we no longer need to sync the checked state with useEffect.
60
-
61
- const ariaProps = buildAriaProps(aria)
62
- const dataProps = buildDataProps(data)
63
- const htmlProps = buildHtmlProps(htmlOptions)
48
+ }: RadioProps, ref: any) => {
49
+ const radioRef = useRef(null);
64
50
 
51
+ const ariaProps = buildAriaProps(aria);
52
+ const dataProps = buildDataProps(data);
53
+ const htmlProps = buildHtmlProps(htmlOptions);
65
54
  const classes = classnames(
66
55
  buildCss('pb_radio_kit', alignment),
67
56
  dark ? 'dark' : null,
68
57
  error ? 'error' : null,
69
58
  globalProps(props),
70
59
  className
71
- )
60
+ );
72
61
 
73
62
  const classesCustom = classnames(
74
63
  dark ? 'dark' : null,
75
64
  error ? 'error' : null,
76
65
  globalProps(props),
77
66
  className
78
- )
67
+ );
79
68
 
80
- const displayRadio = (inputProps: any) => {
81
- if (children && customChildren === false)
82
- return children
69
+ const displayRadio = (props: RadioProps & any) => {
70
+ if (children && customChildren == false)
71
+ return (children)
83
72
  else
84
- return (
85
- <input
86
- defaultChecked={checked}
87
- disabled={disabled}
88
- id={id}
89
- name={name}
90
- onChange={onChange}
91
- ref={setRefs}
92
- type="radio"
93
- value={value}
94
- {...inputProps}
95
- />
96
- )
97
- }
73
+ return (
74
+ <input
75
+ disabled={disabled}
76
+ id={id}
77
+ name={name}
78
+ onChange={onChange}
79
+ ref={ref}
80
+ text={text}
81
+ type="radio"
82
+ value={value}
83
+ {...props}
84
+ />
85
+ )}
98
86
 
99
87
  const handleContainerClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent> | undefined) => {
100
88
  if (event) {
101
- const target = event.target as HTMLElement
89
+ const target = event.target as HTMLElement;
102
90
  if (
103
91
  target.id === 'pb-radio-children-wrapper' ||
104
92
  target.closest('#pb-radio-children-wrapper')
105
93
  ) {
106
- internalRef.current?.click()
94
+ radioRef.current?.click();
107
95
  }
108
96
  }
109
- }
97
+ };
110
98
 
111
- return customChildren ? (
112
- <Flex
113
- {...ariaProps}
114
- {...dataProps}
115
- {...htmlProps}
116
- align="center"
117
- className={classesCustom}
118
- cursor="pointer"
119
- htmlFor={id}
120
- htmlOptions={{
121
- onClick: ((event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
122
- handleContainerClick(event)
123
- }) as unknown as () => void
124
- }}
125
- id="radio-container"
126
- >
127
- <label className={buildCss('pb_radio_kit', alignment)}>
99
+ return (
100
+ customChildren ? (
101
+ <Flex
102
+ {...ariaProps}
103
+ {...dataProps}
104
+ {...htmlProps}
105
+ align='center'
106
+ className={classesCustom}
107
+ cursor='pointer'
108
+ htmlFor={id}
109
+ htmlOptions={{
110
+ onClick: ((event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
111
+ handleContainerClick(event);
112
+ }) as unknown as () => void
113
+ }}
114
+ id="radio-container"
115
+ >
116
+ <label className={buildCss('pb_radio_kit', alignment)}>
128
117
  <input
129
- defaultChecked={checked}
130
118
  disabled={disabled}
131
119
  id={id}
132
120
  name={name}
133
121
  onChange={onChange}
134
- ref={setRefs}
122
+ ref={radioRef}
135
123
  type="radio"
136
124
  value={value}
137
125
  {...props}
138
126
  />
127
+ <span className="pb_radio_button" />
128
+ </label>
129
+ <div id="pb-radio-children-wrapper"> {children} </div>
130
+ </Flex>
131
+ ) : (
132
+ <label
133
+ {...ariaProps}
134
+ {...dataProps}
135
+ {...htmlProps}
136
+ className={classes}
137
+ htmlFor={id}
138
+ >
139
+ <>{displayRadio(props)}</>
139
140
  <span className="pb_radio_button" />
141
+ <Body
142
+ dark={dark}
143
+ status={error ? 'negative' : null}
144
+ text={label}
145
+ variant={null}
146
+ />
140
147
  </label>
141
- <div id="pb-radio-children-wrapper"> {children} </div>
142
- </Flex>
143
- ) : (
144
- <label
145
- {...ariaProps}
146
- {...dataProps}
147
- {...htmlProps}
148
- className={classes}
149
- htmlFor={id}
150
- >
151
- {displayRadio(props)}
152
- <span className="pb_radio_button" />
153
- <Body
154
- dark={dark}
155
- status={error ? 'negative' : null}
156
- text={label}
157
- variant={null}
158
- />
159
- </label>
160
- )
161
- })
148
+ )
149
+ );
150
+ };
162
151
 
163
- Radio.displayName = "Radio"
164
- export default Radio
152
+ export default forwardRef(Radio);
@@ -16,7 +16,6 @@ examples:
16
16
  - radio_alignment: Alignment
17
17
  - radio_disabled: Disabled
18
18
  - radio_custom_children: Custom Children
19
- - radio_react_hook: React Hook Form
20
19
 
21
20
  swift:
22
21
  - radio_default_swift: Default
@@ -27,4 +26,4 @@ examples:
27
26
  - radio_spacing_swift: Spacing
28
27
  - radio_padding_swift: Padding
29
28
  - radio_subtitle_swift: Subtitle
30
- - radio_props_swift: ""
29
+ - radio_props_swift: ""
@@ -4,4 +4,3 @@ export { default as RadioError } from './_radio_error.jsx'
4
4
  export { default as RadioAlignment } from './_radio_alignment.jsx'
5
5
  export { default as RadioDisabled } from './_radio_disabled.jsx'
6
6
  export { default as RadioCustomChildren } from './_radio_custom_children.jsx'
7
- export { default as RadioReactHook } from './_radio_react_hook.jsx'
@@ -86,19 +86,3 @@ test('has disabled attribute', () => {
86
86
  expect(input).toHaveAttribute('disabled')
87
87
  })
88
88
 
89
-
90
- test('has ref in the input element', () => {
91
- const ref = React.createRef()
92
- render(
93
- <Radio
94
- data={{ testid: testId }}
95
- name="Radio-name"
96
- ref={ref}
97
- text="Radio"
98
- value="radio value"
99
- />
100
- )
101
-
102
- expect(ref.current).not.toBeNull()
103
- expect(ref.current?.tagName).toBe('INPUT')
104
- })
@@ -16,7 +16,7 @@ const TableWithCollapsible = (props) => {
16
16
  );
17
17
  };
18
18
 
19
- return (
19
+ return (
20
20
  <Table
21
21
  size="sm"
22
22
  {...props}
@@ -31,12 +31,10 @@ examples:
31
31
  - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
32
32
  - table_outer_padding: Outer Padding
33
33
  - table_with_collapsible: Table with Collapsible
34
- - table_with_collapsible_with_custom_click: Table with Collapsible with Custom Click
35
34
  - table_with_collapsible_with_custom_content_rails: Table with Collapsible with Custom Content
36
35
  - table_with_collapsible_with_nested_rows_rails: Table with Collapsible with Nested Rows
37
36
  - table_with_collapsible_with_nested_table_rails: Table with Collapsible with Nested Table
38
37
  - table_with_clickable_rows: Table with Clickable Rows
39
- - table_with_selectable_rows: Table with Selectable Rows
40
38
 
41
39
  react:
42
40
  - table_sm: Small
@@ -73,5 +71,4 @@ examples:
73
71
  - table_with_collapsible_with_custom_content: Table with Collapsible with Custom Content
74
72
  - table_with_collapsible_with_nested_rows: Table with Collapsible with Nested Rows
75
73
  - table_with_collapsible_with_nested_table: Table with Collapsible with Nested Table
76
- - table_with_clickable_rows: Table with Clickable Rows
77
- - table_with_selectable_rows: Table with Selectable Rows
74
+ - table_with_clickable_rows: Table with Clickable Rows
@@ -33,5 +33,4 @@ export { default as TableWithCollapsibleWithCustomContent } from './_table_with_
33
33
  export { default as TableWithCollapsibleWithNestedTable } from './_table_with_collapsible_with_nested_table.jsx'
34
34
  export { default as TableWithCollapsibleWithNestedRows } from './_table_with_collapsible_with_nested_rows.jsx'
35
35
  export { default as TableWithCollapsibleWithCustomClick } from './_table_with_collapsible_with_custom_click.jsx'
36
- export { default as TableWithSelectableRows } from './_table_with_selectable_rows.jsx'
37
- export { default as TableWithClickableRows } from './_table_with_clickable_rows.jsx'
36
+ export { default as TableWithClickableRows } from './_table_with_clickable_rows.jsx'