primer_view_components 0.5.0 → 0.6.0
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/CHANGELOG.md +66 -0
 - data/app/assets/javascripts/app/components/primer/alpha/action_menu/action_menu_element.d.ts +3 -2
 - data/app/assets/javascripts/app/components/primer/alpha/x_banner.d.ts +3 -1
 - data/app/assets/javascripts/primer_view_components.js +1 -1
 - data/app/assets/javascripts/primer_view_components.js.map +1 -1
 - data/app/assets/styles/primer_view_components.css +1 -1
 - data/app/assets/styles/primer_view_components.css.map +1 -1
 - data/app/components/primer/alpha/action_list/item.rb +17 -6
 - data/app/components/primer/alpha/action_list.css +1 -1
 - data/app/components/primer/alpha/action_list.css.json +2 -0
 - data/app/components/primer/alpha/action_list.css.map +1 -1
 - data/app/components/primer/alpha/action_list.pcss +4 -2
 - data/app/components/primer/alpha/action_list.rb +61 -6
 - data/app/components/primer/alpha/action_menu/action_menu_element.d.ts +3 -2
 - data/app/components/primer/alpha/action_menu/action_menu_element.js +9 -2
 - data/app/components/primer/alpha/action_menu/action_menu_element.ts +10 -5
 - data/app/components/primer/alpha/action_menu/list.rb +63 -34
 - data/app/components/primer/alpha/action_menu.rb +12 -0
 - data/app/components/primer/alpha/banner.html.erb +1 -1
 - data/app/components/primer/alpha/banner.rb +13 -9
 - data/app/components/primer/alpha/dialog.css +1 -1
 - data/app/components/primer/alpha/dialog.css.map +1 -1
 - data/app/components/primer/alpha/dialog.pcss +2 -1
 - data/app/components/primer/alpha/modal_dialog.js +1 -1
 - data/app/components/primer/alpha/modal_dialog.ts +1 -1
 - data/app/components/primer/alpha/nav_list/group.rb +12 -3
 - data/app/components/primer/alpha/nav_list.rb +80 -16
 - data/app/components/primer/alpha/tool_tip.js +3 -3
 - data/app/components/primer/alpha/tool_tip.ts +3 -3
 - data/app/components/primer/alpha/x_banner.d.ts +3 -1
 - data/app/components/primer/alpha/x_banner.js +24 -10
 - data/app/components/primer/alpha/x_banner.ts +14 -12
 - data/app/components/primer/base_component.rb +1 -1
 - data/app/components/primer/beta/avatar.rb +1 -1
 - data/app/components/primer/beta/button.css +1 -1
 - data/app/components/primer/beta/button.css.map +1 -1
 - data/app/components/primer/beta/button.pcss +1 -1
 - data/app/components/primer/beta/counter.css +1 -1
 - data/app/components/primer/beta/counter.css.map +1 -1
 - data/app/components/primer/beta/counter.pcss +1 -1
 - data/app/components/primer/beta/state.css +1 -1
 - data/app/components/primer/beta/state.css.map +1 -1
 - data/app/components/primer/beta/state.pcss +3 -3
 - data/app/forms/submit_button_form.rb +1 -1
 - data/lib/primer/classify/utilities.yml +2 -0
 - data/lib/primer/forms/button.rb +0 -5
 - data/lib/primer/forms/dsl/input.rb +2 -0
 - data/lib/primer/view_components/version.rb +1 -1
 - data/lib/primer/yard/lookbook_pages_backend.rb +31 -0
 - data/lib/tasks/custom_utilities.yml +2 -0
 - data/previews/primer/alpha/action_list_preview.rb +89 -17
 - data/previews/primer/alpha/action_menu_preview.rb +79 -37
 - data/previews/primer/alpha/banner_preview/with_action_button.html.erb +1 -1
 - data/previews/primer/alpha/banner_preview/with_action_content.html.erb +1 -1
 - data/previews/primer/alpha/banner_preview.rb +11 -14
 - data/previews/primer/alpha/nav_list_preview.rb +17 -0
 - data/static/arguments.json +6 -12
 - data/static/constants.json +6 -0
 - data/static/info_arch.json +371 -22
 - data/static/previews.json +15 -2
 - metadata +2 -2
 
| 
         @@ -36,20 +36,31 @@ module Primer 
     | 
|
| 
       36 
36 
     | 
    
         
             
                    #
         
     | 
| 
       37 
37 
     | 
    
         
             
                    # To render an icon, call the `with_leading_visual_icon` method, which accepts the arguments accepted by <%= link_to_component(Primer::Beta::Octicon) %>.
         
     | 
| 
       38 
38 
     | 
    
         
             
                    #
         
     | 
| 
       39 
     | 
    
         
            -
                    # To render an avatar, call the `with_leading_visual_avatar` method, which accepts the arguments accepted by <%= link_to_component(Primer::Beta::Avatar) %>.
         
     | 
| 
       40 
     | 
    
         
            -
                    #
         
     | 
| 
       41 
39 
     | 
    
         
             
                    # To render an SVG, call the `with_leading_visual_svg` method.
         
     | 
| 
       42 
40 
     | 
    
         
             
                    #
         
     | 
| 
       43 
41 
     | 
    
         
             
                    # To render custom content, call the `with_leading_visual_content` method and pass a block that returns a string.
         
     | 
| 
       44 
42 
     | 
    
         
             
                    renders_one :leading_visual, types: {
         
     | 
| 
       45 
     | 
    
         
            -
                      icon:  
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
                      icon: lambda { |**system_arguments, &block|
         
     | 
| 
      
 44 
     | 
    
         
            +
                        deny_aria_key(
         
     | 
| 
      
 45 
     | 
    
         
            +
                          :label,
         
     | 
| 
      
 46 
     | 
    
         
            +
                          "Avoid using `aria-label` on leading visual icons, as they are purely decorative.",
         
     | 
| 
      
 47 
     | 
    
         
            +
                          **system_arguments
         
     | 
| 
      
 48 
     | 
    
         
            +
                        )
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                        Primer::Beta::Octicon.new(**system_arguments, &block)
         
     | 
| 
      
 51 
     | 
    
         
            +
                      },
         
     | 
| 
      
 52 
     | 
    
         
            +
                      avatar: lambda { |*|
         
     | 
| 
      
 53 
     | 
    
         
            +
                        return unless should_raise_error?
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                        raise "Leading visual avatars are no longer supported. Please use the #with_avatar_item slot instead."
         
     | 
| 
      
 56 
     | 
    
         
            +
                      },
         
     | 
| 
       47 
57 
     | 
    
         
             
                      svg: lambda { |**system_arguments|
         
     | 
| 
       48 
58 
     | 
    
         
             
                        Primer::BaseComponent.new(tag: :svg, width: "16", height: "16", **system_arguments)
         
     | 
| 
       49 
59 
     | 
    
         
             
                      },
         
     | 
| 
       50 
60 
     | 
    
         
             
                      content: lambda { |**system_arguments|
         
     | 
| 
       51 
61 
     | 
    
         
             
                        Primer::BaseComponent.new(tag: :span, **system_arguments)
         
     | 
| 
       52 
     | 
    
         
            -
                      }
         
     | 
| 
      
 62 
     | 
    
         
            +
                      },
         
     | 
| 
      
 63 
     | 
    
         
            +
                      raw_content: nil
         
     | 
| 
       53 
64 
     | 
    
         
             
                    }
         
     | 
| 
       54 
65 
     | 
    
         | 
| 
       55 
66 
     | 
    
         
             
                    # Used internally.
         
     | 
| 
         @@ -142,7 +153,7 @@ module Primer 
     | 
|
| 
       142 
153 
     | 
    
         
             
                    # @param size [Symbol] Controls block sizing of the item.
         
     | 
| 
       143 
154 
     | 
    
         
             
                    # @param scheme [Symbol] Controls color/style based on behavior.
         
     | 
| 
       144 
155 
     | 
    
         
             
                    # @param disabled [Boolean] Disabled items are not clickable and visually dim.
         
     | 
| 
       145 
     | 
    
         
            -
                    # @param description_scheme [Symbol] Display description inline with label, or block on the next line.
         
     | 
| 
      
 156 
     | 
    
         
            +
                    # @param description_scheme [Symbol] Display description inline with label, or block on the next line. <%= one_of(Primer::Alpha::ActionList::Item::DESCRIPTION_SCHEME_OPTIONS) %>
         
     | 
| 
       146 
157 
     | 
    
         
             
                    # @param active [Boolean] If the parent list's `select_variant` is set to `:single` or `:multiple`, causes this item to render checked.
         
     | 
| 
       147 
158 
     | 
    
         
             
                    # @param on_click [String] JavaScript to execute when the item is clicked.
         
     | 
| 
       148 
159 
     | 
    
         
             
                    # @param id [String] Used internally.
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            :root{--actionListContent-paddingBlock:var(--control-medium-paddingBlock,0.375rem)}.ActionListHeader{margin-bottom:var(--base-size-16,1rem);margin-left:var(--base-size-8,.5rem)}.ActionListWrap{list-style:none}.ActionListWrap--inset{padding:var(--base-size-8,.5rem)}.ActionListWrap--divided .ActionListItem-label:before{height:1px}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline:before,.ActionListWrap--divided .ActionListItem-label:before{background:var(--borderColor-muted,var(--color-action-list-item-inline-divider));content:"";display:block;position:absolute;top:calc(var(--actionListContent-paddingBlock)*-1);width:100%}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline:before{height:var(--borderWidth-thin,max(1px,.0625rem))}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline .ActionListItem-label:before{content:unset}.ActionList-sectionDivider+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionList-sectionDivider+.ActionListItem .ActionListItem-label:before,.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline:before,.ActionListItem:first-of-type .ActionListItem-label:before,.ActionListWrap--divided .ActionListItem--navActive .ActionListItem-label:before,.ActionListWrap--divided .ActionListItem--navActive+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem{background-color:var(--control-transparent-bgColor-rest,#0000);border-radius:var(--borderRadius-medium,6px);list-style:none;position:relative}.ActionListItem:active,.ActionListItem:hover{cursor:pointer}@media (hover:hover){.ActionListItem:hover .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover .ActionListItem-label:before,.ActionListItem:hover+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover+.ActionListItem .ActionListItem-label:before{visibility:hidden}}.ActionListItem[hidden]+.ActionList-sectionDivider{display:none}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent{z-index:1}@media (hover:hover){.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active{background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg))}@media (hover:hover){.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover,.ActionListItem:not(.ActionListItem--hasSubItem):hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg));cursor:pointer}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover:not(.ActionListItem--navActive,:focus-visible),.ActionListItem:not(.ActionListItem--hasSubItem):hover:not(.ActionListItem--navActive,:focus-visible){box-shadow:var(--boxShadow-thin,inset 0 0 0 max(1px,.0625rem)) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border));outline:solid var(--borderWidth-thin,max(1px,.0625rem)) #0000;outline-offset:calc(var(--borderWidth-thin,max(1px, .0625rem))*-1)}}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active,.ActionListItem:not(.ActionListItem--hasSubItem):active{background:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg))}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active:not(.ActionListItem--navActive),.ActionListItem:not(.ActionListItem--hasSubItem):active:not(.ActionListItem--navActive){box-shadow:var(--boxShadow-thin,inset 0 0 0 max(1px,.0625rem)) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border));outline:solid var(--borderWidth-thin,max(1px,.0625rem)) #0000;outline-offset:calc(var(--borderWidth-thin,max(1px, .0625rem))*-1)}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active .ActionListItem-label:before,.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active+.ActionListItem .ActionListItem-label:before,.ActionListItem:not(.ActionListItem--hasSubItem):active .ActionListItem-label:before,.ActionListItem:not(.ActionListItem--hasSubItem):active+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem[aria-selected=true]{background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg));font-weight:var(--base-text-weight-normal,400)}@media (hover:hover){.ActionListItem[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem[aria-selected=true]+.ActionListItem:before,.ActionListItem[aria-selected=true]:before{visibility:hidden}.ActionListItem[aria-selected=true]:after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-4,.25rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListItem.ActionListItem--navActive{outline:2px solid #0000}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--subItem) .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger){background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg))}@media (hover:hover){.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger)+.ActionListItem:before,.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):before{visibility:hidden}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-description,.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-label,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-description,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-label{color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-visual,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-visual{fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}@media (hover:hover){.ActionListItem.ActionListItem--disabled:hover,.ActionListItem[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}.ActionListItem.ActionListItem--danger .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListItem-visual{color:var(--control-danger-fgColor-rest,var(--color-danger-fg))}@media (hover:hover){.ActionListItem.ActionListItem--danger:hover{background:var(--control-danger-bgColor-hover,var(--color-action-list-item-danger-hover-bg))}.ActionListItem.ActionListItem--danger:hover .ActionListItem-label,.ActionListItem.ActionListItem--danger:hover .ActionListItem-visual{color:var(--control-danger-fgColor-hover,var(--color-action-list-item-danger-hover-text))}}.ActionListItem.ActionListItem--danger .ActionListContent:active{background:var(--control-danger-bgColor-active,var(--color-action-list-item-danger-active-bg))}.ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-visual{color:var(--control-danger-fgColor-hover,var(--color-action-list-item-danger-hover-text))}.ActionListContent{-webkit-tap-highlight-color:transparent;align-items:start;background-color:initial;border:none;border-radius:var(--borderRadius-medium,6px);color:var(--control-fgColor-rest,var(--color-fg-default));display:grid;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0,auto) min-content min-content;grid-template-rows:min-content;padding-block:var(--actionListContent-paddingBlock);padding-inline:var(--control-medium-paddingInline-condensed,.5rem);position:relative;text-align:left;touch-action:manipulation;transition:background 33.333ms linear;-webkit-user-select:none;user-select:none;width:100%}.ActionListContent>:not(:last-child){margin-right:var(--control-medium-gap,.5rem)}.ActionListContent:hover{text-decoration:none}.ActionListContent[aria-disabled=true] .ActionListItem-description,.ActionListContent[aria-disabled=true] .ActionListItem-label{color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.ActionListContent[aria-disabled=true] .ActionListItem-visual{fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}@media (hover:hover){.ActionListContent[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-expanded]+.ActionList--subGroup{transition:opacity .16s cubic-bezier(.25,1,.5,1),transform .16s cubic-bezier(.25,1,.5,1)}}.ActionListContent[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-24,1.5rem)}.ActionListContent.ActionListContent--visual16[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-32,2rem)}.ActionListContent.ActionListContent--visual20[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-36,2.25rem)}.ActionListContent.ActionListContent--visual24[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-40,2.5rem)}.ActionListContent[aria-expanded=true] .ActionListItem-collapseIcon{transform:scaleY(-1);transition:transform .12s linear}.ActionListContent[aria-expanded=true]+.ActionList--subGroup{height:auto;opacity:1;overflow:visible;transform:translateY(0);visibility:visible}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=true]>.ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListContent[aria-expanded=false] .ActionListItem-collapseIcon{transform:scaleY(1);transition:transform .12s linear}.ActionListContent[aria-expanded=false]+.ActionList--subGroup{height:0;opacity:0;overflow:hidden;transform:translateY(calc(var(--base-size-16,1rem)*-1));visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]{background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg))}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false] .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]+.ActionListItem:before,.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:before{visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectCheckmark{opacity:1;transition:visibility 0 linear 0,opacity 50ms;visibility:visible}.ActionListContent[aria-checked=true] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-singleSelectCheckmark{visibility:visible}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-checked=true] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-singleSelectCheckmark{animation:checkmarkIn .2s cubic-bezier(.11,0,.5,0) forwards;@keyframes checkmarkIn{0%{clip-path:inset(16px 0 0 0)}to{clip-path:inset(0 0 0 0)}}}}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect{fill:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));stroke:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));stroke-width:var(--borderWidth-thin,1px)}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectCheckmark{fill:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis))}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectCheckmark{opacity:0;transition:visibility 0 linear 50ms,opacity 50ms;visibility:hidden}.ActionListContent[aria-checked=false] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-singleSelectCheckmark{clip-path:inset(16px 0 0 0);transition:visibility 0s linear .2s;visibility:hidden}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-checked=false] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-singleSelectCheckmark{animation:checkmarkOut .2s cubic-bezier(.11,0,.5,0) forwards;@keyframes checkmarkOut{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(16px 0 0 0)}}}}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default,var(--color-canvas-default));stroke:var(--control-borderColor-rest,var(--color-btn-border));stroke-width:var(--borderWidth-thin,1px)}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,1px) solid var(--control-borderColor-rest,var(--color-btn-border))}.ActionListContent.ActionListContent--sizeLarge{--actionListContent-paddingBlock:var(--control-large-paddingBlock,0.625rem)}.ActionListContent.ActionListContent--sizeXLarge{--actionListContent-paddingBlock:var(--control-xlarge-paddingBlock,0.875rem)}@media (pointer:coarse){.ActionListContent{--actionListContent-paddingBlock:var(--control-large-paddingBlock,0.625rem)}}.ActionListContent.ActionListContent--blockDescription .ActionListItem-visual{place-self:start}.ActionListItem-action--leading{grid-area:leadingAction}.ActionListItem-visual--leading{grid-area:leadingVisual}.ActionListItem-visual--trailing{grid-area:trailingVisual}.ActionListItem-action--trailing{grid-area:trailingAction}.ActionListItem-descriptionWrap{display:flex;flex-direction:column;gap:var(--base-size-4,.25rem);grid-area:label}.ActionListItem-descriptionWrap .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListItem-descriptionWrap--inline{align-items:baseline;flex-direction:row;gap:var(--base-size-8,.5rem);position:relative}.ActionListItem-description{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-normal,400);line-height:var(--text-body-lineHeight-small,1.66667)}.ActionListItem-action,.ActionListItem-visual{fill:var(--fgColor-muted,var(--color-fg-muted));align-items:center;color:var(--fgColor-muted,var(--color-fg-muted));display:flex;min-height:var(--control-medium-lineBoxHeight,1.25rem);pointer-events:none}.ActionListItem-label{color:var(--fgColor-default,var(--color-fg-default));font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:label;line-height:var(--text-body-lineHeight-medium,1.42857);position:relative}.ActionListItem-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionListItem--subItem>.ActionListContent>.ActionListItem-label{font-size:var(--text-body-size-small,.75rem);line-height:var(--text-body-lineHeight-small,1.66667)}.ActionListItem--withActions{align-items:center;display:flex;flex-wrap:nowrap}.ActionListItem-trailingAction{border-bottom-left-radius:0;border-top-left-radius:0}.ActionListItem--trailingActionHover .ActionListItem-trailingAction{visibility:hidden}.ActionListItem--trailingActionHover:focus-within .ActionListItem-trailingAction,.ActionListItem--trailingActionHover:hover .ActionListItem-trailingAction{visibility:visible}.ActionList-sectionDivider:not(:empty){color:var(--fgColor-muted,var(--color-fg-muted));display:flex;flex-direction:column;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600);line-height:var(--text-body-lineHeight-small,1.66667);padding-block:var(--base-size-8,.5rem);padding-inline:var(--actionListContent-paddingBlock)}.ActionList-sectionDivider:empty{background:var(--borderColor-muted,var(--color-action-list-item-inline-divider));border:0;display:block;height:var(--borderWidth-thin,max(1px,.0625rem));list-style:none;margin-block-end:var(--base-size-8,.5rem);margin-block-start:calc(var(--base-size-8,.5rem) - var(--borderWidth-thin,max(1px, .0625rem)));margin-inline:calc(var(--base-size-8,.5rem)*-1);padding:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600)}.ActionList-sectionDivider--filled{background:var(--bgColor-muted,var(--color-canvas-subtle));border-bottom:solid var(--borderWidth-thin,max(1px,.0625rem)) var(--borderColor-muted,var(--color-action-list-item-inline-divider));border-top:solid var(--borderWidth-thin,max(1px,.0625rem)) var(--borderColor-muted,var(--color-action-list-item-inline-divider));margin-block-end:var(--base-size-8,.5rem);margin-block-start:calc(var(--base-size-8,.5rem) - var(--borderWidth-thin,max(1px, .0625rem)));margin-inline:calc(var(--base-size-8,.5rem)*-1)}.ActionList-sectionDivider--filled:empty{box-sizing:border-box;height:var(--base-size-8,.5rem)}.ActionList-sectionDivider--filled:first-child{margin-block-start:0}
         
     | 
| 
      
 1 
     | 
    
         
            +
            :root{--actionListContent-paddingBlock:var(--control-medium-paddingBlock,0.375rem)}.ActionListHeader{margin-bottom:var(--base-size-16,1rem);margin-left:var(--base-size-8,.5rem)}.ActionListWrap{list-style:none}.ActionListWrap--inset{padding:var(--base-size-8,.5rem)}.ActionListWrap--divided .ActionListItem-label:before{height:1px}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline:before,.ActionListWrap--divided .ActionListItem-label:before{background:var(--borderColor-muted,var(--color-action-list-item-inline-divider));content:"";display:block;position:absolute;top:calc(var(--actionListContent-paddingBlock)*-1);width:100%}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline:before{height:var(--borderWidth-thin,max(1px,.0625rem))}.ActionListWrap--divided .ActionListItem-descriptionWrap--inline .ActionListItem-label:before{content:unset}.ActionList-sectionDivider+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionList-sectionDivider+.ActionListItem .ActionListItem-label:before,.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline:before,.ActionListItem:first-of-type .ActionListItem-label:before,.ActionListWrap--divided .ActionListItem--navActive .ActionListItem-label:before,.ActionListWrap--divided .ActionListItem--navActive+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem{background-color:var(--control-transparent-bgColor-rest,#0000);border-radius:var(--borderRadius-medium,6px);list-style:none;position:relative}.ActionListItem:active,.ActionListItem:hover{cursor:pointer}@media (hover:hover){.ActionListItem:hover .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover .ActionListItem-label:before,.ActionListItem:hover+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover+.ActionListItem .ActionListItem-label:before{visibility:hidden}}.ActionListItem[hidden]+.ActionList-sectionDivider{display:none}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent{z-index:1}@media (hover:hover){.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active{background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg))}@media (hover:hover){.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover,.ActionListItem:not(.ActionListItem--hasSubItem):hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg));cursor:pointer}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:hover:not(.ActionListItem--navActive,:focus-visible),.ActionListItem:not(.ActionListItem--hasSubItem):hover:not(.ActionListItem--navActive,:focus-visible){box-shadow:var(--boxShadow-thin,inset 0 0 0 max(1px,.0625rem)) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border));outline:solid var(--borderWidth-thin,max(1px,.0625rem)) #0000;outline-offset:calc(var(--borderWidth-thin,max(1px, .0625rem))*-1)}}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active,.ActionListItem:not(.ActionListItem--hasSubItem):active{background:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg))}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active:not(.ActionListItem--navActive),.ActionListItem:not(.ActionListItem--hasSubItem):active:not(.ActionListItem--navActive){box-shadow:var(--boxShadow-thin,inset 0 0 0 max(1px,.0625rem)) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border));outline:solid var(--borderWidth-thin,max(1px,.0625rem)) #0000;outline-offset:calc(var(--borderWidth-thin,max(1px, .0625rem))*-1)}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active .ActionListItem-label:before,.ActionListItem.ActionListItem--hasSubItem>.ActionListContent:active+.ActionListItem .ActionListItem-label:before,.ActionListItem:not(.ActionListItem--hasSubItem):active .ActionListItem-label:before,.ActionListItem:not(.ActionListItem--hasSubItem):active+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem[aria-selected=true]{background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg));font-weight:var(--base-text-weight-normal,400)}@media (hover:hover){.ActionListItem[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem[aria-selected=true]+.ActionListItem:before,.ActionListItem[aria-selected=true]:before{visibility:hidden}.ActionListItem[aria-selected=true]:after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-4,.25rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListItem.ActionListItem--navActive{outline:2px solid #0000}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--subItem) .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger){background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg))}@media (hover:hover){.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger)+.ActionListItem:before,.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):before{visibility:hidden}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-description,.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-label,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-description,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-label{color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.ActionListItem.ActionListItem--disabled .ActionListContent .ActionListItem-visual,.ActionListItem[aria-disabled=true] .ActionListContent .ActionListItem-visual{fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}@media (hover:hover){.ActionListItem.ActionListItem--disabled:hover,.ActionListItem[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}.ActionListItem.ActionListItem--danger .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListItem-visual{color:var(--control-danger-fgColor-rest,var(--color-danger-fg))}@media (hover:hover){.ActionListItem.ActionListItem--danger:hover{background:var(--control-danger-bgColor-hover,var(--color-action-list-item-danger-hover-bg))}.ActionListItem.ActionListItem--danger:hover .ActionListItem-description,.ActionListItem.ActionListItem--danger:hover .ActionListItem-label,.ActionListItem.ActionListItem--danger:hover .ActionListItem-visual{color:var(--control-danger-fgColor-hover,var(--color-action-list-item-danger-hover-text))}}.ActionListItem.ActionListItem--danger .ActionListContent:active{background:var(--control-danger-bgColor-active,var(--color-action-list-item-danger-active-bg))}.ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-description,.ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-visual{color:var(--control-danger-fgColor-hover,var(--color-action-list-item-danger-hover-text))}.ActionListContent{-webkit-tap-highlight-color:transparent;align-items:start;background-color:initial;border:none;border-radius:var(--borderRadius-medium,6px);color:var(--control-fgColor-rest,var(--color-fg-default));display:grid;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0,auto) min-content min-content;grid-template-rows:min-content;padding-block:var(--actionListContent-paddingBlock);padding-inline:var(--control-medium-paddingInline-condensed,.5rem);position:relative;text-align:left;touch-action:manipulation;transition:background 33.333ms linear;-webkit-user-select:none;user-select:none;width:100%}.ActionListContent>:not(:last-child){margin-right:var(--control-medium-gap,.5rem)}.ActionListContent:hover{text-decoration:none}.ActionListContent[aria-disabled=true] .ActionListItem-description,.ActionListContent[aria-disabled=true] .ActionListItem-label{color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.ActionListContent[aria-disabled=true] .ActionListItem-visual{fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}@media (hover:hover){.ActionListContent[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-expanded]+.ActionList--subGroup{transition:opacity .16s cubic-bezier(.25,1,.5,1),transform .16s cubic-bezier(.25,1,.5,1)}}.ActionListContent[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-24,1.5rem)}.ActionListContent.ActionListContent--visual16[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-32,2rem)}.ActionListContent.ActionListContent--visual20[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-36,2.25rem)}.ActionListContent.ActionListContent--visual24[aria-expanded]+.ActionList--subGroup .ActionListContent{padding-left:var(--base-size-40,2.5rem)}.ActionListContent[aria-expanded=true] .ActionListItem-collapseIcon{transform:scaleY(-1);transition:transform .12s linear}.ActionListContent[aria-expanded=true]+.ActionList--subGroup{height:auto;opacity:1;overflow:visible;transform:translateY(0);visibility:visible}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=true]>.ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListContent[aria-expanded=false] .ActionListItem-collapseIcon{transform:scaleY(1);transition:transform .12s linear}.ActionListContent[aria-expanded=false]+.ActionList--subGroup{height:0;opacity:0;overflow:hidden;transform:translateY(calc(var(--base-size-16,1rem)*-1));visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]{background:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg))}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false] .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]+.ActionListItem:before,.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:before{visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:after{background:var(--borderColor-accent-emphasis,var(--color-accent-fg));border-radius:var(--borderRadius-medium,6px);content:"";height:var(--base-size-24,1.5rem);left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4,.25rem)}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectCheckmark{opacity:1;transition:visibility 0 linear 0,opacity 50ms;visibility:visible}.ActionListContent[aria-checked=true] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-singleSelectCheckmark{visibility:visible}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-checked=true] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-singleSelectCheckmark{animation:checkmarkIn .2s cubic-bezier(.11,0,.5,0) forwards;@keyframes checkmarkIn{0%{clip-path:inset(16px 0 0 0)}to{clip-path:inset(0 0 0 0)}}}}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect{fill:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));stroke:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));stroke-width:var(--borderWidth-thin,1px)}.ActionListContent[aria-checked=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=true] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectCheckmark{fill:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis))}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectCheckmark{opacity:0;transition:visibility 0 linear 50ms,opacity 50ms;visibility:hidden}.ActionListContent[aria-checked=false] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-singleSelectCheckmark{clip-path:inset(16px 0 0 0);transition:visibility 0s linear .2s;visibility:hidden}@media screen and (prefers-reduced-motion:no-preference){.ActionListContent[aria-checked=false] .ActionListItem-singleSelectCheckmark,.ActionListContent[aria-selected=false] .ActionListItem-singleSelectCheckmark{animation:checkmarkOut .2s cubic-bezier(.11,0,.5,0) forwards;@keyframes checkmarkOut{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(16px 0 0 0)}}}}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectIcon .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default,var(--color-canvas-default));stroke:var(--control-borderColor-rest,var(--color-btn-border));stroke-width:var(--borderWidth-thin,1px)}.ActionListContent[aria-checked=false] .ActionListItem-multiSelectIconRect,.ActionListContent[aria-selected=false] .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,1px) solid var(--control-borderColor-rest,var(--color-btn-border))}.ActionListContent.ActionListContent--sizeLarge{--actionListContent-paddingBlock:var(--control-large-paddingBlock,0.625rem)}.ActionListContent.ActionListContent--sizeXLarge{--actionListContent-paddingBlock:var(--control-xlarge-paddingBlock,0.875rem)}@media (pointer:coarse){.ActionListContent{--actionListContent-paddingBlock:var(--control-large-paddingBlock,0.625rem)}}.ActionListContent.ActionListContent--blockDescription .ActionListItem-visual{place-self:start}.ActionListItem-action--leading{grid-area:leadingAction}.ActionListItem-visual--leading{grid-area:leadingVisual}.ActionListItem-visual--trailing{grid-area:trailingVisual}.ActionListItem-action--trailing{grid-area:trailingAction}.ActionListItem-descriptionWrap{display:flex;flex-direction:column;gap:var(--base-size-4,.25rem);grid-area:label}.ActionListItem-descriptionWrap .ActionListItem-label{font-weight:var(--base-text-weight-semibold,600)}.ActionListItem-descriptionWrap--inline{align-items:baseline;flex-direction:row;gap:var(--base-size-8,.5rem);position:relative}.ActionListItem-description{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-normal,400);line-height:var(--text-body-lineHeight-small,1.66667)}.ActionListItem-action,.ActionListItem-visual{fill:var(--fgColor-muted,var(--color-fg-muted));align-items:center;color:var(--fgColor-muted,var(--color-fg-muted));display:flex;min-height:var(--control-medium-lineBoxHeight,1.25rem);pointer-events:none}.ActionListItem-label{color:var(--fgColor-default,var(--color-fg-default));font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:label;line-height:var(--text-body-lineHeight-medium,1.42857);position:relative}.ActionListItem-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionListItem--subItem>.ActionListContent>.ActionListItem-label{font-size:var(--text-body-size-small,.75rem);line-height:var(--text-body-lineHeight-small,1.66667)}.ActionListItem--withActions{align-items:center;display:flex;flex-wrap:nowrap}.ActionListItem-trailingAction{border-bottom-left-radius:0;border-top-left-radius:0}.ActionListItem--trailingActionHover .ActionListItem-trailingAction{visibility:hidden}.ActionListItem--trailingActionHover:focus-within .ActionListItem-trailingAction,.ActionListItem--trailingActionHover:hover .ActionListItem-trailingAction{visibility:visible}.ActionList-sectionDivider:not(:empty){color:var(--fgColor-muted,var(--color-fg-muted));display:flex;flex-direction:column;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600);line-height:var(--text-body-lineHeight-small,1.66667);padding-block:var(--base-size-8,.5rem);padding-inline:var(--actionListContent-paddingBlock)}.ActionList-sectionDivider:empty{background:var(--borderColor-muted,var(--color-action-list-item-inline-divider));border:0;display:block;height:var(--borderWidth-thin,max(1px,.0625rem));list-style:none;margin-block-end:var(--base-size-8,.5rem);margin-block-start:calc(var(--base-size-8,.5rem) - var(--borderWidth-thin,max(1px, .0625rem)));margin-inline:calc(var(--base-size-8,.5rem)*-1);padding:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600)}.ActionList-sectionDivider--filled{background:var(--bgColor-muted,var(--color-canvas-subtle));border-bottom:solid var(--borderWidth-thin,max(1px,.0625rem)) var(--borderColor-muted,var(--color-action-list-item-inline-divider));border-top:solid var(--borderWidth-thin,max(1px,.0625rem)) var(--borderColor-muted,var(--color-action-list-item-inline-divider));margin-block-end:var(--base-size-8,.5rem);margin-block-start:calc(var(--base-size-8,.5rem) - var(--borderWidth-thin,max(1px, .0625rem)));margin-inline:calc(var(--base-size-8,.5rem)*-1)}.ActionList-sectionDivider--filled:empty{box-sizing:border-box;height:var(--base-size-8,.5rem)}.ActionList-sectionDivider--filled:first-child{margin-block-start:0}
         
     | 
| 
         @@ -58,9 +58,11 @@ 
     | 
|
| 
       58 
58 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger .ActionListItem-label",
         
     | 
| 
       59 
59 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger .ActionListItem-visual",
         
     | 
| 
       60 
60 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger:hover",
         
     | 
| 
      
 61 
     | 
    
         
            +
                ".ActionListItem.ActionListItem--danger:hover .ActionListItem-description",
         
     | 
| 
       61 
62 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger:hover .ActionListItem-label",
         
     | 
| 
       62 
63 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger:hover .ActionListItem-visual",
         
     | 
| 
       63 
64 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger .ActionListContent:active",
         
     | 
| 
      
 65 
     | 
    
         
            +
                ".ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-description",
         
     | 
| 
       64 
66 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-label",
         
     | 
| 
       65 
67 
     | 
    
         
             
                ".ActionListItem.ActionListItem--danger .ActionListContent:active .ActionListItem-visual",
         
     | 
| 
       66 
68 
     | 
    
         
             
                ".ActionListContent",
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["action_list.pcss","../../../../lib/postcss_mixins/activeIndicatorLine.pcss"],"names":[],"mappings":"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","file":"action_list.css","sourcesContent":[":root {\n  --actionListContent-paddingBlock: var(--control-medium-paddingBlock);\n}\n\n/* ActionList */\n\n.ActionListHeader {\n  margin-left: var(--base-size-8);\n  margin-bottom: var(--base-size-16);\n}\n\n/* <ul> */\n.ActionListWrap {\n  list-style: none;\n}\n\n.ActionListWrap--inset {\n  padding: var(--base-size-8);\n}\n\n/* list dividers */\n\n.ActionListWrap--divided {\n  & .ActionListItem-label::before {\n    position: absolute;\n    top: calc(-1 * var(--actionListContent-paddingBlock));\n    display: block;\n    width: 100%;\n    height: 1px;\n    content: '';\n    background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n  }\n\n  /* if descriptionWrap--inline exists, move pseudo divider to wrapper */\n  & .ActionListItem-descriptionWrap--inline {\n    &::before {\n      position: absolute;\n      top: calc(-1 * var(--actionListContent-paddingBlock));\n      display: block;\n      width: 100%;\n      height: var(--borderWidth-thin);\n      content: '';\n      background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n    }\n\n    /* unset the default label pseudo */\n    & .ActionListItem-label::before {\n      content: unset;\n    }\n  }\n\n  /* hide divider if item is active */\n  & .ActionListItem--navActive {\n    & .ActionListItem-label::before,\n    & + .ActionListItem .ActionListItem-label::before {\n      visibility: hidden;\n    }\n  }\n}\n\n/* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n.ActionListItem:first-of-type .ActionListItem-label::before,\n.ActionList-sectionDivider + .ActionListItem .ActionListItem-label::before {\n  visibility: hidden;\n}\n\n/* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline::before,\n.ActionList-sectionDivider + .ActionListItem .ActionListItem-descriptionWrap--inline::before {\n  visibility: hidden;\n}\n\n/* ActionList::Item */\n\n.ActionListItem {\n  position: relative;\n  list-style: none;\n  background-color: var(--control-transparent-bgColor-rest);\n  border-radius: var(--borderRadius-medium);\n\n  /* state */\n\n  &:hover,\n  &:active {\n    cursor: pointer;\n  }\n\n  /* hide dividers  */\n  @media (hover: hover) {\n    &:hover {\n      & .ActionListItem-label::before,\n      & + .ActionListItem .ActionListItem-label::before {\n        visibility: hidden;\n      }\n\n      & .ActionListItem-descriptionWrap--inline::before,\n      & + .ActionListItem .ActionListItem-descriptionWrap--inline::before {\n        visibility: hidden;\n      }\n    }\n  }\n\n  /* Make sure that the first visible item isn't a divider */\n  &[hidden] + .ActionList-sectionDivider {\n    display: none;\n  }\n\n  /* collapse styles here */\n  &.ActionListItem--hasSubItem {\n    /* first child */\n    & > .ActionListContent {\n      z-index: 1;\n\n      @media (hover: hover) {\n        &:hover {\n          background-color: var(--control-transparent-bgColor-hover);\n        }\n      }\n\n      &:active {\n        background-color: var(--control-transparent-bgColor-active);\n      }\n    }\n  }\n\n  /* only hover li without list as children */\n  &:not(.ActionListItem--hasSubItem),\n   /* target contents of first child li if sub-item (li wraps item label + nested ul) */\n  &.ActionListItem--hasSubItem > .ActionListContent {\n    @media (hover: hover) {\n      &:hover {\n        cursor: pointer;\n        background-color: var(--control-transparent-bgColor-hover);\n\n        &:not(.ActionListItem--navActive, :focus-visible) {\n          /* Support for \"Windows high contrast mode\" */\n          outline: solid var(--borderWidth-thin) transparent;\n          outline-offset: calc(-1 * var(--borderWidth-thin));\n          box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n        }\n      }\n    }\n\n    &:active {\n      background: var(--control-transparent-bgColor-active);\n\n      &:not(.ActionListItem--navActive) {\n        /* Support for \"Windows high contrast mode\" https:sarahmhigley.com/writing/whcm-quick-tips/ */\n        outline: solid var(--borderWidth-thin) transparent;\n        outline-offset: calc(-1 * var(--borderWidth-thin));\n        box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n      }\n\n      & .ActionListItem-label::before,\n      & + .ActionListItem .ActionListItem-label::before {\n        visibility: hidden;\n      }\n    }\n  }\n\n  /* Autocomplete [aria-selected] items */\n\n  &[aria-selected='true'] {\n    font-weight: var(--base-text-weight-normal);\n    background: var(--control-transparent-bgColor-selected);\n\n    @media (hover: hover) {\n      &:hover {\n        background-color: var(--control-transparent-bgColor-hover);\n      }\n    }\n\n    &::before,\n    & + .ActionListItem::before {\n      visibility: hidden;\n    }\n\n    /* blue accent line */\n\n    &::after {\n      @mixin activeIndicatorLine calc(-1 * var(--base-size-4));\n    }\n  }\n\n  /* active state [aria-current] */\n\n  &.ActionListItem--navActive {\n    /* provides a visual indication of the current item for Windows high-contrast mode */\n    outline: 2px solid transparent;\n\n    &:not(.ActionListItem--subItem) {\n      & .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n    }\n\n    &:not(.ActionListItem--danger) {\n      background: var(--control-transparent-bgColor-selected);\n\n      @media (hover: hover) {\n        &:hover {\n          background-color: var(--control-transparent-bgColor-hover);\n        }\n      }\n\n      &::before,\n      & + .ActionListItem::before {\n        visibility: hidden;\n      }\n\n      /* blue accent line  */\n      &::after {\n        @mixin activeIndicatorLine;\n      }\n    }\n  }\n\n  /* disabled */\n\n  &.ActionListItem--disabled,\n  &[aria-disabled='true'] {\n    & .ActionListContent {\n      & .ActionListItem-label,\n      & .ActionListItem-description {\n        color: var(--control-fgColor-disabled);\n      }\n\n      & .ActionListItem-visual {\n        fill: var(--control-fgColor-disabled);\n      }\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        cursor: not-allowed;\n        background-color: transparent;\n      }\n    }\n  }\n\n  /* variants */\n\n  /* danger */\n  &.ActionListItem--danger {\n    & .ActionListItem-label {\n      color: var(--control-danger-fgColor-rest);\n    }\n\n    & .ActionListItem-visual {\n      color: var(--control-danger-fgColor-rest);\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        background: var(--control-danger-bgColor-hover);\n\n        & .ActionListItem-label,\n        & .ActionListItem-visual {\n          color: var(--control-danger-fgColor-hover);\n        }\n      }\n    }\n\n    & .ActionListContent {\n      &:active {\n        background: var(--control-danger-bgColor-active);\n\n        & .ActionListItem-label,\n        & .ActionListItem-visual {\n          color: var(--control-danger-fgColor-hover);\n        }\n      }\n    }\n  }\n}\n\n/* button or a href */\n.ActionListContent {\n  position: relative;\n  display: grid;\n  width: 100%;\n  padding-block: var(--actionListContent-paddingBlock);\n  padding-inline: var(--control-medium-paddingInline-condensed);\n  color: var(--control-fgColor-rest);\n  text-align: left;\n  user-select: none;\n  background-color: transparent;\n  border: none;\n  border-radius: var(--borderRadius-medium);\n  transition: background 33.333ms linear;\n  touch-action: manipulation;\n  -webkit-tap-highlight-color: transparent;\n  grid-template-rows: min-content;\n  grid-template-areas: 'leadingAction leadingVisual label trailingVisual trailingAction';\n  grid-template-columns: min-content min-content minmax(0, auto) min-content min-content;\n  align-items: start;\n\n  /* column-gap persists with empty grid-areas, margin applies only when children exist */\n  & > :not(:last-child) {\n    margin-right: var(--control-medium-gap);\n  }\n\n  /* state */\n\n  &:hover {\n    text-decoration: none;\n  }\n\n  /* disabled */\n  &[aria-disabled='true'] {\n    & .ActionListItem-label,\n    & .ActionListItem-description {\n      color: var(--control-fgColor-disabled);\n    }\n\n    & .ActionListItem-visual {\n      fill: var(--control-fgColor-disabled);\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        cursor: not-allowed;\n        background-color: transparent;\n      }\n    }\n  }\n\n  /* collapsible item [aria-expanded] */\n\n  /* nesting (single level)\n   target items inside expanded subgroups */\n  &[aria-expanded] {\n    & + .ActionList--subGroup {\n      @media screen and (prefers-reduced-motion: no-preference) {\n        transition: opacity 160ms cubic-bezier(0.25, 1, 0.5, 1), transform 160ms cubic-bezier(0.25, 1, 0.5, 1);\n      }\n\n      & .ActionListContent {\n        padding-left: var(--base-size-24);\n      }\n    }\n\n    /* has 16px leading visual */\n    &.ActionListContent--visual16 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-32);\n      }\n    }\n\n    /* has 20px leading visual */\n    &.ActionListContent--visual20 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-36);\n      }\n    }\n\n    /* has 24px leading visual */\n    &.ActionListContent--visual24 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-40);\n      }\n    }\n  }\n\n  &[aria-expanded='true'] {\n    & .ActionListItem-collapseIcon {\n      transition: transform 120ms linear;\n      transform: scaleY(-1);\n    }\n\n    & + .ActionList--subGroup {\n      height: auto;\n      overflow: visible;\n      visibility: visible;\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    &.ActionListContent--hasActiveSubItem {\n      & > .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n    }\n  }\n\n  &[aria-expanded='false'] {\n    & .ActionListItem-collapseIcon {\n      transition: transform 120ms linear;\n      transform: scaleY(1);\n    }\n\n    & + .ActionList--subGroup {\n      height: 0;\n      overflow: hidden;\n      visibility: hidden;\n      opacity: 0;\n      transform: translateY(calc(-1 * var(--base-size-16)));\n    }\n\n    /* show active indicator on parent collapse if child is active */\n    &.ActionListContent--hasActiveSubItem {\n      background: var(--control-transparent-bgColor-selected);\n\n      & .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n\n      &::before,\n      & + .ActionListItem::before {\n        visibility: hidden;\n      }\n\n      /* blue accent line */\n      &::after {\n        @mixin activeIndicatorLine;\n      }\n    }\n  }\n\n  /*\n  * checkbox item [aria-checked]\n  * listbox [aria-selected]\n  */\n  &[aria-checked='true'],\n  &[aria-selected='true'] {\n    /* multiselect checkmark */\n    & .ActionListItem-multiSelectCheckmark {\n      visibility: visible;\n      opacity: 1;\n      transition: visibility 0 linear 0, opacity 50ms;\n    }\n\n    /* singleselect checkmark */\n    & .ActionListItem-singleSelectCheckmark {\n      visibility: visible;\n\n      @media screen and (prefers-reduced-motion: no-preference) {\n        animation: checkmarkIn 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;\n        @keyframes checkmarkIn {\n          from {\n            clip-path: inset(16px 0 0 0);\n          }\n\n          to {\n            clip-path: inset(0 0 0 0);\n          }\n        }\n      }\n    }\n\n    /* checkbox */\n    & .ActionListItem-multiSelectIcon {\n      & .ActionListItem-multiSelectIconRect {\n        fill: var(--control-checked-bgColor-rest);\n        stroke: var(--control-checked-bgColor-rest);\n        stroke-width: var(--borderWidth-thin, 1px);\n      }\n\n      & .ActionListItem-multiSelectCheckmark {\n        fill: var(--fgColor-onEmphasis);\n      }\n    }\n  }\n\n  &[aria-checked='false'],\n  &[aria-selected='false'] {\n    /* multiselect checkmark */\n    & .ActionListItem-multiSelectCheckmark {\n      visibility: hidden;\n      opacity: 0;\n      transition: visibility 0 linear 50ms, opacity 50ms;\n    }\n\n    /* singleselect checkmark */\n    & .ActionListItem-singleSelectCheckmark {\n      visibility: hidden;\n      transition: visibility 0s linear 200ms;\n      clip-path: inset(16px 0 0 0);\n\n      @media screen and (prefers-reduced-motion: no-preference) {\n        animation: checkmarkOut 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;\n        @keyframes checkmarkOut {\n          from {\n            clip-path: inset(0 0 0 0);\n          }\n\n          to {\n            clip-path: inset(16px 0 0 0);\n          }\n        }\n      }\n    }\n\n    /* checkbox */\n    & .ActionListItem-multiSelectIcon {\n      & .ActionListItem-multiSelectIconRect {\n        fill: var(--bgColor-default);\n        stroke: var(--control-borderColor-rest);\n        stroke-width: var(--borderWidth-thin, 1px);\n      }\n    }\n\n    & .ActionListItem-multiSelectIconRect {\n      fill: var(--bgColor-default);\n      border: var(--borderWidth-thin, 1px) solid var(--control-borderColor-rest);\n    }\n  }\n\n  /* sizes */\n\n  &.ActionListContent--sizeLarge {\n    --actionListContent-paddingBlock: var(--control-large-paddingBlock);\n  }\n\n  &.ActionListContent--sizeXLarge {\n    --actionListContent-paddingBlock: var(--control-xlarge-paddingBlock);\n  }\n\n  /* On pointer:coarse (mobile), all list items are large */\n  @media (pointer: coarse) {\n    --actionListContent-paddingBlock: var(--control-large-paddingBlock);\n  }\n\n  &.ActionListContent--blockDescription {\n    /* if leading/trailing visual, align with first line of content */\n    & .ActionListItem-visual {\n      place-self: start;\n    }\n  }\n}\n\n/* place children on grid */\n\n.ActionListItem-action--leading {\n  grid-area: leadingAction;\n}\n\n.ActionListItem-visual--leading {\n  grid-area: leadingVisual;\n}\n\n.ActionListItem-visual--trailing {\n  grid-area: trailingVisual;\n}\n\n.ActionListItem-action--trailing {\n  grid-area: trailingAction;\n}\n\n/* wrapper span\n default block */\n.ActionListItem-descriptionWrap {\n  grid-area: label;\n  display: flex;\n  flex-direction: column;\n  gap: var(--base-size-4);\n\n  & .ActionListItem-label {\n    font-weight: var(--base-text-weight-semibold);\n  }\n}\n\n/* inline */\n.ActionListItem-descriptionWrap--inline {\n  position: relative;\n  flex-direction: row;\n  align-items: baseline;\n  gap: var(--base-size-8);\n}\n\n/* description */\n.ActionListItem-description {\n  font-size: var(--text-body-size-small);\n  font-weight: var(--base-text-weight-normal);\n  line-height: var(--text-body-lineHeight-small);\n  color: var(--fgColor-muted);\n}\n\n/* helper for grid alignment with multi-line content\n span wrapping svg or text */\n.ActionListItem-visual,\n.ActionListItem-action {\n  display: flex;\n  min-height: var(--control-medium-lineBoxHeight);\n  color: var(--fgColor-muted);\n  pointer-events: none;\n  fill: var(--fgColor-muted);\n  align-items: center;\n}\n\n/* text */\n.ActionListItem-label {\n  position: relative;\n  font-size: var(--text-body-size-medium);\n  font-weight: var(--base-text-weight-normal);\n  line-height: var(--text-body-lineHeight-medium);\n  color: var(--fgColor-default);\n  grid-area: label;\n}\n\n.ActionListItem-label--truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/* nested lists (only supports 1 level currently)\n target ActionListItem--subItem for padding-left to maintain :active :after state */\n\n.ActionListItem--subItem > .ActionListContent > .ActionListItem-label {\n  font-size: var(--text-body-size-small);\n  line-height: var(--text-body-lineHeight-small);\n}\n\n/* trailing action icon button */\n\n.ActionListItem--withActions {\n  display: flex;\n  flex-wrap: nowrap;\n  align-items: center;\n}\n\n.ActionListItem-trailingAction {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n/* show trailing action button on hover */\n\n.ActionListItem--trailingActionHover {\n  & .ActionListItem-trailingAction {\n    visibility: hidden;\n  }\n\n  &:hover,\n  &:focus-within {\n    & .ActionListItem-trailingAction {\n      visibility: visible;\n    }\n  }\n}\n\n/* ActionList::Divider */\n\n.ActionList-sectionDivider {\n  /* with children */\n  &:not(:empty) {\n    display: flex;\n    padding-inline: var(--actionListContent-paddingBlock);\n    padding-block: var(--base-size-8);\n    font-size: var(--text-body-size-small);\n    line-height: var(--text-body-lineHeight-small);\n    font-weight: var(--base-text-weight-semibold);\n    color: var(--fgColor-muted);\n    flex-direction: column;\n  }\n\n  /* no children */\n  &:empty {\n    display: block;\n    height: var(--borderWidth-thin);\n    padding: 0;\n    margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));\n    margin-block-end: var(--base-size-8);\n    margin-inline: calc(-1 * var(--base-size-8));\n    list-style: none;\n    background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n    border: 0;\n  }\n\n  & .ActionList-sectionDivider-title {\n    font-size: var(--text-body-size-small);\n    font-weight: var(--base-text-weight-semibold);\n    color: var(--fgColor-muted);\n  }\n}\n\n.ActionList-sectionDivider--filled {\n  margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));\n  margin-block-end: var(--base-size-8);\n  margin-inline: calc(-1 * var(--base-size-8));\n  background: var(--bgColor-muted);\n  border-top: solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n  border-bottom: solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n\n  /* if no children, treat as divider */\n  &:empty {\n    height: var(--base-size-8);\n    box-sizing: border-box;\n  }\n\n  &:first-child {\n    margin-block-start: 0;\n  }\n}\n","/* active indicator line for navlist items */\n@define-mixin activeIndicatorLine $padding-left: calc(-1 * var(--base-size-8)) {\n  position: absolute;\n  top: calc(50% - 12px);\n  left: $padding-left;\n  width: var(--base-size-4);\n  height: var(--base-size-24);\n  content: '';\n  background: var(--borderColor-accent-emphasis);\n  border-radius: var(--borderRadius-medium);\n}\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["action_list.pcss","../../../../lib/postcss_mixins/activeIndicatorLine.pcss"],"names":[],"mappings":"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","file":"action_list.css","sourcesContent":[":root {\n  --actionListContent-paddingBlock: var(--control-medium-paddingBlock);\n}\n\n/* ActionList */\n\n.ActionListHeader {\n  margin-left: var(--base-size-8);\n  margin-bottom: var(--base-size-16);\n}\n\n/* <ul> */\n.ActionListWrap {\n  list-style: none;\n}\n\n.ActionListWrap--inset {\n  padding: var(--base-size-8);\n}\n\n/* list dividers */\n\n.ActionListWrap--divided {\n  & .ActionListItem-label::before {\n    position: absolute;\n    top: calc(-1 * var(--actionListContent-paddingBlock));\n    display: block;\n    width: 100%;\n    height: 1px;\n    content: '';\n    background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n  }\n\n  /* if descriptionWrap--inline exists, move pseudo divider to wrapper */\n  & .ActionListItem-descriptionWrap--inline {\n    &::before {\n      position: absolute;\n      top: calc(-1 * var(--actionListContent-paddingBlock));\n      display: block;\n      width: 100%;\n      height: var(--borderWidth-thin);\n      content: '';\n      background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n    }\n\n    /* unset the default label pseudo */\n    & .ActionListItem-label::before {\n      content: unset;\n    }\n  }\n\n  /* hide divider if item is active */\n  & .ActionListItem--navActive {\n    & .ActionListItem-label::before,\n    & + .ActionListItem .ActionListItem-label::before {\n      visibility: hidden;\n    }\n  }\n}\n\n/* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n.ActionListItem:first-of-type .ActionListItem-label::before,\n.ActionList-sectionDivider + .ActionListItem .ActionListItem-label::before {\n  visibility: hidden;\n}\n\n/* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline::before,\n.ActionList-sectionDivider + .ActionListItem .ActionListItem-descriptionWrap--inline::before {\n  visibility: hidden;\n}\n\n/* ActionList::Item */\n\n.ActionListItem {\n  position: relative;\n  list-style: none;\n  background-color: var(--control-transparent-bgColor-rest);\n  border-radius: var(--borderRadius-medium);\n\n  /* state */\n\n  &:hover,\n  &:active {\n    cursor: pointer;\n  }\n\n  /* hide dividers  */\n  @media (hover: hover) {\n    &:hover {\n      & .ActionListItem-label::before,\n      & + .ActionListItem .ActionListItem-label::before {\n        visibility: hidden;\n      }\n\n      & .ActionListItem-descriptionWrap--inline::before,\n      & + .ActionListItem .ActionListItem-descriptionWrap--inline::before {\n        visibility: hidden;\n      }\n    }\n  }\n\n  /* Make sure that the first visible item isn't a divider */\n  &[hidden] + .ActionList-sectionDivider {\n    display: none;\n  }\n\n  /* collapse styles here */\n  &.ActionListItem--hasSubItem {\n    /* first child */\n    & > .ActionListContent {\n      z-index: 1;\n\n      @media (hover: hover) {\n        &:hover {\n          background-color: var(--control-transparent-bgColor-hover);\n        }\n      }\n\n      &:active {\n        background-color: var(--control-transparent-bgColor-active);\n      }\n    }\n  }\n\n  /* only hover li without list as children */\n  &:not(.ActionListItem--hasSubItem),\n   /* target contents of first child li if sub-item (li wraps item label + nested ul) */\n  &.ActionListItem--hasSubItem > .ActionListContent {\n    @media (hover: hover) {\n      &:hover {\n        cursor: pointer;\n        background-color: var(--control-transparent-bgColor-hover);\n\n        &:not(.ActionListItem--navActive, :focus-visible) {\n          /* Support for \"Windows high contrast mode\" */\n          outline: solid var(--borderWidth-thin) transparent;\n          outline-offset: calc(-1 * var(--borderWidth-thin));\n          box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n        }\n      }\n    }\n\n    &:active {\n      background: var(--control-transparent-bgColor-active);\n\n      &:not(.ActionListItem--navActive) {\n        /* Support for \"Windows high contrast mode\" https:sarahmhigley.com/writing/whcm-quick-tips/ */\n        outline: solid var(--borderWidth-thin) transparent;\n        outline-offset: calc(-1 * var(--borderWidth-thin));\n        box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n      }\n\n      & .ActionListItem-label::before,\n      & + .ActionListItem .ActionListItem-label::before {\n        visibility: hidden;\n      }\n    }\n  }\n\n  /* Autocomplete [aria-selected] items */\n\n  &[aria-selected='true'] {\n    font-weight: var(--base-text-weight-normal);\n    background: var(--control-transparent-bgColor-selected);\n\n    @media (hover: hover) {\n      &:hover {\n        background-color: var(--control-transparent-bgColor-hover);\n      }\n    }\n\n    &::before,\n    & + .ActionListItem::before {\n      visibility: hidden;\n    }\n\n    /* blue accent line */\n\n    &::after {\n      @mixin activeIndicatorLine calc(-1 * var(--base-size-4));\n    }\n  }\n\n  /* active state [aria-current] */\n\n  &.ActionListItem--navActive {\n    /* provides a visual indication of the current item for Windows high-contrast mode */\n    outline: 2px solid transparent;\n\n    &:not(.ActionListItem--subItem) {\n      & .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n    }\n\n    &:not(.ActionListItem--danger) {\n      background: var(--control-transparent-bgColor-selected);\n\n      @media (hover: hover) {\n        &:hover {\n          background-color: var(--control-transparent-bgColor-hover);\n        }\n      }\n\n      &::before,\n      & + .ActionListItem::before {\n        visibility: hidden;\n      }\n\n      /* blue accent line  */\n      &::after {\n        @mixin activeIndicatorLine;\n      }\n    }\n  }\n\n  /* disabled */\n\n  &.ActionListItem--disabled,\n  &[aria-disabled='true'] {\n    & .ActionListContent {\n      & .ActionListItem-label,\n      & .ActionListItem-description {\n        color: var(--control-fgColor-disabled);\n      }\n\n      & .ActionListItem-visual {\n        fill: var(--control-fgColor-disabled);\n      }\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        cursor: not-allowed;\n        background-color: transparent;\n      }\n    }\n  }\n\n  /* variants */\n\n  /* danger */\n  &.ActionListItem--danger {\n    & .ActionListItem-label {\n      color: var(--control-danger-fgColor-rest);\n    }\n\n    & .ActionListItem-visual {\n      color: var(--control-danger-fgColor-rest);\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        background: var(--control-danger-bgColor-hover);\n\n        & .ActionListItem-label,\n        & .ActionListItem-visual,\n        & .ActionListItem-description {\n          color: var(--control-danger-fgColor-hover);\n        }\n      }\n    }\n\n    & .ActionListContent {\n      &:active {\n        background: var(--control-danger-bgColor-active);\n\n        & .ActionListItem-label,\n        & .ActionListItem-visual,\n        & .ActionListItem-description {\n          color: var(--control-danger-fgColor-hover);\n        }\n      }\n    }\n  }\n}\n\n/* button or a href */\n.ActionListContent {\n  position: relative;\n  display: grid;\n  width: 100%;\n  padding-block: var(--actionListContent-paddingBlock);\n  padding-inline: var(--control-medium-paddingInline-condensed);\n  color: var(--control-fgColor-rest);\n  text-align: left;\n  user-select: none;\n  background-color: transparent;\n  border: none;\n  border-radius: var(--borderRadius-medium);\n  transition: background 33.333ms linear;\n  touch-action: manipulation;\n  -webkit-tap-highlight-color: transparent;\n  grid-template-rows: min-content;\n  grid-template-areas: 'leadingAction leadingVisual label trailingVisual trailingAction';\n  grid-template-columns: min-content min-content minmax(0, auto) min-content min-content;\n  align-items: start;\n\n  /* column-gap persists with empty grid-areas, margin applies only when children exist */\n  & > :not(:last-child) {\n    margin-right: var(--control-medium-gap);\n  }\n\n  /* state */\n\n  &:hover {\n    text-decoration: none;\n  }\n\n  /* disabled */\n  &[aria-disabled='true'] {\n    & .ActionListItem-label,\n    & .ActionListItem-description {\n      color: var(--control-fgColor-disabled);\n    }\n\n    & .ActionListItem-visual {\n      fill: var(--control-fgColor-disabled);\n    }\n\n    @media (hover: hover) {\n      &:hover {\n        cursor: not-allowed;\n        background-color: transparent;\n      }\n    }\n  }\n\n  /* collapsible item [aria-expanded] */\n\n  /* nesting (single level)\n   target items inside expanded subgroups */\n  &[aria-expanded] {\n    & + .ActionList--subGroup {\n      @media screen and (prefers-reduced-motion: no-preference) {\n        transition: opacity 160ms cubic-bezier(0.25, 1, 0.5, 1), transform 160ms cubic-bezier(0.25, 1, 0.5, 1);\n      }\n\n      & .ActionListContent {\n        padding-left: var(--base-size-24);\n      }\n    }\n\n    /* has 16px leading visual */\n    &.ActionListContent--visual16 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-32);\n      }\n    }\n\n    /* has 20px leading visual */\n    &.ActionListContent--visual20 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-36);\n      }\n    }\n\n    /* has 24px leading visual */\n    &.ActionListContent--visual24 + .ActionList--subGroup {\n      & .ActionListContent {\n        padding-left: var(--base-size-40);\n      }\n    }\n  }\n\n  &[aria-expanded='true'] {\n    & .ActionListItem-collapseIcon {\n      transition: transform 120ms linear;\n      transform: scaleY(-1);\n    }\n\n    & + .ActionList--subGroup {\n      height: auto;\n      overflow: visible;\n      visibility: visible;\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    &.ActionListContent--hasActiveSubItem {\n      & > .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n    }\n  }\n\n  &[aria-expanded='false'] {\n    & .ActionListItem-collapseIcon {\n      transition: transform 120ms linear;\n      transform: scaleY(1);\n    }\n\n    & + .ActionList--subGroup {\n      height: 0;\n      overflow: hidden;\n      visibility: hidden;\n      opacity: 0;\n      transform: translateY(calc(-1 * var(--base-size-16)));\n    }\n\n    /* show active indicator on parent collapse if child is active */\n    &.ActionListContent--hasActiveSubItem {\n      background: var(--control-transparent-bgColor-selected);\n\n      & .ActionListItem-label {\n        font-weight: var(--base-text-weight-semibold);\n      }\n\n      &::before,\n      & + .ActionListItem::before {\n        visibility: hidden;\n      }\n\n      /* blue accent line */\n      &::after {\n        @mixin activeIndicatorLine;\n      }\n    }\n  }\n\n  /*\n  * checkbox item [aria-checked]\n  * listbox [aria-selected]\n  */\n  &[aria-checked='true'],\n  &[aria-selected='true'] {\n    /* multiselect checkmark */\n    & .ActionListItem-multiSelectCheckmark {\n      visibility: visible;\n      opacity: 1;\n      transition: visibility 0 linear 0, opacity 50ms;\n    }\n\n    /* singleselect checkmark */\n    & .ActionListItem-singleSelectCheckmark {\n      visibility: visible;\n\n      @media screen and (prefers-reduced-motion: no-preference) {\n        animation: checkmarkIn 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;\n        @keyframes checkmarkIn {\n          from {\n            clip-path: inset(16px 0 0 0);\n          }\n\n          to {\n            clip-path: inset(0 0 0 0);\n          }\n        }\n      }\n    }\n\n    /* checkbox */\n    & .ActionListItem-multiSelectIcon {\n      & .ActionListItem-multiSelectIconRect {\n        fill: var(--control-checked-bgColor-rest);\n        stroke: var(--control-checked-bgColor-rest);\n        stroke-width: var(--borderWidth-thin, 1px);\n      }\n\n      & .ActionListItem-multiSelectCheckmark {\n        fill: var(--fgColor-onEmphasis);\n      }\n    }\n  }\n\n  &[aria-checked='false'],\n  &[aria-selected='false'] {\n    /* multiselect checkmark */\n    & .ActionListItem-multiSelectCheckmark {\n      visibility: hidden;\n      opacity: 0;\n      transition: visibility 0 linear 50ms, opacity 50ms;\n    }\n\n    /* singleselect checkmark */\n    & .ActionListItem-singleSelectCheckmark {\n      visibility: hidden;\n      transition: visibility 0s linear 200ms;\n      clip-path: inset(16px 0 0 0);\n\n      @media screen and (prefers-reduced-motion: no-preference) {\n        animation: checkmarkOut 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;\n        @keyframes checkmarkOut {\n          from {\n            clip-path: inset(0 0 0 0);\n          }\n\n          to {\n            clip-path: inset(16px 0 0 0);\n          }\n        }\n      }\n    }\n\n    /* checkbox */\n    & .ActionListItem-multiSelectIcon {\n      & .ActionListItem-multiSelectIconRect {\n        fill: var(--bgColor-default);\n        stroke: var(--control-borderColor-rest);\n        stroke-width: var(--borderWidth-thin, 1px);\n      }\n    }\n\n    & .ActionListItem-multiSelectIconRect {\n      fill: var(--bgColor-default);\n      border: var(--borderWidth-thin, 1px) solid var(--control-borderColor-rest);\n    }\n  }\n\n  /* sizes */\n\n  &.ActionListContent--sizeLarge {\n    --actionListContent-paddingBlock: var(--control-large-paddingBlock);\n  }\n\n  &.ActionListContent--sizeXLarge {\n    --actionListContent-paddingBlock: var(--control-xlarge-paddingBlock);\n  }\n\n  /* On pointer:coarse (mobile), all list items are large */\n  @media (pointer: coarse) {\n    --actionListContent-paddingBlock: var(--control-large-paddingBlock);\n  }\n\n  &.ActionListContent--blockDescription {\n    /* if leading/trailing visual, align with first line of content */\n    & .ActionListItem-visual {\n      place-self: start;\n    }\n  }\n}\n\n/* place children on grid */\n\n.ActionListItem-action--leading {\n  grid-area: leadingAction;\n}\n\n.ActionListItem-visual--leading {\n  grid-area: leadingVisual;\n}\n\n.ActionListItem-visual--trailing {\n  grid-area: trailingVisual;\n}\n\n.ActionListItem-action--trailing {\n  grid-area: trailingAction;\n}\n\n/* wrapper span\n default block */\n.ActionListItem-descriptionWrap {\n  grid-area: label;\n  display: flex;\n  flex-direction: column;\n  gap: var(--base-size-4);\n\n  & .ActionListItem-label {\n    font-weight: var(--base-text-weight-semibold);\n  }\n}\n\n/* inline */\n.ActionListItem-descriptionWrap--inline {\n  position: relative;\n  flex-direction: row;\n  align-items: baseline;\n  gap: var(--base-size-8);\n}\n\n/* description */\n.ActionListItem-description {\n  font-size: var(--text-body-size-small);\n  font-weight: var(--base-text-weight-normal);\n  line-height: var(--text-body-lineHeight-small);\n  color: var(--fgColor-muted);\n}\n\n/* helper for grid alignment with multi-line content\n span wrapping svg or text */\n.ActionListItem-visual,\n.ActionListItem-action {\n  display: flex;\n  min-height: var(--control-medium-lineBoxHeight);\n  color: var(--fgColor-muted);\n  pointer-events: none;\n  fill: var(--fgColor-muted);\n  align-items: center;\n}\n\n/* text */\n.ActionListItem-label {\n  position: relative;\n  font-size: var(--text-body-size-medium);\n  font-weight: var(--base-text-weight-normal);\n  line-height: var(--text-body-lineHeight-medium);\n  color: var(--fgColor-default);\n  grid-area: label;\n}\n\n.ActionListItem-label--truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/* nested lists (only supports 1 level currently)\n target ActionListItem--subItem for padding-left to maintain :active :after state */\n\n.ActionListItem--subItem > .ActionListContent > .ActionListItem-label {\n  font-size: var(--text-body-size-small);\n  line-height: var(--text-body-lineHeight-small);\n}\n\n/* trailing action icon button */\n\n.ActionListItem--withActions {\n  display: flex;\n  flex-wrap: nowrap;\n  align-items: center;\n}\n\n.ActionListItem-trailingAction {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n/* show trailing action button on hover */\n\n.ActionListItem--trailingActionHover {\n  & .ActionListItem-trailingAction {\n    visibility: hidden;\n  }\n\n  &:hover,\n  &:focus-within {\n    & .ActionListItem-trailingAction {\n      visibility: visible;\n    }\n  }\n}\n\n/* ActionList::Divider */\n\n.ActionList-sectionDivider {\n  /* with children */\n  &:not(:empty) {\n    display: flex;\n    padding-inline: var(--actionListContent-paddingBlock);\n    padding-block: var(--base-size-8);\n    font-size: var(--text-body-size-small);\n    line-height: var(--text-body-lineHeight-small);\n    font-weight: var(--base-text-weight-semibold);\n    color: var(--fgColor-muted);\n    flex-direction: column;\n  }\n\n  /* no children */\n  &:empty {\n    display: block;\n    height: var(--borderWidth-thin);\n    padding: 0;\n    margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));\n    margin-block-end: var(--base-size-8);\n    margin-inline: calc(-1 * var(--base-size-8));\n    list-style: none;\n    background: var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n    border: 0;\n  }\n\n  & .ActionList-sectionDivider-title {\n    font-size: var(--text-body-size-small);\n    font-weight: var(--base-text-weight-semibold);\n    color: var(--fgColor-muted);\n  }\n}\n\n.ActionList-sectionDivider--filled {\n  margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));\n  margin-block-end: var(--base-size-8);\n  margin-inline: calc(-1 * var(--base-size-8));\n  background: var(--bgColor-muted);\n  border-top: solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n  border-bottom: solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));\n\n  /* if no children, treat as divider */\n  &:empty {\n    height: var(--base-size-8);\n    box-sizing: border-box;\n  }\n\n  &:first-child {\n    margin-block-start: 0;\n  }\n}\n","/* active indicator line for navlist items */\n@define-mixin activeIndicatorLine $padding-left: calc(-1 * var(--base-size-8)) {\n  position: absolute;\n  top: calc(50% - 12px);\n  left: $padding-left;\n  width: var(--base-size-4);\n  height: var(--base-size-24);\n  content: '';\n  background: var(--borderColor-accent-emphasis);\n  border-radius: var(--borderRadius-medium);\n}\n"]}
         
     | 
| 
         @@ -255,7 +255,8 @@ 
     | 
|
| 
       255 
255 
     | 
    
         
             
                    background: var(--control-danger-bgColor-hover);
         
     | 
| 
       256 
256 
     | 
    
         | 
| 
       257 
257 
     | 
    
         
             
                    & .ActionListItem-label,
         
     | 
| 
       258 
     | 
    
         
            -
                    & .ActionListItem-visual 
     | 
| 
      
 258 
     | 
    
         
            +
                    & .ActionListItem-visual,
         
     | 
| 
      
 259 
     | 
    
         
            +
                    & .ActionListItem-description {
         
     | 
| 
       259 
260 
     | 
    
         
             
                      color: var(--control-danger-fgColor-hover);
         
     | 
| 
       260 
261 
     | 
    
         
             
                    }
         
     | 
| 
       261 
262 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -266,7 +267,8 @@ 
     | 
|
| 
       266 
267 
     | 
    
         
             
                    background: var(--control-danger-bgColor-active);
         
     | 
| 
       267 
268 
     | 
    
         | 
| 
       268 
269 
     | 
    
         
             
                    & .ActionListItem-label,
         
     | 
| 
       269 
     | 
    
         
            -
                    & .ActionListItem-visual 
     | 
| 
      
 270 
     | 
    
         
            +
                    & .ActionListItem-visual,
         
     | 
| 
      
 271 
     | 
    
         
            +
                    & .ActionListItem-description {
         
     | 
| 
       270 
272 
     | 
    
         
             
                      color: var(--control-danger-fgColor-hover);
         
     | 
| 
       271 
273 
     | 
    
         
             
                    }
         
     | 
| 
       272 
274 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -60,7 +60,8 @@ module Primer 
     | 
|
| 
       60 
60 
     | 
    
         
             
                  # @!parse
         
     | 
| 
       61 
61 
     | 
    
         
             
                  #   # Adds an item to the list.
         
     | 
| 
       62 
62 
     | 
    
         
             
                  #   #
         
     | 
| 
       63 
     | 
    
         
            -
                  #   # @param  
     | 
| 
      
 63 
     | 
    
         
            +
                  #   # @param component_klass [Class] The class to use instead of the default <%= link_to_component(Primer::Alpha::ActionList::Item) %>
         
     | 
| 
      
 64 
     | 
    
         
            +
                  #   # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
       64 
65 
     | 
    
         
             
                  #   def with_item(**system_arguments, &block)
         
     | 
| 
       65 
66 
     | 
    
         
             
                  #   end
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
         @@ -71,7 +72,20 @@ module Primer 
     | 
|
| 
       71 
72 
     | 
    
         
             
                  #   def with_divider(**system_arguments, &block)
         
     | 
| 
       72 
73 
     | 
    
         
             
                  #   end
         
     | 
| 
       73 
74 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
                  #  
     | 
| 
      
 75 
     | 
    
         
            +
                  # @!parse
         
     | 
| 
      
 76 
     | 
    
         
            +
                  #   # Adds an avatar item to the list. Avatar items are a convenient way to accessibly add an item with a leading avatar image.
         
     | 
| 
      
 77 
     | 
    
         
            +
                  #   #
         
     | 
| 
      
 78 
     | 
    
         
            +
                  #   # @param src [String] The source url of the avatar image.
         
     | 
| 
      
 79 
     | 
    
         
            +
                  #   # @param username [String] The username associated with the avatar.
         
     | 
| 
      
 80 
     | 
    
         
            +
                  #   # @param full_name [String] Optional. The user's full name.
         
     | 
| 
      
 81 
     | 
    
         
            +
                  #   # @param full_name_scheme [Symbol] Optional. How to display the user's full name. <%= one_of(Primer::Alpha::ActionList::Item::DESCRIPTION_SCHEME_OPTIONS) %>
         
     | 
| 
      
 82 
     | 
    
         
            +
                  #   # @param component_klass [Class] The class to use instead of the default <%= link_to_component(Primer::Alpha::ActionList::Item) %>
         
     | 
| 
      
 83 
     | 
    
         
            +
                  #   # @param avatar_arguments [Hash] Optional. The arguments accepted by <%= link_to_component(Primer::Beta::Avatar) %>
         
     | 
| 
      
 84 
     | 
    
         
            +
                  #   # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
      
 85 
     | 
    
         
            +
                  #   def with_avatar_item(src:, username:, full_name: nil, full_name_scheme: Primer::Alpha::ActionList::Item::DEFAULT_DESCRIPTION_SCHEME, component_klass: ActionList::Item, avatar_arguments: {}, **system_arguments, &block)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  #   end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                  # Items. Items can be individual items, avatar items, or dividers. See the documentation for `#with_item`, `#with_divider`, and `#with_avatar_item` respectively for more information.
         
     | 
| 
       75 
89 
     | 
    
         
             
                  #
         
     | 
| 
       76 
90 
     | 
    
         
             
                  renders_many :items, types: {
         
     | 
| 
       77 
91 
     | 
    
         
             
                    item: {
         
     | 
| 
         @@ -84,8 +98,18 @@ module Primer 
     | 
|
| 
       84 
98 
     | 
    
         
             
                      as: :item
         
     | 
| 
       85 
99 
     | 
    
         
             
                    },
         
     | 
| 
       86 
100 
     | 
    
         | 
| 
      
 101 
     | 
    
         
            +
                    avatar_item: {
         
     | 
| 
      
 102 
     | 
    
         
            +
                      renders: lambda { |**system_arguments|
         
     | 
| 
      
 103 
     | 
    
         
            +
                        build_avatar_item(**system_arguments).tap do |item|
         
     | 
| 
      
 104 
     | 
    
         
            +
                          will_add_item(item)
         
     | 
| 
      
 105 
     | 
    
         
            +
                        end
         
     | 
| 
      
 106 
     | 
    
         
            +
                      },
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                      as: :avatar_item
         
     | 
| 
      
 109 
     | 
    
         
            +
                    },
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
       87 
111 
     | 
    
         
             
                    divider: {
         
     | 
| 
       88 
     | 
    
         
            -
                      renders: Divider,
         
     | 
| 
      
 112 
     | 
    
         
            +
                      renders: ActionList::Divider,
         
     | 
| 
       89 
113 
     | 
    
         
             
                      as: :divider
         
     | 
| 
       90 
114 
     | 
    
         
             
                    }
         
     | 
| 
       91 
115 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -146,8 +170,14 @@ module Primer 
     | 
|
| 
       146 
170 
     | 
    
         
             
                    @system_arguments[:"aria-describedby"] = heading.subtitle_id if heading.subtitle?
         
     | 
| 
       147 
171 
     | 
    
         
             
                  end
         
     | 
| 
       148 
172 
     | 
    
         | 
| 
       149 
     | 
    
         
            -
                  #  
     | 
| 
       150 
     | 
    
         
            -
                   
     | 
| 
      
 173 
     | 
    
         
            +
                  # Builds a new item but does not add it to the list. Use this method
         
     | 
| 
      
 174 
     | 
    
         
            +
                  # instead of the `#with_item` slot if you need to render an item outside
         
     | 
| 
      
 175 
     | 
    
         
            +
                  # the context of a list, eg. if rendering additional items to append to
         
     | 
| 
      
 176 
     | 
    
         
            +
                  # an existing list, perhaps via a separate HTTP request.
         
     | 
| 
      
 177 
     | 
    
         
            +
                  #
         
     | 
| 
      
 178 
     | 
    
         
            +
                  # @param component_klass [Class] The class to use instead of the default <%= link_to_component(Primer::Alpha::ActionList::Item) %>
         
     | 
| 
      
 179 
     | 
    
         
            +
                  # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
      
 180 
     | 
    
         
            +
                  def build_item(component_klass: ActionList::Item, **system_arguments)
         
     | 
| 
       151 
181 
     | 
    
         
             
                    # rubocop:disable Style/IfUnlessModifier
         
     | 
| 
       152 
182 
     | 
    
         
             
                    if single_select? && system_arguments[:active] && items.count(&:active?).positive?
         
     | 
| 
       153 
183 
     | 
    
         
             
                      raise ArgumentError, "only a single item may be active when select_variant is set to :single"
         
     | 
| 
         @@ -159,7 +189,32 @@ module Primer 
     | 
|
| 
       159 
189 
     | 
    
         
             
                      system_arguments[:classes]
         
     | 
| 
       160 
190 
     | 
    
         
             
                    )
         
     | 
| 
       161 
191 
     | 
    
         | 
| 
       162 
     | 
    
         
            -
                     
     | 
| 
      
 192 
     | 
    
         
            +
                    component_klass.new(list: self, **system_arguments)
         
     | 
| 
      
 193 
     | 
    
         
            +
                  end
         
     | 
| 
      
 194 
     | 
    
         
            +
             
     | 
| 
      
 195 
     | 
    
         
            +
                  # Builds a new avatar item but does not add it to the list. Avatar items
         
     | 
| 
      
 196 
     | 
    
         
            +
                  # are a convenient way to accessibly add an item with a leading avatar
         
     | 
| 
      
 197 
     | 
    
         
            +
                  # image. Use this method instead of the `#with_avatar_item` slot if you
         
     | 
| 
      
 198 
     | 
    
         
            +
                  # need to render an avatar item outside the context of a list, eg. if
         
     | 
| 
      
 199 
     | 
    
         
            +
                  # rendering additional items to append to an existing list, perhaps via
         
     | 
| 
      
 200 
     | 
    
         
            +
                  # a separate HTTP request.
         
     | 
| 
      
 201 
     | 
    
         
            +
                  #
         
     | 
| 
      
 202 
     | 
    
         
            +
                  # @param src [String] The source url of the avatar image.
         
     | 
| 
      
 203 
     | 
    
         
            +
                  # @param username [String] The username associated with the avatar.
         
     | 
| 
      
 204 
     | 
    
         
            +
                  # @param full_name [String] Optional. The user's full name.
         
     | 
| 
      
 205 
     | 
    
         
            +
                  # @param full_name_scheme [Symbol] Optional. How to display the user's full name. <%= one_of(Primer::Alpha::ActionList::Item::DESCRIPTION_SCHEME_OPTIONS) %>
         
     | 
| 
      
 206 
     | 
    
         
            +
                  # @param component_klass [Class] The class to use instead of the default <%= link_to_component(Primer::Alpha::ActionList::Item) %>
         
     | 
| 
      
 207 
     | 
    
         
            +
                  # @param avatar_arguments [Hash] Optional. The arguments accepted by <%= link_to_component(Primer::Beta::Avatar) %>
         
     | 
| 
      
 208 
     | 
    
         
            +
                  # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
      
 209 
     | 
    
         
            +
                  def build_avatar_item(src:, username:, full_name: nil, full_name_scheme: Primer::Alpha::ActionList::Item::DEFAULT_DESCRIPTION_SCHEME, component_klass: ActionList::Item, avatar_arguments: {}, **system_arguments)
         
     | 
| 
      
 210 
     | 
    
         
            +
                    build_item(label: username, description_scheme: full_name_scheme, component_klass: component_klass, **system_arguments).tap do |item|
         
     | 
| 
      
 211 
     | 
    
         
            +
                      item.with_leading_visual_raw_content do
         
     | 
| 
      
 212 
     | 
    
         
            +
                        # no alt text necessary for presentational item
         
     | 
| 
      
 213 
     | 
    
         
            +
                        item.render(Primer::Beta::Avatar.new(src: src, **avatar_arguments, role: :presentation, size: 16))
         
     | 
| 
      
 214 
     | 
    
         
            +
                      end
         
     | 
| 
      
 215 
     | 
    
         
            +
             
     | 
| 
      
 216 
     | 
    
         
            +
                      item.with_description_content(full_name) if full_name
         
     | 
| 
      
 217 
     | 
    
         
            +
                    end
         
     | 
| 
       163 
218 
     | 
    
         
             
                  end
         
     | 
| 
       164 
219 
     | 
    
         | 
| 
       165 
220 
     | 
    
         
             
                  def single_select?
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import  
     | 
| 
      
 1 
     | 
    
         
            +
            import '@oddbird/popover-polyfill';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import type { IncludeFragmentElement } from '@github/include-fragment-element';
         
     | 
| 
       2 
3 
     | 
    
         
             
            type SelectVariant = 'none' | 'single' | 'multiple' | null;
         
     | 
| 
       3 
4 
     | 
    
         
             
            type SelectedItem = {
         
     | 
| 
       4 
5 
     | 
    
         
             
                label: string | null | undefined;
         
     | 
| 
         @@ -15,7 +16,7 @@ export declare class ActionMenuElement extends HTMLElement { 
     | 
|
| 
       15 
16 
     | 
    
         
             
                get dynamicLabel(): boolean;
         
     | 
| 
       16 
17 
     | 
    
         
             
                set dynamicLabel(value: boolean);
         
     | 
| 
       17 
18 
     | 
    
         
             
                get popoverElement(): HTMLElement | null;
         
     | 
| 
       18 
     | 
    
         
            -
                get invokerElement():  
     | 
| 
      
 19 
     | 
    
         
            +
                get invokerElement(): HTMLButtonElement | null;
         
     | 
| 
       19 
20 
     | 
    
         
             
                get invokerLabel(): HTMLElement | null;
         
     | 
| 
       20 
21 
     | 
    
         
             
                get selectedItems(): SelectedItem[];
         
     | 
| 
       21 
22 
     | 
    
         
             
                connectedCallback(): void;
         
     | 
| 
         @@ -17,6 +17,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function ( 
     | 
|
| 
       17 
17 
     | 
    
         
             
            };
         
     | 
| 
       18 
18 
     | 
    
         
             
            var _ActionMenuElement_instances, _ActionMenuElement_abortController, _ActionMenuElement_originalLabel, _ActionMenuElement_inputName, _ActionMenuElement_setDynamicLabel, _ActionMenuElement_updateInput, _ActionMenuElement_isActivationKeydown, _ActionMenuElement_firstItem_get;
         
     | 
| 
       19 
19 
     | 
    
         
             
            import { controller, target } from '@github/catalyst';
         
     | 
| 
      
 20 
     | 
    
         
            +
            import '@oddbird/popover-polyfill';
         
     | 
| 
       20 
21 
     | 
    
         
             
            const menuItemSelectors = ['[role="menuitem"]', '[role="menuitemcheckbox"]', '[role="menuitemradio"]'];
         
     | 
| 
       21 
22 
     | 
    
         
             
            let ActionMenuElement = class ActionMenuElement extends HTMLElement {
         
     | 
| 
       22 
23 
     | 
    
         
             
                constructor() {
         
     | 
| 
         @@ -53,7 +54,8 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement { 
     | 
|
| 
       53 
54 
     | 
    
         
             
                    this.toggleAttribute('data-dynamic-label', value);
         
     | 
| 
       54 
55 
     | 
    
         
             
                }
         
     | 
| 
       55 
56 
     | 
    
         
             
                get popoverElement() {
         
     | 
| 
       56 
     | 
    
         
            -
                     
     | 
| 
      
 57 
     | 
    
         
            +
                    var _a;
         
     | 
| 
      
 58 
     | 
    
         
            +
                    return ((_a = this.invokerElement) === null || _a === void 0 ? void 0 : _a.popoverTargetElement) || null;
         
     | 
| 
       57 
59 
     | 
    
         
             
                }
         
     | 
| 
       58 
60 
     | 
    
         
             
                get invokerElement() {
         
     | 
| 
       59 
61 
     | 
    
         
             
                    var _a;
         
     | 
| 
         @@ -123,7 +125,12 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement { 
     | 
|
| 
       123 
125 
     | 
    
         
             
                        // appears as if hitting enter does nothing. Curiously, clicking instead
         
     | 
| 
       124 
126 
     | 
    
         
             
                        // works fine.
         
     | 
| 
       125 
127 
     | 
    
         
             
                        if (this.selectVariant !== 'multiple') {
         
     | 
| 
       126 
     | 
    
         
            -
                            setTimeout(() => { 
     | 
| 
      
 128 
     | 
    
         
            +
                            setTimeout(() => {
         
     | 
| 
      
 129 
     | 
    
         
            +
                                var _a, _b;
         
     | 
| 
      
 130 
     | 
    
         
            +
                                if ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.matches(':popover-open')) {
         
     | 
| 
      
 131 
     | 
    
         
            +
                                    (_b = this.popoverElement) === null || _b === void 0 ? void 0 : _b.hidePopover();
         
     | 
| 
      
 132 
     | 
    
         
            +
                                }
         
     | 
| 
      
 133 
     | 
    
         
            +
                            });
         
     | 
| 
       127 
134 
     | 
    
         
             
                        }
         
     | 
| 
       128 
135 
     | 
    
         
             
                        // The rest of the code below deals with single/multiple selection behavior, and should not
         
     | 
| 
       129 
136 
     | 
    
         
             
                        // interfere with events fired by menu items whose behavior is specified outside the library.
         
     | 
| 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import {controller, target} from '@github/catalyst'
         
     | 
| 
       2 
     | 
    
         
            -
            import  
     | 
| 
      
 2 
     | 
    
         
            +
            import '@oddbird/popover-polyfill'
         
     | 
| 
      
 3 
     | 
    
         
            +
            import type {IncludeFragmentElement} from '@github/include-fragment-element'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            type SelectVariant = 'none' | 'single' | 'multiple' | null
         
     | 
| 
       5 
6 
     | 
    
         
             
            type SelectedItem = {
         
     | 
| 
         @@ -49,14 +50,14 @@ export class ActionMenuElement extends HTMLElement { 
     | 
|
| 
       49 
50 
     | 
    
         
             
              }
         
     | 
| 
       50 
51 
     | 
    
         | 
| 
       51 
52 
     | 
    
         
             
              get popoverElement(): HTMLElement | null {
         
     | 
| 
       52 
     | 
    
         
            -
                return this. 
     | 
| 
      
 53 
     | 
    
         
            +
                return this.invokerElement?.popoverTargetElement || null
         
     | 
| 
       53 
54 
     | 
    
         
             
              }
         
     | 
| 
       54 
55 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
              get invokerElement():  
     | 
| 
      
 56 
     | 
    
         
            +
              get invokerElement(): HTMLButtonElement | null {
         
     | 
| 
       56 
57 
     | 
    
         
             
                const id = this.querySelector('[role=menu]')?.id
         
     | 
| 
       57 
58 
     | 
    
         
             
                if (!id) return null
         
     | 
| 
       58 
59 
     | 
    
         
             
                for (const el of this.querySelectorAll(`[aria-controls]`)) {
         
     | 
| 
       59 
     | 
    
         
            -
                  if (el.getAttribute('aria-controls') === id) return el as  
     | 
| 
      
 60 
     | 
    
         
            +
                  if (el.getAttribute('aria-controls') === id) return el as HTMLButtonElement
         
     | 
| 
       60 
61 
     | 
    
         
             
                }
         
     | 
| 
       61 
62 
     | 
    
         
             
                return null
         
     | 
| 
       62 
63 
     | 
    
         
             
              }
         
     | 
| 
         @@ -123,7 +124,11 @@ export class ActionMenuElement extends HTMLElement { 
     | 
|
| 
       123 
124 
     | 
    
         
             
                  // appears as if hitting enter does nothing. Curiously, clicking instead
         
     | 
| 
       124 
125 
     | 
    
         
             
                  // works fine.
         
     | 
| 
       125 
126 
     | 
    
         
             
                  if (this.selectVariant !== 'multiple') {
         
     | 
| 
       126 
     | 
    
         
            -
                    setTimeout(() =>  
     | 
| 
      
 127 
     | 
    
         
            +
                    setTimeout(() => {
         
     | 
| 
      
 128 
     | 
    
         
            +
                      if (this.popoverElement?.matches(':popover-open')) {
         
     | 
| 
      
 129 
     | 
    
         
            +
                        this.popoverElement?.hidePopover()
         
     | 
| 
      
 130 
     | 
    
         
            +
                      }
         
     | 
| 
      
 131 
     | 
    
         
            +
                    })
         
     | 
| 
       127 
132 
     | 
    
         
             
                  }
         
     | 
| 
       128 
133 
     | 
    
         | 
| 
       129 
134 
     | 
    
         
             
                  // The rest of the code below deals with single/multiple selection behavior, and should not
         
     | 
| 
         @@ -13,8 +13,69 @@ module Primer 
     | 
|
| 
       13 
13 
     | 
    
         
             
                    # Adds a new item to the list.
         
     | 
| 
       14 
14 
     | 
    
         
             
                    #
         
     | 
| 
       15 
15 
     | 
    
         
             
                    # @param data [Hash] When the menu is used as a form input (see the <%= link_to_component(Primer::Alpha::ActionMenu) %> docs), the label is submitted to the server by default. However, if the `data: { value: }` or `"data-value":` attribute is provided, it will be sent to the server instead.
         
     | 
| 
       16 
     | 
    
         
            -
                    # @param system_arguments [Hash]  
     | 
| 
      
 16 
     | 
    
         
            +
                    # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
       17 
17 
     | 
    
         
             
                    def with_item(data: {}, **system_arguments, &block)
         
     | 
| 
      
 18 
     | 
    
         
            +
                      system_arguments = organize_arguments(data: data, **system_arguments)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                      super(**system_arguments) do |item|
         
     | 
| 
      
 21 
     | 
    
         
            +
                        evaluate_block(item, &block)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      end
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    # Adds an avatar item to the list. Avatar items are a convenient way to accessibly add an item with a leading avatar image.
         
     | 
| 
      
 26 
     | 
    
         
            +
                    #
         
     | 
| 
      
 27 
     | 
    
         
            +
                    # @param src [String] The source url of the avatar image.
         
     | 
| 
      
 28 
     | 
    
         
            +
                    # @param username [String] The username associated with the avatar.
         
     | 
| 
      
 29 
     | 
    
         
            +
                    # @param full_name [String] Optional. The user's full name.
         
     | 
| 
      
 30 
     | 
    
         
            +
                    # @param full_name_scheme [Symbol] Optional. How to display the user's full name. <%= one_of(Primer::Alpha::ActionList::Item::DESCRIPTION_SCHEME_OPTIONS) %>
         
     | 
| 
      
 31 
     | 
    
         
            +
                    # @param data [Hash] When the menu is used as a form input (see the <%= link_to_component(Primer::Alpha::ActionMenu) %> docs), the label is submitted to the server by default. However, if the `data: { value: }` or `"data-value":` attribute is provided, it will be sent to the server instead.
         
     | 
| 
      
 32 
     | 
    
         
            +
                    # @param avatar_arguments [Hash] Optional. The arguments accepted by <%= link_to_component(Primer::Beta::Avatar) %>.
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # @param system_arguments [Hash] These arguments are forwarded to <%= link_to_component(Primer::Alpha::ActionList::Item) %>, or whatever class is passed as the `component_klass` argument.
         
     | 
| 
      
 34 
     | 
    
         
            +
                    def with_avatar_item(src:, username:, full_name: nil, full_name_scheme: Primer::Alpha::ActionList::Item::DEFAULT_DESCRIPTION_SCHEME, data: {}, avatar_arguments: {}, **system_arguments, &block)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      system_arguments = organize_arguments(data: data, **system_arguments)
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                      super(src: src, username: username, full_name: full_name, full_name_scheme: full_name_scheme, avatar_arguments: avatar_arguments, **system_arguments) do |item|
         
     | 
| 
      
 38 
     | 
    
         
            +
                        evaluate_block(item, &block)
         
     | 
| 
      
 39 
     | 
    
         
            +
                      end
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    # @param menu_id [String] ID of the parent menu.
         
     | 
| 
      
 43 
     | 
    
         
            +
                    # @param system_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::ActionList) %>
         
     | 
| 
      
 44 
     | 
    
         
            +
                    def initialize(menu_id:, **system_arguments, &block)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      @menu_id = menu_id
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                      system_arguments[:aria] = merge_aria(
         
     | 
| 
      
 48 
     | 
    
         
            +
                        system_arguments,
         
     | 
| 
      
 49 
     | 
    
         
            +
                        { aria: { labelledby: "#{@menu_id}-button" } }
         
     | 
| 
      
 50 
     | 
    
         
            +
                      )
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                      system_arguments[:role] = :menu
         
     | 
| 
      
 53 
     | 
    
         
            +
                      system_arguments[:scheme] = :inset
         
     | 
| 
      
 54 
     | 
    
         
            +
                      system_arguments[:id] = "#{@menu_id}-list"
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                      super(**system_arguments, &block)
         
     | 
| 
      
 57 
     | 
    
         
            +
                    end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                    private
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                    def evaluate_block(*args, &block)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      # Prevent double renders by using the capture method on the component
         
     | 
| 
      
 63 
     | 
    
         
            +
                      # that originally received the block.
         
     | 
| 
      
 64 
     | 
    
         
            +
                      #
         
     | 
| 
      
 65 
     | 
    
         
            +
                      # Handle blocks that originate from C code such as `&:method` by checking
         
     | 
| 
      
 66 
     | 
    
         
            +
                      # source_location. Such blocks don't allow access to their receiver.
         
     | 
| 
      
 67 
     | 
    
         
            +
                      return unless block&.source_location
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                      block_context = block.binding.receiver
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                      if block_context.class < ActionView::Base
         
     | 
| 
      
 72 
     | 
    
         
            +
                        block_context.capture(*args, &block)
         
     | 
| 
      
 73 
     | 
    
         
            +
                      else
         
     | 
| 
      
 74 
     | 
    
         
            +
                        capture(*args, &block)
         
     | 
| 
      
 75 
     | 
    
         
            +
                      end
         
     | 
| 
      
 76 
     | 
    
         
            +
                    end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                    def organize_arguments(data: {}, **system_arguments)
         
     | 
| 
       18 
79 
     | 
    
         
             
                      content_arguments = system_arguments.delete(:content_arguments) || {}
         
     | 
| 
       19 
80 
     | 
    
         | 
| 
       20 
81 
     | 
    
         
             
                      # rubocop:disable Style/IfUnlessModifier
         
     | 
| 
         @@ -54,39 +115,7 @@ module Primer 
     | 
|
| 
       54 
115 
     | 
    
         
             
                        content_arguments[:disabled] = "" if content_arguments[:tag] == :button
         
     | 
| 
       55 
116 
     | 
    
         
             
                      end
         
     | 
| 
       56 
117 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                       
     | 
| 
       58 
     | 
    
         
            -
                        # Prevent double renders by using the capture method on the component
         
     | 
| 
       59 
     | 
    
         
            -
                        # that originally received the block.
         
     | 
| 
       60 
     | 
    
         
            -
                        #
         
     | 
| 
       61 
     | 
    
         
            -
                        # Handle blocks that originate from C code such as `&:method` by checking
         
     | 
| 
       62 
     | 
    
         
            -
                        # source_location. Such blocks don't allow access to their receiver.
         
     | 
| 
       63 
     | 
    
         
            -
                        if block&.source_location
         
     | 
| 
       64 
     | 
    
         
            -
                          block_context = block.binding.receiver
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                          if block_context.class < ActionView::Base
         
     | 
| 
       67 
     | 
    
         
            -
                            block_context.capture(item, &block)
         
     | 
| 
       68 
     | 
    
         
            -
                          else
         
     | 
| 
       69 
     | 
    
         
            -
                            capture(item, &block)
         
     | 
| 
       70 
     | 
    
         
            -
                          end
         
     | 
| 
       71 
     | 
    
         
            -
                        end
         
     | 
| 
       72 
     | 
    
         
            -
                      end
         
     | 
| 
       73 
     | 
    
         
            -
                    end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                    # @param menu_id [String] ID of the parent menu.
         
     | 
| 
       76 
     | 
    
         
            -
                    # @param system_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::ActionList) %>
         
     | 
| 
       77 
     | 
    
         
            -
                    def initialize(menu_id:, **system_arguments, &block)
         
     | 
| 
       78 
     | 
    
         
            -
                      @menu_id = menu_id
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                      system_arguments[:aria] = merge_aria(
         
     | 
| 
       81 
     | 
    
         
            -
                        system_arguments,
         
     | 
| 
       82 
     | 
    
         
            -
                        { aria: { labelledby: "#{@menu_id}-button" } }
         
     | 
| 
       83 
     | 
    
         
            -
                      )
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                      system_arguments[:role] = :menu
         
     | 
| 
       86 
     | 
    
         
            -
                      system_arguments[:scheme] = :inset
         
     | 
| 
       87 
     | 
    
         
            -
                      system_arguments[:id] = "#{@menu_id}-list"
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                      super(**system_arguments, &block)
         
     | 
| 
      
 118 
     | 
    
         
            +
                      { data: data, **system_arguments, content_arguments: content_arguments }
         
     | 
| 
       90 
119 
     | 
    
         
             
                    end
         
     | 
| 
       91 
120 
     | 
    
         
             
                  end
         
     | 
| 
       92 
121 
     | 
    
         
             
                end
         
     | 
| 
         @@ -383,6 +383,18 @@ module Primer 
     | 
|
| 
       383 
383 
     | 
    
         
             
                    @list.with_divider(**system_arguments, &block)
         
     | 
| 
       384 
384 
     | 
    
         
             
                  end
         
     | 
| 
       385 
385 
     | 
    
         | 
| 
      
 386 
     | 
    
         
            +
                  # Adds an avatar item to the list. Avatar items are a convenient way to accessibly add an item with a leading avatar image.
         
     | 
| 
      
 387 
     | 
    
         
            +
                  #
         
     | 
| 
      
 388 
     | 
    
         
            +
                  # @param src [String] The source url of the avatar image.
         
     | 
| 
      
 389 
     | 
    
         
            +
                  # @param username [String] The username associated with the avatar.
         
     | 
| 
      
 390 
     | 
    
         
            +
                  # @param full_name [String] Optional. The user's full name.
         
     | 
| 
      
 391 
     | 
    
         
            +
                  # @param full_name_scheme [Symbol] Optional. How to display the user's full name.
         
     | 
| 
      
 392 
     | 
    
         
            +
                  # @param avatar_arguments [Hash] Optional. The arguments accepted by <%= link_to_component(Primer::Beta::Avatar) %>.
         
     | 
| 
      
 393 
     | 
    
         
            +
                  # @param system_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::ActionList::Item) %>.
         
     | 
| 
      
 394 
     | 
    
         
            +
                  def with_avatar_item(**system_arguments, &block)
         
     | 
| 
      
 395 
     | 
    
         
            +
                    @list.with_avatar_item(**system_arguments, &block)
         
     | 
| 
      
 396 
     | 
    
         
            +
                  end
         
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       386 
398 
     | 
    
         
             
                  private
         
     | 
| 
       387 
399 
     | 
    
         | 
| 
       388 
400 
     | 
    
         
             
                  def before_render
         
     |