playbook_ui 15.0.0.pre.alpha.PLAY2468phonenuminputvalidation10790 → 15.0.0.pre.alpha.PLAY2473rowhighlightfix10510
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 +0 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +0 -12
- data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +13 -67
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +2 -2
- data/app/pb_kits/playbook/pb_card/_card.scss +4 -12
- data/app/pb_kits/playbook/pb_card/_card.tsx +3 -3
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +0 -10
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.html.erb +0 -3
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +0 -8
- data/app/pb_kits/playbook/pb_contact/_contact.tsx +0 -5
- data/app/pb_kits/playbook/pb_contact/contact.rb +0 -4
- data/app/pb_kits/playbook/pb_contact/contact.test.js +1 -21
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +1 -16
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +0 -15
- data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +0 -6
- data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +0 -6
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/pb_form_validation.js +4 -19
- data/app/pb_kits/playbook/pb_icon_button/_icon_button.tsx +0 -1
- data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -2
- data/app/pb_kits/playbook/pb_nav/_item.tsx +5 -19
- data/app/pb_kits/playbook/pb_nav/_nav.scss +0 -27
- data/app/pb_kits/playbook/pb_nav/_nav.test.js +0 -16
- data/app/pb_kits/playbook/pb_nav/_nav.tsx +0 -5
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_nav/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -6
- data/app/pb_kits/playbook/pb_nav/nav.rb +1 -6
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_confirmation.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +3 -3
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +2 -43
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +2 -2
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +5 -13
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.html.erb +0 -23
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.jsx +7 -45
- data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +1 -4
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +8 -24
- data/app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb +10 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +9 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +17 -3
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +15 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +2 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +2 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb +14 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +14 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.html.erb +4 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.jsx +4 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +6 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +7 -29
- data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +4 -69
- data/dist/chunks/{_line_graph-CspDMr9b.js → _line_graph-BBny-YYZ.js} +1 -1
- data/dist/chunks/{_typeahead-B_wpgm_J.js → _typeahead-CeyJ6-GF.js} +2 -2
- data/dist/chunks/{_weekday_stacked-CXzARuTy.js → _weekday_stacked-Dfq9Ls3V.js} +3 -3
- data/dist/chunks/{lib-QZuu1ltS.js → lib-BTs5acfO.js} +1 -1
- data/dist/chunks/pb_form_validation-CKkaQFX3.js +1 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +0 -6
- 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/engine.rb +1 -0
- data/lib/playbook/forms/builder/form_field_builder.rb +1 -28
- data/lib/playbook/kit_base.rb +2 -23
- data/lib/playbook/version.rb +1 -1
- metadata +27 -73
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.md +0 -5
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.html.erb +0 -6
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.jsx +0 -39
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.md +0 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.scss +0 -3
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +0 -62
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.html.erb +0 -31
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +0 -81
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.html.erb +0 -25
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +0 -40
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.md +0 -5
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.html.erb +0 -27
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +0 -39
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.md +0 -5
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.html.erb +0 -93
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +0 -131
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.md +0 -14
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.html.erb +0 -42
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +0 -58
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.html.erb +0 -24
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +0 -38
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.html.erb +0 -22
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +0 -33
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.html.erb +0 -118
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +0 -144
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +0 -60
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.html.erb +0 -24
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +0 -42
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.html.erb +0 -38
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +0 -52
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +0 -29
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +0 -11
- data/app/pb_kits/playbook/pb_pb_circle_chart/pbCircleChartTheme.ts +0 -88
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.html.erb +0 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +0 -28
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +0 -51
- data/app/pb_kits/playbook/pb_section_separator/section_separator.test.js +0 -165
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.md +0 -5
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.html.erb +0 -12
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.jsx +0 -25
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.html.erb +0 -4
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.jsx +0 -17
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.html.erb +0 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.jsx +0 -44
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.md +0 -5
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.html.erb +0 -16
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.jsx +0 -30
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.html.erb +0 -16
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.jsx +0 -30
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.html.erb +0 -26
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.jsx +0 -41
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.md +0 -1
- data/dist/chunks/componentRegistry-DzmmLR2x.js +0 -1
- data/dist/chunks/pb_form_validation-W63gNcnu.js +0 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f3ed0631c51b54669ffc7faa87720d44235290b760f64df26d8cad1af3e527d5
         | 
| 4 | 
            +
              data.tar.gz: 06da8419d842a780b2e5567affe683a5c28e227400a5231f82bdc6d920411186
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2ac52928a5ea5c597a37469b85f6509cbd26236e7e5195b9636d8409cfc7ad513d22ddb4a7889f47bf12d7d1fca748704fcd72007b89acef5e66a93cf4681db4
         | 
| 7 | 
            +
              data.tar.gz: faa7715595570f694456f0d9a19430c3ff0b7cbdf66ab1f63e8a843110541e1da10fb22149e004069bc82dd8a27a7469f279e9fd41957befdcca61d3f21b8038
         | 
| @@ -1,6 +1,5 @@ | |
| 1 1 |  | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 3 | 
             
            @import 'pb_advanced_table/advanced_table';
         | 
| 5 4 | 
             
            @import 'pb_avatar/avatar';
         | 
| 6 5 | 
             
            @import 'pb_background/background';
         | 
| @@ -110,7 +109,6 @@ | |
| 110 109 | 
             
            @import 'pb_weekday_stacked/weekday_stacked';
         | 
| 111 110 | 
             
            @import 'pb_empty_state/empty_state';
         | 
| 112 111 | 
             
            @import 'pb_pb_bar_graph/pb_bar_graph';
         | 
| 113 | 
            -
            @import 'pb_pb_circle_chart/pb_circle_chart';
         | 
| 114 112 | 
             
            @import 'utilities/mixins';
         | 
| 115 113 | 
             
            @import 'utilities/spacing';
         | 
| 116 114 | 
             
            @import 'utilities/cursor';
         | 
| @@ -30,7 +30,6 @@ const TableCellRenderer = ({ | |
| 30 30 | 
             
              columnPinning,
         | 
| 31 31 | 
             
              customRowStyle,
         | 
| 32 32 | 
             
              columnDefinitions,
         | 
| 33 | 
            -
              isMultiHeaderColumn = false,
         | 
| 34 33 | 
             
            }: {
         | 
| 35 34 | 
             
              row: Row<GenericObject>
         | 
| 36 35 | 
             
              collapsibleTrail?: boolean
         | 
| @@ -39,18 +38,12 @@ const TableCellRenderer = ({ | |
| 39 38 | 
             
              columnPinning: { left: string[] }
         | 
| 40 39 | 
             
              customRowStyle?: GenericObject
         | 
| 41 40 | 
             
              columnDefinitions?: {[key:string]:any}[]
         | 
| 42 | 
            -
              isMultiHeaderColumn?: boolean
         | 
| 43 41 | 
             
            }) => {
         | 
| 44 42 | 
             
              return (
         | 
| 45 43 | 
             
                <>
         | 
| 46 44 | 
             
                  {row.getVisibleCells().map((cell: Cell<GenericObject, unknown>, i: number) => {
         | 
| 47 45 | 
             
                    const isPinnedLeft = columnPinning.left.includes(cell.column.id);
         | 
| 48 | 
            -
                    // Add a border to the right of each group of columns for multi-header column tables
         | 
| 49 46 | 
             
                    const isLastCell = (() => {
         | 
| 50 | 
            -
                      if (!isMultiHeaderColumn) {
         | 
| 51 | 
            -
                        return false;
         | 
| 52 | 
            -
                      }
         | 
| 53 | 
            -
             | 
| 54 47 | 
             
                      const parent = cell.column.parent;
         | 
| 55 48 | 
             
                      if (!parent) {
         | 
| 56 49 | 
             
                        const last = row.getVisibleCells().at(-1);
         | 
| @@ -140,9 +133,6 @@ export const RegularTableView = ({ | |
| 140 133 |  | 
| 141 134 | 
             
              const columnPinning = table.getState().columnPinning || { left: [] };
         | 
| 142 135 | 
             
              const columnDefinitions = table.options.meta?.columnDefinitions || [];
         | 
| 143 | 
            -
              const isMultiHeaderColumn = columnDefinitions.some(
         | 
| 144 | 
            -
                (obj: Record<string, unknown>) => "columns" in obj
         | 
| 145 | 
            -
              );
         | 
| 146 136 |  | 
| 147 137 | 
             
              // Row pinning
         | 
| 148 138 | 
             
              function PinnedRow({ row }: { row: Row<any> }) {
         | 
| @@ -168,7 +158,6 @@ export const RegularTableView = ({ | |
| 168 158 | 
             
                        columnDefinitions={columnDefinitions}
         | 
| 169 159 | 
             
                        columnPinning={columnPinning}
         | 
| 170 160 | 
             
                        customRowStyle={customRowStyle}
         | 
| 171 | 
            -
                        isMultiHeaderColumn={isMultiHeaderColumn}
         | 
| 172 161 | 
             
                        loading={loading}
         | 
| 173 162 | 
             
                        row={row}
         | 
| 174 163 | 
             
                        stickyLeftColumn={stickyLeftColumn}
         | 
| @@ -232,7 +221,6 @@ export const RegularTableView = ({ | |
| 232 221 | 
             
                              columnDefinitions={columnDefinitions}
         | 
| 233 222 | 
             
                              columnPinning={columnPinning}
         | 
| 234 223 | 
             
                              customRowStyle={customRowStyle}
         | 
| 235 | 
            -
                              isMultiHeaderColumn={isMultiHeaderColumn}
         | 
| 236 224 | 
             
                              loading={loading}
         | 
| 237 225 | 
             
                              row={row}
         | 
| 238 226 | 
             
                              stickyLeftColumn={stickyLeftColumn}
         | 
| @@ -104,7 +104,7 @@ export const VirtualizedTableView = ({ | |
| 104 104 | 
             
                // Create debounced version of the width measurement function
         | 
| 105 105 | 
             
                const handleResize = debounce(() => {
         | 
| 106 106 | 
             
                  setColumnWidths(getHeaderCellWidths());
         | 
| 107 | 
            -
                },  | 
| 107 | 
            +
                }, 100);
         | 
| 108 108 |  | 
| 109 109 | 
             
                // Add the event listener
         | 
| 110 110 | 
             
                window.addEventListener('resize', handleResize);
         | 
| @@ -249,10 +249,8 @@ | |
| 249 249 | 
             
              }
         | 
| 250 250 |  | 
| 251 251 | 
             
              .pb_advanced_table_body {
         | 
| 252 | 
            -
                 | 
| 253 | 
            -
                   | 
| 254 | 
            -
                    border-right: 1px solid $border_light !important;
         | 
| 255 | 
            -
                  }
         | 
| 252 | 
            +
                .last-cell {
         | 
| 253 | 
            +
                  border-right: 1px solid $border_light !important;
         | 
| 256 254 | 
             
                }
         | 
| 257 255 | 
             
                tr td:first-child {
         | 
| 258 256 | 
             
                  padding-left: 8px !important;
         | 
| @@ -703,14 +701,6 @@ | |
| 703 701 | 
             
                      }
         | 
| 704 702 | 
             
                    }
         | 
| 705 703 | 
             
                  }
         | 
| 706 | 
            -
             | 
| 707 | 
            -
                  .pb_advanced_table_header {
         | 
| 708 | 
            -
                    > tr {
         | 
| 709 | 
            -
                      .last-header-cell:last-of-type {
         | 
| 710 | 
            -
                        border-right-width: 0 !important;
         | 
| 711 | 
            -
                      }
         | 
| 712 | 
            -
                    }
         | 
| 713 | 
            -
                  }
         | 
| 714 704 | 
             
                }
         | 
| 715 705 | 
             
              }
         | 
| 716 706 |  | 
| @@ -985,14 +975,14 @@ | |
| 985 975 | 
             
              // Firefox-specific fix for last-header-cell and last-cell vertical borders
         | 
| 986 976 | 
             
              @-moz-document url-prefix() {
         | 
| 987 977 | 
             
                .pb_advanced_table_header {
         | 
| 988 | 
            -
                  .last-header-cell | 
| 978 | 
            +
                  .last-header-cell {
         | 
| 989 979 | 
             
                    border-right: none !important;
         | 
| 990 980 | 
             
                    box-shadow: 1px 0 0 0 $border_light !important;
         | 
| 991 981 | 
             
                  }
         | 
| 992 982 | 
             
                }
         | 
| 993 983 |  | 
| 994 984 | 
             
                .pb_advanced_table_body {
         | 
| 995 | 
            -
                  .last-cell | 
| 985 | 
            +
                  .last-cell {
         | 
| 996 986 | 
             
                    border-right: none !important;
         | 
| 997 987 | 
             
                    box-shadow: 1px 0 0 0 $border_light !important;
         | 
| 998 988 | 
             
                  }
         | 
| @@ -1001,14 +991,14 @@ | |
| 1001 991 | 
             
                // Dark mode Firefox fixes
         | 
| 1002 992 | 
             
                &.dark {
         | 
| 1003 993 | 
             
                  .pb_advanced_table_header {
         | 
| 1004 | 
            -
                    .last-header-cell | 
| 994 | 
            +
                    .last-header-cell {
         | 
| 1005 995 | 
             
                      border-right: none !important;
         | 
| 1006 996 | 
             
                      box-shadow: 1px 0 0 0 $border_dark !important;
         | 
| 1007 997 | 
             
                    }
         | 
| 1008 998 | 
             
                  }
         | 
| 1009 999 |  | 
| 1010 1000 | 
             
                  .pb_advanced_table_body {
         | 
| 1011 | 
            -
                    .last-cell | 
| 1001 | 
            +
                    .last-cell {
         | 
| 1012 1002 | 
             
                      border-right: none !important;
         | 
| 1013 1003 | 
             
                      box-shadow: 1px 0 0 0 $border_dark !important;
         | 
| 1014 1004 | 
             
                    }
         | 
| @@ -1021,62 +1011,18 @@ | |
| 1021 1011 | 
             
            .pb-advanced-table-popover-option:hover {
         | 
| 1022 1012 | 
             
              background-color: $bg_light;
         | 
| 1023 1013 | 
             
            }
         | 
| 1024 | 
            -
             | 
| 1025 1014 | 
             
            // Removes borders when Wrapped inside the Card Kit
         | 
| 1026 | 
            -
            .pb_card_kit > .pb_advanced_table  | 
| 1027 | 
            -
             | 
| 1028 | 
            -
             | 
| 1029 | 
            -
             | 
| 1030 | 
            -
                box-shadow: none !important; // prevents double up of borders on Firefox when in Card Kit
         | 
| 1015 | 
            +
            .pb_card_kit > .pb_advanced_table .pb_advanced_table_body .last-cell,
         | 
| 1016 | 
            +
            .pb_card_kit > .pb_advanced_table .pb_advanced_table_header .last-header-cell,
         | 
| 1017 | 
            +
            .pb_card_kit > .pb_advanced_table .pb_advanced_table_body tr td:last-child,
         | 
| 1018 | 
            +
            .pb_card_kit > .pb_advanced_table .pb_advanced_table_header tr th:last-child {
         | 
| 1031 1019 | 
             
                border-right: none !important;
         | 
| 1032 | 
            -
              }
         | 
| 1033 | 
            -
             | 
| 1034 | 
            -
              // Without vertical border, remove all last-cell borders
         | 
| 1035 | 
            -
              // Specifically for header to prevent thicker borders in firefox.
         | 
| 1036 | 
            -
              .pb_table:not(.vertical-border) {
         | 
| 1037 | 
            -
                .pb_advanced_table_header .last-header-cell {
         | 
| 1038 | 
            -
                  box-shadow: none !important;
         | 
| 1039 | 
            -
                }
         | 
| 1040 | 
            -
              }
         | 
| 1041 | 
            -
              // Firefox fix
         | 
| 1042 | 
            -
              @-moz-document url-prefix() {
         | 
| 1043 | 
            -
                .pb_advanced_table_header {
         | 
| 1044 | 
            -
                  .last-header-cell {
         | 
| 1045 | 
            -
                    box-shadow: 1px 0 0 0 $border_light !important;
         | 
| 1046 | 
            -
                  }
         | 
| 1047 | 
            -
                }
         | 
| 1048 | 
            -
              }
         | 
| 1049 | 
            -
             | 
| 1050 | 
            -
              // For tables WITH vertical borders, only remove border from actual last column
         | 
| 1051 | 
            -
              .pb_table.vertical-border {
         | 
| 1052 | 
            -
                .pb_advanced_table_body .last-cell:not(:last-child),
         | 
| 1053 | 
            -
                .pb_advanced_table_header .last-header-cell:not(:last-child) {
         | 
| 1054 | 
            -
                  box-shadow: none !important;
         | 
| 1055 | 
            -
                  border-right: 1px solid $border_light !important;
         | 
| 1056 | 
            -
                }
         | 
| 1057 | 
            -
             | 
| 1058 | 
            -
                // Dark mode
         | 
| 1059 | 
            -
                &.dark {
         | 
| 1060 | 
            -
                  .pb_advanced_table_body .last-cell:not(:last-child),
         | 
| 1061 | 
            -
                  .pb_advanced_table_header .last-header-cell:not(:last-child) {
         | 
| 1062 | 
            -
                    border-right: 1px solid $border_dark !important;
         | 
| 1063 | 
            -
                  }
         | 
| 1064 | 
            -
                }
         | 
| 1065 | 
            -
              }
         | 
| 1066 | 
            -
             | 
| 1067 | 
            -
              // Support column group border colors
         | 
| 1068 | 
            -
              &.pb_advanced_table[class*="column-group-border-"] {
         | 
| 1069 | 
            -
                .pb_advanced_table_body .last-cell:not(:last-child),
         | 
| 1070 | 
            -
                .pb_advanced_table_header .last-header-cell:not(:last-child) {
         | 
| 1071 | 
            -
                  border-right: 1px solid var(--column-border-color) !important;
         | 
| 1072 | 
            -
                }
         | 
| 1073 | 
            -
              }
         | 
| 1074 1020 | 
             
            }
         | 
| 1075 1021 |  | 
| 1076 | 
            -
            // | 
| 1077 | 
            -
            .pb_card_kit > .pb_advanced_table tr:last-child,
         | 
| 1022 | 
            +
            //  Removes borders when Wrapped inside the Card Kit
         | 
| 1023 | 
            +
            .pb_card_kit > .pb_advanced_table tr:last-child, 
         | 
| 1078 1024 | 
             
            .pb_card_kit > .pb_advanced_table .last-row-cell {
         | 
| 1079 1025 | 
             
              td {
         | 
| 1080 | 
            -
                border-bottom: none !important;
         | 
| 1026 | 
            +
                border-bottom: none !important; 
         | 
| 1081 1027 | 
             
              }
         | 
| 1082 1028 | 
             
            }
         | 
| @@ -20,7 +20,7 @@ | |
| 20 20 | 
             
            // Dark mode
         | 
| 21 21 | 
             
            .pb_card_kit.dark {
         | 
| 22 22 | 
             
              @include pb_card_dark;
         | 
| 23 | 
            -
             | 
| 23 | 
            +
              
         | 
| 24 24 | 
             
              &.pb_card_kit_selected {
         | 
| 25 25 | 
             
                @include pb_card_selected_dark;
         | 
| 26 26 | 
             
              }
         | 
| @@ -33,8 +33,7 @@ | |
| 33 33 |  | 
| 34 34 | 
             
            // Highlight styles
         | 
| 35 35 | 
             
            .pb_card_kit_highlight_top,
         | 
| 36 | 
            -
            .pb_card_kit_highlight_side | 
| 37 | 
            -
            .pb_card_kit_highlight_right_side {
         | 
| 36 | 
            +
            .pb_card_kit_highlight_side {
         | 
| 38 37 | 
             
              overflow: hidden;
         | 
| 39 38 | 
             
            }
         | 
| 40 39 |  | 
| @@ -53,20 +52,13 @@ | |
| 53 52 | 
             
              }
         | 
| 54 53 | 
             
            }
         | 
| 55 54 |  | 
| 56 | 
            -
            // Highlight side variants
         | 
| 55 | 
            +
            // Highlight side variants  
         | 
| 57 56 | 
             
            @each $color_name, $color_value in $pb_card_highlight_colors {
         | 
| 58 57 | 
             
              .pb_card_kit_highlight_side.pb_card_kit_highlight_#{$color_name}::before {
         | 
| 59 58 | 
             
                @include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
         | 
| 60 59 | 
             
              }
         | 
| 61 60 | 
             
            }
         | 
| 62 61 |  | 
| 63 | 
            -
            // Highlight side right variants
         | 
| 64 | 
            -
            @each $color_name, $color_value in $pb_card_highlight_colors {
         | 
| 65 | 
            -
              .pb_card_kit_highlight_right_side.pb_card_kit_highlight_#{$color_name}::before {
         | 
| 66 | 
            -
                @include pb_card_right_highlight($pb_card_highlight_size, 100%, $color_value);
         | 
| 67 | 
            -
              }
         | 
| 68 | 
            -
            }
         | 
| 69 | 
            -
             | 
| 70 62 | 
             
            // Card Header
         | 
| 71 63 | 
             
            .pb_card_header_kit {
         | 
| 72 64 | 
             
              flex-grow: 0;
         | 
| @@ -76,7 +68,7 @@ | |
| 76 68 | 
             
              padding: $space_sm;
         | 
| 77 69 | 
             
              border: 0;
         | 
| 78 70 | 
             
              border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
         | 
| 79 | 
            -
             | 
| 71 | 
            +
              
         | 
| 80 72 | 
             
              // Inherit border radius from parent card
         | 
| 81 73 | 
             
              .pb_card_kit_border_radius_xs & {
         | 
| 82 74 | 
             
                border-radius: $border_radius_xs $border_radius_xs 0px 0px;
         | 
| @@ -26,7 +26,7 @@ type CardPropTypes = { | |
| 26 26 | 
             
              dragHandle?: boolean,
         | 
| 27 27 | 
             
              htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
         | 
| 28 28 | 
             
              highlight?: {
         | 
| 29 | 
            -
                position?: "side" | " | 
| 29 | 
            +
                position?: "side" | "top",
         | 
| 30 30 | 
             
                color?: string,
         | 
| 31 31 | 
             
              },
         | 
| 32 32 | 
             
              id?: string,
         | 
| @@ -56,7 +56,7 @@ const Header = (props: CardHeaderProps) => { | |
| 56 56 | 
             
              const { children, className, headerColor = 'category_1', headerColorStriped = false } = props
         | 
| 57 57 | 
             
              const headerColorCSS = `pb_card_header_kit_${headerColor}`
         | 
| 58 58 | 
             
              const headerStripedCSS = headerColorStriped ? `pb_card_header_kit_${headerColor}_striped` : ''
         | 
| 59 | 
            -
             | 
| 59 | 
            +
              
         | 
| 60 60 | 
             
              const headerCSS = classnames(
         | 
| 61 61 | 
             
                'pb_card_header_kit',
         | 
| 62 62 | 
             
                headerColorCSS,
         | 
| @@ -108,7 +108,7 @@ const Card = (props: CardPropTypes): React.ReactElement => { | |
| 108 108 | 
             
              const borderRadiusCSS = borderRadius !== 'md' ? `pb_card_kit_border_radius_${borderRadius}` : ''
         | 
| 109 109 | 
             
              const highlightPositionCSS = highlight.position ? `pb_card_kit_highlight_${highlight.position}` : ''
         | 
| 110 110 | 
             
              const highlightColorCSS = highlight.color ? `pb_card_kit_highlight_${highlight.color}` : ''
         | 
| 111 | 
            -
             | 
| 111 | 
            +
              
         | 
| 112 112 | 
             
              const cardCss = classnames(
         | 
| 113 113 | 
             
                'pb_card_kit', // Base class
         | 
| 114 114 | 
             
                selectedCSS,
         | 
| @@ -87,16 +87,6 @@ $pb_card_header_colors: map-merge(map-merge(map-merge($product_colors, $addition | |
| 87 87 | 
             
              background: $background;
         | 
| 88 88 | 
             
            }
         | 
| 89 89 |  | 
| 90 | 
            -
            @mixin pb_card_right_highlight($width, $height, $background){
         | 
| 91 | 
            -
              content: "";
         | 
| 92 | 
            -
              position: absolute;
         | 
| 93 | 
            -
              top: 0;
         | 
| 94 | 
            -
              right: 0;
         | 
| 95 | 
            -
              width: $width;
         | 
| 96 | 
            -
              height: $height;
         | 
| 97 | 
            -
              background: $background;
         | 
| 98 | 
            -
            }
         | 
| 99 | 
            -
             | 
| 100 90 | 
             
            @mixin pb_card_header_color($header_color) {
         | 
| 101 91 | 
             
              background: $header_color;
         | 
| 102 92 | 
             
            }
         | 
| @@ -4,9 +4,6 @@ | |
| 4 4 | 
             
            <%= pb_rails("card", props: {highlight: {position: "top", color:"warning"}, margin_bottom: "sm"}) do %>
         | 
| 5 5 | 
             
              Top Position & Warning Color
         | 
| 6 6 | 
             
            <% end %>
         | 
| 7 | 
            -
            <%= pb_rails("card", props: {highlight: {position: "right_side", color:"product_5_highlight"}, margin_bottom: "sm"}) do %>
         | 
| 8 | 
            -
              Right Side Position & Product 5 Highlight Color
         | 
| 9 | 
            -
            <% end %>
         | 
| 10 7 | 
             
            <%= pb_rails("card", props: {highlight: {position: "side", color:"category_2"}, margin_bottom: "sm"}) do %>
         | 
| 11 8 | 
             
              Side Position & Category 2 Color
         | 
| 12 9 | 
             
            <% end %>
         | 
| @@ -21,14 +21,6 @@ const CardHighlight = (props) => { | |
| 21 21 | 
             
                    {'Top Position & Warning Color'}
         | 
| 22 22 | 
             
                  </Card>
         | 
| 23 23 |  | 
| 24 | 
            -
                  <Card
         | 
| 25 | 
            -
                      {...props}
         | 
| 26 | 
            -
                      highlight={{ position: 'right_side', color: 'product_5_highlight' }}
         | 
| 27 | 
            -
                      marginBottom="sm"
         | 
| 28 | 
            -
                  >
         | 
| 29 | 
            -
                    {'Right Side Position & Product 5 Highlight Color'}
         | 
| 30 | 
            -
                  </Card>
         | 
| 31 | 
            -
             | 
| 32 24 | 
             
                  <Card
         | 
| 33 25 | 
             
                      {...props}
         | 
| 34 26 | 
             
                      highlight={{ position: 'side', color: 'category_2' }}
         | 
| @@ -17,7 +17,6 @@ const contactTypeMap: { [key: string]: string } = { | |
| 17 17 | 
             
              'work': 'phone-office',
         | 
| 18 18 | 
             
              'work-cell': 'phone-laptop',
         | 
| 19 19 | 
             
              'wrong-phone': 'phone-slash',
         | 
| 20 | 
            -
              'international': 'globe',
         | 
| 21 20 | 
             
            }
         | 
| 22 21 |  | 
| 23 22 | 
             
            const envelopeIcon = getAllIcons()["envelope"].icon as unknown as { [key: string]: SVGElement }
         | 
| @@ -25,10 +24,6 @@ const envelopeIcon = getAllIcons()["envelope"].icon as unknown as { [key: string | |
| 25 24 | 
             
            const formatContact = (contactString: string, contactType: string) => {
         | 
| 26 25 | 
             
              if (contactType === 'email') return contactString
         | 
| 27 26 |  | 
| 28 | 
            -
              // International phone numbers are unformatted
         | 
| 29 | 
            -
              if (contactType === 'international') return contactString
         | 
| 30 | 
            -
              
         | 
| 31 | 
            -
              // Format US numbers
         | 
| 32 27 | 
             
              const cleaned = contactString.replace(/\D/g, '')
         | 
| 33 28 | 
             
              const phoneNumber = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/)
         | 
| 34 29 |  | 
| @@ -29,8 +29,6 @@ module Playbook | |
| 29 29 | 
             
                      "phone-slash"
         | 
| 30 30 | 
             
                    when "extension"
         | 
| 31 31 | 
             
                      "phone-plus"
         | 
| 32 | 
            -
                    when "international"
         | 
| 33 | 
            -
                      "globe"
         | 
| 34 32 | 
             
                    else # "unknown" || "other"
         | 
| 35 33 | 
             
                      "phone"
         | 
| 36 34 | 
             
                    end
         | 
| @@ -41,8 +39,6 @@ module Playbook | |
| 41 39 | 
             
                      contact_value
         | 
| 42 40 | 
             
                    elsif contact_type == "extension" && contact_value.match(/^\d{4}$/)
         | 
| 43 41 | 
             
                      contact_value
         | 
| 44 | 
            -
                    elsif contact_type == "international"
         | 
| 45 | 
            -
                      contact_value
         | 
| 46 42 | 
             
                    else
         | 
| 47 43 | 
             
                      number_to_phone(formatted_value, area_code: true)
         | 
| 48 44 | 
             
                    end
         | 
| @@ -66,12 +66,6 @@ test('returns correct icon', () => { | |
| 66 66 | 
             
                      contactValue="1234"
         | 
| 67 67 | 
             
                      data={{ testid: 'test-extension' }}
         | 
| 68 68 | 
             
                  />
         | 
| 69 | 
            -
                  <Contact
         | 
| 70 | 
            -
                      contactDetail="International"
         | 
| 71 | 
            -
                      contactType="international"
         | 
| 72 | 
            -
                      contactValue="+44 20 7946 0958"
         | 
| 73 | 
            -
                      data={{ testid: 'test-international' }}
         | 
| 74 | 
            -
                  />
         | 
| 75 69 | 
             
                  <Contact
         | 
| 76 70 | 
             
                      contactDetail=""
         | 
| 77 71 | 
             
                      contactType=""
         | 
| @@ -89,11 +83,10 @@ test('returns correct icon', () => { | |
| 89 83 | 
             
              expect(screen.getByTestId('test-wrong-phone').querySelector('.pb_custom_icon')).toBeInTheDocument()
         | 
| 90 84 | 
             
              expect(screen.getByTestId('test-wrong-type').querySelector('.pb_custom_icon')).toBeInTheDocument()
         | 
| 91 85 | 
             
              expect(screen.getByTestId('test-extension').querySelector('.pb_custom_icon')).toBeInTheDocument()
         | 
| 92 | 
            -
              expect(screen.getByTestId('test-international').querySelector('.pb_custom_icon')).toBeInTheDocument()
         | 
| 93 86 | 
             
              expect(screen.getByTestId('test-empty').querySelector('.pb_custom_icon')).toBeInTheDocument()
         | 
| 94 87 | 
             
            })
         | 
| 95 88 |  | 
| 96 | 
            -
            test("not compliant values return null in  | 
| 89 | 
            +
            test("not compliant values return null in phone related contact types", () => {
         | 
| 97 90 | 
             
              const notCompliantValues = [
         | 
| 98 91 | 
             
                "349-185-998223",
         | 
| 99 92 | 
             
                "349-1858",
         | 
| @@ -136,16 +129,3 @@ test("not compliant values return null in US phone related contact types", () => | |
| 136 129 | 
             
                )
         | 
| 137 130 | 
             
              })
         | 
| 138 131 | 
             
            })
         | 
| 139 | 
            -
             | 
| 140 | 
            -
            test('international contact type preserves original format', () => {
         | 
| 141 | 
            -
              render(
         | 
| 142 | 
            -
                <Contact
         | 
| 143 | 
            -
                    contactType="international"
         | 
| 144 | 
            -
                    contactValue="+44 20 7946 0958"
         | 
| 145 | 
            -
                    data={{ testid: 'test-international-format' }}
         | 
| 146 | 
            -
                />
         | 
| 147 | 
            -
              )
         | 
| 148 | 
            -
             | 
| 149 | 
            -
              const kit = screen.getByTestId('test-international-format')
         | 
| 150 | 
            -
              expect(kit).toHaveTextContent('+44 20 7946 0958')
         | 
| 151 | 
            -
            })
         | 
| @@ -13,7 +13,7 @@ | |
| 13 13 | 
             
            }) %>
         | 
| 14 14 |  | 
| 15 15 | 
             
            <%= pb_rails("contact", props: {
         | 
| 16 | 
            -
              contact_type: " | 
| 16 | 
            +
              contact_type: "wrong number",
         | 
| 17 17 | 
             
              contact_value: "3245627482",
         | 
| 18 18 | 
             
            }) %>
         | 
| 19 19 |  | 
| @@ -21,18 +21,3 @@ | |
| 21 21 | 
             
              contact_type: "work-cell",
         | 
| 22 22 | 
             
              contact_value: "349-185-9988",
         | 
| 23 23 | 
             
            }) %>
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            <%= pb_rails("contact", props: {
         | 
| 26 | 
            -
              contact_type: "wrong-phone",
         | 
| 27 | 
            -
              contact_value: "2124396666",
         | 
| 28 | 
            -
            }) %>
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            <%= pb_rails("contact", props: {
         | 
| 31 | 
            -
              contact_type: "extension",
         | 
| 32 | 
            -
              contact_value: "1233",
         | 
| 33 | 
            -
            }) %>
         | 
| 34 | 
            -
             | 
| 35 | 
            -
            <%= pb_rails("contact", props: {
         | 
| 36 | 
            -
              contact_type: "international",
         | 
| 37 | 
            -
              contact_value: "+44 7700 900461",
         | 
| 38 | 
            -
            }) %>
         | 
| @@ -28,21 +28,6 @@ const ContactDefault = (props) => { | |
| 28 28 | 
             
                      contactValue="3245627482"
         | 
| 29 29 | 
             
                      {...props}
         | 
| 30 30 | 
             
                  />
         | 
| 31 | 
            -
                  <Contact
         | 
| 32 | 
            -
                      contactType="wrong-phone"
         | 
| 33 | 
            -
                      contactValue="2124396666"
         | 
| 34 | 
            -
                      {...props}
         | 
| 35 | 
            -
                  />
         | 
| 36 | 
            -
                  <Contact
         | 
| 37 | 
            -
                      contactType='extension'
         | 
| 38 | 
            -
                      contactValue="1234"
         | 
| 39 | 
            -
                      {...props}
         | 
| 40 | 
            -
                  />
         | 
| 41 | 
            -
                  <Contact
         | 
| 42 | 
            -
                      contactType="international"
         | 
| 43 | 
            -
                      contactValue="+44 7700 900461"
         | 
| 44 | 
            -
                      {...props}
         | 
| 45 | 
            -
                  />
         | 
| 46 31 | 
             
                </div>
         | 
| 47 32 | 
             
              )
         | 
| 48 33 | 
             
            }
         | 
| @@ -90,7 +90,7 @@ | |
| 90 90 | 
             
            <%= pb_form_with(scope: :example, method: :get, url: "", validate: true) do |form| %>
         | 
| 91 91 | 
             
              <%= form.typeahead :example_typeahead_validation, props: { data: { typeahead_example2: true, user: {} }, label: true, placeholder: "Search for a user", required: true, validation: { message: "Please select a user." } } %>
         | 
| 92 92 | 
             
              <%= form.text_field :example_text_field_validation, props: { label: true, required: true } %>
         | 
| 93 | 
            -
              <%= form.phone_number_field :example_phone_number_field_validation, props: { label: "Example phone field", hidden_inputs: true | 
| 93 | 
            +
              <%= form.phone_number_field :example_phone_number_field_validation, props: { label: "Example phone field", hidden_inputs: true } %>
         | 
| 94 94 | 
             
              <%= form.email_field :example_email_field_validation, props: { label: true, required: true } %>
         | 
| 95 95 | 
             
              <%= form.number_field :example_number_field_validation, props: { label: true, required: true } %>
         | 
| 96 96 | 
             
              <%= form.search_field :example_project_number_validation, props: { label: true, required: true, validation: { pattern: "[0-9]{2}-[0-9]{5}", message: "Please enter a valid project number (example: 33-12345)." } } %>
         | 
| @@ -2,13 +2,12 @@ import PbEnhancedElement from '../pb_enhanced_element' | |
| 2 2 | 
             
            import { debounce } from '../utilities/object'
         | 
| 3 3 |  | 
| 4 4 | 
             
            // Kit selectors
         | 
| 5 | 
            -
            const KIT_SELECTOR | 
| 6 | 
            -
            const ERROR_MESSAGE_SELECTOR | 
| 5 | 
            +
            const KIT_SELECTOR             = '[class^="pb_"][class*="_kit"]'
         | 
| 6 | 
            +
            const ERROR_MESSAGE_SELECTOR   = '.pb_body_kit_negative'
         | 
| 7 7 |  | 
| 8 8 | 
             
            // Validation selectors
         | 
| 9 | 
            -
            const FORM_SELECTOR | 
| 10 | 
            -
            const REQUIRED_FIELDS_SELECTOR | 
| 11 | 
            -
            const PHONE_NUMBER_VALIDATION_ERROR_SELECTOR = '[data-pb-phone-validation-error="true"]'
         | 
| 9 | 
            +
            const FORM_SELECTOR            = 'form[data-pb-form-validation="true"]'
         | 
| 10 | 
            +
            const REQUIRED_FIELDS_SELECTOR = 'input[required],textarea[required],select[required]'
         | 
| 12 11 |  | 
| 13 12 | 
             
            const FIELD_EVENTS = [
         | 
| 14 13 | 
             
              'change',
         | 
| @@ -29,14 +28,6 @@ class PbFormValidation extends PbEnhancedElement { | |
| 29 28 | 
             
                    }, 250), false)
         | 
| 30 29 | 
             
                  })
         | 
| 31 30 | 
             
                })
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                // Add event listener to check for phone number validation errors
         | 
| 34 | 
            -
                this.element.addEventListener('submit', (event) => {
         | 
| 35 | 
            -
                  if (this.hasPhoneNumberValidationErrors()) {
         | 
| 36 | 
            -
                    event.preventDefault()
         | 
| 37 | 
            -
                    return false
         | 
| 38 | 
            -
                  }
         | 
| 39 | 
            -
                })
         | 
| 40 31 | 
             
              }
         | 
| 41 32 |  | 
| 42 33 | 
             
              validateFormField(event) {
         | 
| @@ -77,12 +68,6 @@ class PbFormValidation extends PbEnhancedElement { | |
| 77 68 | 
             
                if (errorMessageContainer) errorMessageContainer.remove()
         | 
| 78 69 | 
             
              }
         | 
| 79 70 |  | 
| 80 | 
            -
              // Check if there are phone number input errors
         | 
| 81 | 
            -
              hasPhoneNumberValidationErrors() {
         | 
| 82 | 
            -
                const phoneNumberErrors = this.element.querySelectorAll(PHONE_NUMBER_VALIDATION_ERROR_SELECTOR)
         | 
| 83 | 
            -
                return phoneNumberErrors.length > 0
         | 
| 84 | 
            -
              }
         | 
| 85 | 
            -
             | 
| 86 71 | 
             
              get errorMessageContainer() {
         | 
| 87 72 | 
             
                const errorContainer = document.createElement('div')
         | 
| 88 73 | 
             
                const kitClassName = ERROR_MESSAGE_SELECTOR.replace(/\./, '')
         | 
| @@ -140,8 +140,7 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing); | |
| 140 140 | 
             
              delete filteredProps?.marginLeft;
         | 
| 141 141 |  | 
| 142 142 |  | 
| 143 | 
            -
              const  | 
| 144 | 
            -
              const Tag = isLink ? "a" : "div"
         | 
| 143 | 
            +
              const Tag = link ? "a" : "div";
         | 
| 145 144 | 
             
              const activeClass = active === true ? "active" : "";
         | 
| 146 145 | 
             
              const highlightedBorderClass = active === true && highlighted_border === false ? "highlighted_border_none" : "";
         | 
| 147 146 | 
             
              const collapsibleTrailClass = collapsible && collapsibleTrail ? "collapsible_trail" : "";
         | 
| @@ -201,13 +200,6 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing); | |
| 201 200 |  | 
| 202 201 | 
             
              const collapsibleClasses = buildCss("collapsible_nav_wrapper", activeClass, highlightedBorderClass, collapsibleTrailClass)
         | 
| 203 202 |  | 
| 204 | 
            -
              const handleKeyDown = (e: React.KeyboardEvent) => {
         | 
| 205 | 
            -
                if (!isLink && (e.key === "Enter" || e.key === " ")) {
         | 
| 206 | 
            -
                  e.preventDefault()
         | 
| 207 | 
            -
                  onClick?.()
         | 
| 208 | 
            -
                }
         | 
| 209 | 
            -
              }
         | 
| 210 | 
            -
             | 
| 211 203 | 
             
              return (
         | 
| 212 204 | 
             
                <>
         | 
| 213 205 | 
             
                  {collapsible ? (
         | 
| @@ -230,18 +222,15 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing); | |
| 230 222 | 
             
                              {...dataProps}
         | 
| 231 223 | 
             
                              {...htmlProps}
         | 
| 232 224 | 
             
                              className={classes}
         | 
| 233 | 
            -
                              href={ | 
| 225 | 
            +
                              href={link}
         | 
| 234 226 | 
             
                              id={id}
         | 
| 235 | 
            -
                               | 
| 236 | 
            -
                              tabIndex={!isLink ? 0 : undefined}
         | 
| 237 | 
            -
                              target={isLink ? target : undefined}
         | 
| 227 | 
            +
                              target={target}
         | 
| 238 228 | 
             
                          >
         | 
| 239 229 | 
             
                            {imageUrl && (
         | 
| 240 230 | 
             
                              <div
         | 
| 241 231 | 
             
                                  className="pb_nav_list_item_icon_section_collapsible"
         | 
| 242 232 | 
             
                                  key={imageUrl}
         | 
| 243 233 | 
             
                                  onClick={(e) => handleIconClick(e)}
         | 
| 244 | 
            -
                                  onKeyDown={!isLink ? handleKeyDown : undefined}
         | 
| 245 234 | 
             
                              >
         | 
| 246 235 | 
             
                                <Image className="pb_nav_img_wrapper"
         | 
| 247 236 | 
             
                                    url={imageUrl}
         | 
| @@ -276,13 +265,10 @@ const { filteredPadding, filteredMargin } = filterItemSpacing(itemSpacing); | |
| 276 265 | 
             
                        {...dataProps}
         | 
| 277 266 | 
             
                        {...htmlProps}
         | 
| 278 267 | 
             
                        className={classes}
         | 
| 279 | 
            -
                        href={ | 
| 268 | 
            +
                        href={link}
         | 
| 280 269 | 
             
                        id={id}
         | 
| 281 270 | 
             
                        onClick={onClick}
         | 
| 282 | 
            -
                         | 
| 283 | 
            -
                        role={!isLink ? "button" : undefined}
         | 
| 284 | 
            -
                        tabIndex={!isLink ? 0 : undefined}
         | 
| 285 | 
            -
                        target={isLink ? target : undefined}
         | 
| 271 | 
            +
                        target={target}
         | 
| 286 272 | 
             
                    >
         | 
| 287 273 | 
             
                      {imageUrl && (
         | 
| 288 274 | 
             
                        <div className="pb_nav_list_item_icon_section"
         |