playbook_ui 14.5.0.pre.rc.9 → 14.5.0.pre.rc.10
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.
- checksums.yaml +4 -4
 - data/app/pb_kits/playbook/pb_radio/_radio.tsx +92 -33
 - data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_children.jsx +59 -0
 - data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -0
 - data/app/pb_kits/playbook/pb_radio/docs/index.js +1 -0
 - data/dist/chunks/{_typeahead-C1XR4Ez_.js → _typeahead-C7ICra83.js} +1 -1
 - data/dist/chunks/{_weekday_stacked-xHndqwxW.js → _weekday_stacked-DwrIhNbf.js} +1 -1
 - data/dist/chunks/vendor.js +1 -1
 - data/dist/playbook-doc.js +1 -1
 - data/dist/playbook-rails-react-bindings.js +1 -1
 - data/dist/playbook-rails.js +1 -1
 - data/lib/playbook/version.rb +1 -1
 - metadata +5 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e930d71be535d60205afbc990ef87cce9a8356e7efe1e9a5145a73f3ed554f90
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9a79bb019c9d0662a59b3b13eb197b8e41acf6e1d60f060679f4ec4ff13f26e3
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: b13be7fddd6ffd257955f93e0f2ffdb10104899f54a655b9c52c2945b7213671011acf2ff32c62e4e8253a9ae972e67a50d064e17d56a0ba398b38bd6c5cc888
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 8d07b6eee54653cf126908c137b459e7b4b714a9521abffb23492a9ce41600925234a94b99bb4eccffe9b2aacaf19d4bcf0b71e504c2bf763d2eaf50f9b88e83
         
     | 
| 
         @@ -1,28 +1,30 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            /*eslint-disable react/no-multi-comp 
     | 
| 
      
 1 
     | 
    
         
            +
            /*eslint-disable react/no-multi-comp */
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            import React, { forwardRef } from 'react'
         
     | 
| 
      
 3 
     | 
    
         
            +
            import React, { forwardRef, useRef } from 'react'
         
     | 
| 
       4 
4 
     | 
    
         
             
            import Body from '../pb_body/_body'
         
     | 
| 
      
 5 
     | 
    
         
            +
            import Flex from '../pb_flex/_flex'
         
     | 
| 
       5 
6 
     | 
    
         
             
            import classnames from 'classnames'
         
     | 
| 
       6 
7 
     | 
    
         
             
            import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
         
     | 
| 
       7 
8 
     | 
    
         
             
            import { globalProps, GlobalProps } from '../utilities/globalProps'
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
10 
     | 
    
         
             
            type RadioProps = {
         
     | 
| 
       10 
     | 
    
         
            -
              aria?: {[key: string]: string},
         
     | 
| 
      
 11 
     | 
    
         
            +
              aria?: { [key: string]: string },
         
     | 
| 
       11 
12 
     | 
    
         
             
              alignment?: string,
         
     | 
| 
       12 
13 
     | 
    
         
             
              checked?: boolean,
         
     | 
| 
       13 
14 
     | 
    
         
             
              children?: React.ReactChild[] | React.ReactChild,
         
     | 
| 
      
 15 
     | 
    
         
            +
              customChildren?: boolean,
         
     | 
| 
       14 
16 
     | 
    
         
             
              className?: string,
         
     | 
| 
       15 
17 
     | 
    
         
             
              dark?: boolean,
         
     | 
| 
       16 
     | 
    
         
            -
              data?: {[key: string]: string},
         
     | 
| 
      
 18 
     | 
    
         
            +
              data?: { [key: string]: string },
         
     | 
| 
       17 
19 
     | 
    
         
             
              disabled?: boolean,
         
     | 
| 
       18 
20 
     | 
    
         
             
              error?: boolean,
         
     | 
| 
       19 
     | 
    
         
            -
              htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
         
     | 
| 
      
 21 
     | 
    
         
            +
              htmlOptions?: { [key: string]: string | number | boolean | (() => void) },
         
     | 
| 
       20 
22 
     | 
    
         
             
              id?: string,
         
     | 
| 
       21 
23 
     | 
    
         
             
              label: string,
         
     | 
| 
       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 
30 
     | 
    
         
             
            const Radio = ({
         
     | 
| 
         @@ -30,10 +32,11 @@ const Radio = ({ 
     | 
|
| 
       30 
32 
     | 
    
         
             
              alignment,
         
     | 
| 
       31 
33 
     | 
    
         
             
              children,
         
     | 
| 
       32 
34 
     | 
    
         
             
              className,
         
     | 
| 
      
 35 
     | 
    
         
            +
              customChildren = false,
         
     | 
| 
       33 
36 
     | 
    
         
             
              dark = false,
         
     | 
| 
       34 
     | 
    
         
            -
              data = {},
         
     | 
| 
       35 
37 
     | 
    
         
             
              disabled = false,
         
     | 
| 
       36 
38 
     | 
    
         
             
              error = false,
         
     | 
| 
      
 39 
     | 
    
         
            +
              data = {},
         
     | 
| 
       37 
40 
     | 
    
         
             
              htmlOptions = {},
         
     | 
| 
       38 
41 
     | 
    
         
             
              id,
         
     | 
| 
       39 
42 
     | 
    
         
             
              label,
         
     | 
| 
         @@ -43,17 +46,28 @@ const Radio = ({ 
     | 
|
| 
       43 
46 
     | 
    
         
             
              onChange = () => { void 0 },
         
     | 
| 
       44 
47 
     | 
    
         
             
              ...props
         
     | 
| 
       45 
48 
     | 
    
         
             
            }: RadioProps, ref: any) => {
         
     | 
| 
       46 
     | 
    
         
            -
              const  
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
              const  
     | 
| 
      
 49 
     | 
    
         
            +
              const radioRef = useRef(null);
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              const ariaProps = buildAriaProps(aria);
         
     | 
| 
      
 52 
     | 
    
         
            +
              const dataProps = buildDataProps(data);
         
     | 
| 
      
 53 
     | 
    
         
            +
              const htmlProps = buildHtmlProps(htmlOptions);
         
     | 
| 
       49 
54 
     | 
    
         
             
              const classes = classnames(
         
     | 
| 
       50 
     | 
    
         
            -
                buildCss('pb_radio_kit', alignment 
     | 
| 
       51 
     | 
    
         
            -
                dark ? 'dark' 
     | 
| 
      
 55 
     | 
    
         
            +
                buildCss('pb_radio_kit', alignment),
         
     | 
| 
      
 56 
     | 
    
         
            +
                dark ? 'dark' : null,
         
     | 
| 
      
 57 
     | 
    
         
            +
                error ? 'error' : null,
         
     | 
| 
       52 
58 
     | 
    
         
             
                globalProps(props),
         
     | 
| 
       53 
     | 
    
         
            -
                className 
     | 
| 
      
 59 
     | 
    
         
            +
                className
         
     | 
| 
      
 60 
     | 
    
         
            +
              );
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              const classesCustom = classnames(
         
     | 
| 
      
 63 
     | 
    
         
            +
                dark ? 'dark' : null,
         
     | 
| 
      
 64 
     | 
    
         
            +
                error ? 'error' : null,
         
     | 
| 
      
 65 
     | 
    
         
            +
                globalProps(props),
         
     | 
| 
      
 66 
     | 
    
         
            +
                className
         
     | 
| 
      
 67 
     | 
    
         
            +
              );
         
     | 
| 
       54 
68 
     | 
    
         | 
| 
       55 
69 
     | 
    
         
             
              const displayRadio = (props: RadioProps & any) => {
         
     | 
| 
       56 
     | 
    
         
            -
                if (children)
         
     | 
| 
      
 70 
     | 
    
         
            +
                if (children && customChildren == false)
         
     | 
| 
       57 
71 
     | 
    
         
             
                  return (children)
         
     | 
| 
       58 
72 
     | 
    
         
             
                else
         
     | 
| 
       59 
73 
     | 
    
         
             
                return (
         
     | 
| 
         @@ -70,24 +84,69 @@ const Radio = ({ 
     | 
|
| 
       70 
84 
     | 
    
         
             
                />
         
     | 
| 
       71 
85 
     | 
    
         
             
              )}
         
     | 
| 
       72 
86 
     | 
    
         | 
| 
      
 87 
     | 
    
         
            +
              const handleContainerClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent> | undefined) => {
         
     | 
| 
      
 88 
     | 
    
         
            +
                if (event) {
         
     | 
| 
      
 89 
     | 
    
         
            +
                  const target = event.target as HTMLElement;
         
     | 
| 
      
 90 
     | 
    
         
            +
                  if (
         
     | 
| 
      
 91 
     | 
    
         
            +
                    target.id === 'pb-radio-children-wrapper' ||
         
     | 
| 
      
 92 
     | 
    
         
            +
                    target.closest('#pb-radio-children-wrapper')
         
     | 
| 
      
 93 
     | 
    
         
            +
                  ) {
         
     | 
| 
      
 94 
     | 
    
         
            +
                    radioRef.current?.click();
         
     | 
| 
      
 95 
     | 
    
         
            +
                  }
         
     | 
| 
      
 96 
     | 
    
         
            +
                }
         
     | 
| 
      
 97 
     | 
    
         
            +
              };
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
       73 
99 
     | 
    
         
             
              return (
         
     | 
| 
       74 
     | 
    
         
            -
                 
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
      
 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)}>
         
     | 
| 
      
 117 
     | 
    
         
            +
                    <input
         
     | 
| 
      
 118 
     | 
    
         
            +
                        disabled={disabled}
         
     | 
| 
      
 119 
     | 
    
         
            +
                        id={id}
         
     | 
| 
      
 120 
     | 
    
         
            +
                        name={name}
         
     | 
| 
      
 121 
     | 
    
         
            +
                        onChange={onChange}
         
     | 
| 
      
 122 
     | 
    
         
            +
                        ref={radioRef}
         
     | 
| 
      
 123 
     | 
    
         
            +
                        type="radio"
         
     | 
| 
      
 124 
     | 
    
         
            +
                        value={value}
         
     | 
| 
      
 125 
     | 
    
         
            +
                        {...props}
         
     | 
| 
      
 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)}</>
         
     | 
| 
      
 140 
     | 
    
         
            +
                    <span className="pb_radio_button" />
         
     | 
| 
      
 141 
     | 
    
         
            +
                    <Body
         
     | 
| 
      
 142 
     | 
    
         
            +
                        dark={dark}
         
     | 
| 
      
 143 
     | 
    
         
            +
                        status={error ? 'negative' : null}
         
     | 
| 
      
 144 
     | 
    
         
            +
                        text={label}
         
     | 
| 
      
 145 
     | 
    
         
            +
                        variant={null}
         
     | 
| 
      
 146 
     | 
    
         
            +
                    />
         
     | 
| 
      
 147 
     | 
    
         
            +
                  </label>
         
     | 
| 
      
 148 
     | 
    
         
            +
                )
         
     | 
| 
      
 149 
     | 
    
         
            +
              );
         
     | 
| 
      
 150 
     | 
    
         
            +
            };
         
     | 
| 
       92 
151 
     | 
    
         | 
| 
       93 
     | 
    
         
            -
            export default forwardRef(Radio)
         
     | 
| 
      
 152 
     | 
    
         
            +
            export default forwardRef(Radio);
         
     | 
| 
         @@ -0,0 +1,59 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import React from 'react'
         
     | 
| 
      
 2 
     | 
    
         
            +
            import Radio from '../_radio'
         
     | 
| 
      
 3 
     | 
    
         
            +
            import Select from '../../pb_select/_select'
         
     | 
| 
      
 4 
     | 
    
         
            +
            import Typeahead from '../../pb_typeahead/_typeahead'
         
     | 
| 
      
 5 
     | 
    
         
            +
            import Title from '../../pb_title/_title'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            const RadioChildren = (props) => {
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              const options = [
         
     | 
| 
      
 11 
     | 
    
         
            +
                { label: 'Orange', value: 'Orange' },
         
     | 
| 
      
 12 
     | 
    
         
            +
                { label: 'Red', value: 'Red' },
         
     | 
| 
      
 13 
     | 
    
         
            +
                { label: 'Green', value: 'Green' },
         
     | 
| 
      
 14 
     | 
    
         
            +
                { label: 'Blue', value: 'Blue' },
         
     | 
| 
      
 15 
     | 
    
         
            +
              ]
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              return (
         
     | 
| 
      
 18 
     | 
    
         
            +
                <div>
         
     | 
| 
      
 19 
     | 
    
         
            +
                  <Radio
         
     | 
| 
      
 20 
     | 
    
         
            +
                      customChildren
         
     | 
| 
      
 21 
     | 
    
         
            +
                      label="Select"
         
     | 
| 
      
 22 
     | 
    
         
            +
                      name="Group1"
         
     | 
| 
      
 23 
     | 
    
         
            +
                      tabIndex={0}
         
     | 
| 
      
 24 
     | 
    
         
            +
                      value="Select"
         
     | 
| 
      
 25 
     | 
    
         
            +
                      {...props}
         
     | 
| 
      
 26 
     | 
    
         
            +
                  >
         
     | 
| 
      
 27 
     | 
    
         
            +
                    <Select 
         
     | 
| 
      
 28 
     | 
    
         
            +
                        minWidth="xs"
         
     | 
| 
      
 29 
     | 
    
         
            +
                        options={options}
         
     | 
| 
      
 30 
     | 
    
         
            +
                    />
         
     | 
| 
      
 31 
     | 
    
         
            +
                  </Radio>
         
     | 
| 
      
 32 
     | 
    
         
            +
                  <Radio
         
     | 
| 
      
 33 
     | 
    
         
            +
                      customChildren
         
     | 
| 
      
 34 
     | 
    
         
            +
                      label="Typeahead"
         
     | 
| 
      
 35 
     | 
    
         
            +
                      name="Group1"
         
     | 
| 
      
 36 
     | 
    
         
            +
                      tabIndex={0}
         
     | 
| 
      
 37 
     | 
    
         
            +
                      value="Typeahead"
         
     | 
| 
      
 38 
     | 
    
         
            +
                      {...props}
         
     | 
| 
      
 39 
     | 
    
         
            +
                  >
         
     | 
| 
      
 40 
     | 
    
         
            +
                    <Typeahead 
         
     | 
| 
      
 41 
     | 
    
         
            +
                        minWidth="xs"
         
     | 
| 
      
 42 
     | 
    
         
            +
                        options={options}
         
     | 
| 
      
 43 
     | 
    
         
            +
                    />
         
     | 
| 
      
 44 
     | 
    
         
            +
                  </Radio>
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <br />
         
     | 
| 
      
 46 
     | 
    
         
            +
                  <Radio
         
     | 
| 
      
 47 
     | 
    
         
            +
                      customChildren
         
     | 
| 
      
 48 
     | 
    
         
            +
                      defaultChecked={false}
         
     | 
| 
      
 49 
     | 
    
         
            +
                      label="Typography"
         
     | 
| 
      
 50 
     | 
    
         
            +
                      name="Group1"
         
     | 
| 
      
 51 
     | 
    
         
            +
                      value="Typography"
         
     | 
| 
      
 52 
     | 
    
         
            +
                      {...props}
         
     | 
| 
      
 53 
     | 
    
         
            +
                  >
         
     | 
| 
      
 54 
     | 
    
         
            +
                    <Title text="Custom Typography" />
         
     | 
| 
      
 55 
     | 
    
         
            +
                  </Radio>
         
     | 
| 
      
 56 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 57 
     | 
    
         
            +
              )
         
     | 
| 
      
 58 
     | 
    
         
            +
            }
         
     | 
| 
      
 59 
     | 
    
         
            +
            export default RadioChildren
         
     | 
| 
         @@ -3,3 +3,4 @@ export { default as RadioCustom } from './_radio_custom.jsx' 
     | 
|
| 
       3 
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 
     | 
    
         
            +
            export { default as RadioCustomChildren } from './_radio_custom_children.jsx'
         
     |