Module:NavboxMobile: Difference between revisions

No edit summary
No edit summary
Line 292: Line 292:


         if args[groupKey] then
         if args[groupKey] then
             -- Add group (heading) row
             -- Render the group (heading)
             local groupRow = addTableRow(tbl)
             local groupRow = addTableRow(tbl)
             local groupCell = groupRow:tag('th')
             local groupCell = groupRow:tag('th')
                 :attr('scope', 'row')
                 :attr('scope', 'row')
                 :addClass('navboxMobile-group-content')
                 :addClass('navboxMobile-group-content')
                 :addClass('navboxMobile-group-level' .. parentLevel)
                 :addClass('navboxMobile-group-level' .. parentLevel) -- Level-specific class
                :attr('data-level', parentLevel) -- Optional attribute for CSS targeting
                 :wikitext(processItem(args[groupKey]))
                 :wikitext(processItem(args[groupKey]))


             -- Add list (content) row
             -- Render the list (content)
             if args[listKey] then
             if args[listKey] then
                 local listRow = addTableRow(tbl)
                 local listRow = addTableRow(tbl)
Line 306: Line 307:
                     :attr('colspan', 2)
                     :attr('colspan', 2)
                     :addClass('navboxMobile-list-content')
                     :addClass('navboxMobile-list-content')
                     :addClass('navboxMobile-list-level' .. parentLevel)
                     :addClass('navboxMobile-list-level' .. parentLevel) -- Apply narrowing styles via class
                     :addClass((i % 2 == 1) and 'navboxMobile-odd' or 'navboxMobile-even')
                     :addClass((i % 2 == 1) and 'navboxMobile-odd' or 'navboxMobile-even') -- Alternate row styling
                     :css('padding', '0 0.25em')
                     :wikitext(processItem(args[listKey], args.nowrapitems))
                    :css('box-shadow', parentLevel == 2 and "inset 5px 0 #fff, inset -5px 0 #fff" or "inset 10px 0 #fff, inset -10px 0 #fff") -- Apply box shadow dynamically


                 if args[listKey] == 'child' then
                 if args[listKey] == 'child' then
                     local newPath = (path ~= "" and path .. "_" or "") .. i
                     local newPath = (path ~= "" and path .. "_" or "") .. i
                     renderListRow(tbl, tostring(newPath), parentLevel + 1)
                     renderListRow(tbl, tostring(newPath), parentLevel + 1)
                else
                    listCell
                        :addClass('hlist')
                        :wikitext(processItem(args[listKey], args.nowrapitems))
                 end
                 end
             end
             end