playbook_ui 15.2.0 → 15.3.0.pre.alpha.PLAY2322popoverconditionalrender11766
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/_playbook.scss +5 -5
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +18 -3
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +56 -14
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +12 -3
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +59 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +39 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +28 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +11 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +51 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +40 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading_empty_children.js +42 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/index.js +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +3 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +49 -5
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +4 -4
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +4 -0
- data/app/pb_kits/playbook/pb_button/_button.scss +6 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +7 -3
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +29 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_quick_pick_styles.scss +11 -30
- data/app/pb_kits/playbook/pb_draggable/_draggable.scss +8 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +0 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +5 -3
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +10 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/formHelper.js +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +8 -6
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +7 -10
- data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +73 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +7 -10
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +47 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +69 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +12 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +24 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +5 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +45 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +119 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +5 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +17 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +12 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +24 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +23 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +37 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +40 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +56 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +64 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +27 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +40 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +19 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +65 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +14 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +27 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +39 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +58 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +29 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +11 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +91 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +25 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +80 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +61 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +34 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +52 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +5 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +34 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +45 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +47 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +64 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +24 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +37 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +39 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +45 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +86 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +116 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +11 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +20 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +125 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +1 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +25 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +110 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +130 -28
- data/app/pb_kits/playbook/pb_popover/_popover.scss +12 -0
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +43 -29
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +7 -0
- data/app/pb_kits/playbook/pb_popover/docs/hook/useSmallScreenIndicator.tsx +27 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +41 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +60 -20
- data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +36 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +38 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +34 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +37 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +37 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +38 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +69 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +8 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +127 -1
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +250 -233
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/timeline.test.js +2 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +35 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +71 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.html.erb +36 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.jsx +41 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/app/pb_kits/playbook/tokens/_positioning.scss +1 -0
- data/app/pb_kits/playbook/utilities/_positioning.scss +6 -1
- data/app/pb_kits/playbook/utilities/globalProps.ts +3 -1
- data/dist/chunks/{_line_graph-ByLTvO72.js → _line_graph-BxC7m53J.js} +1 -1
- data/dist/chunks/_typeahead-B1SiFvbF.js +6 -0
- data/dist/chunks/{_weekday_stacked-CB1Sm0pQ.js → _weekday_stacked-DxdwXyYM.js} +3 -3
- data/dist/chunks/{lib-izYrkvOQ.js → lib-CGxXTQ75.js} +2 -2
- data/dist/chunks/{pb_form_validation-Cah5Z5J3.js → pb_form_validation-DebqlUKZ.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +12 -0
- data/dist/playbook-doc.js +2 -2
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/pb_forms_helper.rb +7 -6
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook/z_index.rb +1 -1
- metadata +91 -7
- data/dist/chunks/_typeahead-DXZQU3hC.js +0 -6
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            import React, { useState, useEffect, forwardRef} from 'react'
         | 
| 1 | 
            +
            import React, { useState, useEffect, forwardRef, useRef} from 'react'
         | 
| 2 2 | 
             
            import Select from 'react-select'
         | 
| 3 3 | 
             
            import AsyncSelect from 'react-select/async'
         | 
| 4 4 | 
             
            import CreateableSelect from 'react-select/creatable'
         | 
| @@ -106,6 +106,8 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 106 106 | 
             
              const [inputValue, setInputValue] = useState("")
         | 
| 107 107 | 
             
              // State to track if form has been submitted to control validation display for react rendered rails kit
         | 
| 108 108 | 
             
              const [formSubmitted, setFormSubmitted] = useState(false)
         | 
| 109 | 
            +
              // State to track if user has made a selection (to disable defaultValue focus behavior)
         | 
| 110 | 
            +
              const [hasUserSelected, setHasUserSelected] = useState(false)
         | 
| 109 111 |  | 
| 110 112 | 
             
              // If preserveSearchInput is true, we need to control the input value
         | 
| 111 113 | 
             
              const handleInputChange = preserveSearchInput
         | 
| @@ -139,6 +141,69 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 139 141 | 
             
                  }
         | 
| 140 142 | 
             
                : props.onBlur
         | 
| 141 143 |  | 
| 144 | 
            +
              // Create a ref to access React Select instance
         | 
| 145 | 
            +
              const selectRef = useRef<any>(null)
         | 
| 146 | 
            +
             | 
| 147 | 
            +
              // Configure focus on selected option using React Select's API
         | 
| 148 | 
            +
              const handleMenuOpen = () => {
         | 
| 149 | 
            +
                setTimeout(() => {
         | 
| 150 | 
            +
                  let currentValue = props.value || props.defaultValue
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                  // Handle react rendered rails version which passes arrays even for single selects
         | 
| 153 | 
            +
                  if (Array.isArray(currentValue) && currentValue.length > 0) {
         | 
| 154 | 
            +
                    currentValue = currentValue[0]
         | 
| 155 | 
            +
                  }
         | 
| 156 | 
            +
                  
         | 
| 157 | 
            +
                  // Only apply custom focus if user has NOT made a selection yet
         | 
| 158 | 
            +
                  if (currentValue && selectRef.current && !hasUserSelected && !props.isMulti) {
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                    const options = props.options
         | 
| 161 | 
            +
                    if (options) {
         | 
| 162 | 
            +
                      // Find the index of the current value
         | 
| 163 | 
            +
                      const focusedIndex = options.findIndex((option: any) => {
         | 
| 164 | 
            +
                        const optionValue = props.getOptionValue ? props.getOptionValue(option) : option.value
         | 
| 165 | 
            +
                        const currentOptionValue = props.getOptionValue ? props.getOptionValue(currentValue) : currentValue.value
         | 
| 166 | 
            +
                        return optionValue === currentOptionValue
         | 
| 167 | 
            +
                      })
         | 
| 168 | 
            +
                      
         | 
| 169 | 
            +
                      if (focusedIndex >= 0 && options[focusedIndex]) {
         | 
| 170 | 
            +
                        // Use React Select's internal state to set focused option
         | 
| 171 | 
            +
                        if (selectRef.current && selectRef.current.setState) {
         | 
| 172 | 
            +
                          const targetOption = options[focusedIndex]
         | 
| 173 | 
            +
                          selectRef.current.setState({
         | 
| 174 | 
            +
                            focusedOption: targetOption,
         | 
| 175 | 
            +
                            focusedValue: null
         | 
| 176 | 
            +
                          })
         | 
| 177 | 
            +
                          
         | 
| 178 | 
            +
                          // Handle scrolling so selected option is visible
         | 
| 179 | 
            +
                          setTimeout(() => {
         | 
| 180 | 
            +
                            if (selectRef.current && selectRef.current.menuListRef) {
         | 
| 181 | 
            +
                              const menuElement = selectRef.current.menuListRef
         | 
| 182 | 
            +
                              if (menuElement && menuElement.children && menuElement.children[focusedIndex]) {
         | 
| 183 | 
            +
                                // Calculate the position of the selected option and scroll the menu container
         | 
| 184 | 
            +
                                const optionElement = menuElement.children[focusedIndex] as HTMLElement
         | 
| 185 | 
            +
                                const optionTop = optionElement.offsetTop
         | 
| 186 | 
            +
                                const optionHeight = optionElement.offsetHeight
         | 
| 187 | 
            +
                                const menuHeight = menuElement.clientHeight
         | 
| 188 | 
            +
                                
         | 
| 189 | 
            +
                                // Set the menu's scrollTop to position the selected option in the middle
         | 
| 190 | 
            +
                                const scrollToMiddle = optionTop - (menuHeight / 2) + (optionHeight / 2)
         | 
| 191 | 
            +
                                menuElement.scrollTop = Math.max(0, scrollToMiddle)
         | 
| 192 | 
            +
                              }
         | 
| 193 | 
            +
                            }
         | 
| 194 | 
            +
                          }, 20)
         | 
| 195 | 
            +
                        }
         | 
| 196 | 
            +
                      }
         | 
| 197 | 
            +
                    }
         | 
| 198 | 
            +
                  }
         | 
| 199 | 
            +
                }, 0)
         | 
| 200 | 
            +
                
         | 
| 201 | 
            +
                // Call original onMenuOpen if provided
         | 
| 202 | 
            +
                if (props.onMenuOpen) {
         | 
| 203 | 
            +
                  props.onMenuOpen()
         | 
| 204 | 
            +
                }
         | 
| 205 | 
            +
              }
         | 
| 206 | 
            +
             | 
| 142 207 | 
             
              const selectProps = {
         | 
| 143 208 | 
             
                cacheOptions: true,
         | 
| 144 209 | 
             
                required,
         | 
| @@ -172,6 +237,7 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 172 237 | 
             
                ...(preserveSearchInput ? { inputValue } : {}),
         | 
| 173 238 | 
             
                onInputChange: handleInputChange,
         | 
| 174 239 | 
             
                onBlur: handleBlur,
         | 
| 240 | 
            +
                onMenuOpen: handleMenuOpen,
         | 
| 175 241 | 
             
                ...props,
         | 
| 176 242 | 
             
              }
         | 
| 177 243 |  | 
| @@ -261,6 +327,8 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 261 327 | 
             
                // Reset form submitted state when a selection is made (this is all for react rendered rails kit)
         | 
| 262 328 | 
             
                if (action === 'select-option') {
         | 
| 263 329 | 
             
                  setFormSubmitted(false)
         | 
| 330 | 
            +
                  // Mark that user has made a selection to disable default value focus behavior
         | 
| 331 | 
            +
                  setHasUserSelected(true)
         | 
| 264 332 | 
             
                }
         | 
| 265 333 |  | 
| 266 334 | 
             
                // If a value is selected and we're preserving input on blur, clear the input
         | 
| @@ -269,7 +337,7 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 269 337 | 
             
                }
         | 
| 270 338 |  | 
| 271 339 | 
             
                if (action === 'select-option') {
         | 
| 272 | 
            -
                  if (selectProps.onMultiValueClick) selectProps.onMultiValueClick(option)
         | 
| 340 | 
            +
                  if (selectProps.onMultiValueClick && option) selectProps.onMultiValueClick(option)
         | 
| 273 341 | 
             
                  const multiValueClearEvent = new CustomEvent(`pb-typeahead-kit-${selectProps.id}-result-option-select`, { detail: option ? option : _data })
         | 
| 274 342 | 
             
                  document.dispatchEvent(multiValueClearEvent)
         | 
| 275 343 | 
             
                }
         | 
| @@ -317,6 +385,7 @@ const Typeahead = forwardRef<HTMLInputElement, TypeaheadProps>(({ | |
| 317 385 | 
             
                      error={errorDisplay}
         | 
| 318 386 | 
             
                      isDisabled={disabled}
         | 
| 319 387 | 
             
                      onChange={handleOnChange}
         | 
| 388 | 
            +
                      ref={selectRef}
         | 
| 320 389 | 
             
                      {...selectProps}
         | 
| 321 390 | 
             
                  />
         | 
| 322 391 | 
             
                </div>
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            <%
         | 
| 2 | 
            +
              options = [
         | 
| 3 | 
            +
              { label: 'Orange', value: '#FFA500' },
         | 
| 4 | 
            +
              { label: 'Red', value: '#FF0000' },
         | 
| 5 | 
            +
              { label: 'Green', value: '#1e3d1eff' },
         | 
| 6 | 
            +
              { label: 'Blue', value: '#0000FF' },
         | 
| 7 | 
            +
              { label: 'Purple', value: '#800080' },
         | 
| 8 | 
            +
              { label: 'Yellow', value: '#FFFF00' },
         | 
| 9 | 
            +
              { label: 'Pink', value: '#FFC0CB' },
         | 
| 10 | 
            +
              { label: 'Brown', value: '#A52A2A' },
         | 
| 11 | 
            +
              { label: 'Black', value: '#000000' },
         | 
| 12 | 
            +
              { label: 'White', value: '#FFFFFF' },
         | 
| 13 | 
            +
              { label: 'Gray', value: '#808080' },
         | 
| 14 | 
            +
              { label: 'Cyan', value: '#00FFFF' },
         | 
| 15 | 
            +
              { label: 'Magenta', value: '#FF00FF' },
         | 
| 16 | 
            +
              { label: 'Lime', value: '#00FF00' },
         | 
| 17 | 
            +
              { label: 'Maroon', value: '#800000' },
         | 
| 18 | 
            +
              { label: 'Olive', value: '#808000' },
         | 
| 19 | 
            +
              { label: 'Navy', value: '#000080' },
         | 
| 20 | 
            +
              { label: 'Teal', value: '#008080' },
         | 
| 21 | 
            +
              { label: 'Silver', value: '#C0C0C0' },
         | 
| 22 | 
            +
              { label: 'Gold', value: '#FFD700' },
         | 
| 23 | 
            +
              { label: 'Beige', value: '#F5F5DC' },
         | 
| 24 | 
            +
              { label: 'Coral', value: '#FF7F50' }
         | 
| 25 | 
            +
              ]
         | 
| 26 | 
            +
            %>
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            <%= pb_rails("typeahead", props: {
         | 
| 29 | 
            +
                default_options: [{ label: 'Gray', value: '#808080' }],
         | 
| 30 | 
            +
                id: "typeahead-default-value",
         | 
| 31 | 
            +
                options: options,
         | 
| 32 | 
            +
                label: "Colors",
         | 
| 33 | 
            +
                name: :foo,
         | 
| 34 | 
            +
                is_multi: false
         | 
| 35 | 
            +
              })
         | 
| 36 | 
            +
            %>
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            The optional `default_options` prop can be used to set a default value for the kit. When a default value is set, focus will be automatically set to the selected option and the dropdown container will scroll to bring the selected option into view. 
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            import Typeahead from '../_typeahead'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            const options = [
         | 
| 6 | 
            +
              { label: 'Orange', value: '#FFA500' },
         | 
| 7 | 
            +
              { label: 'Red', value: '#FF0000' },
         | 
| 8 | 
            +
              { label: 'Green', value: '#1e3d1eff' },
         | 
| 9 | 
            +
              { label: 'Blue', value: '#0000FF' },
         | 
| 10 | 
            +
              { label: 'Purple', value: '#800080' },
         | 
| 11 | 
            +
              { label: 'Yellow', value: '#FFFF00' },
         | 
| 12 | 
            +
              { label: 'Pink', value: '#FFC0CB' },
         | 
| 13 | 
            +
              { label: 'Brown', value: '#A52A2A' },
         | 
| 14 | 
            +
              { label: 'Black', value: '#000000' },
         | 
| 15 | 
            +
              { label: 'White', value: '#FFFFFF' },
         | 
| 16 | 
            +
              { label: 'Gray', value: '#808080' },
         | 
| 17 | 
            +
              { label: 'Cyan', value: '#00FFFF' },
         | 
| 18 | 
            +
              { label: 'Magenta', value: '#FF00FF' },
         | 
| 19 | 
            +
              { label: 'Lime', value: '#00FF00' },
         | 
| 20 | 
            +
              { label: 'Maroon', value: '#800000' },
         | 
| 21 | 
            +
              { label: 'Olive', value: '#808000' },
         | 
| 22 | 
            +
              { label: 'Navy', value: '#000080' },
         | 
| 23 | 
            +
              { label: 'Teal', value: '#008080' },
         | 
| 24 | 
            +
              { label: 'Silver', value: '#C0C0C0' },
         | 
| 25 | 
            +
              { label: 'Gold', value: '#FFD700' },
         | 
| 26 | 
            +
              { label: 'Beige', value: '#F5F5DC' },
         | 
| 27 | 
            +
              { label: 'Coral', value: '#FF7F50' }
         | 
| 28 | 
            +
            ]
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            const TypeaheadDefaultValue = (props) => {
         | 
| 31 | 
            +
              return (
         | 
| 32 | 
            +
                <Typeahead
         | 
| 33 | 
            +
                    defaultValue={options[10]}
         | 
| 34 | 
            +
                    label="Colors"
         | 
| 35 | 
            +
                    options={options}
         | 
| 36 | 
            +
                    {...props}
         | 
| 37 | 
            +
                />
         | 
| 38 | 
            +
              )
         | 
| 39 | 
            +
            }
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            export default TypeaheadDefaultValue
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            The optional `defaultValue` prop can be used to set a default value for the kit. When a default value is set, focus will be automatically set to the selected option and the dropdown container will scroll to bring the selected option into view. 
         | 
| @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            examples:
         | 
| 2 2 | 
             
              rails:
         | 
| 3 3 | 
             
                - typeahead_default: Default
         | 
| 4 | 
            +
                - typeahead_default_options: With Default Options
         | 
| 4 5 | 
             
                - typeahead_with_context: With Context
         | 
| 5 6 | 
             
                - typeahead_with_pills: With Pills
         | 
| 6 7 | 
             
                - typeahead_without_pills: Without Pills (Single Select)
         | 
| @@ -19,6 +20,7 @@ examples: | |
| 19 20 |  | 
| 20 21 | 
             
              react:
         | 
| 21 22 | 
             
                - typeahead_default: Default
         | 
| 23 | 
            +
                - typeahead_default_value: With Default Value
         | 
| 22 24 | 
             
                - typeahead_react_hook: React Hook
         | 
| 23 25 | 
             
                - typeahead_with_highlight: With Highlight
         | 
| 24 26 | 
             
                - typeahead_with_pills: With Pills
         | 
| @@ -16,3 +16,4 @@ export { default as TypeaheadTruncatedText } from './_typeahead_truncated_text.j | |
| 16 16 | 
             
            export { default as TypeaheadReactHook } from './_typeahead_react_hook.jsx'
         | 
| 17 17 | 
             
            export { default as TypeaheadDisabled } from './_typeahead_disabled.jsx'
         | 
| 18 18 | 
             
            export { default as TypeaheadPreserveInput } from './_typeahead_preserve_input.jsx'
         | 
| 19 | 
            +
            export { default as TypeaheadDefaultValue } from './_typeahead_default_value.jsx'
         | 
| @@ -58,6 +58,10 @@ | |
| 58 58 | 
             
              z-index: $z_10 !important;
         | 
| 59 59 | 
             
            }
         | 
| 60 60 |  | 
| 61 | 
            +
            .z_index_max {
         | 
| 62 | 
            +
              z-index: $z_max !important;
         | 
| 63 | 
            +
            }
         | 
| 64 | 
            +
             | 
| 61 65 | 
             
            $zIndex_values: (
         | 
| 62 66 | 
             
              1: $z_1,
         | 
| 63 67 | 
             
              2: $z_2,
         | 
| @@ -68,7 +72,8 @@ $zIndex_values: ( | |
| 68 72 | 
             
              7: $z_7,
         | 
| 69 73 | 
             
              8: $z_8,
         | 
| 70 74 | 
             
              9: $z_9,
         | 
| 71 | 
            -
              10: $z_10
         | 
| 75 | 
            +
              10: $z_10,
         | 
| 76 | 
            +
              max: $z_max
         | 
| 72 77 | 
             
            );
         | 
| 73 78 |  | 
| 74 79 | 
             
            @each $size, $size_value in $breakpoints_grid {
         | 
| @@ -186,7 +186,7 @@ type VerticalAlign =  { | |
| 186 186 | 
             
              verticalAlign?: "baseline" | "super" | "top" | "middle" | "bottom" | "sub" | "text-top" | "text-bottom"
         | 
| 187 187 | 
             
            }
         | 
| 188 188 |  | 
| 189 | 
            -
            type ZIndexType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
         | 
| 189 | 
            +
            type ZIndexType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 'max'
         | 
| 190 190 | 
             
            type ZIndexResponsiveType = {[key: string]: ZIndexType}
         | 
| 191 191 | 
             
            type ZIndex = {
         | 
| 192 192 | 
             
              zIndex?: ZIndexType,
         | 
| @@ -439,6 +439,8 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} = | |
| 439 439 | 
             
                      Object.entries(zIndexEntry[1]).forEach((zIndexObj) => {
         | 
| 440 440 | 
             
                        css += `z_index_${zIndexObj[0]}_${zIndexObj[1]} `
         | 
| 441 441 | 
             
                      })
         | 
| 442 | 
            +
                    } else if (zIndexEntry[1] === 'max') {
         | 
| 443 | 
            +
                      css += `z_index_max `
         | 
| 442 444 | 
             
                    }
         | 
| 443 445 | 
             
                  }
         | 
| 444 446 | 
             
                })
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            import{jsx,Fragment,jsxs}from"react/jsx-runtime";import{useState,useEffect}from"react";import{d as buildAriaProps,e as buildDataProps,f as buildHtmlProps,H as HighchartsReact,g as Highcharts,h as classnames,i as globalProps,j as HighchartsMore,S as SolidGauge,k as buildCss}from"./_typeahead-DXZQU3hC.js";import{c as colors,h as highchartsTheme,m as merge,a as highchartsDarkTheme,t as typography}from"./lib-izYrkvOQ.js";const mapColors=array=>{const regex=/(data)\-[1-8]/;const newArray=array.map((item=>regex.test(item)?`${colors[`data_${item[item.length-1]}`]}`:item));return newArray};const BarGraph=({aria:aria={},data:data={},align:align="center",axisTitle:axisTitle,dark:dark=false,chartData:chartData,className:className="pb_bar_graph",colors:colors2,htmlOptions:htmlOptions={},customOptions:customOptions={},axisFormat:axisFormat,id:id,pointStart:pointStart,stacking:stacking,subTitle:subTitle,type:type="column",title:title="Title",xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,legend:legend=false,toggleLegendClick:toggleLegendClick=true,height:height,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:[{labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat&&axisFormat[0]?axisFormat[0].format:""},min:yAxisMin,max:yAxisMax,opposite:false,title:{text:Array.isArray(axisTitle)?axisTitle.length>0?axisTitle[0].name:null:axisTitle},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]}],xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{stacking:stacking,pointStart:pointStart,borderWidth:stacking?0:"",events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(Array.isArray(axisTitle)&&axisTitle.length>1&&axisTitle[1].name){staticOptions.yAxis.push({labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat[1].format},min:yAxisMin,max:yAxisMax,opposite:true,title:{text:axisTitle[1].name},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]})}if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const alignBlockElement=event=>{const itemToMove=document.querySelector(`#wrapper-circle-chart-${event.target.renderTo.id} .pb-circle-chart-block`);const chartContainer=document.querySelector(`#${event.target.renderTo.id}`);if(itemToMove!==null&&chartContainer!==null){itemToMove.style.height=`${event.target.chartHeight}px`;itemToMove.style.width=`${event.target.chartWidth}px`;if(chartContainer.firstChild!==null){chartContainer.firstChild.before(itemToMove)}}};const CircleChart=({align:align="center",aria:aria={},rounded:rounded=false,borderColor:borderColor=(rounded?null:""),borderWidth:borderWidth=(rounded?20:null),chartData:chartData,children:children,className:className,colors:colors2=[],customOptions:customOptions={},dark:dark=false,data:data={},dataLabelHtml:dataLabelHtml="<div>{point.name}</div>",dataLabels:dataLabels=false,height:height,htmlOptions:htmlOptions={},id:id,innerSize:innerSize="md",legend:legend=false,maxPointSize:maxPointSize=null,minPointSize:minPointSize=null,startAngle:startAngle=null,style:style="pie",title:title,tooltipHtml:tooltipHtml,useHtml:useHtml=false,zMin:zMin=null,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{headerFormat:null,pointFormat:tooltipHtml?tooltipHtml:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',useHTML:useHtml}});const innerSizes={sm:"35%",md:"50%",lg:"85%",none:"0%"};const innerSizeFormat=size=>innerSizes[size];const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={title:{text:title},chart:{height:height,type:style,events:{render:event=>alignBlockElement(event),redraw:event=>alignBlockElement(event)}},legend:{align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},plotOptions:{pie:{colors:colors2.length>0?mapColors(colors2):highchartsTheme.colors,dataLabels:{enabled:dataLabels,connectorShape:"straight",connectorWidth:3,format:dataLabelHtml},showInLegend:legend}},series:[{minPointSize:minPointSize,maxPointSize:maxPointSize,innerSize:borderWidth==20?"100%":innerSizeFormat(innerSize),data:formattedChartData,zMin:zMin,startAngle:startAngle,borderWidth:borderWidth,borderColor:borderColor}],credits:false};setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(Fragment,{children:children?jsxs("div",{id:`wrapper-circle-chart-${id}`,children:[jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options}),jsx("div",{className:"pb-circle-chart-block",children:children})]}):jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})})};const Gauge=({aria:aria={},chartData:chartData,customOptions:customOptions={},dark:dark=false,data:data={},disableAnimation:disableAnimation=false,fullCircle:fullCircle=false,height:height=null,htmlOptions:htmlOptions={},id:id,max:max=100,min:min=0,prefix:prefix="",showLabels:showLabels=false,style:style="solidgauge",suffix:suffix="",title:title="",tooltipHtml:tooltipHtml='<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',colors:colors$1=[],minorTickInterval:minorTickInterval=null,circumference:circumference=(fullCircle?[0,360]:[-100,100]),...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);SolidGauge(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{pointFormat:tooltipHtml,followPointer:true}});const css=buildCss({pb_gauge_kit:true});const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={chart:{events:{load(){setTimeout(this.reflow.bind(this),0)}},type:style,height:height},title:{text:title},yAxis:{min:min,max:max,lineWidth:0,tickWidth:0,minorTickInterval:minorTickInterval,tickAmount:2,tickPositions:[min,max],labels:{y:26,enabled:showLabels}},credits:false,series:[{data:formattedChartData}],pane:{center:["50%","50%"],size:"90%",startAngle:circumference[0],endAngle:circumference[1],background:{borderWidth:20,innerRadius:"90%",outerRadius:"90%",shape:"arc",className:"gauge-pane"}},colors:colors$1!==void 0&&colors$1.length>0?mapColors(colors$1):highchartsTheme.colors,plotOptions:{series:{animation:!disableAnimation},solidgauge:{borderColor:colors$1!==void 0&&colors$1.length===1?mapColors(colors$1).join():highchartsTheme.colors[0],borderWidth:20,radius:90,innerRadius:"90%",dataLabels:{borderWidth:0,color:colors.text_lt_default,enabled:true,format:`<span class="prefix${dark?" dark":""}">${prefix}</span><span class="fix${dark?" dark":""}">{y:,f}</span><span class="suffix${dark?" dark":""}">${suffix}</span>`,style:{fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_2},y:-26}}}};setOptions(merge(staticOptions,customOptions));if(document.querySelector(".prefix")){document.querySelectorAll(".prefix").forEach((prefix2=>{prefix2.setAttribute("y","28")}));document.querySelectorAll(".fix").forEach((fix=>fix.setAttribute("y","38")))}}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(css,globalProps(props)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const LineGraph=({aria:aria={},data:data={},align:align="center",className:className="pb_bar_graph",customOptions:customOptions={},dark:dark=false,gradient:gradient=false,type:type="line",htmlOptions:htmlOptions={},id:id,legend:legend=false,toggleLegendClick:toggleLegendClick=true,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,axisTitle:axisTitle,xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,chartData:chartData,pointStart:pointStart,subTitle:subTitle,title:title,height:height,colors:colors2=[],...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:{min:yAxisMin,max:yAxisMax,title:{text:axisTitle}},xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{pointStart:pointStart,events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};export{BarGraph as B,CircleChart as C,Gauge as G,LineGraph as L};
         | 
| 1 | 
            +
            import{jsx,Fragment,jsxs}from"react/jsx-runtime";import{useState,useEffect}from"react";import{f as buildAriaProps,g as buildDataProps,h as buildHtmlProps,H as HighchartsReact,i as Highcharts,j as classnames,k as globalProps,l as HighchartsMore,S as SolidGauge,m as buildCss}from"./_typeahead-B1SiFvbF.js";import{c as colors,h as highchartsTheme,m as merge,a as highchartsDarkTheme,t as typography}from"./lib-CGxXTQ75.js";const mapColors=array=>{const regex=/(data)\-[1-8]/;const newArray=array.map((item=>regex.test(item)?`${colors[`data_${item[item.length-1]}`]}`:item));return newArray};const BarGraph=({aria:aria={},data:data={},align:align="center",axisTitle:axisTitle,dark:dark=false,chartData:chartData,className:className="pb_bar_graph",colors:colors2,htmlOptions:htmlOptions={},customOptions:customOptions={},axisFormat:axisFormat,id:id,pointStart:pointStart,stacking:stacking,subTitle:subTitle,type:type="column",title:title="Title",xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,legend:legend=false,toggleLegendClick:toggleLegendClick=true,height:height,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:[{labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat&&axisFormat[0]?axisFormat[0].format:""},min:yAxisMin,max:yAxisMax,opposite:false,title:{text:Array.isArray(axisTitle)?axisTitle.length>0?axisTitle[0].name:null:axisTitle},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]}],xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{stacking:stacking,pointStart:pointStart,borderWidth:stacking?0:"",events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(Array.isArray(axisTitle)&&axisTitle.length>1&&axisTitle[1].name){staticOptions.yAxis.push({labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat[1].format},min:yAxisMin,max:yAxisMax,opposite:true,title:{text:axisTitle[1].name},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]})}if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const alignBlockElement=event=>{const itemToMove=document.querySelector(`#wrapper-circle-chart-${event.target.renderTo.id} .pb-circle-chart-block`);const chartContainer=document.querySelector(`#${event.target.renderTo.id}`);if(itemToMove!==null&&chartContainer!==null){itemToMove.style.height=`${event.target.chartHeight}px`;itemToMove.style.width=`${event.target.chartWidth}px`;if(chartContainer.firstChild!==null){chartContainer.firstChild.before(itemToMove)}}};const CircleChart=({align:align="center",aria:aria={},rounded:rounded=false,borderColor:borderColor=(rounded?null:""),borderWidth:borderWidth=(rounded?20:null),chartData:chartData,children:children,className:className,colors:colors2=[],customOptions:customOptions={},dark:dark=false,data:data={},dataLabelHtml:dataLabelHtml="<div>{point.name}</div>",dataLabels:dataLabels=false,height:height,htmlOptions:htmlOptions={},id:id,innerSize:innerSize="md",legend:legend=false,maxPointSize:maxPointSize=null,minPointSize:minPointSize=null,startAngle:startAngle=null,style:style="pie",title:title,tooltipHtml:tooltipHtml,useHtml:useHtml=false,zMin:zMin=null,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{headerFormat:null,pointFormat:tooltipHtml?tooltipHtml:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',useHTML:useHtml}});const innerSizes={sm:"35%",md:"50%",lg:"85%",none:"0%"};const innerSizeFormat=size=>innerSizes[size];const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={title:{text:title},chart:{height:height,type:style,events:{render:event=>alignBlockElement(event),redraw:event=>alignBlockElement(event)}},legend:{align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},plotOptions:{pie:{colors:colors2.length>0?mapColors(colors2):highchartsTheme.colors,dataLabels:{enabled:dataLabels,connectorShape:"straight",connectorWidth:3,format:dataLabelHtml},showInLegend:legend}},series:[{minPointSize:minPointSize,maxPointSize:maxPointSize,innerSize:borderWidth==20?"100%":innerSizeFormat(innerSize),data:formattedChartData,zMin:zMin,startAngle:startAngle,borderWidth:borderWidth,borderColor:borderColor}],credits:false};setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(Fragment,{children:children?jsxs("div",{id:`wrapper-circle-chart-${id}`,children:[jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options}),jsx("div",{className:"pb-circle-chart-block",children:children})]}):jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})})};const Gauge=({aria:aria={},chartData:chartData,customOptions:customOptions={},dark:dark=false,data:data={},disableAnimation:disableAnimation=false,fullCircle:fullCircle=false,height:height=null,htmlOptions:htmlOptions={},id:id,max:max=100,min:min=0,prefix:prefix="",showLabels:showLabels=false,style:style="solidgauge",suffix:suffix="",title:title="",tooltipHtml:tooltipHtml='<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',colors:colors$1=[],minorTickInterval:minorTickInterval=null,circumference:circumference=(fullCircle?[0,360]:[-100,100]),...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);SolidGauge(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{pointFormat:tooltipHtml,followPointer:true}});const css=buildCss({pb_gauge_kit:true});const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={chart:{events:{load(){setTimeout(this.reflow.bind(this),0)}},type:style,height:height},title:{text:title},yAxis:{min:min,max:max,lineWidth:0,tickWidth:0,minorTickInterval:minorTickInterval,tickAmount:2,tickPositions:[min,max],labels:{y:26,enabled:showLabels}},credits:false,series:[{data:formattedChartData}],pane:{center:["50%","50%"],size:"90%",startAngle:circumference[0],endAngle:circumference[1],background:{borderWidth:20,innerRadius:"90%",outerRadius:"90%",shape:"arc",className:"gauge-pane"}},colors:colors$1!==void 0&&colors$1.length>0?mapColors(colors$1):highchartsTheme.colors,plotOptions:{series:{animation:!disableAnimation},solidgauge:{borderColor:colors$1!==void 0&&colors$1.length===1?mapColors(colors$1).join():highchartsTheme.colors[0],borderWidth:20,radius:90,innerRadius:"90%",dataLabels:{borderWidth:0,color:colors.text_lt_default,enabled:true,format:`<span class="prefix${dark?" dark":""}">${prefix}</span><span class="fix${dark?" dark":""}">{y:,f}</span><span class="suffix${dark?" dark":""}">${suffix}</span>`,style:{fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_2},y:-26}}}};setOptions(merge(staticOptions,customOptions));if(document.querySelector(".prefix")){document.querySelectorAll(".prefix").forEach((prefix2=>{prefix2.setAttribute("y","28")}));document.querySelectorAll(".fix").forEach((fix=>fix.setAttribute("y","38")))}}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(css,globalProps(props)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const LineGraph=({aria:aria={},data:data={},align:align="center",className:className="pb_bar_graph",customOptions:customOptions={},dark:dark=false,gradient:gradient=false,type:type="line",htmlOptions:htmlOptions={},id:id,legend:legend=false,toggleLegendClick:toggleLegendClick=true,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,axisTitle:axisTitle,xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,chartData:chartData,pointStart:pointStart,subTitle:subTitle,title:title,height:height,colors:colors2=[],...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:{min:yAxisMin,max:yAxisMax,title:{text:axisTitle}},xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{pointStart:pointStart,events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};export{BarGraph as B,CircleChart as C,Gauge as G,LineGraph as L};
         |