@praxisjs/router
1.0.6
Patch Changes
- Updated dependencies [2c61a25]
- @praxisjs/decorators@0.7.2
- @praxisjs/jsx@0.3.9
1.0.5
Patch Changes
- Updated dependencies [6c353ba]
- @praxisjs/core@1.2.0
- @praxisjs/decorators@0.7.1
- @praxisjs/jsx@0.3.8
1.0.4
Patch Changes
- Updated dependencies [2b8c768]
- @praxisjs/decorators@0.7.0
- @praxisjs/jsx@0.3.7
1.0.3
Patch Changes
- Updated dependencies [72cd9a8]
- @praxisjs/decorators@0.6.1
- @praxisjs/jsx@0.3.6
1.0.2
Patch Changes
- Updated dependencies [029ef04]
- Updated dependencies [029ef04]
- Updated dependencies [029ef04]
- Updated dependencies [029ef04]
- Updated dependencies [029ef04]
- @praxisjs/core@1.1.0
- @praxisjs/decorators@0.6.0
- @praxisjs/jsx@0.3.5
1.0.1
Patch Changes
dd38adf: Fix
Lazy()not rendering when used inline in route definitions, and add@Routeco-location support in@RouterConfig.Bug fixes:
Lazy(loader)used inline as{ path, component: Lazy(...) }silently rendered nothing — the returned decorator function had no__isLazymarker so the router treated it as a plain component.Lazynow returns a dual-purpose function with__isLazy: truethat works both inline and as a class decorator.@Routecaused a TypeScript error when applied to components whose constructor accepts typed props.
New behavior:
@RouterConfignow accepts classes decorated with@Routedirectly, without wrapping them in a{ path, component }object — the path is read from__routePathautomatically. Both forms can be mixed in the same array:
ts@RouterConfig([ Home, // path comes from @Route('/') About, // path comes from @Route('/about') { path: '/users/:id', component: Lazy(() => import('./pages/UserDetail')) }, ])- Lazy-loaded pages must use
export default class— the loader resolvesmodule.defaultat runtime.
1.0.0
Major Changes
3372878: Migrate all packages from functional APIs to a decorator-first design.
@praxisjs/core- Added
Composableabstract base class for building class-based composables - Removed
resource,createResource,Resource,ResourceStatus,ResourceOptionsfrom public exports — use@Resourcefrom@praxisjs/decoratorsinstead
@praxisjs/motion- Replaced
useMotion,tween,spring,createTransition,Animate,easings,resolveEasingwith@Tweenand@Springdecorators
@praxisjs/di- Replaced
useServiceandcreateScopewith a@Scopedecorator - Renamed exported type
ScopetoScopeTypeto free the name for the new decorator
@praxisjs/fsm- Removed
createMachine— use the@StateMachineand@Transitiondecorators directly
@praxisjs/router- Removed
createRouter,lazy,useRouter,useParams,useQuery,useLocation - Added
@RouterConfig,@Lazy,@InjectRouter,@Params,@Query,@Locationdecorators
@praxisjs/store- Removed
createStore— use the@Storeand@UseStoredecorators directly
@praxisjs/composables- Replaced all
use*composable functions with class-based composables extendingComposable:WindowSize,ScrollPosition,ElementSize,Intersection,Focus,MediaQuery,ColorScheme,Mouse,KeyCombo,Idle,Clipboard,Geolocation,TimeAgo,Pagination
@praxisjs/concurrent- Removed
task,queue,pooland their instance types — use@Task,@Queue,@Pooldecorators instead
- Added
Patch Changes
- Updated dependencies [3372878]
- Updated dependencies [feaa478]
- @praxisjs/core@1.0.0
- @praxisjs/decorators@0.5.0
- @praxisjs/jsx@0.3.4
0.2.5
Patch Changes
- Updated dependencies [ea59035]
- Updated dependencies [d11a10a]
- @praxisjs/decorators@0.4.3
- @praxisjs/core@0.4.2
- @praxisjs/jsx@0.3.3
0.2.4
Patch Changes
fe39901: fix(router): fix infinite recursion in chained
beforeEnterredirectsWhen a
beforeEnterguard returned a string (redirect path),push()called itself recursively with no depth limit. A configuration likeA → B → Awould overflow the call stack.The fix introduces an internal
_redirectDepthparameter that increments on each redirect. Once the limit of 10 hops is reached, navigation is aborted and a warning is logged to the console.Updated dependencies [fe39901]
Updated dependencies [fe39901]
- @praxisjs/decorators@0.4.2
- @praxisjs/core@0.4.1
- @praxisjs/jsx@0.3.2
0.2.3
Patch Changes
- Updated dependencies [966efdc]
- @praxisjs/jsx@0.3.1
- @praxisjs/decorators@0.4.1
0.2.2
Patch Changes
- Updated dependencies [339a97d]
- @praxisjs/jsx@0.3.0
0.2.1
Patch Changes
- Updated dependencies [f52354d]
- @praxisjs/decorators@0.4.0
- @praxisjs/core@0.4.0
- @praxisjs/jsx@0.2.1
0.2.0
Minor Changes
bb0d4f8: Refactor decorator system and component architecture across PraxisJS packages
- Replaced legacy decorator signatures (
constructor,target,propertyKey, method descriptor) with the standard TC39 decorator context API (ClassDecoratorContext,ClassFieldDecoratorContext,ClassMethodDecoratorContext) across@praxisjs/decorators,@praxisjs/store,@praxisjs/concurrent,@praxisjs/router,@praxisjs/motion,@praxisjs/di, and@praxisjs/fsm. - Introduced
StatefulComponentandStatelessComponentas the new base classes, replacing the deprecatedBaseComponent/Function Componentpattern, across@praxisjs/core,@praxisjs/runtime,@praxisjs/devtools, and templates. - Implemented core rendering functionality in
@praxisjs/runtime(mountChildren,mountComponent, reactive scope management) and removed the deprecatedrenderer.ts. - Refactored
@praxisjs/jsxto delegate rendering to@praxisjs/runtimeand improved type safety withflattenChildrenandisComponentutilities. - Updated internal module structure with new
internalexports inpackage.jsonfiles for shared utilities and types. - Removed
experimentalDecorators/emitDecoratorMetadatafromtsconfig.jsonin favor of native decorator support.
- Replaced legacy decorator signatures (
Patch Changes
- Updated dependencies [bb0d4f8]
- @praxisjs/decorators@0.3.0
- @praxisjs/core@0.3.0
- @praxisjs/jsx@0.2.0
- @praxisjs/shared@0.2.0
0.1.1
Patch Changes
- Updated dependencies [f48dbc4]
- @praxisjs/core@0.2.0
0.1.0
Minor Changes
- aaf7dab: Initial beta release
Patch Changes
- Updated dependencies [aaf7dab]
- @praxisjs/core@0.1.0
- @praxisjs/jsx@0.1.0
- @praxisjs/shared@0.1.0