Module:NavboxMobile: Difference between revisions

No edit summary
No edit summary
Tag: Reverted
Line 468: Line 468:
     if border == 'subgroup' or border == 'child' or border == 'none' then
     if border == 'subgroup' or border == 'child' or border == 'none' then
         tbl
         tbl
             :addClass('navboxMobile-subgroup')
             :addClass('navbox-subgroup') -- Align with desktop naming conventions
             :css('width', '100%')
             :css('width', '100%')
             :css('border-spacing', '0')
             :css('border-spacing', '0')
     else
     else
         tbl
         tbl
             :addClass('navboxMobile-inner')
             :addClass('navbox-inner') -- Align with desktop naming conventions
             :css('background', 'transparent')
             :css('background', 'transparent')
             :css('color', 'inherit')
             :css('color', 'inherit')
Line 525: Line 525:
     res:node(add_navbox_mobile_styles(hiding_templatestyles))
     res:node(add_navbox_mobile_styles(hiding_templatestyles))


     -- Handle wrapping based on border parameter
     -- Align the outer wrapper with desktop structure
    if border == 'none' then
    local navWrapper = mw.html.create('div')
        -- Wrap the table within a navigation div with ARIA attributes
        :attr('role', 'navigation')
        local navWrapper = mw.html.create('div')
         :addClass('navbox') -- Use consistent naming with desktop
            :addClass('navboxMobile-container') -- Add consistent container
            :attr('role', 'navigation')
         if args.title or args.above or (args.group1 and not args.group2) then
            navWrapper:attr(
                'aria-labelledby',
                mw.uri.anchorEncode(args.title or args.above or args.group1)
            )
        else
            navWrapper:attr('aria-label', cfg.aria_label)
        end
        navWrapper:node(tbl)
        res:node(navWrapper)
    elseif border == 'subgroup' or border == 'child' then
        -- Assume this navboxMobile is inside a parent navboxMobile's list cell
        -- Insert closing and opening divs to manage padding
        local subgroupWrapper = mw.html.create('div')
            :addClass('navboxMobile-container') -- Consistent wrapping container
            :node(tbl) -- Add the table as a child


         res:node(subgroupWrapper)
    if args.title or args.above or (args.group1 and not args.group2) then
         navWrapper:attr(
            'aria-labelledby',
            mw.uri.anchorEncode(args.title or args.above or args.group1)
        )
     else
     else
         -- Wrap the table within a navigation div with additional classes and styles
         navWrapper:attr('aria-label', cfg.aria_label)
        local navWrapper = mw.html.create('div')
            :addClass('navboxMobile-container') -- Add consistent container
            :attr('role', 'navigation')
            :addClass('navboxMobile') -- Add appropriate classes
            :cssText(args.bodystyle)
            :cssText(args.style)
            :css('padding', '2px') -- Adjust padding as needed
        if args.title or args.above or (args.group1 and not args.group2) then
            navWrapper:attr(
                'aria-labelledby',
                mw.uri.anchorEncode(args.title or args.above or args.group1)
            )
        else
            navWrapper:attr('aria-label', cfg.aria_label)
        end
        navWrapper:node(tbl)
        res:node(navWrapper)
     end
     end


    -- Add the rendered table to the wrapper
    navWrapper:node(tbl)
    res:node(navWrapper)


     -- Render tracking categories
     -- Render tracking categories
Line 576: Line 548:
     return tostring(res)
     return tostring(res)
end
end


function p.navboxMobile(frame)
function p.navboxMobile(frame)