2121 </ div >
2222 < nav class ="sidebar-nav ">
2323< a class ="side-link active " href ="00-index.html "> Home</ a >
24- < div class ="side-group "> < div class ="side-group-title "> Getting Started</ div >
24+ < div class ="side-group collapsed " data-group ="group-0 ">
25+ < button type ="button " class ="side-group-header " data-group-toggle ="group-0 "> < span > Getting Started</ span > < span class ="chevron "> ▼</ span > </ button >
26+ < div class ="side-group-items ">
2527< a class ="side-link " href ="01-installation.html "> Installation</ a >
2628< a class ="side-link " href ="02-configuration.html "> Configuration</ a >
27- </ div >
28- < div class ="side-group "> < div class ="side-group-title "> Core Architecture</ div >
29+ </ div > </ div >
30+ < div class ="side-group collapsed " data-group ="group-1 ">
31+ < button type ="button " class ="side-group-header " data-group-toggle ="group-1 "> < span > Core Architecture</ span > < span class ="chevron "> ▼</ span > </ button >
32+ < div class ="side-group-items ">
2933< a class ="side-link " href ="03-architecture.html "> Kernel & Boot Lifecycle</ a >
3034< a class ="side-link " href ="04-activities-and-intents.html "> Activities & Intents</ a >
3135< a class ="side-link " href ="05-views-and-widgets.html "> Views & Widgets</ a >
3236< a class ="side-link " href ="06-viewmodel-and-state.html "> ViewModel & State</ a >
33- </ div >
34- < div class ="side-group "> < div class ="side-group-title "> Data & Infrastructure</ div >
37+ </ div > </ div >
38+ < div class ="side-group collapsed " data-group ="group-2 ">
39+ < button type ="button " class ="side-group-header " data-group-toggle ="group-2 "> < span > Data & Infrastructure</ span > < span class ="chevron "> ▼</ span > </ button >
40+ < div class ="side-group-items ">
3541< a class ="side-link " href ="07-database-and-doctrine.html "> Database & Doctrine</ a >
3642< a class ="side-link " href ="08-caching-and-redis.html "> Caching & Redis</ a >
37- </ div >
38- < div class ="side-group "> < div class ="side-group-title "> Extensibility</ div >
43+ </ div > </ div >
44+ < div class ="side-group collapsed " data-group ="group-3 ">
45+ < button type ="button " class ="side-group-header " data-group-toggle ="group-3 "> < span > Extensibility</ span > < span class ="chevron "> ▼</ span > </ button >
46+ < div class ="side-group-items ">
3947< a class ="side-link " href ="09-plugins.html "> Plugin System</ a >
4048< a class ="side-link " href ="10-broadcasts.html "> Broadcasts</ a >
41- </ div >
42- < div class ="side-group "> < div class ="side-group-title "> Telegram Integration</ div >
49+ </ div > </ div >
50+ < div class ="side-group collapsed " data-group ="group-4 ">
51+ < button type ="button " class ="side-group-header " data-group-toggle ="group-4 "> < span > Telegram Integration</ span > < span class ="chevron "> ▼</ span > </ button >
52+ < div class ="side-group-items ">
4353< a class ="side-link " href ="11-transport-webhook-and-polling.html "> Webhook & Polling</ a >
4454< a class ="side-link " href ="12-telegram-api-reference.html "> Telegram API Reference</ a >
45- </ div >
46- < div class ="side-group "> < div class ="side-group-title "> Other Topics</ div >
55+ </ div > </ div >
56+ < div class ="side-group collapsed " data-group ="group-5 ">
57+ < button type ="button " class ="side-group-header " data-group-toggle ="group-5 "> < span > Other Topics</ span > < span class ="chevron "> ▼</ span > </ button >
58+ < div class ="side-group-items ">
4759< a class ="side-link " href ="13-localization.html "> Localization (i18n)</ a >
4860< a class ="side-link " href ="14-testing.html "> Testing</ a >
4961< a class ="side-link " href ="15-deployment.html "> Deployment</ a >
5062< a class ="side-link " href ="16-advanced-features.html "> Advanced Features</ a >
51- </ div >
63+ </ div > </ div >
5264</ nav >
5365 </ aside >
5466 < main id ="content " class ="docs-content ">
@@ -60,37 +72,37 @@ <h1 id="aicriontandroid-documentation">Aicrion\Tandroid Documentation</h1>
6072is the recommended learning path.</ p >
6173< h2 id ="getting-started "> Getting Started</ h2 >
6274< ul >
63- < li > < a href ="01-installation.md "> Installation</ a > </ li >
64- < li > < a href ="02-configuration.md "> Configuration</ a > </ li >
75+ < li > < a href ="01-installation.html "> Installation</ a > </ li >
76+ < li > < a href ="02-configuration.html "> Configuration</ a > </ li >
6577</ ul >
6678< h2 id ="core-architecture "> Core Architecture</ h2 >
6779< ul >
68- < li > < a href ="03-architecture.md "> The Kernel and the Boot Lifecycle</ a > </ li >
69- < li > < a href ="04-activities-and-intents.md "> Activities and Intents</ a > </ li >
70- < li > < a href ="05-views-and-widgets.md "> Views and Widgets</ a > </ li >
71- < li > < a href ="06-viewmodel-and-state.md "> ViewModel and State Management</ a > </ li >
80+ < li > < a href ="03-architecture.html "> The Kernel and the Boot Lifecycle</ a > </ li >
81+ < li > < a href ="04-activities-and-intents.html "> Activities and Intents</ a > </ li >
82+ < li > < a href ="05-views-and-widgets.html "> Views and Widgets</ a > </ li >
83+ < li > < a href ="06-viewmodel-and-state.html "> ViewModel and State Management</ a > </ li >
7284</ ul >
7385< h2 id ="data-and-infrastructure "> Data and Infrastructure</ h2 >
7486< ul >
75- < li > < a href ="07-database-and-doctrine.md "> Database and Doctrine</ a > </ li >
76- < li > < a href ="08-caching-and-redis.md "> Caching and Redis</ a > </ li >
87+ < li > < a href ="07-database-and-doctrine.html "> Database and Doctrine</ a > </ li >
88+ < li > < a href ="08-caching-and-redis.html "> Caching and Redis</ a > </ li >
7789</ ul >
7890< h2 id ="extensibility "> Extensibility</ h2 >
7991< ul >
80- < li > < a href ="09-plugins.md "> Plugin System (Package Manager)</ a > </ li >
81- < li > < a href ="10-broadcasts.md "> Broadcasts and System-Wide Events</ a > </ li >
92+ < li > < a href ="09-plugins.html "> Plugin System (Package Manager)</ a > </ li >
93+ < li > < a href ="10-broadcasts.html "> Broadcasts and System-Wide Events</ a > </ li >
8294</ ul >
8395< h2 id ="connecting-to-telegram "> Connecting to Telegram</ h2 >
8496< ul >
85- < li > < a href ="11-transport-webhook-and-polling.md "> Webhook and Polling Modes</ a > </ li >
86- < li > < a href ="12-telegram-api-reference.md "> Complete Telegram API Reference</ a > </ li >
97+ < li > < a href ="11-transport-webhook-and-polling.html "> Webhook and Polling Modes</ a > </ li >
98+ < li > < a href ="12-telegram-api-reference.html "> Complete Telegram API Reference</ a > </ li >
8799</ ul >
88100< h2 id ="other-features "> Other Features</ h2 >
89101< ul >
90- < li > < a href ="13-localization.md "> Localization (i18n)</ a > </ li >
91- < li > < a href ="14-testing.md "> Testing</ a > </ li >
92- < li > < a href ="15-deployment.md "> Deployment: Shared Hosting and VPS</ a > </ li >
93- < li > < a href ="16-advanced-features.md "> Advanced Features: Remote Intents, Guest Mode, Managed Bots</ a > </ li >
102+ < li > < a href ="13-localization.html "> Localization (i18n)</ a > </ li >
103+ < li > < a href ="14-testing.html "> Testing</ a > </ li >
104+ < li > < a href ="15-deployment.html "> Deployment: Shared Hosting and VPS</ a > </ li >
105+ < li > < a href ="16-advanced-features.html "> Advanced Features: Remote Intents, Guest Mode, Managed Bots</ a > </ li >
94106</ ul >
95107< h2 id ="quick-reference "> Quick Reference</ h2 >
96108< table >
@@ -105,52 +117,52 @@ <h2 id="quick-reference">Quick Reference</h2>
105117< tr >
106118< td > < code > Activity</ code > </ td >
107119< td > < code > Activity\BotActivity</ code > </ td >
108- < td > < a href ="04-activities-and-intents.md "> Activities and Intents</ a > </ td >
120+ < td > < a href ="04-activities-and-intents.html "> Activities and Intents</ a > </ td >
109121</ tr >
110122< tr >
111123< td > < code > Intent</ code > / < code > IntentFilter</ code > </ td >
112124< td > < code > Intent\Intent</ code > / < code > Attribute\IntentFilter</ code > </ td >
113- < td > < a href ="04-activities-and-intents.md "> Activities and Intents</ a > </ td >
125+ < td > < a href ="04-activities-and-intents.html "> Activities and Intents</ a > </ td >
114126</ tr >
115127< tr >
116128< td > < code > ActivityManagerService</ code > </ td >
117129< td > < code > Kernel\ActivityManager</ code > </ td >
118- < td > < a href ="03-architecture.md "> The Kernel</ a > </ td >
130+ < td > < a href ="03-architecture.html "> The Kernel</ a > </ td >
119131</ tr >
120132< tr >
121133< td > < code > PackageManagerService</ code > </ td >
122134< td > < code > Package\PackageManager</ code > </ td >
123- < td > < a href ="09-plugins.md "> Plugins</ a > </ td >
135+ < td > < a href ="09-plugins.html "> Plugins</ a > </ td >
124136</ tr >
125137< tr >
126138< td > < code > AndroidManifest.xml</ code > </ td >
127139< td > each plugin's < code > Package\Manifest</ code > </ td >
128- < td > < a href ="09-plugins.md "> Plugins</ a > </ td >
140+ < td > < a href ="09-plugins.html "> Plugins</ a > </ td >
129141</ tr >
130142< tr >
131143< td > < code > View</ code > / < code > Widget</ code > </ td >
132144< td > < code > View\View</ code > / < code > Widget\*</ code > </ td >
133- < td > < a href ="05-views-and-widgets.md "> Views and Widgets</ a > </ td >
145+ < td > < a href ="05-views-and-widgets.html "> Views and Widgets</ a > </ td >
134146</ tr >
135147< tr >
136148< td > < code > androidx.lifecycle.ViewModel</ code > </ td >
137149< td > < code > Kernel\ViewModel\ViewModel</ code > </ td >
138- < td > < a href ="06-viewmodel-and-state.md "> ViewModel</ a > </ td >
150+ < td > < a href ="06-viewmodel-and-state.html "> ViewModel</ a > </ td >
139151</ tr >
140152< tr >
141153< td > < code > BroadcastReceiver</ code > </ td >
142154< td > < code > Attribute\BroadcastFilter</ code > </ td >
143- < td > < a href ="10-broadcasts.md "> Broadcasts</ a > </ td >
155+ < td > < a href ="10-broadcasts.html "> Broadcasts</ a > </ td >
144156</ tr >
145157< tr >
146158< td > Back Stack</ td >
147159< td > < code > Kernel\BackStackStore</ code > </ td >
148- < td > < a href ="03-architecture.md "> The Kernel</ a > </ td >
160+ < td > < a href ="03-architecture.html "> The Kernel</ a > </ td >
149161</ tr >
150162< tr >
151163< td > Navigation Deep Links</ td >
152164< td > < code > Kernel\DeepLinkResolver</ code > </ td >
153- < td > < a href ="04-activities-and-intents.md "> Activities and Intents</ a > </ td >
165+ < td > < a href ="04-activities-and-intents.html "> Activities and Intents</ a > </ td >
154166</ tr >
155167</ tbody >
156168</ table >
@@ -168,11 +180,33 @@ <h2 id="found-a-bug">Found a bug?</h2>
168180< script >
169181( function ( ) {
170182 const r = document . documentElement , t = document . querySelector ( '[data-theme-toggle]' ) ;
171- let d = matchMedia ( '(prefers-color-scheme: dark)' ) . matches ?'dark' :'light' ;
183+ let d = localStorage . getItem ( 'aicrion-theme' ) || ( matchMedia ( '(prefers-color-scheme: dark)' ) . matches ?'dark' :'light' ) ;
172184 r . setAttribute ( 'data-theme' , d ) ;
173- t && t . addEventListener ( 'click' , ( ) => { d = d === 'dark' ?'light' :'dark' ; r . setAttribute ( 'data-theme' , d ) ; } ) ;
185+ t && t . addEventListener ( 'click' , ( ) => {
186+ d = d === 'dark' ?'light' :'dark' ;
187+ r . setAttribute ( 'data-theme' , d ) ;
188+ localStorage . setItem ( 'aicrion-theme' , d ) ;
189+ } ) ;
190+
174191 const s = document . querySelector ( '[data-sidebar]' ) , st = document . querySelector ( '[data-sidebar-toggle]' ) ;
175192 st && st . addEventListener ( 'click' , ( ) => s . classList . toggle ( 'open' ) ) ;
193+
194+ const STORAGE_KEY = 'aicrion-sidebar-groups' ;
195+ let groupState = { } ;
196+ try { groupState = JSON . parse ( localStorage . getItem ( STORAGE_KEY ) || '{}' ) ; } catch ( e ) { }
197+
198+ document . querySelectorAll ( '[data-group-toggle]' ) . forEach ( function ( btn ) {
199+ const id = btn . getAttribute ( 'data-group-toggle' ) ;
200+ const group = btn . closest ( '.side-group' ) ;
201+ if ( Object . prototype . hasOwnProperty . call ( groupState , id ) ) {
202+ group . classList . toggle ( 'collapsed' , groupState [ id ] === true ) ;
203+ }
204+ btn . addEventListener ( 'click' , function ( ) {
205+ const collapsed = group . classList . toggle ( 'collapsed' ) ;
206+ groupState [ id ] = collapsed ;
207+ localStorage . setItem ( STORAGE_KEY , JSON . stringify ( groupState ) ) ;
208+ } ) ;
209+ } ) ;
176210} ) ( ) ;
177211</ script >
178212</ body >
0 commit comments