@v-ibe/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/dist/DI/__tests__/scoped-container-dependencies.test.d.ts +1 -0
  4. package/dist/DI/bootstrap.d.ts +18 -0
  5. package/dist/DI/decorators/inject.d.ts +37 -0
  6. package/dist/DI/decorators/inject.js +45 -0
  7. package/dist/DI/decorators/service.d.ts +24 -0
  8. package/dist/DI/decorators/service.js +13 -0
  9. package/dist/DI/di-container.d.ts +53 -0
  10. package/dist/DI/di-container.js +158 -0
  11. package/dist/DI/lifecycle.d.ts +37 -0
  12. package/dist/DI/lifecycle.js +6 -0
  13. package/dist/DI/scoped-container.d.ts +68 -0
  14. package/dist/DI/scoped-container.js +193 -0
  15. package/dist/DI/service-metadata.d.ts +32 -0
  16. package/dist/DI/service-metadata.js +31 -0
  17. package/dist/DI/types.d.ts +4 -0
  18. package/dist/behaviors/__tests__/behavior-system.test.d.ts +1 -0
  19. package/dist/behaviors/behavior-manager.d.ts +60 -0
  20. package/dist/behaviors/behavior-manager.js +131 -0
  21. package/dist/behaviors/behavior-registry.d.ts +68 -0
  22. package/dist/behaviors/behavior-registry.js +105 -0
  23. package/dist/behaviors/constants.d.ts +16 -0
  24. package/dist/behaviors/constants.js +8 -0
  25. package/dist/behaviors/decorators.d.ts +87 -0
  26. package/dist/behaviors/decorators.js +46 -0
  27. package/dist/behaviors/index.d.ts +4 -0
  28. package/dist/components/__tests__/host.test.d.ts +1 -0
  29. package/dist/components/app-tree.d.ts +49 -0
  30. package/dist/components/app-tree.js +122 -0
  31. package/dist/components/base-component.d.ts +85 -0
  32. package/dist/components/base-component.js +438 -0
  33. package/dist/components/decorators/component.d.ts +27 -0
  34. package/dist/components/decorators/component.js +47 -0
  35. package/dist/components/decorators/prop.d.ts +14 -0
  36. package/dist/components/decorators/prop.js +37 -0
  37. package/dist/components/types.d.ts +26 -0
  38. package/dist/core.d.ts +23 -0
  39. package/dist/core.js +8 -0
  40. package/dist/custom-components/__tests__/for.test.d.ts +1 -0
  41. package/dist/custom-components/__tests__/show.test.d.ts +1 -0
  42. package/dist/custom-components/for.d.ts +58 -0
  43. package/dist/custom-components/for.js +313 -0
  44. package/dist/custom-components/index.d.ts +2 -0
  45. package/dist/custom-components/show.d.ts +78 -0
  46. package/dist/custom-components/show.js +88 -0
  47. package/dist/data-management/cache/cache-invalidate.decorator.d.ts +35 -0
  48. package/dist/data-management/cache/cache-invalidate.decorator.js +21 -0
  49. package/dist/data-management/cache/cache-metadata.d.ts +15 -0
  50. package/dist/data-management/cache/cache-provider.interface.d.ts +67 -0
  51. package/dist/data-management/cache/cache-tags.decorator.d.ts +52 -0
  52. package/dist/data-management/cache/cache-tags.decorator.js +13 -0
  53. package/dist/data-management/cache/cache-update.decorator.d.ts +28 -0
  54. package/dist/data-management/cache/cache-update.decorator.js +21 -0
  55. package/dist/data-management/cache/cache.decorator.d.ts +28 -0
  56. package/dist/data-management/cache/cache.decorator.js +13 -0
  57. package/dist/data-management/cache/index.d.ts +11 -0
  58. package/dist/data-management/cache/local-storage-cache.d.ts +40 -0
  59. package/dist/data-management/cache/local-storage-cache.js +268 -0
  60. package/dist/data-management/cache/memory-cache.d.ts +37 -0
  61. package/dist/data-management/cache/memory-cache.js +149 -0
  62. package/dist/data-management/cache/session-storage-cache.d.ts +35 -0
  63. package/dist/data-management/cache/session-storage-cache.js +242 -0
  64. package/dist/data-management/cache/ttl.decorator.d.ts +31 -0
  65. package/dist/data-management/cache/ttl.decorator.js +34 -0
  66. package/dist/data-management/decorators/consume.d.ts +29 -0
  67. package/dist/data-management/decorators/consume.js +28 -0
  68. package/dist/data-management/decorators/id.d.ts +28 -0
  69. package/dist/data-management/decorators/id.js +19 -0
  70. package/dist/data-management/decorators/model.d.ts +48 -0
  71. package/dist/data-management/decorators/model.js +24 -0
  72. package/dist/data-management/decorators/prop.d.ts +43 -0
  73. package/dist/data-management/decorators/prop.js +32 -0
  74. package/dist/data-management/index.d.ts +13 -0
  75. package/dist/data-management/store/json-to-model.d.ts +45 -0
  76. package/dist/data-management/store/json-to-model.js +36 -0
  77. package/dist/data-management/store/store.d.ts +108 -0
  78. package/dist/data-management/store/store.js +207 -0
  79. package/dist/data-management/store/types.d.ts +53 -0
  80. package/dist/events-handler/decorators/emit.d.ts +29 -0
  81. package/dist/events-handler/decorators/emit.js +51 -0
  82. package/dist/events-handler/event-decorators.d.ts +1 -0
  83. package/dist/events-handler/event-emitter.service.d.ts +21 -0
  84. package/dist/events-handler/event-emitter.service.js +85 -0
  85. package/dist/events-handler/event-types.d.ts +12 -0
  86. package/dist/index.d.ts +55 -0
  87. package/dist/index.js +121 -0
  88. package/dist/jsx/dynamic/__tests__/granular-array-renderer.test.d.ts +1 -0
  89. package/dist/jsx/dynamic/__tests__/jsx-array-rendering.test.d.ts +1 -0
  90. package/dist/jsx/dynamic/array-renderer.d.ts +2 -0
  91. package/dist/jsx/dynamic/array-renderer.js +133 -0
  92. package/dist/jsx/dynamic/child-renderer.d.ts +1 -0
  93. package/dist/jsx/dynamic/child-renderer.js +180 -0
  94. package/dist/jsx/dynamic/dom-utils.d.ts +5 -0
  95. package/dist/jsx/dynamic/dom-utils.js +22 -0
  96. package/dist/jsx/dynamic/granular-array-renderer.d.ts +16 -0
  97. package/dist/jsx/dynamic/granular-array-renderer.js +153 -0
  98. package/dist/jsx/dynamic/node-renderer.d.ts +2 -0
  99. package/dist/jsx/dynamic/props-handler.d.ts +3 -0
  100. package/dist/jsx/dynamic/props-handler.js +281 -0
  101. package/dist/jsx/dynamic/text-renderer.d.ts +2 -0
  102. package/dist/jsx/jsx-dev-runtime.d.ts +2 -0
  103. package/dist/jsx/jsx-runtime.d.ts +3 -0
  104. package/dist/jsx/types.d.ts +35 -0
  105. package/dist/jsx/types.js +4 -0
  106. package/dist/jsx-dev-runtime.d.ts +2 -0
  107. package/dist/jsx-dev-runtime.js +8 -0
  108. package/dist/jsx-runtime.d.ts +2 -0
  109. package/dist/jsx-runtime.js +11 -0
  110. package/dist/reactivity/__tests__/context-stack.test.d.ts +1 -0
  111. package/dist/reactivity/__tests__/nested-effects-untrack.test.d.ts +22 -0
  112. package/dist/reactivity/context-scope.d.ts +57 -0
  113. package/dist/reactivity/context-scope.js +35 -0
  114. package/dist/reactivity/decorators/__tests__/ctx-integration.test.d.ts +5 -0
  115. package/dist/reactivity/decorators/__tests__/ctx-loop.test.d.ts +10 -0
  116. package/dist/reactivity/decorators/__tests__/state-intelligent.test.d.ts +1 -0
  117. package/dist/reactivity/decorators/computed.d.ts +6 -0
  118. package/dist/reactivity/decorators/computed.js +17 -0
  119. package/dist/reactivity/decorators/create-event-decorator.d.ts +5 -0
  120. package/dist/reactivity/decorators/create-event-decorator.js +28 -0
  121. package/dist/reactivity/decorators/ctx.d.ts +9 -0
  122. package/dist/reactivity/decorators/ctx.js +91 -0
  123. package/dist/reactivity/decorators/effect.d.ts +9 -0
  124. package/dist/reactivity/decorators/effect.js +24 -0
  125. package/dist/reactivity/decorators/resource.d.ts +48 -0
  126. package/dist/reactivity/decorators/resource.js +20 -0
  127. package/dist/reactivity/decorators/state.d.ts +8 -0
  128. package/dist/reactivity/decorators/state.js +68 -0
  129. package/dist/reactivity/decorators/store.d.ts +6 -0
  130. package/dist/reactivity/decorators/store.js +25 -0
  131. package/dist/reactivity/phase-scheduler.d.ts +81 -0
  132. package/dist/reactivity/phase-scheduler.js +88 -0
  133. package/dist/reactivity/phase-scheduler.test.d.ts +1 -0
  134. package/dist/reactivity/reactive-cache.d.ts +21 -0
  135. package/dist/reactivity/reactive-cache.js +31 -0
  136. package/dist/reactivity/reactive-cache.test.d.ts +1 -0
  137. package/dist/reactivity/reactive-context.d.ts +152 -0
  138. package/dist/reactivity/reactive-context.js +184 -0
  139. package/dist/reactivity/signals/__tests__/composicion-automatica.test.d.ts +1 -0
  140. package/dist/reactivity/signals/__tests__/composite/nivel-1-estructura-basica.test.d.ts +1 -0
  141. package/dist/reactivity/signals/__tests__/composite/nivel-2-registro-subscribers.test.d.ts +1 -0
  142. package/dist/reactivity/signals/__tests__/composite/nivel-3-notificaciones-basicas.test.d.ts +1 -0
  143. package/dist/reactivity/signals/__tests__/composite/nivel-4-comparacion-valores.test.d.ts +1 -0
  144. package/dist/reactivity/signals/__tests__/composite/nivel-5-tracking-automatico.test.d.ts +1 -0
  145. package/dist/reactivity/signals/__tests__/composite/nivel-6-anti-glitch.test.d.ts +1 -0
  146. package/dist/reactivity/signals/__tests__/composite/nivel-7-objetos-anidados.test.d.ts +1 -0
  147. package/dist/reactivity/signals/__tests__/composite/nivel-8-observable-array-support.test.d.ts +1 -0
  148. package/dist/reactivity/signals/__tests__/composite-shallow-tracking.test.d.ts +1 -0
  149. package/dist/reactivity/signals/__tests__/effect.test.d.ts +1 -0
  150. package/dist/reactivity/signals/__tests__/reactive-array/nivel-1-estructura-basica.test.d.ts +1 -0
  151. package/dist/reactivity/signals/__tests__/reactive-array/nivel-2-metodos-mutadores.test.d.ts +1 -0
  152. package/dist/reactivity/signals/__tests__/reactive-array/nivel-3-tracking-por-indice.test.d.ts +1 -0
  153. package/dist/reactivity/signals/__tests__/reactive-array/nivel-4-tracking-length.test.d.ts +1 -0
  154. package/dist/reactivity/signals/__tests__/reactive-array/nivel-5-tracking-mutation.test.d.ts +1 -0
  155. package/dist/reactivity/signals/__tests__/reactive-array/nivel-6-metodos-no-mutadores.test.d.ts +1 -0
  156. package/dist/reactivity/signals/__tests__/reactive-array/nivel-7-composicion-bidireccional.test.d.ts +1 -0
  157. package/dist/reactivity/signals/__tests__/reactive-array/nivel-8-proxies.test.d.ts +1 -0
  158. package/dist/reactivity/signals/__tests__/reactive-array/nivel-9-derived-cache-optimization.test.d.ts +1 -0
  159. package/dist/reactivity/signals/__tests__/resource.test.d.ts +1 -0
  160. package/dist/reactivity/signals/__tests__/signal.test.d.ts +1 -0
  161. package/dist/reactivity/signals/array-strategies.d.ts +120 -0
  162. package/dist/reactivity/signals/array-strategies.js +261 -0
  163. package/dist/reactivity/signals/composite.d.ts +89 -0
  164. package/dist/reactivity/signals/composite.js +145 -0
  165. package/dist/reactivity/signals/computed.d.ts +61 -0
  166. package/dist/reactivity/signals/computed.js +107 -0
  167. package/dist/reactivity/signals/computed.test.d.ts +1 -0
  168. package/dist/reactivity/signals/derived.d.ts +10 -0
  169. package/dist/reactivity/signals/derived.js +24 -0
  170. package/dist/reactivity/signals/effect.d.ts +27 -0
  171. package/dist/reactivity/signals/effect.js +46 -0
  172. package/dist/reactivity/signals/event.d.ts +9 -0
  173. package/dist/reactivity/signals/event.js +15 -0
  174. package/dist/reactivity/signals/reactive-array.d.ts +133 -0
  175. package/dist/reactivity/signals/reactive-array.js +490 -0
  176. package/dist/reactivity/signals/reactive-proxy.d.ts +54 -0
  177. package/dist/reactivity/signals/reactive-proxy.js +299 -0
  178. package/dist/reactivity/signals/reactive-tracking.test.d.ts +1 -0
  179. package/dist/reactivity/signals/resource.d.ts +9 -0
  180. package/dist/reactivity/signals/resource.js +58 -0
  181. package/dist/reactivity/signals/signal.d.ts +39 -0
  182. package/dist/reactivity/signals/signal.js +56 -0
  183. package/dist/reactivity/signals/subscription-management.test.d.ts +1 -0
  184. package/dist/reactivity/types.d.ts +12 -0
  185. package/dist/router/__tests__/link-behavior-active-class.test.d.ts +1 -0
  186. package/dist/router/__tests__/loop-detector.test.d.ts +1 -0
  187. package/dist/router/__tests__/params-container-resolution.test.d.ts +1 -0
  188. package/dist/router/__tests__/router-generated-routes.test.d.ts +1 -0
  189. package/dist/router/__tests__/router-params-granular.test.d.ts +1 -0
  190. package/dist/router/__tests__/router-params-simple.test.d.ts +1 -0
  191. package/dist/router/__tests__/router-query-params.test.d.ts +1 -0
  192. package/dist/router/__tests__/router-route-candidates.test.d.ts +1 -0
  193. package/dist/router/__tests__/routeview-app-articles.test.d.ts +1 -0
  194. package/dist/router/__tests__/routeview-debug.test.d.ts +1 -0
  195. package/dist/router/__tests__/routeview-integration.test.d.ts +1 -0
  196. package/dist/router/__tests__/routeview-this.test.d.ts +1 -0
  197. package/dist/router/decorators/base-policy.d.ts +141 -0
  198. package/dist/router/decorators/base-policy.js +63 -0
  199. package/dist/router/decorators/index.d.ts +6 -0
  200. package/dist/router/decorators/params.d.ts +31 -0
  201. package/dist/router/decorators/params.js +97 -0
  202. package/dist/router/decorators/route-metadata.d.ts +11 -0
  203. package/dist/router/decorators/route-metadata.js +23 -0
  204. package/dist/router/decorators/route.d.ts +39 -0
  205. package/dist/router/decorators/route.js +7 -0
  206. package/dist/router/link.behavior.d.ts +87 -0
  207. package/dist/router/link.behavior.js +227 -0
  208. package/dist/router/policy-evaluator.d.ts +81 -0
  209. package/dist/router/policy-evaluator.js +209 -0
  210. package/dist/router/route-view.d.ts +56 -0
  211. package/dist/router/route-view.js +156 -0
  212. package/dist/router/router.d.ts +67 -0
  213. package/dist/router/router.js +308 -0
  214. package/dist/router/static-analysis/index.d.ts +37 -0
  215. package/dist/router/static-analysis/parser.d.ts +14 -0
  216. package/dist/router/static-analysis/parser.js +147 -0
  217. package/dist/router/static-analysis/scanner.d.ts +27 -0
  218. package/dist/router/static-analysis/scanner.js +91 -0
  219. package/dist/router/trie.d.ts +14 -0
  220. package/dist/router/trie.js +126 -0
  221. package/dist/router/trie.types.d.ts +36 -0
  222. package/dist/styles/base-style-sheet.d.ts +96 -0
  223. package/dist/styles/base-style-sheet.js +149 -0
  224. package/dist/styles/decorators/factories.d.ts +76 -0
  225. package/dist/styles/decorators/factories.js +11 -0
  226. package/dist/styles/decorators/keyframes.d.ts +238 -0
  227. package/dist/styles/decorators/keyframes.js +79 -0
  228. package/dist/styles/decorators/rule.d.ts +177 -0
  229. package/dist/styles/decorators/rule.js +72 -0
  230. package/dist/styles/decorators/scope.d.ts +66 -0
  231. package/dist/styles/decorators/scope.js +17 -0
  232. package/dist/styles/decorators/style.d.ts +1 -0
  233. package/dist/styles/decorators/style.js +20 -0
  234. package/dist/styles/decorators/useStyles.d.ts +5 -0
  235. package/dist/styles/decorators/useStyles.js +29 -0
  236. package/dist/styles/global-styles-registry.d.ts +72 -0
  237. package/dist/styles/global-styles-registry.js +155 -0
  238. package/dist/types.d.ts +1 -0
  239. package/dist/vite-plugins/__tests__/jsx-control-flow-transform.test.d.ts +1 -0
  240. package/dist/vite-plugins/index.d.ts +4 -0
  241. package/dist/vite-plugins/index.js +10 -0
  242. package/dist/vite-plugins/jsx-contextual.d.ts +7 -0
  243. package/dist/vite-plugins/jsx-contextual.js +53 -0
  244. package/dist/vite-plugins/jsx-control-flow-transform.d.ts +60 -0
  245. package/dist/vite-plugins/jsx-control-flow-transform.js +180 -0
  246. package/dist/vite-plugins/jsx-signals.d.ts +2 -0
  247. package/dist/vite-plugins/jsx-signals.js +124 -0
  248. package/dist/vite-plugins/router/route-generator-plugin.d.ts +63 -0
  249. package/dist/vite-plugins/router/route-generator-plugin.js +310 -0
  250. package/package.json +85 -0
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Comprehensive CSS Properties Interface
3
+ * Provides type safety and autocomplete for CSS declarations
4
+ */
5
+ export interface CSSProperties {
6
+ display?: 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-row' | 'table-cell' | string;
7
+ visibility?: 'visible' | 'hidden' | 'collapse';
8
+ opacity?: number | string;
9
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
10
+ top?: number | string;
11
+ right?: number | string;
12
+ bottom?: number | string;
13
+ left?: number | string;
14
+ inset?: number | string;
15
+ zIndex?: number | string;
16
+ flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
17
+ flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
18
+ justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
19
+ alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
20
+ alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'stretch';
21
+ gap?: number | string;
22
+ rowGap?: number | string;
23
+ columnGap?: number | string;
24
+ flex?: number | string;
25
+ flexGrow?: number;
26
+ flexShrink?: number;
27
+ flexBasis?: number | string;
28
+ alignSelf?: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
29
+ order?: number;
30
+ gridTemplateColumns?: string;
31
+ gridTemplateRows?: string;
32
+ gridTemplateAreas?: string;
33
+ gridAutoColumns?: string;
34
+ gridAutoRows?: string;
35
+ gridAutoFlow?: 'row' | 'column' | 'dense' | 'row dense' | 'column dense';
36
+ gridArea?: string;
37
+ gridColumn?: string;
38
+ gridRow?: string;
39
+ gridColumnStart?: string | number;
40
+ gridColumnEnd?: string | number;
41
+ gridRowStart?: string | number;
42
+ gridRowEnd?: string | number;
43
+ width?: number | string;
44
+ height?: number | string;
45
+ minWidth?: number | string;
46
+ maxWidth?: number | string;
47
+ minHeight?: number | string;
48
+ maxHeight?: number | string;
49
+ boxSizing?: 'content-box' | 'border-box';
50
+ margin?: number | string;
51
+ marginTop?: number | string;
52
+ marginRight?: number | string;
53
+ marginBottom?: number | string;
54
+ marginLeft?: number | string;
55
+ marginBlock?: number | string;
56
+ marginInline?: number | string;
57
+ padding?: number | string;
58
+ paddingTop?: number | string;
59
+ paddingRight?: number | string;
60
+ paddingBottom?: number | string;
61
+ paddingLeft?: number | string;
62
+ paddingBlock?: number | string;
63
+ paddingInline?: number | string;
64
+ color?: string;
65
+ fontSize?: number | string;
66
+ fontFamily?: string;
67
+ fontWeight?: number | 'normal' | 'bold' | 'lighter' | 'bolder' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
68
+ fontStyle?: 'normal' | 'italic' | 'oblique';
69
+ lineHeight?: number | string;
70
+ letterSpacing?: number | string;
71
+ textAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';
72
+ textDecoration?: string;
73
+ textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase';
74
+ textOverflow?: 'clip' | 'ellipsis' | string;
75
+ whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces';
76
+ wordBreak?: 'normal' | 'break-all' | 'keep-all' | 'break-word';
77
+ wordWrap?: 'normal' | 'break-word';
78
+ background?: string;
79
+ backgroundColor?: string;
80
+ backgroundImage?: string;
81
+ backgroundSize?: string;
82
+ backgroundPosition?: string;
83
+ backgroundRepeat?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | 'space' | 'round';
84
+ backgroundAttachment?: 'scroll' | 'fixed' | 'local';
85
+ backgroundClip?: 'border-box' | 'padding-box' | 'content-box' | 'text';
86
+ border?: string;
87
+ borderWidth?: number | string;
88
+ borderStyle?: 'none' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset';
89
+ borderColor?: string;
90
+ borderRadius?: number | string;
91
+ borderTop?: string;
92
+ borderRight?: string;
93
+ borderBottom?: string;
94
+ borderLeft?: string;
95
+ borderTopWidth?: number | string;
96
+ borderRightWidth?: number | string;
97
+ borderBottomWidth?: number | string;
98
+ borderLeftWidth?: number | string;
99
+ borderTopColor?: string;
100
+ borderRightColor?: string;
101
+ borderBottomColor?: string;
102
+ borderLeftColor?: string;
103
+ borderTopLeftRadius?: number | string;
104
+ borderTopRightRadius?: number | string;
105
+ borderBottomLeftRadius?: number | string;
106
+ borderBottomRightRadius?: number | string;
107
+ outline?: string;
108
+ outlineWidth?: number | string;
109
+ outlineStyle?: 'none' | 'solid' | 'dashed' | 'dotted' | 'double';
110
+ outlineColor?: string;
111
+ outlineOffset?: number | string;
112
+ boxShadow?: string;
113
+ textShadow?: string;
114
+ filter?: string;
115
+ backdropFilter?: string;
116
+ transform?: string;
117
+ transformOrigin?: string;
118
+ transition?: string;
119
+ transitionProperty?: string;
120
+ transitionDuration?: string;
121
+ transitionTimingFunction?: string;
122
+ transitionDelay?: string;
123
+ animation?: string;
124
+ animationName?: string;
125
+ animationDuration?: string;
126
+ animationTimingFunction?: string;
127
+ animationDelay?: string;
128
+ animationIterationCount?: number | 'infinite';
129
+ animationDirection?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';
130
+ animationFillMode?: 'none' | 'forwards' | 'backwards' | 'both';
131
+ animationPlayState?: 'running' | 'paused';
132
+ overflow?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
133
+ overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
134
+ overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
135
+ clip?: string;
136
+ clipPath?: string;
137
+ cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'not-allowed' | 'help' | 'grab' | 'grabbing' | string;
138
+ pointerEvents?: 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all';
139
+ userSelect?: 'none' | 'auto' | 'text' | 'contain' | 'all';
140
+ content?: string;
141
+ listStyle?: string;
142
+ listStyleType?: string;
143
+ listStylePosition?: 'inside' | 'outside';
144
+ listStyleImage?: string;
145
+ tableLayout?: 'auto' | 'fixed';
146
+ borderCollapse?: 'collapse' | 'separate';
147
+ borderSpacing?: number | string;
148
+ captionSide?: 'top' | 'bottom';
149
+ emptyCells?: 'show' | 'hide';
150
+ verticalAlign?: 'baseline' | 'sub' | 'super' | 'top' | 'text-top' | 'middle' | 'bottom' | 'text-bottom' | number | string;
151
+ objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
152
+ objectPosition?: string;
153
+ float?: 'none' | 'left' | 'right';
154
+ clear?: 'none' | 'left' | 'right' | 'both';
155
+ resize?: 'none' | 'both' | 'horizontal' | 'vertical';
156
+ [key: `--${string}`]: string | number;
157
+ [key: string]: any;
158
+ }
159
+ /**
160
+ * Keyframe selector type
161
+ * Supports percentage values ('0%', '50%', '100%') and keywords ('from', 'to')
162
+ */
163
+ export type KeyframeSelector = 'from' | 'to' | `${number}%`;
164
+ /**
165
+ * Keyframes definition type
166
+ * Maps keyframe selectors to CSS properties
167
+ *
168
+ * @example
169
+ * {
170
+ * '0%': { transform: 'rotate(0deg)' },
171
+ * '100%': { transform: 'rotate(360deg)' },
172
+ * }
173
+ *
174
+ * @example
175
+ * {
176
+ * 'from': { opacity: 0 },
177
+ * 'to': { opacity: 1 },
178
+ * }
179
+ */
180
+ export type KeyframesDefinition = {
181
+ [K in KeyframeSelector]?: CSSProperties;
182
+ } & {
183
+ [key: string]: CSSProperties | undefined;
184
+ };
185
+ /**
186
+ * @Keyframes Decorator - Type-safe reactive CSS keyframe animations
187
+ *
188
+ * Creates a @keyframes CSS rule that can be referenced by animation properties.
189
+ * Supports reactive values - keyframes will update when signals change.
190
+ *
191
+ * @param name - The animation name to use in CSS (e.g., 'spin', 'fadeIn')
192
+ *
193
+ * Usage:
194
+ * ```typescript
195
+ * class MyStyles extends BaseStyleSheet {
196
+ * @State rotationEnd = 360;
197
+ *
198
+ * @Keyframes('spin')
199
+ * get spinAnimation() {
200
+ * return {
201
+ * '0%': { transform: 'rotate(0deg)' },
202
+ * '100%': { transform: `rotate(${this.rotationEnd}deg)` }, // Reactive!
203
+ * };
204
+ * }
205
+ *
206
+ * @Rule('.spinner')
207
+ * get spinnerStyles() {
208
+ * return {
209
+ * animation: 'spin 1s linear infinite',
210
+ * };
211
+ * }
212
+ * }
213
+ * ```
214
+ *
215
+ * @example Multiple keyframe stops
216
+ * ```typescript
217
+ * @Keyframes('bounce')
218
+ * get bounceAnimation() {
219
+ * return {
220
+ * '0%': { transform: 'translateY(0)' },
221
+ * '50%': { transform: 'translateY(-20px)' },
222
+ * '100%': { transform: 'translateY(0)' },
223
+ * };
224
+ * }
225
+ * ```
226
+ *
227
+ * @example Using 'from' and 'to' keywords
228
+ * ```typescript
229
+ * @Keyframes('fadeIn')
230
+ * get fadeInAnimation() {
231
+ * return {
232
+ * 'from': { opacity: 0 },
233
+ * 'to': { opacity: 1 },
234
+ * };
235
+ * }
236
+ * ```
237
+ */
238
+ export declare function Keyframes(name: string): <This extends object, Value extends KeyframesDefinition | undefined>(target: (this: This) => Value, context: ClassGetterDecoratorContext<This, Value>) => (this: This) => Value;
@@ -0,0 +1,79 @@
1
+ import { effect } from "../../reactivity/signals/effect.js";
2
+ function camelToKebab(str) {
3
+ return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
4
+ }
5
+ const unitlessProperties = /* @__PURE__ */ new Set([
6
+ "opacity",
7
+ "z-index",
8
+ "font-weight",
9
+ "line-height",
10
+ "flex-grow",
11
+ "flex-shrink",
12
+ "flex",
13
+ "order",
14
+ "zoom",
15
+ "grid-column",
16
+ "grid-row",
17
+ "grid-column-start",
18
+ "grid-column-end",
19
+ "grid-row-start",
20
+ "grid-row-end",
21
+ "animation-iteration-count"
22
+ ]);
23
+ function formatCSSValue(property, value) {
24
+ if (value === null || value === void 0) {
25
+ return "";
26
+ }
27
+ if (typeof value === "number" && !unitlessProperties.has(property)) {
28
+ return `${value}px`;
29
+ }
30
+ return String(value);
31
+ }
32
+ function cssObjectToString(styles) {
33
+ return Object.entries(styles).filter(([_, value]) => value !== null && value !== void 0).map(([property, value]) => {
34
+ const cssProperty = camelToKebab(property);
35
+ const cssValue = formatCSSValue(cssProperty, value);
36
+ return `${cssProperty}: ${cssValue}`;
37
+ }).join("; ");
38
+ }
39
+ function keyframesObjectToString(name, keyframes) {
40
+ const keyframeRules = Object.entries(keyframes).filter(([_, styles]) => styles !== null && styles !== void 0).map(([selector, styles]) => {
41
+ const cssContent = cssObjectToString(styles);
42
+ return `${selector} { ${cssContent}; }`;
43
+ }).join(" ");
44
+ return `@keyframes ${name} { ${keyframeRules} }`;
45
+ }
46
+ function Keyframes(name) {
47
+ return function(target, context) {
48
+ if (context.kind !== "getter") {
49
+ throw new Error("@Keyframes can only be applied to getters");
50
+ }
51
+ const getterName = String(context.name);
52
+ context.addInitializer(function() {
53
+ const keyframesSelector = `@keyframes ${name}`;
54
+ const indexSymbol = Symbol(`css_keyframes_${name}_${getterName}`);
55
+ const cleanup = effect(() => {
56
+ const keyframesObject = target.call(this);
57
+ if (!keyframesObject || typeof keyframesObject !== "object") {
58
+ console.warn(`@Keyframes('${name}'): Getter '${getterName}' must return a KeyframesDefinition object`);
59
+ return;
60
+ }
61
+ const cssText = keyframesObjectToString(name, keyframesObject);
62
+ if (typeof this.updateSpecificRule === "function") {
63
+ this.updateSpecificRule(keyframesSelector, cssText, indexSymbol);
64
+ } else {
65
+ console.error(`@Keyframes decorator requires BaseStyleSheet.updateSpecificRule method`);
66
+ }
67
+ });
68
+ if (typeof this.registerCleanup === "function") {
69
+ this.registerCleanup(cleanup.dispose);
70
+ } else {
71
+ console.error(`@Keyframes decorator requires BaseStyleSheet.registerCleanup method`);
72
+ }
73
+ });
74
+ return target;
75
+ };
76
+ }
77
+ export {
78
+ Keyframes
79
+ };
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Comprehensive CSS Properties Interface
3
+ * Provides type safety and autocomplete for CSS declarations
4
+ */
5
+ export interface CSSProperties {
6
+ display?: 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-row' | 'table-cell' | string;
7
+ visibility?: 'visible' | 'hidden' | 'collapse';
8
+ opacity?: number | string;
9
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
10
+ top?: number | string;
11
+ right?: number | string;
12
+ bottom?: number | string;
13
+ left?: number | string;
14
+ inset?: number | string;
15
+ zIndex?: number | string;
16
+ flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
17
+ flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
18
+ justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
19
+ alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
20
+ alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'stretch';
21
+ gap?: number | string;
22
+ rowGap?: number | string;
23
+ columnGap?: number | string;
24
+ flex?: number | string;
25
+ flexGrow?: number;
26
+ flexShrink?: number;
27
+ flexBasis?: number | string;
28
+ alignSelf?: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
29
+ order?: number;
30
+ gridTemplateColumns?: string;
31
+ gridTemplateRows?: string;
32
+ gridTemplateAreas?: string;
33
+ gridAutoColumns?: string;
34
+ gridAutoRows?: string;
35
+ gridAutoFlow?: 'row' | 'column' | 'dense' | 'row dense' | 'column dense';
36
+ gridArea?: string;
37
+ gridColumn?: string;
38
+ gridRow?: string;
39
+ gridColumnStart?: string | number;
40
+ gridColumnEnd?: string | number;
41
+ gridRowStart?: string | number;
42
+ gridRowEnd?: string | number;
43
+ width?: number | string;
44
+ height?: number | string;
45
+ minWidth?: number | string;
46
+ maxWidth?: number | string;
47
+ minHeight?: number | string;
48
+ maxHeight?: number | string;
49
+ boxSizing?: 'content-box' | 'border-box';
50
+ margin?: number | string;
51
+ marginTop?: number | string;
52
+ marginRight?: number | string;
53
+ marginBottom?: number | string;
54
+ marginLeft?: number | string;
55
+ marginBlock?: number | string;
56
+ marginInline?: number | string;
57
+ padding?: number | string;
58
+ paddingTop?: number | string;
59
+ paddingRight?: number | string;
60
+ paddingBottom?: number | string;
61
+ paddingLeft?: number | string;
62
+ paddingBlock?: number | string;
63
+ paddingInline?: number | string;
64
+ color?: string;
65
+ fontSize?: number | string;
66
+ fontFamily?: string;
67
+ fontWeight?: number | 'normal' | 'bold' | 'lighter' | 'bolder' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
68
+ fontStyle?: 'normal' | 'italic' | 'oblique';
69
+ lineHeight?: number | string;
70
+ letterSpacing?: number | string;
71
+ textAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';
72
+ textDecoration?: string;
73
+ textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase';
74
+ textOverflow?: 'clip' | 'ellipsis' | string;
75
+ whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces';
76
+ wordBreak?: 'normal' | 'break-all' | 'keep-all' | 'break-word';
77
+ wordWrap?: 'normal' | 'break-word';
78
+ background?: string;
79
+ backgroundColor?: string;
80
+ backgroundImage?: string;
81
+ backgroundSize?: string;
82
+ backgroundPosition?: string;
83
+ backgroundRepeat?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | 'space' | 'round';
84
+ backgroundAttachment?: 'scroll' | 'fixed' | 'local';
85
+ backgroundClip?: 'border-box' | 'padding-box' | 'content-box' | 'text';
86
+ border?: string;
87
+ borderWidth?: number | string;
88
+ borderStyle?: 'none' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset';
89
+ borderColor?: string;
90
+ borderRadius?: number | string;
91
+ borderTop?: string;
92
+ borderRight?: string;
93
+ borderBottom?: string;
94
+ borderLeft?: string;
95
+ borderTopWidth?: number | string;
96
+ borderRightWidth?: number | string;
97
+ borderBottomWidth?: number | string;
98
+ borderLeftWidth?: number | string;
99
+ borderTopColor?: string;
100
+ borderRightColor?: string;
101
+ borderBottomColor?: string;
102
+ borderLeftColor?: string;
103
+ borderTopLeftRadius?: number | string;
104
+ borderTopRightRadius?: number | string;
105
+ borderBottomLeftRadius?: number | string;
106
+ borderBottomRightRadius?: number | string;
107
+ outline?: string;
108
+ outlineWidth?: number | string;
109
+ outlineStyle?: 'none' | 'solid' | 'dashed' | 'dotted' | 'double';
110
+ outlineColor?: string;
111
+ outlineOffset?: number | string;
112
+ boxShadow?: string;
113
+ textShadow?: string;
114
+ filter?: string;
115
+ backdropFilter?: string;
116
+ transform?: string;
117
+ transformOrigin?: string;
118
+ transition?: string;
119
+ transitionProperty?: string;
120
+ transitionDuration?: string;
121
+ transitionTimingFunction?: string;
122
+ transitionDelay?: string;
123
+ animation?: string;
124
+ animationName?: string;
125
+ animationDuration?: string;
126
+ animationTimingFunction?: string;
127
+ animationDelay?: string;
128
+ animationIterationCount?: number | 'infinite';
129
+ animationDirection?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';
130
+ animationFillMode?: 'none' | 'forwards' | 'backwards' | 'both';
131
+ animationPlayState?: 'running' | 'paused';
132
+ overflow?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
133
+ overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
134
+ overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip';
135
+ clip?: string;
136
+ clipPath?: string;
137
+ cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'not-allowed' | 'help' | 'grab' | 'grabbing' | string;
138
+ pointerEvents?: 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all';
139
+ userSelect?: 'none' | 'auto' | 'text' | 'contain' | 'all';
140
+ content?: string;
141
+ listStyle?: string;
142
+ listStyleType?: string;
143
+ listStylePosition?: 'inside' | 'outside';
144
+ listStyleImage?: string;
145
+ tableLayout?: 'auto' | 'fixed';
146
+ borderCollapse?: 'collapse' | 'separate';
147
+ borderSpacing?: number | string;
148
+ captionSide?: 'top' | 'bottom';
149
+ emptyCells?: 'show' | 'hide';
150
+ verticalAlign?: 'baseline' | 'sub' | 'super' | 'top' | 'text-top' | 'middle' | 'bottom' | 'text-bottom' | number | string;
151
+ objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
152
+ objectPosition?: string;
153
+ float?: 'none' | 'left' | 'right';
154
+ clear?: 'none' | 'left' | 'right' | 'both';
155
+ resize?: 'none' | 'both' | 'horizontal' | 'vertical';
156
+ [key: `--${string}`]: string | number;
157
+ [key: string]: any;
158
+ }
159
+ /**
160
+ * @Rule Decorator - Type-safe reactive CSS rules
161
+ *
162
+ * Usage:
163
+ * ```typescript
164
+ * class MyStyles extends BaseStyleSheet {
165
+ * @State width = 100;
166
+ *
167
+ * @Rule(':host')
168
+ * get hostStyles() {
169
+ * return {
170
+ * display: 'grid',
171
+ * width: this.width, // Reactive!
172
+ * };
173
+ * }
174
+ * }
175
+ * ```
176
+ */
177
+ export declare function Rule(selector: string): <This extends object, Value extends CSSProperties | undefined>(target: (this: This) => Value, context: ClassGetterDecoratorContext<This, Value>) => (this: This) => Value;
@@ -0,0 +1,72 @@
1
+ import { effect } from "../../reactivity/signals/effect.js";
2
+ function camelToKebab(str) {
3
+ return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
4
+ }
5
+ const unitlessProperties = /* @__PURE__ */ new Set([
6
+ "opacity",
7
+ "z-index",
8
+ "font-weight",
9
+ "line-height",
10
+ "flex-grow",
11
+ "flex-shrink",
12
+ "flex",
13
+ "order",
14
+ "zoom",
15
+ "grid-column",
16
+ "grid-row",
17
+ "grid-column-start",
18
+ "grid-column-end",
19
+ "grid-row-start",
20
+ "grid-row-end",
21
+ "animation-iteration-count"
22
+ ]);
23
+ function formatCSSValue(property, value) {
24
+ if (value === null || value === void 0) {
25
+ return "";
26
+ }
27
+ if (typeof value === "number" && !unitlessProperties.has(property)) {
28
+ return `${value}px`;
29
+ }
30
+ return String(value);
31
+ }
32
+ function cssObjectToString(styles) {
33
+ return Object.entries(styles).filter(([_, value]) => value !== null && value !== void 0).map(([property, value]) => {
34
+ const cssProperty = camelToKebab(property);
35
+ const cssValue = formatCSSValue(cssProperty, value);
36
+ return `${cssProperty}: ${cssValue}`;
37
+ }).join("; ");
38
+ }
39
+ function Rule(selector) {
40
+ return function(target, context) {
41
+ if (context.kind !== "getter") {
42
+ throw new Error("@Rule can only be applied to getters");
43
+ }
44
+ const getterName = String(context.name);
45
+ context.addInitializer(function() {
46
+ const indexSymbol = Symbol(`css_rule_${selector}_${getterName}`);
47
+ const cleanup = effect(() => {
48
+ const stylesObject = target.call(this);
49
+ if (!stylesObject || typeof stylesObject !== "object") {
50
+ console.warn(`@Rule('${selector}'): Getter '${getterName}' must return a CSSProperties object`);
51
+ return;
52
+ }
53
+ const cssContent = cssObjectToString(stylesObject);
54
+ const cssText = `${selector} { ${cssContent}; }`;
55
+ if (typeof this.updateSpecificRule === "function") {
56
+ this.updateSpecificRule(selector, cssText, indexSymbol);
57
+ } else {
58
+ console.error(`@Rule decorator requires BaseStyleSheet.updateSpecificRule method`);
59
+ }
60
+ });
61
+ if (typeof this.registerCleanup === "function") {
62
+ this.registerCleanup(cleanup.dispose);
63
+ } else {
64
+ console.error(`@Rule decorator requires BaseStyleSheet.registerCleanup method`);
65
+ }
66
+ });
67
+ return target;
68
+ };
69
+ }
70
+ export {
71
+ Rule
72
+ };
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Decoradores de Scope para Estilos
3
+ *
4
+ * Estos decoradores marcan las clases de estilos con su alcance (scope):
5
+ * - @Shared: Los estilos se aplican a todos los shadow roots (compartidos globalmente)
6
+ * - @ForDocument: Los estilos se aplican al documento real (en el <head>)
7
+ *
8
+ * Si una clase de estilos no tiene ningún decorador, se considera "local"
9
+ * y solo se aplica al componente específico que la declara.
10
+ */
11
+ export type StyleScope = 'local' | 'shared' | 'document';
12
+ /**
13
+ * Marca una clase de estilos como compartida globalmente.
14
+ * Los estilos @Shared se insertan en todos los shadow roots de la aplicación.
15
+ *
16
+ * Uso:
17
+ * ```typescript
18
+ * @Shared
19
+ * class GlobalTheme extends BaseStyleSheet {
20
+ * styles() {
21
+ * return (
22
+ * <>
23
+ * <Rule selector=":host">
24
+ * color: {() => this.theme.primaryColor};
25
+ * </Rule>
26
+ * </>
27
+ * );
28
+ * }
29
+ * }
30
+ * ```
31
+ */
32
+ export declare function Shared<T extends {
33
+ new (...args: any[]): {};
34
+ }>(target: T, context?: ClassDecoratorContext): T;
35
+ /**
36
+ * Marca una clase de estilos para aplicarse al documento completo.
37
+ * Los estilos @ForDocument se insertan en el <head> del documento.
38
+ *
39
+ * Uso:
40
+ * ```typescript
41
+ * @ForDocument
42
+ * class DocumentReset extends BaseStyleSheet {
43
+ * styles() {
44
+ * return (
45
+ * <>
46
+ * <Rule selector="*, *::before, *::after">
47
+ * box-sizing: border-box;
48
+ * </Rule>
49
+ * <Rule selector="body">
50
+ * margin: 0;
51
+ * padding: 0;
52
+ * </Rule>
53
+ * </>
54
+ * );
55
+ * }
56
+ * }
57
+ * ```
58
+ */
59
+ export declare function ForDocument<T extends {
60
+ new (...args: any[]): {};
61
+ }>(target: T, context?: ClassDecoratorContext): T;
62
+ /**
63
+ * Obtiene el scope de una clase de estilos.
64
+ * Si no tiene decorador, retorna 'local' por defecto.
65
+ */
66
+ export declare function getStyleScope(StyleClass: any): StyleScope;
@@ -0,0 +1,17 @@
1
+ const STYLE_SCOPE_KEY = Symbol("styleScope");
2
+ function Shared(target, context) {
3
+ target[STYLE_SCOPE_KEY] = "shared";
4
+ return target;
5
+ }
6
+ function ForDocument(target, context) {
7
+ target[STYLE_SCOPE_KEY] = "document";
8
+ return target;
9
+ }
10
+ function getStyleScope(StyleClass) {
11
+ return StyleClass[STYLE_SCOPE_KEY] || "local";
12
+ }
13
+ export {
14
+ ForDocument,
15
+ Shared,
16
+ getStyleScope
17
+ };
@@ -0,0 +1 @@
1
+ export declare function Style(selector: string): <This extends object, Value>(target: (this: This) => Value, context: ClassGetterDecoratorContext<This, Value>) => void;
@@ -0,0 +1,20 @@
1
+ function Style(selector) {
2
+ return function(target, context) {
3
+ if (context.kind !== "getter") {
4
+ throw new Error("@Rule solo se puede aplicar a getters de clase.");
5
+ }
6
+ context.addInitializer(function() {
7
+ if (!this.constructor.__pendingRules) {
8
+ this.constructor.__pendingRules = [];
9
+ }
10
+ this.constructor.__pendingRules.push({
11
+ selector,
12
+ styleGetter: target.bind(this),
13
+ ruleIndexKey: Symbol(`css_rule_index_${String(context.name)}`)
14
+ });
15
+ });
16
+ };
17
+ }
18
+ export {
19
+ Style
20
+ };
@@ -0,0 +1,5 @@
1
+ import { BaseComponent } from '../../components/base-component';
2
+ import { BaseStyleSheet } from '../base-style-sheet';
3
+ type BaseComponentConstructor = new (...args: any[]) => BaseComponent;
4
+ export declare function UseStyles<StylesClass extends BaseStyleSheet>(StylesConstructor: new () => StylesClass): <T extends BaseComponentConstructor>(target: T, context: ClassDecoratorContext<T>) => T;
5
+ export {};