FluentUI: prihodnja usmeritev – Wdx kot vir navdiha
Nazaj: FluentUI (knjižnica oblikovalskega sistema)
Zakaj je WvdS.Wdx vzor, ne pa odvisnost: kaj ta paket je, kaj pri njem prepriča in zakaj kljub temu ni vključen med izvajanjem.
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.
Popravek z dne 3. 11. 2026: zavrnitev drevesa deklaracij ne velja več. Zaslone vodimo kot opis – podatke, ki jih izriše wkfluentui –, logika ostane PHP in se veže po imenu. Kje se ta delitev v PHP konča, je za vsako merilo zapisano v odločitvi docs/adr/0002-screens-are-descriptions.md vtičnika. Nespremenjeno ostaja, da izvajalnega okolja Wdx ne vgradimo; razlogi spodaj zanj še naprej veljajo.
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 | Opis zaslona kot podatek (XML kot workbench.xml in sheme obrazcev), ki ga izriše izrisovalnik v jedru wkfluentui – brez paketov Wdx |
Z #[WdxHandler] zavarovan razpošiljalnik dogodkov, povratno potovanje AJAX, DSL popravkov | Ukazi so deklarirani po imenu; en razdelilnik v jedru preveri metodo, varnostni žeton in ACL ter pokliče istoimenski obdelovalec. V cevovod dejanj DokuWiki se vključi, ne nadomesti ga |
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 žetoni |
| »Popravek namesto polnega ponovnega nalaganja« | Strežnik iz istega opisa znova izriše eno območje, majhna funkcija jedra ga vstavi – brez protokola popravkov in brez stanja zaslona na strežniku |
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.