Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
475.46 KB
MD5: a6657c631700e433c6735d530ae322ef
SHA-1: 078a502884f0496219f46ef7cac4cd0cbcc558b0
SHA-256: 3998e79f1943d942f32ffdd2c0be5c5e667a855a284b0a07d28e942ac3cf133c
Download zip
919.86 KB
MD5: 6705830dad89134d4b9e1c1fc530db2c
SHA-1: 326087ec4fda734087bc75eea583c645055d8cb0
SHA-256: e43869f4775b7c0ca4cd1e4993d228693031fefcb68bf52cecdb91372e2d771e
Release notes
Highlights
- Twig integration: new
{{ sdx('my_theme:hero', {title: 'Hello'}) }}Twig function for embedding SDX components in any Twig-based Drupal theme. No additional modules required. - Framework-agnostic SSR:
sdx_ssrno longer depends onsdx_react. Works with React, Vue, or Svelte, whichever framework plugin is active. - SPA router: new
sdx_routersubmodule with link interception, prefetch on hover, scoped partial page responses, form interception, and confirm form modals. - Vue and Svelte base components:
sdx_vueandsdx_sveltenow ship full base component libraries (templates, usePage composable) matchingsdx_reactparity. - Production-grade SSR server: clustered Node.js (1 worker per CPU), LRU cache with Drupal cache tag purging, circuit breaker, streaming, zero-downtime restart.
New submodules
- sdx_router: SPA navigation for SDX-powered themes. Link interception, prefetch, scoped partial responses, form interception, batch modal support, theme boundary detection.
- sdx_preflight: environment preflight checks and real-time module foundation.
sdx (core)
- Add
sdx()Twig function viaSdxTwigExtensionfor embedding components in Twig themes - Add
SdxAliasDiscoveryservice:@theme:{name}/,@module:{name}/,@sdx/*import aliases for Vite builds - Add
SdxEnvironmentCheckerservice for runtime checks - Expand
ComponentDiscoveryManagerwith cross-extension scanning (modules + themes) - Expand
ComponentPreRenderwith data resolver integration and framework-aware props storage - Improve
DataResolver: simplified API, removed deprecated data sources - Improve
ComponentScaffolder: streamlined generation - Improve setup wizard with better framework and package manager detection
- Migrate all preprocess hooks from .module to PHP 8 attribute-based Hook class
- Remove dead code:
SdxSystemCheckplugin system, annotation classes - Fix DI violations throughout (no more static
\Drupal::calls)
sdx_ssr
- Remove hard dependency on
sdx_react: SSR is now framework-agnostic - Clustered Node.js server (1 worker per CPU, auto-restart, SIGHUP zero-downtime restart)
- LRU render cache with Drupal cache tag index for surgical invalidation
SsrCacheTagInvalidator: entity saves trigger POST/cache/purgeto Node.js- Circuit breaker in PHP: 3 failures result in 30s cooldown via Drupal State API
- Full-page SSR via
/render-pageendpoint with streaming support /healthendpoint with cache stats (size, hits, misses, hitRatio)- Fix hardcoded react/vite node_modules path: now discovers active framework dynamically
sdx_router
- SPA link interception with
X-SDX-Navigateheader - Prefetch on hover via
NavigationStateManager - Scoped partial responses (content/page/full): server declares scope
- Form interception with AJAX batch modal support
- Confirm form modal system for entity delete operations
- Theme boundary crossing detection with full reload fallback
- drupalSettings replacement on navigation
sdx_react
usePagehook with scope-awaremergePageData()(content/page/full/DataProvider)SpaShellcomponent withNavigationStateManagersubscriptionHtmlFragmentcomponent: three rendering modes (ComponentNode[], token string, plain HTML)- Full base component library: form-element, details, table, vertical-tabs, dropbutton, views-view, admin-page, block templates, and more
- Persistent layout support via
_layoutmetadata
sdx_vue / sdx_svelte
- Full base component libraries matching
sdx_reactparity usePagecomposable (Vue) with scope-aware merging- Template auto-discovery for templates/ directory convention
sdx_devel
Reworked developer toolbar and error handling
Upgrade from alpha1
- Run
drush crafter updating - Deprecated data sources removed: use
DataResolverservice SdxSystemCheckplugin system removed: useSdxEnvironmentChecker- Props storage default changed from attribute to script tag