Coverage for src/lexigram/admin/ui/layouts/__init__.py: 57%

7 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-24 23:31 +0800

1"""Admin layouts for lexigram-admin. 

2 

3This module provides layout components for the admin interface. 

4 

5Layout hierarchy: 

6- HTMLDocument (abstract base) 

7 - BaseLayout (with mixins: CSS, JS, HTMX, Theme) 

8 - AdminLayout (full admin with sidebar) 

9 - StandaloneLayout (simple pages like login/error) 

10""" 

11 

12from __future__ import annotations 

13 

14# Admin layout 

15from lexigram.admin.ui.layouts.admin_layout import ( 

16 AdminLayout, 

17 AdminLayoutConfig, 

18 AdminLayoutContext, 

19 NavItemConfig, 

20 admin_layout, 

21) 

22 

23# Components 

24from lexigram.admin.ui.layouts.components import ( 

25 FooterConfig, 

26 FooterLink, 

27 FooterRenderer, 

28 HeadConfig, 

29 HeaderConfig, 

30 HeaderRenderer, 

31 HeadRenderer, 

32 NavGroup, 

33 NavItem, 

34 ServerToastChannel, 

35 SidebarConfig, 

36 SidebarRenderer, 

37 ToastConfig, 

38 ToastData, 

39 ToastType, 

40 UserInfo, 

41 build_nav_from_resources, 

42 flash_to_toast, 

43) 

44 

45# Standalone layout 

46from lexigram.admin.ui.layouts.standalone_layout import ( 

47 StandaloneLayout, 

48 StandaloneLayoutConfig, 

49 StandaloneLayoutContext, 

50 standalone_layout, 

51) 

52 

53# Widgets 

54from lexigram.admin.ui.widgets import InfolistEntry, InfolistEntryType, InfolistWidget 

55 

56# Tab group 

57# Base classes 

58from lexigram.ui import ( 

59 BaseLayoutConfig, 

60 BaseLayoutContext, 

61 CSSManager, 

62 HTMLDocument, 

63 HTMLDocumentConfig, 

64 JSManager, 

65 LayoutBase, 

66 Tab, 

67 TabGroup, 

68) 

69 

70__all__ = [ # noqa: RUF022 

71 "AdminLayout", 

72 "AdminLayoutConfig", 

73 "AdminLayoutContext", 

74 "LayoutBase", 

75 "BaseLayoutConfig", 

76 "BaseLayoutContext", 

77 "CSSManager", 

78 "FooterConfig", 

79 "FooterLink", 

80 # Components - Footer 

81 "FooterRenderer", 

82 # Base 

83 "HTMLDocument", 

84 "HTMLDocumentConfig", 

85 "InfolistEntry", 

86 "InfolistEntryType", 

87 "InfolistWidget", 

88 "JSManager", 

89 "HeadConfig", 

90 # Components - Head 

91 "HeadRenderer", 

92 "HeaderConfig", 

93 # Components - Header 

94 "HeaderRenderer", 

95 "NavGroup", 

96 "NavItem", 

97 "NavItemConfig", 

98 "SidebarConfig", 

99 # Components - Sidebar 

100 "SidebarRenderer", 

101 "StandaloneLayout", 

102 "StandaloneLayoutConfig", 

103 "StandaloneLayoutContext", 

104 "Tab", 

105 "TabGroup", 

106 "ServerToastChannel", 

107 "ToastConfig", 

108 # Components - Toast 

109 "ToastData", 

110 "ToastType", 

111 "UserInfo", 

112 # Admin layout 

113 "admin_layout", 

114 "build_nav_from_resources", 

115 "flash_to_toast", 

116 # Standalone layout 

117 "standalone_layout", 

118]