@tenphi/tasty 0.0.0-snapshot.db103fd → 0.0.0-snapshot.dc62ea3

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 (365) hide show
  1. package/README.md +196 -140
  2. package/dist/astro-CeYENy2x.js +301 -0
  3. package/dist/astro-CeYENy2x.js.map +1 -0
  4. package/dist/{ssr/async-storage.js → async-storage-DKK-wTD4.js} +16 -6
  5. package/dist/async-storage-DKK-wTD4.js.map +1 -0
  6. package/dist/babel-DWCsafYw.d.ts +83 -0
  7. package/dist/collector-B3OsM252.js +327 -0
  8. package/dist/collector-B3OsM252.js.map +1 -0
  9. package/dist/collector-BTVXj2hS.d.ts +163 -0
  10. package/dist/config-B3gPdCqd.js +12421 -0
  11. package/dist/config-B3gPdCqd.js.map +1 -0
  12. package/dist/config-LfIDmVHx.d.ts +1363 -0
  13. package/dist/context-CA8YKeMn.js +24 -0
  14. package/dist/context-CA8YKeMn.js.map +1 -0
  15. package/dist/core/index.d.ts +5 -33
  16. package/dist/core/index.js +6 -26
  17. package/dist/core-DGm0CFHP.js +1732 -0
  18. package/dist/core-DGm0CFHP.js.map +1 -0
  19. package/dist/css-resources-Cyl_axbI.js +149 -0
  20. package/dist/css-resources-Cyl_axbI.js.map +1 -0
  21. package/dist/{zero/extractor.js → css-writer-Bgowobbx.js} +148 -24
  22. package/dist/css-writer-Bgowobbx.js.map +1 -0
  23. package/dist/{ssr/format-global-rules.js → format-global-rules-DklyaXv-.js} +2 -2
  24. package/dist/format-global-rules-DklyaXv-.js.map +1 -0
  25. package/dist/{ssr/format-rules.js → format-rules-XRw9u7d4.js} +33 -2
  26. package/dist/format-rules-XRw9u7d4.js.map +1 -0
  27. package/dist/hydrate-CNOmZprz.js +37 -0
  28. package/dist/hydrate-CNOmZprz.js.map +1 -0
  29. package/dist/index-Bm9ltvdH.d.ts +1933 -0
  30. package/dist/index-BmogEzTo.d.ts +1575 -0
  31. package/dist/index.d.ts +5 -50
  32. package/dist/index.js +922 -35
  33. package/dist/index.js.map +1 -0
  34. package/dist/keyframes-DE-OE76F.js +535 -0
  35. package/dist/keyframes-DE-OE76F.js.map +1 -0
  36. package/dist/{utils/merge-styles.d.ts → merge-styles-BcLl1u_d.d.ts} +3 -3
  37. package/dist/{utils/merge-styles.js → merge-styles-DuoZEsm9.js} +3 -4
  38. package/dist/merge-styles-DuoZEsm9.js.map +1 -0
  39. package/dist/{utils/resolve-recipes.js → resolve-recipes-H9NqOQuP.js} +4 -6
  40. package/dist/resolve-recipes-H9NqOQuP.js.map +1 -0
  41. package/dist/ssr/astro-client.js +19 -0
  42. package/dist/ssr/astro-client.js.map +1 -0
  43. package/dist/ssr/astro-middleware-extract-static.d.ts +11 -0
  44. package/dist/ssr/astro-middleware-extract-static.js +9 -0
  45. package/dist/ssr/astro-middleware-extract-static.js.map +1 -0
  46. package/dist/ssr/astro-middleware-extract.d.ts +11 -0
  47. package/dist/ssr/astro-middleware-extract.js +9 -0
  48. package/dist/ssr/astro-middleware-extract.js.map +1 -0
  49. package/dist/ssr/astro-middleware-static.d.ts +18 -0
  50. package/dist/ssr/astro-middleware-static.js +18 -0
  51. package/dist/ssr/astro-middleware-static.js.map +1 -0
  52. package/dist/ssr/astro-middleware.d.ts +19 -0
  53. package/dist/ssr/astro-middleware.js +19 -0
  54. package/dist/ssr/astro-middleware.js.map +1 -0
  55. package/dist/ssr/astro.d.ts +117 -11
  56. package/dist/ssr/astro.js +2 -64
  57. package/dist/ssr/index.d.ts +37 -5
  58. package/dist/ssr/index.js +6 -7
  59. package/dist/ssr/index.js.map +1 -1
  60. package/dist/ssr/next-config.d.ts +66 -0
  61. package/dist/ssr/next-config.js +115 -0
  62. package/dist/ssr/next-config.js.map +1 -0
  63. package/dist/ssr/next.d.ts +14 -7
  64. package/dist/ssr/next.js +38 -16
  65. package/dist/ssr/next.js.map +1 -1
  66. package/dist/ssr-collector-ref-COs_ioWl.js +29 -0
  67. package/dist/ssr-collector-ref-COs_ioWl.js.map +1 -0
  68. package/dist/static/index.d.ts +91 -5
  69. package/dist/static/index.js +49 -3
  70. package/dist/static/index.js.map +1 -0
  71. package/dist/static/inject.js.map +1 -1
  72. package/dist/zero/babel.d.ts +2 -182
  73. package/dist/zero/babel.js +80 -40
  74. package/dist/zero/babel.js.map +1 -1
  75. package/dist/zero/index.d.ts +81 -3
  76. package/dist/zero/index.js +2 -3
  77. package/dist/zero/next.d.ts +1 -1
  78. package/dist/zero/next.js +1 -1
  79. package/dist/zero/next.js.map +1 -1
  80. package/docs/README.md +20 -12
  81. package/docs/adoption.md +59 -32
  82. package/docs/ai-agents.md +224 -0
  83. package/docs/comparison.md +76 -48
  84. package/docs/configuration.md +566 -69
  85. package/docs/debug.md +35 -18
  86. package/docs/design-system.md +63 -32
  87. package/docs/dsl.md +527 -179
  88. package/docs/getting-started.md +62 -41
  89. package/docs/injector.md +157 -51
  90. package/docs/methodology.md +116 -35
  91. package/docs/migration-v3.md +285 -0
  92. package/docs/pipeline.md +741 -0
  93. package/docs/plugins.md +353 -0
  94. package/docs/react-api.md +681 -0
  95. package/docs/runtime-benchmarks.md +351 -0
  96. package/docs/ssr.md +356 -130
  97. package/docs/styles.md +79 -16
  98. package/docs/tasty-static.md +149 -87
  99. package/package.json +78 -23
  100. package/tasty.config.ts +6 -0
  101. package/dist/_virtual/_rolldown/runtime.js +0 -7
  102. package/dist/chunks/cacheKey.js +0 -77
  103. package/dist/chunks/cacheKey.js.map +0 -1
  104. package/dist/chunks/definitions.d.ts +0 -37
  105. package/dist/chunks/definitions.js +0 -258
  106. package/dist/chunks/definitions.js.map +0 -1
  107. package/dist/chunks/index.d.ts +0 -1
  108. package/dist/chunks/renderChunk.d.ts +0 -1
  109. package/dist/chunks/renderChunk.js +0 -59
  110. package/dist/chunks/renderChunk.js.map +0 -1
  111. package/dist/config.d.ts +0 -366
  112. package/dist/config.js +0 -503
  113. package/dist/config.js.map +0 -1
  114. package/dist/counter-style/index.js +0 -51
  115. package/dist/counter-style/index.js.map +0 -1
  116. package/dist/debug.d.ts +0 -89
  117. package/dist/debug.js +0 -453
  118. package/dist/debug.js.map +0 -1
  119. package/dist/font-face/index.js +0 -63
  120. package/dist/font-face/index.js.map +0 -1
  121. package/dist/hooks/index.d.ts +0 -7
  122. package/dist/hooks/resolve-ssr-collector.js +0 -14
  123. package/dist/hooks/resolve-ssr-collector.js.map +0 -1
  124. package/dist/hooks/useCounterStyle.d.ts +0 -50
  125. package/dist/hooks/useCounterStyle.js +0 -46
  126. package/dist/hooks/useCounterStyle.js.map +0 -1
  127. package/dist/hooks/useFontFace.d.ts +0 -43
  128. package/dist/hooks/useFontFace.js +0 -70
  129. package/dist/hooks/useFontFace.js.map +0 -1
  130. package/dist/hooks/useGlobalStyles.d.ts +0 -30
  131. package/dist/hooks/useGlobalStyles.js +0 -78
  132. package/dist/hooks/useGlobalStyles.js.map +0 -1
  133. package/dist/hooks/useKeyframes.d.ts +0 -56
  134. package/dist/hooks/useKeyframes.js +0 -64
  135. package/dist/hooks/useKeyframes.js.map +0 -1
  136. package/dist/hooks/useProperty.d.ts +0 -79
  137. package/dist/hooks/useProperty.js +0 -109
  138. package/dist/hooks/useProperty.js.map +0 -1
  139. package/dist/hooks/useRawCSS.d.ts +0 -53
  140. package/dist/hooks/useRawCSS.js +0 -35
  141. package/dist/hooks/useRawCSS.js.map +0 -1
  142. package/dist/hooks/useStyles.d.ts +0 -45
  143. package/dist/hooks/useStyles.js +0 -237
  144. package/dist/hooks/useStyles.js.map +0 -1
  145. package/dist/injector/index.d.ts +0 -183
  146. package/dist/injector/index.js +0 -179
  147. package/dist/injector/index.js.map +0 -1
  148. package/dist/injector/injector.d.ts +0 -166
  149. package/dist/injector/injector.js +0 -464
  150. package/dist/injector/injector.js.map +0 -1
  151. package/dist/injector/sheet-manager.d.ts +0 -136
  152. package/dist/injector/sheet-manager.js +0 -733
  153. package/dist/injector/sheet-manager.js.map +0 -1
  154. package/dist/injector/types.d.ts +0 -204
  155. package/dist/keyframes/index.js +0 -206
  156. package/dist/keyframes/index.js.map +0 -1
  157. package/dist/parser/classify.js +0 -319
  158. package/dist/parser/classify.js.map +0 -1
  159. package/dist/parser/const.js +0 -49
  160. package/dist/parser/const.js.map +0 -1
  161. package/dist/parser/lru.js +0 -109
  162. package/dist/parser/lru.js.map +0 -1
  163. package/dist/parser/parser.d.ts +0 -25
  164. package/dist/parser/parser.js +0 -115
  165. package/dist/parser/parser.js.map +0 -1
  166. package/dist/parser/tokenizer.js +0 -69
  167. package/dist/parser/tokenizer.js.map +0 -1
  168. package/dist/parser/types.d.ts +0 -51
  169. package/dist/parser/types.js +0 -46
  170. package/dist/parser/types.js.map +0 -1
  171. package/dist/pipeline/conditions.d.ts +0 -134
  172. package/dist/pipeline/conditions.js +0 -406
  173. package/dist/pipeline/conditions.js.map +0 -1
  174. package/dist/pipeline/exclusive.js +0 -230
  175. package/dist/pipeline/exclusive.js.map +0 -1
  176. package/dist/pipeline/index.d.ts +0 -55
  177. package/dist/pipeline/index.js +0 -708
  178. package/dist/pipeline/index.js.map +0 -1
  179. package/dist/pipeline/materialize.js +0 -1103
  180. package/dist/pipeline/materialize.js.map +0 -1
  181. package/dist/pipeline/parseStateKey.d.ts +0 -15
  182. package/dist/pipeline/parseStateKey.js +0 -446
  183. package/dist/pipeline/parseStateKey.js.map +0 -1
  184. package/dist/pipeline/simplify.js +0 -515
  185. package/dist/pipeline/simplify.js.map +0 -1
  186. package/dist/pipeline/warnings.js +0 -18
  187. package/dist/pipeline/warnings.js.map +0 -1
  188. package/dist/plugins/index.d.ts +0 -2
  189. package/dist/plugins/okhsl-plugin.d.ts +0 -35
  190. package/dist/plugins/okhsl-plugin.js +0 -97
  191. package/dist/plugins/okhsl-plugin.js.map +0 -1
  192. package/dist/plugins/types.d.ts +0 -76
  193. package/dist/properties/index.js +0 -222
  194. package/dist/properties/index.js.map +0 -1
  195. package/dist/properties/property-type-resolver.d.ts +0 -24
  196. package/dist/properties/property-type-resolver.js +0 -90
  197. package/dist/properties/property-type-resolver.js.map +0 -1
  198. package/dist/ssr/astro.js.map +0 -1
  199. package/dist/ssr/async-storage.d.ts +0 -17
  200. package/dist/ssr/async-storage.js.map +0 -1
  201. package/dist/ssr/collect-auto-properties.js +0 -39
  202. package/dist/ssr/collect-auto-properties.js.map +0 -1
  203. package/dist/ssr/collector.d.ts +0 -102
  204. package/dist/ssr/collector.js +0 -226
  205. package/dist/ssr/collector.js.map +0 -1
  206. package/dist/ssr/context.d.ts +0 -8
  207. package/dist/ssr/context.js +0 -13
  208. package/dist/ssr/context.js.map +0 -1
  209. package/dist/ssr/format-global-rules.js.map +0 -1
  210. package/dist/ssr/format-keyframes.js +0 -69
  211. package/dist/ssr/format-keyframes.js.map +0 -1
  212. package/dist/ssr/format-property.js +0 -49
  213. package/dist/ssr/format-property.js.map +0 -1
  214. package/dist/ssr/format-rules.js.map +0 -1
  215. package/dist/ssr/hydrate.d.ts +0 -22
  216. package/dist/ssr/hydrate.js +0 -49
  217. package/dist/ssr/hydrate.js.map +0 -1
  218. package/dist/ssr/ssr-collector-ref.js +0 -12
  219. package/dist/ssr/ssr-collector-ref.js.map +0 -1
  220. package/dist/states/index.d.ts +0 -49
  221. package/dist/states/index.js +0 -170
  222. package/dist/states/index.js.map +0 -1
  223. package/dist/static/tastyStatic.d.ts +0 -46
  224. package/dist/static/tastyStatic.js +0 -30
  225. package/dist/static/tastyStatic.js.map +0 -1
  226. package/dist/static/types.d.ts +0 -49
  227. package/dist/static/types.js +0 -24
  228. package/dist/static/types.js.map +0 -1
  229. package/dist/styles/align.d.ts +0 -15
  230. package/dist/styles/align.js +0 -14
  231. package/dist/styles/align.js.map +0 -1
  232. package/dist/styles/border.d.ts +0 -25
  233. package/dist/styles/border.js +0 -113
  234. package/dist/styles/border.js.map +0 -1
  235. package/dist/styles/color.d.ts +0 -14
  236. package/dist/styles/color.js +0 -26
  237. package/dist/styles/color.js.map +0 -1
  238. package/dist/styles/createStyle.js +0 -79
  239. package/dist/styles/createStyle.js.map +0 -1
  240. package/dist/styles/dimension.js +0 -96
  241. package/dist/styles/dimension.js.map +0 -1
  242. package/dist/styles/display.d.ts +0 -37
  243. package/dist/styles/display.js +0 -66
  244. package/dist/styles/display.js.map +0 -1
  245. package/dist/styles/fade.d.ts +0 -15
  246. package/dist/styles/fade.js +0 -57
  247. package/dist/styles/fade.js.map +0 -1
  248. package/dist/styles/fill.d.ts +0 -42
  249. package/dist/styles/fill.js +0 -51
  250. package/dist/styles/fill.js.map +0 -1
  251. package/dist/styles/flow.d.ts +0 -16
  252. package/dist/styles/flow.js +0 -12
  253. package/dist/styles/flow.js.map +0 -1
  254. package/dist/styles/gap.d.ts +0 -31
  255. package/dist/styles/gap.js +0 -36
  256. package/dist/styles/gap.js.map +0 -1
  257. package/dist/styles/height.d.ts +0 -17
  258. package/dist/styles/height.js +0 -19
  259. package/dist/styles/height.js.map +0 -1
  260. package/dist/styles/index.d.ts +0 -1
  261. package/dist/styles/index.js +0 -8
  262. package/dist/styles/index.js.map +0 -1
  263. package/dist/styles/inset.d.ts +0 -52
  264. package/dist/styles/inset.js +0 -149
  265. package/dist/styles/inset.js.map +0 -1
  266. package/dist/styles/justify.d.ts +0 -15
  267. package/dist/styles/justify.js +0 -14
  268. package/dist/styles/justify.js.map +0 -1
  269. package/dist/styles/list.d.ts +0 -16
  270. package/dist/styles/list.js +0 -98
  271. package/dist/styles/list.js.map +0 -1
  272. package/dist/styles/margin.d.ts +0 -24
  273. package/dist/styles/margin.js +0 -103
  274. package/dist/styles/margin.js.map +0 -1
  275. package/dist/styles/outline.d.ts +0 -29
  276. package/dist/styles/outline.js +0 -64
  277. package/dist/styles/outline.js.map +0 -1
  278. package/dist/styles/padding.d.ts +0 -24
  279. package/dist/styles/padding.js +0 -103
  280. package/dist/styles/padding.js.map +0 -1
  281. package/dist/styles/predefined.d.ts +0 -71
  282. package/dist/styles/predefined.js +0 -237
  283. package/dist/styles/predefined.js.map +0 -1
  284. package/dist/styles/preset.d.ts +0 -52
  285. package/dist/styles/preset.js +0 -126
  286. package/dist/styles/preset.js.map +0 -1
  287. package/dist/styles/radius.d.ts +0 -12
  288. package/dist/styles/radius.js +0 -71
  289. package/dist/styles/radius.js.map +0 -1
  290. package/dist/styles/scrollbar.d.ts +0 -25
  291. package/dist/styles/scrollbar.js +0 -46
  292. package/dist/styles/scrollbar.js.map +0 -1
  293. package/dist/styles/shadow.d.ts +0 -14
  294. package/dist/styles/shadow.js +0 -23
  295. package/dist/styles/shadow.js.map +0 -1
  296. package/dist/styles/transition.d.ts +0 -14
  297. package/dist/styles/transition.js +0 -157
  298. package/dist/styles/transition.js.map +0 -1
  299. package/dist/styles/types.d.ts +0 -549
  300. package/dist/styles/width.d.ts +0 -17
  301. package/dist/styles/width.js +0 -19
  302. package/dist/styles/width.js.map +0 -1
  303. package/dist/tasty.d.ts +0 -119
  304. package/dist/tasty.js +0 -231
  305. package/dist/tasty.js.map +0 -1
  306. package/dist/types.d.ts +0 -184
  307. package/dist/utils/cache-wrapper.js +0 -21
  308. package/dist/utils/cache-wrapper.js.map +0 -1
  309. package/dist/utils/case-converter.js +0 -8
  310. package/dist/utils/case-converter.js.map +0 -1
  311. package/dist/utils/color-math.d.ts +0 -46
  312. package/dist/utils/color-math.js +0 -749
  313. package/dist/utils/color-math.js.map +0 -1
  314. package/dist/utils/color-space.d.ts +0 -5
  315. package/dist/utils/color-space.js +0 -228
  316. package/dist/utils/color-space.js.map +0 -1
  317. package/dist/utils/colors.d.ts +0 -5
  318. package/dist/utils/colors.js +0 -10
  319. package/dist/utils/colors.js.map +0 -1
  320. package/dist/utils/css-types.d.ts +0 -7
  321. package/dist/utils/dotize.d.ts +0 -26
  322. package/dist/utils/dotize.js +0 -122
  323. package/dist/utils/dotize.js.map +0 -1
  324. package/dist/utils/filter-base-props.d.ts +0 -15
  325. package/dist/utils/filter-base-props.js +0 -45
  326. package/dist/utils/filter-base-props.js.map +0 -1
  327. package/dist/utils/get-display-name.d.ts +0 -7
  328. package/dist/utils/get-display-name.js +0 -10
  329. package/dist/utils/get-display-name.js.map +0 -1
  330. package/dist/utils/has-keys.js +0 -13
  331. package/dist/utils/has-keys.js.map +0 -1
  332. package/dist/utils/is-dev-env.js +0 -19
  333. package/dist/utils/is-dev-env.js.map +0 -1
  334. package/dist/utils/is-valid-element-type.js +0 -15
  335. package/dist/utils/is-valid-element-type.js.map +0 -1
  336. package/dist/utils/merge-styles.js.map +0 -1
  337. package/dist/utils/mod-attrs.d.ts +0 -6
  338. package/dist/utils/mod-attrs.js +0 -20
  339. package/dist/utils/mod-attrs.js.map +0 -1
  340. package/dist/utils/process-tokens.d.ts +0 -21
  341. package/dist/utils/process-tokens.js +0 -90
  342. package/dist/utils/process-tokens.js.map +0 -1
  343. package/dist/utils/resolve-recipes.d.ts +0 -17
  344. package/dist/utils/resolve-recipes.js.map +0 -1
  345. package/dist/utils/selector-transform.js +0 -32
  346. package/dist/utils/selector-transform.js.map +0 -1
  347. package/dist/utils/string.js +0 -8
  348. package/dist/utils/string.js.map +0 -1
  349. package/dist/utils/styles.d.ts +0 -99
  350. package/dist/utils/styles.js +0 -220
  351. package/dist/utils/styles.js.map +0 -1
  352. package/dist/utils/typography.d.ts +0 -47
  353. package/dist/utils/typography.js +0 -51
  354. package/dist/utils/typography.js.map +0 -1
  355. package/dist/utils/warnings.d.ts +0 -16
  356. package/dist/utils/warnings.js +0 -16
  357. package/dist/utils/warnings.js.map +0 -1
  358. package/dist/zero/css-writer.d.ts +0 -45
  359. package/dist/zero/css-writer.js +0 -73
  360. package/dist/zero/css-writer.js.map +0 -1
  361. package/dist/zero/extractor.d.ts +0 -24
  362. package/dist/zero/extractor.js.map +0 -1
  363. package/docs/PIPELINE.md +0 -519
  364. package/docs/runtime.md +0 -485
  365. /package/dist/{chunks/cacheKey.d.ts → ssr/astro-client.d.ts} +0 -0
@@ -1,183 +0,0 @@
1
- import { CacheMetrics, CounterStyleDescriptors, DisposeFunction, FontFaceDescriptors, FontFaceInput, GlobalInjectResult, InjectResult, KeyframesCacheEntry, KeyframesInfo, KeyframesResult, KeyframesSteps, PropertyDefinition, RawCSSResult, RootRegistry, RuleInfo, SheetInfo, StyleInjectorConfig, StyleRule } from "./types.js";
2
- import { StyleResult } from "../pipeline/index.js";
3
- import { SheetManager } from "./sheet-manager.js";
4
- import { StyleInjector } from "./injector.js";
5
-
6
- //#region src/injector/index.d.ts
7
- /**
8
- * Allocate a className for a cacheKey without injecting styles yet
9
- */
10
- declare function allocateClassName(cacheKey: string, options?: {
11
- root?: Document | ShadowRoot;
12
- }): {
13
- className: string;
14
- isNewAllocation: boolean;
15
- };
16
- /**
17
- * Track a reference to an already-injected cacheKey (refCount + dispose).
18
- * Used on cache hits (SSR hydration or runtime reuse) where the pipeline
19
- * was skipped. Returns null if the cacheKey is not in the cache.
20
- */
21
- declare function trackRef(cacheKey: string, options?: {
22
- root?: Document | ShadowRoot;
23
- }): InjectResult | null;
24
- /**
25
- * Inject styles and return className with dispose function
26
- */
27
- declare function inject(rules: StyleResult[], options?: {
28
- root?: Document | ShadowRoot;
29
- cacheKey?: string;
30
- }): InjectResult;
31
- /**
32
- * Inject global rules that should not reserve tasty class names
33
- */
34
- declare function injectGlobal(rules: StyleResult[], options?: {
35
- root?: Document | ShadowRoot;
36
- }): GlobalInjectResult;
37
- /**
38
- * Inject raw CSS text directly without parsing
39
- * This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
40
- * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
41
- *
42
- * @example
43
- * ```tsx
44
- * // Inject raw CSS
45
- * const { dispose } = injectRawCSS(`
46
- * body { margin: 0; padding: 0; }
47
- * .my-class { color: red; }
48
- * `);
49
- *
50
- * // Later, remove the injected CSS
51
- * dispose();
52
- * ```
53
- */
54
- declare function injectRawCSS(css: string, options?: {
55
- root?: Document | ShadowRoot;
56
- }): {
57
- dispose: () => void;
58
- };
59
- /**
60
- * Get raw CSS text for SSR
61
- */
62
- declare function getRawCSSText(options?: {
63
- root?: Document | ShadowRoot;
64
- }): string;
65
- /**
66
- * Inject keyframes and return object with toString() and dispose()
67
- */
68
- declare function keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
69
- root?: Document | ShadowRoot;
70
- name?: string;
71
- }): KeyframesResult;
72
- interface PropertyOptions {
73
- /**
74
- * CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>')
75
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax
76
- */
77
- syntax?: string;
78
- /**
79
- * Whether the property inherits from parent elements
80
- * @default true
81
- */
82
- inherits?: boolean;
83
- /**
84
- * Initial value for the property
85
- */
86
- initialValue?: string | number;
87
- /**
88
- * Shadow root or document to inject into
89
- */
90
- root?: Document | ShadowRoot;
91
- }
92
- /**
93
- * Define a CSS @property custom property.
94
- * This enables advanced features like animating custom properties.
95
- *
96
- * Note: @property rules are global and persistent once defined.
97
- * Re-registering the same property name is a no-op.
98
- *
99
- * @param name - The custom property name (must start with --)
100
- * @param options - Property configuration
101
- *
102
- * @example
103
- * ```ts
104
- * // Define a color property that can be animated
105
- * property('--my-color', {
106
- * syntax: '<color>',
107
- * initialValue: 'red',
108
- * });
109
- *
110
- * // Define an angle property
111
- * property('--rotation', {
112
- * syntax: '<angle>',
113
- * inherits: false,
114
- * initialValue: '0deg',
115
- * });
116
- * ```
117
- */
118
- declare function property(name: string, options?: PropertyOptions): void;
119
- /**
120
- * Check if a CSS @property has already been defined
121
- *
122
- * @param name - The custom property name to check
123
- * @param options - Options including root
124
- */
125
- declare function isPropertyDefined(name: string, options?: {
126
- root?: Document | ShadowRoot;
127
- }): boolean;
128
- /**
129
- * Inject a CSS @font-face rule.
130
- *
131
- * Permanent and global — no dispose or ref-counting.
132
- * Deduplicates by content hash (family + descriptors).
133
- */
134
- declare function fontFace(family: string, descriptors: FontFaceDescriptors, options?: {
135
- root?: Document | ShadowRoot;
136
- }): void;
137
- /**
138
- * Inject a CSS @counter-style rule.
139
- *
140
- * Permanent and global — no dispose or ref-counting.
141
- * Deduplicates by name (first definition wins).
142
- */
143
- declare function counterStyle(name: string, descriptors: CounterStyleDescriptors, options?: {
144
- root?: Document | ShadowRoot;
145
- }): void;
146
- /**
147
- * Get CSS text from all sheets (for SSR)
148
- */
149
- declare function getCssText(options?: {
150
- root?: Document | ShadowRoot;
151
- }): string;
152
- /**
153
- * Collect only CSS used by a rendered subtree (like jest-styled-components).
154
- * Pass the container returned by render(...).
155
- */
156
- declare function getCssTextForNode(node: ParentNode | Element | DocumentFragment, options?: {
157
- root?: Document | ShadowRoot;
158
- }): string;
159
- /**
160
- * Force cleanup of unused rules
161
- */
162
- declare function cleanup(root?: Document | ShadowRoot): void;
163
- /**
164
- * Check if we're currently running in a test environment
165
- */
166
- declare function getIsTestEnvironment(): boolean;
167
- /**
168
- * Get the global injector instance for debugging
169
- */
170
- declare const injector: {
171
- readonly instance: StyleInjector;
172
- };
173
- /**
174
- * Destroy all resources and clean up
175
- */
176
- declare function destroy(root?: Document | ShadowRoot): void;
177
- /**
178
- * Create a new isolated injector instance
179
- */
180
- declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
181
- //#endregion
182
- export { PropertyOptions, allocateClassName, cleanup, counterStyle, createInjector, destroy, fontFace, getCssText, getCssTextForNode, getIsTestEnvironment, getRawCSSText, inject, injectGlobal, injectRawCSS, injector, isPropertyDefined, keyframes, property, trackRef };
183
- //# sourceMappingURL=index.d.ts.map
@@ -1,179 +0,0 @@
1
- import "./sheet-manager.js";
2
- import { StyleInjector } from "./injector.js";
3
- import { getConfig, getGlobalInjector, isTestEnvironment, markStylesGenerated } from "../config.js";
4
- //#region src/injector/index.ts
5
- /**
6
- * Allocate a className for a cacheKey without injecting styles yet
7
- */
8
- function allocateClassName(cacheKey, options) {
9
- return getGlobalInjector().allocateClassName(cacheKey, options);
10
- }
11
- /**
12
- * Track a reference to an already-injected cacheKey (refCount + dispose).
13
- * Used on cache hits (SSR hydration or runtime reuse) where the pipeline
14
- * was skipped. Returns null if the cacheKey is not in the cache.
15
- */
16
- function trackRef(cacheKey, options) {
17
- return getGlobalInjector().trackRef(cacheKey, options);
18
- }
19
- /**
20
- * Inject styles and return className with dispose function
21
- */
22
- function inject(rules, options) {
23
- markStylesGenerated();
24
- return getGlobalInjector().inject(rules, options);
25
- }
26
- /**
27
- * Inject global rules that should not reserve tasty class names
28
- */
29
- function injectGlobal(rules, options) {
30
- return getGlobalInjector().injectGlobal(rules, options);
31
- }
32
- /**
33
- * Inject raw CSS text directly without parsing
34
- * This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
35
- * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
36
- *
37
- * @example
38
- * ```tsx
39
- * // Inject raw CSS
40
- * const { dispose } = injectRawCSS(`
41
- * body { margin: 0; padding: 0; }
42
- * .my-class { color: red; }
43
- * `);
44
- *
45
- * // Later, remove the injected CSS
46
- * dispose();
47
- * ```
48
- */
49
- function injectRawCSS(css, options) {
50
- return getGlobalInjector().injectRawCSS(css, options);
51
- }
52
- /**
53
- * Get raw CSS text for SSR
54
- */
55
- function getRawCSSText(options) {
56
- return getGlobalInjector().getRawCSSText(options);
57
- }
58
- /**
59
- * Inject keyframes and return object with toString() and dispose()
60
- */
61
- function keyframes(steps, nameOrOptions) {
62
- return getGlobalInjector().keyframes(steps, nameOrOptions);
63
- }
64
- /**
65
- * Define a CSS @property custom property.
66
- * This enables advanced features like animating custom properties.
67
- *
68
- * Note: @property rules are global and persistent once defined.
69
- * Re-registering the same property name is a no-op.
70
- *
71
- * @param name - The custom property name (must start with --)
72
- * @param options - Property configuration
73
- *
74
- * @example
75
- * ```ts
76
- * // Define a color property that can be animated
77
- * property('--my-color', {
78
- * syntax: '<color>',
79
- * initialValue: 'red',
80
- * });
81
- *
82
- * // Define an angle property
83
- * property('--rotation', {
84
- * syntax: '<angle>',
85
- * inherits: false,
86
- * initialValue: '0deg',
87
- * });
88
- * ```
89
- */
90
- function property(name, options) {
91
- return getGlobalInjector().property(name, options);
92
- }
93
- /**
94
- * Check if a CSS @property has already been defined
95
- *
96
- * @param name - The custom property name to check
97
- * @param options - Options including root
98
- */
99
- function isPropertyDefined(name, options) {
100
- return getGlobalInjector().isPropertyDefined(name, options);
101
- }
102
- /**
103
- * Inject a CSS @font-face rule.
104
- *
105
- * Permanent and global — no dispose or ref-counting.
106
- * Deduplicates by content hash (family + descriptors).
107
- */
108
- function fontFace(family, descriptors, options) {
109
- return getGlobalInjector().fontFace(family, descriptors, options);
110
- }
111
- /**
112
- * Inject a CSS @counter-style rule.
113
- *
114
- * Permanent and global — no dispose or ref-counting.
115
- * Deduplicates by name (first definition wins).
116
- */
117
- function counterStyle(name, descriptors, options) {
118
- return getGlobalInjector().counterStyle(name, descriptors, options);
119
- }
120
- /**
121
- * Get CSS text from all sheets (for SSR)
122
- */
123
- function getCssText(options) {
124
- return getGlobalInjector().getCssText(options);
125
- }
126
- /**
127
- * Collect only CSS used by a rendered subtree (like jest-styled-components).
128
- * Pass the container returned by render(...).
129
- */
130
- function getCssTextForNode(node, options) {
131
- const classSet = /* @__PURE__ */ new Set();
132
- const readClasses = (el) => {
133
- const cls = el.getAttribute("class");
134
- if (!cls) return;
135
- for (const token of cls.split(/\s+/)) if (/^t\d+$/.test(token)) classSet.add(token);
136
- };
137
- if (node.getAttribute) readClasses(node);
138
- const elements = node.querySelectorAll ? node.querySelectorAll("[class]") : [];
139
- if (elements) elements.forEach(readClasses);
140
- return getGlobalInjector().getCssTextForClasses(classSet, options);
141
- }
142
- /**
143
- * Force cleanup of unused rules
144
- */
145
- function cleanup(root) {
146
- return getGlobalInjector().cleanup(root);
147
- }
148
- /**
149
- * Check if we're currently running in a test environment
150
- */
151
- function getIsTestEnvironment() {
152
- return isTestEnvironment();
153
- }
154
- /**
155
- * Get the global injector instance for debugging
156
- */
157
- const injector = { get instance() {
158
- return getGlobalInjector();
159
- } };
160
- /**
161
- * Destroy all resources and clean up
162
- */
163
- function destroy(root) {
164
- return getGlobalInjector().destroy(root);
165
- }
166
- /**
167
- * Create a new isolated injector instance
168
- */
169
- function createInjector(config = {}) {
170
- return new StyleInjector({
171
- ...getConfig(),
172
- forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),
173
- ...config
174
- });
175
- }
176
- //#endregion
177
- export { allocateClassName, cleanup, counterStyle, createInjector, destroy, fontFace, getCssText, getCssTextForNode, getIsTestEnvironment, getRawCSSText, inject, injectGlobal, injectRawCSS, injector, isPropertyDefined, keyframes, property, trackRef };
178
-
179
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/injector/index.ts"],"sourcesContent":["import {\n getConfig,\n getGlobalInjector,\n isTestEnvironment,\n markStylesGenerated,\n} from '../config';\nimport type { StyleResult } from '../pipeline';\n\nimport { StyleInjector } from './injector';\nimport type {\n CounterStyleDescriptors,\n FontFaceDescriptors,\n GlobalInjectResult,\n InjectResult,\n KeyframesResult,\n KeyframesSteps,\n StyleInjectorConfig,\n} from './types';\n\n/**\n * Allocate a className for a cacheKey without injecting styles yet\n */\nexport function allocateClassName(\n cacheKey: string,\n options?: { root?: Document | ShadowRoot },\n): { className: string; isNewAllocation: boolean } {\n return getGlobalInjector().allocateClassName(cacheKey, options);\n}\n\n/**\n * Track a reference to an already-injected cacheKey (refCount + dispose).\n * Used on cache hits (SSR hydration or runtime reuse) where the pipeline\n * was skipped. Returns null if the cacheKey is not in the cache.\n */\nexport function trackRef(\n cacheKey: string,\n options?: { root?: Document | ShadowRoot },\n): InjectResult | null {\n return getGlobalInjector().trackRef(cacheKey, options);\n}\n\n/**\n * Inject styles and return className with dispose function\n */\nexport function inject(\n rules: StyleResult[],\n options?: { root?: Document | ShadowRoot; cacheKey?: string },\n): InjectResult {\n // Mark that styles have been generated (prevents configuration changes)\n markStylesGenerated();\n\n return getGlobalInjector().inject(rules, options);\n}\n\n/**\n * Inject global rules that should not reserve tasty class names\n */\nexport function injectGlobal(\n rules: StyleResult[],\n options?: { root?: Document | ShadowRoot },\n): GlobalInjectResult {\n return getGlobalInjector().injectGlobal(rules, options);\n}\n\n/**\n * Inject raw CSS text directly without parsing\n * This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.\n * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.\n *\n * @example\n * ```tsx\n * // Inject raw CSS\n * const { dispose } = injectRawCSS(`\n * body { margin: 0; padding: 0; }\n * .my-class { color: red; }\n * `);\n *\n * // Later, remove the injected CSS\n * dispose();\n * ```\n */\nexport function injectRawCSS(\n css: string,\n options?: { root?: Document | ShadowRoot },\n): { dispose: () => void } {\n return getGlobalInjector().injectRawCSS(css, options);\n}\n\n/**\n * Get raw CSS text for SSR\n */\nexport function getRawCSSText(options?: {\n root?: Document | ShadowRoot;\n}): string {\n return getGlobalInjector().getRawCSSText(options);\n}\n\n/**\n * Inject keyframes and return object with toString() and dispose()\n */\nexport function keyframes(\n steps: KeyframesSteps,\n nameOrOptions?: string | { root?: Document | ShadowRoot; name?: string },\n): KeyframesResult {\n return getGlobalInjector().keyframes(steps, nameOrOptions);\n}\n\nexport interface PropertyOptions {\n /**\n * CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>')\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax\n */\n syntax?: string;\n /**\n * Whether the property inherits from parent elements\n * @default true\n */\n inherits?: boolean;\n /**\n * Initial value for the property\n */\n initialValue?: string | number;\n /**\n * Shadow root or document to inject into\n */\n root?: Document | ShadowRoot;\n}\n\n/**\n * Define a CSS @property custom property.\n * This enables advanced features like animating custom properties.\n *\n * Note: @property rules are global and persistent once defined.\n * Re-registering the same property name is a no-op.\n *\n * @param name - The custom property name (must start with --)\n * @param options - Property configuration\n *\n * @example\n * ```ts\n * // Define a color property that can be animated\n * property('--my-color', {\n * syntax: '<color>',\n * initialValue: 'red',\n * });\n *\n * // Define an angle property\n * property('--rotation', {\n * syntax: '<angle>',\n * inherits: false,\n * initialValue: '0deg',\n * });\n * ```\n */\nexport function property(name: string, options?: PropertyOptions): void {\n return getGlobalInjector().property(name, options);\n}\n\n/**\n * Check if a CSS @property has already been defined\n *\n * @param name - The custom property name to check\n * @param options - Options including root\n */\nexport function isPropertyDefined(\n name: string,\n options?: { root?: Document | ShadowRoot },\n): boolean {\n return getGlobalInjector().isPropertyDefined(name, options);\n}\n\n/**\n * Inject a CSS @font-face rule.\n *\n * Permanent and global — no dispose or ref-counting.\n * Deduplicates by content hash (family + descriptors).\n */\nexport function fontFace(\n family: string,\n descriptors: FontFaceDescriptors,\n options?: { root?: Document | ShadowRoot },\n): void {\n return getGlobalInjector().fontFace(family, descriptors, options);\n}\n\n/**\n * Inject a CSS @counter-style rule.\n *\n * Permanent and global — no dispose or ref-counting.\n * Deduplicates by name (first definition wins).\n */\nexport function counterStyle(\n name: string,\n descriptors: CounterStyleDescriptors,\n options?: { root?: Document | ShadowRoot },\n): void {\n return getGlobalInjector().counterStyle(name, descriptors, options);\n}\n\n/**\n * Get CSS text from all sheets (for SSR)\n */\nexport function getCssText(options?: { root?: Document | ShadowRoot }): string {\n return getGlobalInjector().getCssText(options);\n}\n\n/**\n * Collect only CSS used by a rendered subtree (like jest-styled-components).\n * Pass the container returned by render(...).\n */\nexport function getCssTextForNode(\n node: ParentNode | Element | DocumentFragment,\n options?: { root?: Document | ShadowRoot },\n): string {\n // Collect tasty-generated class names (t<number>) from the subtree\n const classSet = new Set<string>();\n\n const readClasses = (el: Element) => {\n const cls = el.getAttribute('class');\n if (!cls) return;\n for (const token of cls.split(/\\s+/)) {\n if (/^t\\d+$/.test(token)) classSet.add(token);\n }\n };\n\n // Include node itself if it's an Element\n if ((node as Element).getAttribute) {\n readClasses(node as Element);\n }\n // Walk descendants\n const elements = (node as ParentNode).querySelectorAll\n ? (node as ParentNode).querySelectorAll('[class]')\n : ([] as unknown as NodeListOf<Element>);\n if (elements) elements.forEach(readClasses);\n\n return getGlobalInjector().getCssTextForClasses(classSet, options);\n}\n\n/**\n * Force cleanup of unused rules\n */\nexport function cleanup(root?: Document | ShadowRoot): void {\n return getGlobalInjector().cleanup(root);\n}\n\n/**\n * Check if we're currently running in a test environment\n */\nexport function getIsTestEnvironment(): boolean {\n return isTestEnvironment();\n}\n\n/**\n * Get the global injector instance for debugging\n */\nexport const injector = {\n get instance() {\n return getGlobalInjector();\n },\n};\n\n/**\n * Destroy all resources and clean up\n */\nexport function destroy(root?: Document | ShadowRoot): void {\n return getGlobalInjector().destroy(root);\n}\n\n/**\n * Create a new isolated injector instance\n */\nexport function createInjector(\n config: Partial<StyleInjectorConfig> = {},\n): StyleInjector {\n const defaultConfig = getConfig();\n\n const fullConfig: StyleInjectorConfig = {\n ...defaultConfig,\n // Auto-enable forceTextInjection in test environments\n forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),\n ...config,\n };\n\n return new StyleInjector(fullConfig);\n}\n\n// Re-export types\nexport type {\n StyleInjectorConfig,\n InjectResult,\n DisposeFunction,\n RuleInfo,\n SheetInfo,\n RootRegistry,\n StyleRule,\n KeyframesInfo,\n KeyframesResult,\n KeyframesSteps,\n KeyframesCacheEntry,\n CacheMetrics,\n RawCSSResult,\n PropertyDefinition,\n FontFaceDescriptors,\n FontFaceInput,\n CounterStyleDescriptors,\n} from './types';\n\nexport { StyleInjector } from './injector';\nexport { SheetManager } from './sheet-manager';\n"],"mappings":";;;;;;;AAsBA,SAAgB,kBACd,UACA,SACiD;AACjD,QAAO,mBAAmB,CAAC,kBAAkB,UAAU,QAAQ;;;;;;;AAQjE,SAAgB,SACd,UACA,SACqB;AACrB,QAAO,mBAAmB,CAAC,SAAS,UAAU,QAAQ;;;;;AAMxD,SAAgB,OACd,OACA,SACc;AAEd,sBAAqB;AAErB,QAAO,mBAAmB,CAAC,OAAO,OAAO,QAAQ;;;;;AAMnD,SAAgB,aACd,OACA,SACoB;AACpB,QAAO,mBAAmB,CAAC,aAAa,OAAO,QAAQ;;;;;;;;;;;;;;;;;;;AAoBzD,SAAgB,aACd,KACA,SACyB;AACzB,QAAO,mBAAmB,CAAC,aAAa,KAAK,QAAQ;;;;;AAMvD,SAAgB,cAAc,SAEnB;AACT,QAAO,mBAAmB,CAAC,cAAc,QAAQ;;;;;AAMnD,SAAgB,UACd,OACA,eACiB;AACjB,QAAO,mBAAmB,CAAC,UAAU,OAAO,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkD5D,SAAgB,SAAS,MAAc,SAAiC;AACtE,QAAO,mBAAmB,CAAC,SAAS,MAAM,QAAQ;;;;;;;;AASpD,SAAgB,kBACd,MACA,SACS;AACT,QAAO,mBAAmB,CAAC,kBAAkB,MAAM,QAAQ;;;;;;;;AAS7D,SAAgB,SACd,QACA,aACA,SACM;AACN,QAAO,mBAAmB,CAAC,SAAS,QAAQ,aAAa,QAAQ;;;;;;;;AASnE,SAAgB,aACd,MACA,aACA,SACM;AACN,QAAO,mBAAmB,CAAC,aAAa,MAAM,aAAa,QAAQ;;;;;AAMrE,SAAgB,WAAW,SAAoD;AAC7E,QAAO,mBAAmB,CAAC,WAAW,QAAQ;;;;;;AAOhD,SAAgB,kBACd,MACA,SACQ;CAER,MAAM,2BAAW,IAAI,KAAa;CAElC,MAAM,eAAe,OAAgB;EACnC,MAAM,MAAM,GAAG,aAAa,QAAQ;AACpC,MAAI,CAAC,IAAK;AACV,OAAK,MAAM,SAAS,IAAI,MAAM,MAAM,CAClC,KAAI,SAAS,KAAK,MAAM,CAAE,UAAS,IAAI,MAAM;;AAKjD,KAAK,KAAiB,aACpB,aAAY,KAAgB;CAG9B,MAAM,WAAY,KAAoB,mBACjC,KAAoB,iBAAiB,UAAU,GAC/C,EAAE;AACP,KAAI,SAAU,UAAS,QAAQ,YAAY;AAE3C,QAAO,mBAAmB,CAAC,qBAAqB,UAAU,QAAQ;;;;;AAMpE,SAAgB,QAAQ,MAAoC;AAC1D,QAAO,mBAAmB,CAAC,QAAQ,KAAK;;;;;AAM1C,SAAgB,uBAAgC;AAC9C,QAAO,mBAAmB;;;;;AAM5B,MAAa,WAAW,EACtB,IAAI,WAAW;AACb,QAAO,mBAAmB;GAE7B;;;;AAKD,SAAgB,QAAQ,MAAoC;AAC1D,QAAO,mBAAmB,CAAC,QAAQ,KAAK;;;;;AAM1C,SAAgB,eACd,SAAuC,EAAE,EAC1B;AAUf,QAAO,IAAI,cAP6B;EACtC,GAHoB,WAAW;EAK/B,oBAAoB,OAAO,sBAAsB,mBAAmB;EACpE,GAAG;EACJ,CAEmC"}
@@ -1,166 +0,0 @@
1
- import { CacheMetrics, CounterStyleDescriptors, FontFaceDescriptors, GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, PropertyDefinition, RawCSSResult, StyleInjectorConfig } from "./types.js";
2
- import { StyleResult } from "../pipeline/index.js";
3
- import { SheetManager } from "./sheet-manager.js";
4
-
5
- //#region src/injector/injector.d.ts
6
- declare class StyleInjector {
7
- private sheetManager;
8
- private config;
9
- private cleanupScheduled;
10
- private globalRuleCounter;
11
- /** @internal — exposed for debug utilities only */
12
- get _sheetManager(): SheetManager;
13
- constructor(config?: StyleInjectorConfig);
14
- /**
15
- * Allocate a className for a cacheKey without injecting styles yet.
16
- * This allows separating className allocation (render phase) from style injection (insertion phase).
17
- */
18
- allocateClassName(cacheKey: string, options?: {
19
- root?: Document | ShadowRoot;
20
- }): {
21
- className: string;
22
- isNewAllocation: boolean;
23
- };
24
- /**
25
- * Inject styles from StyleResult objects
26
- */
27
- inject(rules: StyleResult[], options?: {
28
- root?: Document | ShadowRoot;
29
- cacheKey?: string;
30
- }): InjectResult;
31
- /**
32
- * Inject global styles (rules without a generated tasty class selector)
33
- * This ensures we don't reserve a tasty class name (t{number}) for global rules,
34
- * which could otherwise collide with element-level styles and break lookups.
35
- */
36
- injectGlobal(rules: StyleResult[], options?: {
37
- root?: Document | ShadowRoot;
38
- }): GlobalInjectResult;
39
- /**
40
- * Inject raw CSS text directly without parsing
41
- * This is a low-overhead alternative to createGlobalStyle for raw CSS
42
- * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking
43
- */
44
- injectRawCSS(css: string, options?: {
45
- root?: Document | ShadowRoot;
46
- }): RawCSSResult;
47
- /**
48
- * Get raw CSS text for SSR
49
- */
50
- getRawCSSText(options?: {
51
- root?: Document | ShadowRoot;
52
- }): string;
53
- /**
54
- * Increment refCount for an already-injected cacheKey and return a dispose.
55
- * Used by useStyles on cache hits (hydration or runtime reuse) where
56
- * the pipeline was skipped but refCount tracking is still needed.
57
- * Returns null if the cacheKey is not found.
58
- */
59
- trackRef(cacheKey: string, options?: {
60
- root?: Document | ShadowRoot;
61
- }): InjectResult | null;
62
- /**
63
- * Dispose of a className
64
- */
65
- private dispose;
66
- /**
67
- * Force bulk cleanup of unused styles
68
- */
69
- cleanup(root?: Document | ShadowRoot): void;
70
- /**
71
- * Get CSS text from all sheets (for SSR)
72
- */
73
- getCssText(options?: {
74
- root?: Document | ShadowRoot;
75
- }): string;
76
- /**
77
- * Get CSS only for the provided tasty classNames (e.g., ["t0","t3"])
78
- */
79
- getCssTextForClasses(classNames: Iterable<string>, options?: {
80
- root?: Document | ShadowRoot;
81
- }): string;
82
- /**
83
- * Get cache performance metrics
84
- */
85
- getMetrics(options?: {
86
- root?: Document | ShadowRoot;
87
- }): CacheMetrics | null;
88
- /**
89
- * Reset cache performance metrics
90
- */
91
- resetMetrics(options?: {
92
- root?: Document | ShadowRoot;
93
- }): void;
94
- /**
95
- * Define a CSS @property custom property.
96
- *
97
- * Accepts tasty token syntax for the property name:
98
- * - `$name` → defines `--name`
99
- * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
100
- * - `--name` → defines `--name` (legacy format)
101
- *
102
- * Example:
103
- * @property --rotation { syntax: "<angle>"; inherits: false; initial-value: 45deg; }
104
- *
105
- * Note: No caching or dispose — this defines a global property.
106
- *
107
- * If the same property is registered with different options, a warning is emitted
108
- * but the original definition is preserved (CSS @property cannot be redefined).
109
- */
110
- property(name: string, options?: PropertyDefinition & {
111
- root?: Document | ShadowRoot;
112
- }): void;
113
- /**
114
- * Check whether a given @property name was already injected by this injector.
115
- *
116
- * Accepts tasty token syntax:
117
- * - `$name` → checks `--name`
118
- * - `#name` → checks `--name-color`
119
- * - `--name` → checks `--name` (legacy format)
120
- */
121
- isPropertyDefined(name: string, options?: {
122
- root?: Document | ShadowRoot;
123
- }): boolean;
124
- /**
125
- * Inject a CSS @font-face rule.
126
- *
127
- * Permanent and global — no dispose or ref-counting.
128
- * Deduplicates by content hash (family + descriptors).
129
- */
130
- fontFace(family: string, descriptors: FontFaceDescriptors, options?: {
131
- root?: Document | ShadowRoot;
132
- }): void;
133
- /**
134
- * Inject a CSS @counter-style rule.
135
- *
136
- * Permanent and global — no dispose or ref-counting.
137
- * Deduplicates by name (first definition wins).
138
- */
139
- counterStyle(name: string, descriptors: CounterStyleDescriptors, options?: {
140
- root?: Document | ShadowRoot;
141
- }): void;
142
- /**
143
- * Inject keyframes and return object with toString() and dispose()
144
- *
145
- * Keyframes are cached by content (steps). If the same content is injected
146
- * multiple times with different provided names, the first injected name is reused.
147
- *
148
- * If the same name is provided with different content (collision), a unique
149
- * name is generated to avoid overwriting the existing keyframes.
150
- */
151
- keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
152
- root?: Document | ShadowRoot;
153
- name?: string;
154
- }): KeyframesResult;
155
- /**
156
- * Dispose keyframes
157
- */
158
- private disposeKeyframes;
159
- /**
160
- * Destroy all resources for a root
161
- */
162
- destroy(root?: Document | ShadowRoot): void;
163
- }
164
- //#endregion
165
- export { StyleInjector };
166
- //# sourceMappingURL=injector.d.ts.map