FluentUI: prihodnja usmeritev — Wdx kot vir navdiha
Nazaj: FluentUI (knjižnica oblikovalskega sistema)
Stanje: raven 2 — povsem specificirano, ni del trenutne izvedbe,
brez runtime-odvisnosti od WvdS.Wdx. Ta stran dokumentira namerno
arhitekturno odločitev, da se ne bi znova pojavila v razpravi, ne da bi
bila znana utemeljitev.
Kaj WvdS.Wdx dejansko je
Samostojen paketni sveženj Composer, ki nima zveze z DokuWiki in živi zunaj tega repozitorija (8 paketov, PHP ≥8.3, licenca „proprietary“). Stopnja zrelosti (preverjeno, uveljavitve od 2026-07-06 do 2026-07-08, 61 uveljavitev v 3 dneh — zelo mlada, hitro premikajoča se tarča):
| Paket | Vloga | Zrelost |
|---|---|---|
WvdS.Wdx.Core | Osnovna hierarhija, WdxComponent, naštevni tipi, WdxExpr (le permission() konkreten) | stabilno, majhno |
WvdS.Wdx.Ui | Kontrolniki graditelja Fluent, 1:1 po API DevExpress Blazor (Dx* → Wdx*) | funkcionalno |
WvdS.Wdx.Runtime | Pravi izrisovalnik SSR (voden z deskriptorji, 104 registrirane vrste komponent), razpošiljanje dogodkov, DSL popravkov | deluje, povezano od konca do konca |
WvdS.Wdx.Pwa | Gostitelj dokumenta HTML, prevajalnik manifesta/service-workerja, odjemalski runtime (wdx-runtime.js, 575 vrstic) | deluje, po lastni glavi opisan kot „seme„ za prihodnji generator |
WvdS.Wdx.Theming | Sistem žetonov –wdx-* | povezano |
WvdS.Wdx.Files, WvdS.Wdx.Reporting | Raziskovalec datotek, model poročil | prisotno |
| Že zgrajeno, neposredno relevantno | WdxWorkbenchLayout, WdxTitleBar | se ujema z FluentUI: osnovna postavitev podrobno |
Model dogodkov/izrisovanja: deklaracija → izris SSR z markerji hidracije → odjemalec se hidrira → povratno potovanje dogodka AJAX do strežniškega obravnavalnika, zavarovanega z atributom → seznam popravkov → ciljno posodabljanje DOM (brez ponovnega nalaganja cele strani). Konceptualno naslonjeno na DevExpress Blazor Server, a s SSR PHP + hidracijo vanilla JS namesto SignalR/WASM.
Odločitev: navdih da, integracija med izvajanjem ne
wkfluentui WvdS.Wdx ne vključi kot runtime-odvisnost: brez
mostu Composer/PSR-4, brez mape vendor/, brez gostovanja
WvdS.Wdx.Runtime/WvdS.Wdx.Pwa znotraj DokuWiki. Wdx (in za njim
DevExpress Blazor) služi izključno kot navdih za besednjak in
vedenje. Dejanska izvedba je v slogu DokuWiki:
| Koncept Wdx/DevExpress | DW-nativen ustreznik v wkfluentui |
|---|---|
Deklaracijsko drevo WdxComponent + izrisovalnik deskriptorjev | Neposreden izris PHP prek metode pomočnika (kot obstoječe funkcije premiumnavyivory_render_*) |
Z #[WdxHandler] zavarovan razpošiljalnik dogodkov, povratno potovanje AJAX, DSL popravkov | Lasten model kljuk akcijskih komponent DokuWiki + končne točke lib/exe/ajax.php (že uveljavljen vzorec, npr. končne točke AJAX pri wkacmenu) |
wdx-runtime.js | Vitek lasten vanilla-JS brez koraka gradnje (kot js/nav-flyout.js/js/admin-rail.js) |
Žetoni –wdx-* | Lasten sistem –wk-* pri wkfluentui, glej FluentUI: oblikovalski tokeni |
| „Popravek namesto polnega ponovnega nalaganja“ | Prevzeto kot načelo, a kot lastna majhna funkcija pomočnika JS — brez tujega protokola |
Zakaj ta odločitev: Composer/PSR-4 v vtičniku DokuWiki je za ta
ekosistem neobičajen (zapletenost uvajanja, združljivost ključka exFAT s
količino datotek vendor/ — znane pasti I/O exFAT na tej instanci);
licenca je razglašena kot „proprietary„ in bi jo bilo treba pred vsako
integracijo izrecno razjasniti; premoščanje seje/CSRF med lastnim
gostiteljskim modelom Wdx in varnostnim modelom DokuWiki
(checkSecurityToken(), ACL, časovna usklajenost seje) bi bilo lastno,
nerešeno vprašanje prilagojevalnika; Wdx pa je z 61 uveljavitvami v 3
dneh premikajoča se tarča brez stabilne različice. Čist vtičnik
PHP/CSS/vanilla-JS brez odvisnosti od tujega ogrodja je skladen z vsakim
drugim vtičnikom wvds* v tej kodni bazi in ne nosi nobenega od teh
tveganj.