StyleContext.d.ts 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612
  1. import type { ShallowRef, ExtractPropTypes, Ref } from 'vue';
  2. import CacheEntity from './Cache';
  3. import type { Linter } from './linters/interface';
  4. import type { Transformer } from './transformers/interface';
  5. export declare const ATTR_TOKEN = "data-token-hash";
  6. export declare const ATTR_MARK = "data-css-hash";
  7. export declare const ATTR_CACHE_PATH = "data-cache-path";
  8. export declare const CSS_IN_JS_INSTANCE = "__cssinjs_instance__";
  9. export declare function createCache(): CacheEntity;
  10. export type HashPriority = 'low' | 'high';
  11. export interface StyleContextProps {
  12. autoClear?: boolean;
  13. /** @private Test only. Not work in production. */
  14. mock?: 'server' | 'client';
  15. /**
  16. * Only set when you need ssr to extract style on you own.
  17. * If not provided, it will auto create <style /> on the end of Provider in server side.
  18. */
  19. cache: CacheEntity;
  20. /** Tell children that this context is default generated context */
  21. defaultCache: boolean;
  22. /** Use `:where` selector to reduce hashId css selector priority */
  23. hashPriority?: HashPriority;
  24. /** Tell cssinjs where to inject style in */
  25. container?: Element | ShadowRoot;
  26. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  27. ssrInline?: boolean;
  28. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  29. transformers?: Transformer[];
  30. /**
  31. * Linters to lint css before inject in document.
  32. * Styles will be linted after transforming.
  33. * Please note that `linters` do not support dynamic update.
  34. */
  35. linters?: Linter[];
  36. }
  37. export type UseStyleProviderProps = Partial<StyleContextProps> | Ref<Partial<StyleContextProps>>;
  38. export declare const useStyleInject: () => ShallowRef<Partial<StyleContextProps>>;
  39. export declare const useStyleProvider: (props: UseStyleProviderProps) => ShallowRef<Partial<StyleContextProps>>;
  40. export declare const styleProviderProps: () => {
  41. autoClear: {
  42. type: BooleanConstructor;
  43. default: boolean;
  44. };
  45. /** @private Test only. Not work in production. */
  46. mock: {
  47. type: import("vue").PropType<"server" | "client">;
  48. default: "server" | "client";
  49. };
  50. /**
  51. * Only set when you need ssr to extract style on you own.
  52. * If not provided, it will auto create <style /> on the end of Provider in server side.
  53. */
  54. cache: {
  55. type: import("vue").PropType<CacheEntity>;
  56. default: CacheEntity;
  57. };
  58. /** Tell children that this context is default generated context */
  59. defaultCache: {
  60. type: BooleanConstructor;
  61. default: boolean;
  62. };
  63. /** Use `:where` selector to reduce hashId css selector priority */
  64. hashPriority: {
  65. type: import("vue").PropType<HashPriority>;
  66. default: HashPriority;
  67. };
  68. /** Tell cssinjs where to inject style in */
  69. container: {
  70. type: import("vue").PropType<Element | ShadowRoot>;
  71. default: Element | ShadowRoot;
  72. };
  73. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  74. ssrInline: {
  75. type: BooleanConstructor;
  76. default: boolean;
  77. };
  78. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  79. transformers: {
  80. type: import("vue").PropType<Transformer[]>;
  81. default: Transformer[];
  82. };
  83. /**
  84. * Linters to lint css before inject in document.
  85. * Styles will be linted after transforming.
  86. * Please note that `linters` do not support dynamic update.
  87. */
  88. linters: {
  89. type: import("vue").PropType<Linter[]>;
  90. default: Linter[];
  91. };
  92. };
  93. export type StyleProviderProps = Partial<ExtractPropTypes<ReturnType<typeof styleProviderProps>>>;
  94. export declare const StyleProvider: {
  95. new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<ExtractPropTypes<{
  96. autoClear: {
  97. type: BooleanConstructor;
  98. default: boolean;
  99. };
  100. /** @private Test only. Not work in production. */
  101. mock: {
  102. type: import("vue").PropType<"server" | "client">;
  103. default: "server" | "client";
  104. };
  105. /**
  106. * Only set when you need ssr to extract style on you own.
  107. * If not provided, it will auto create <style /> on the end of Provider in server side.
  108. */
  109. cache: {
  110. type: import("vue").PropType<CacheEntity>;
  111. default: CacheEntity;
  112. };
  113. /** Tell children that this context is default generated context */
  114. defaultCache: {
  115. type: BooleanConstructor;
  116. default: boolean;
  117. };
  118. /** Use `:where` selector to reduce hashId css selector priority */
  119. hashPriority: {
  120. type: import("vue").PropType<HashPriority>;
  121. default: HashPriority;
  122. };
  123. /** Tell cssinjs where to inject style in */
  124. container: {
  125. type: import("vue").PropType<Element | ShadowRoot>;
  126. default: Element | ShadowRoot;
  127. };
  128. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  129. ssrInline: {
  130. type: BooleanConstructor;
  131. default: boolean;
  132. };
  133. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  134. transformers: {
  135. type: import("vue").PropType<Transformer[]>;
  136. default: Transformer[];
  137. };
  138. /**
  139. * Linters to lint css before inject in document.
  140. * Styles will be linted after transforming.
  141. * Please note that `linters` do not support dynamic update.
  142. */
  143. linters: {
  144. type: import("vue").PropType<Linter[]>;
  145. default: Linter[];
  146. };
  147. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  148. [key: string]: any;
  149. }>[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<ExtractPropTypes<{
  150. autoClear: {
  151. type: BooleanConstructor;
  152. default: boolean;
  153. };
  154. /** @private Test only. Not work in production. */
  155. mock: {
  156. type: import("vue").PropType<"server" | "client">;
  157. default: "server" | "client";
  158. };
  159. /**
  160. * Only set when you need ssr to extract style on you own.
  161. * If not provided, it will auto create <style /> on the end of Provider in server side.
  162. */
  163. cache: {
  164. type: import("vue").PropType<CacheEntity>;
  165. default: CacheEntity;
  166. };
  167. /** Tell children that this context is default generated context */
  168. defaultCache: {
  169. type: BooleanConstructor;
  170. default: boolean;
  171. };
  172. /** Use `:where` selector to reduce hashId css selector priority */
  173. hashPriority: {
  174. type: import("vue").PropType<HashPriority>;
  175. default: HashPriority;
  176. };
  177. /** Tell cssinjs where to inject style in */
  178. container: {
  179. type: import("vue").PropType<Element | ShadowRoot>;
  180. default: Element | ShadowRoot;
  181. };
  182. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  183. ssrInline: {
  184. type: BooleanConstructor;
  185. default: boolean;
  186. };
  187. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  188. transformers: {
  189. type: import("vue").PropType<Transformer[]>;
  190. default: Transformer[];
  191. };
  192. /**
  193. * Linters to lint css before inject in document.
  194. * Styles will be linted after transforming.
  195. * Please note that `linters` do not support dynamic update.
  196. */
  197. linters: {
  198. type: import("vue").PropType<Linter[]>;
  199. default: Linter[];
  200. };
  201. }>>, {
  202. autoClear: boolean;
  203. mock: "server" | "client";
  204. cache: CacheEntity;
  205. defaultCache: boolean;
  206. hashPriority: HashPriority;
  207. container: Element | ShadowRoot;
  208. ssrInline: boolean;
  209. transformers: Transformer[];
  210. linters: Linter[];
  211. }, true, {}, {}, {
  212. P: {};
  213. B: {};
  214. D: {};
  215. C: {};
  216. M: {};
  217. Defaults: {};
  218. }, Readonly<ExtractPropTypes<{
  219. autoClear: {
  220. type: BooleanConstructor;
  221. default: boolean;
  222. };
  223. /** @private Test only. Not work in production. */
  224. mock: {
  225. type: import("vue").PropType<"server" | "client">;
  226. default: "server" | "client";
  227. };
  228. /**
  229. * Only set when you need ssr to extract style on you own.
  230. * If not provided, it will auto create <style /> on the end of Provider in server side.
  231. */
  232. cache: {
  233. type: import("vue").PropType<CacheEntity>;
  234. default: CacheEntity;
  235. };
  236. /** Tell children that this context is default generated context */
  237. defaultCache: {
  238. type: BooleanConstructor;
  239. default: boolean;
  240. };
  241. /** Use `:where` selector to reduce hashId css selector priority */
  242. hashPriority: {
  243. type: import("vue").PropType<HashPriority>;
  244. default: HashPriority;
  245. };
  246. /** Tell cssinjs where to inject style in */
  247. container: {
  248. type: import("vue").PropType<Element | ShadowRoot>;
  249. default: Element | ShadowRoot;
  250. };
  251. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  252. ssrInline: {
  253. type: BooleanConstructor;
  254. default: boolean;
  255. };
  256. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  257. transformers: {
  258. type: import("vue").PropType<Transformer[]>;
  259. default: Transformer[];
  260. };
  261. /**
  262. * Linters to lint css before inject in document.
  263. * Styles will be linted after transforming.
  264. * Please note that `linters` do not support dynamic update.
  265. */
  266. linters: {
  267. type: import("vue").PropType<Linter[]>;
  268. default: Linter[];
  269. };
  270. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  271. [key: string]: any;
  272. }>[], {}, {}, {}, {
  273. autoClear: boolean;
  274. mock: "server" | "client";
  275. cache: CacheEntity;
  276. defaultCache: boolean;
  277. hashPriority: HashPriority;
  278. container: Element | ShadowRoot;
  279. ssrInline: boolean;
  280. transformers: Transformer[];
  281. linters: Linter[];
  282. }>;
  283. __isFragment?: never;
  284. __isTeleport?: never;
  285. __isSuspense?: never;
  286. } & import("vue").ComponentOptionsBase<Readonly<ExtractPropTypes<{
  287. autoClear: {
  288. type: BooleanConstructor;
  289. default: boolean;
  290. };
  291. /** @private Test only. Not work in production. */
  292. mock: {
  293. type: import("vue").PropType<"server" | "client">;
  294. default: "server" | "client";
  295. };
  296. /**
  297. * Only set when you need ssr to extract style on you own.
  298. * If not provided, it will auto create <style /> on the end of Provider in server side.
  299. */
  300. cache: {
  301. type: import("vue").PropType<CacheEntity>;
  302. default: CacheEntity;
  303. };
  304. /** Tell children that this context is default generated context */
  305. defaultCache: {
  306. type: BooleanConstructor;
  307. default: boolean;
  308. };
  309. /** Use `:where` selector to reduce hashId css selector priority */
  310. hashPriority: {
  311. type: import("vue").PropType<HashPriority>;
  312. default: HashPriority;
  313. };
  314. /** Tell cssinjs where to inject style in */
  315. container: {
  316. type: import("vue").PropType<Element | ShadowRoot>;
  317. default: Element | ShadowRoot;
  318. };
  319. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  320. ssrInline: {
  321. type: BooleanConstructor;
  322. default: boolean;
  323. };
  324. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  325. transformers: {
  326. type: import("vue").PropType<Transformer[]>;
  327. default: Transformer[];
  328. };
  329. /**
  330. * Linters to lint css before inject in document.
  331. * Styles will be linted after transforming.
  332. * Please note that `linters` do not support dynamic update.
  333. */
  334. linters: {
  335. type: import("vue").PropType<Linter[]>;
  336. default: Linter[];
  337. };
  338. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  339. [key: string]: any;
  340. }>[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
  341. autoClear: boolean;
  342. mock: "server" | "client";
  343. cache: CacheEntity;
  344. defaultCache: boolean;
  345. hashPriority: HashPriority;
  346. container: Element | ShadowRoot;
  347. ssrInline: boolean;
  348. transformers: Transformer[];
  349. linters: Linter[];
  350. }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]>;
  351. declare const _default: {
  352. useStyleInject: () => ShallowRef<Partial<StyleContextProps>>;
  353. useStyleProvider: (props: UseStyleProviderProps) => ShallowRef<Partial<StyleContextProps>>;
  354. StyleProvider: {
  355. new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<ExtractPropTypes<{
  356. autoClear: {
  357. type: BooleanConstructor;
  358. default: boolean;
  359. };
  360. /** @private Test only. Not work in production. */
  361. mock: {
  362. type: import("vue").PropType<"server" | "client">;
  363. default: "server" | "client";
  364. };
  365. /**
  366. * Only set when you need ssr to extract style on you own.
  367. * If not provided, it will auto create <style /> on the end of Provider in server side.
  368. */
  369. cache: {
  370. type: import("vue").PropType<CacheEntity>;
  371. default: CacheEntity;
  372. };
  373. /** Tell children that this context is default generated context */
  374. defaultCache: {
  375. type: BooleanConstructor;
  376. default: boolean;
  377. };
  378. /** Use `:where` selector to reduce hashId css selector priority */
  379. hashPriority: {
  380. type: import("vue").PropType<HashPriority>;
  381. default: HashPriority;
  382. };
  383. /** Tell cssinjs where to inject style in */
  384. container: {
  385. type: import("vue").PropType<Element | ShadowRoot>;
  386. default: Element | ShadowRoot;
  387. };
  388. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  389. ssrInline: {
  390. type: BooleanConstructor;
  391. default: boolean;
  392. };
  393. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  394. transformers: {
  395. type: import("vue").PropType<Transformer[]>;
  396. default: Transformer[];
  397. };
  398. /**
  399. * Linters to lint css before inject in document.
  400. * Styles will be linted after transforming.
  401. * Please note that `linters` do not support dynamic update.
  402. */
  403. linters: {
  404. type: import("vue").PropType<Linter[]>;
  405. default: Linter[];
  406. };
  407. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  408. [key: string]: any;
  409. }>[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<ExtractPropTypes<{
  410. autoClear: {
  411. type: BooleanConstructor;
  412. default: boolean;
  413. };
  414. /** @private Test only. Not work in production. */
  415. mock: {
  416. type: import("vue").PropType<"server" | "client">;
  417. default: "server" | "client";
  418. };
  419. /**
  420. * Only set when you need ssr to extract style on you own.
  421. * If not provided, it will auto create <style /> on the end of Provider in server side.
  422. */
  423. cache: {
  424. type: import("vue").PropType<CacheEntity>;
  425. default: CacheEntity;
  426. };
  427. /** Tell children that this context is default generated context */
  428. defaultCache: {
  429. type: BooleanConstructor;
  430. default: boolean;
  431. };
  432. /** Use `:where` selector to reduce hashId css selector priority */
  433. hashPriority: {
  434. type: import("vue").PropType<HashPriority>;
  435. default: HashPriority;
  436. };
  437. /** Tell cssinjs where to inject style in */
  438. container: {
  439. type: import("vue").PropType<Element | ShadowRoot>;
  440. default: Element | ShadowRoot;
  441. };
  442. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  443. ssrInline: {
  444. type: BooleanConstructor;
  445. default: boolean;
  446. };
  447. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  448. transformers: {
  449. type: import("vue").PropType<Transformer[]>;
  450. default: Transformer[];
  451. };
  452. /**
  453. * Linters to lint css before inject in document.
  454. * Styles will be linted after transforming.
  455. * Please note that `linters` do not support dynamic update.
  456. */
  457. linters: {
  458. type: import("vue").PropType<Linter[]>;
  459. default: Linter[];
  460. };
  461. }>>, {
  462. autoClear: boolean;
  463. mock: "server" | "client";
  464. cache: CacheEntity;
  465. defaultCache: boolean;
  466. hashPriority: HashPriority;
  467. container: Element | ShadowRoot;
  468. ssrInline: boolean;
  469. transformers: Transformer[];
  470. linters: Linter[];
  471. }, true, {}, {}, {
  472. P: {};
  473. B: {};
  474. D: {};
  475. C: {};
  476. M: {};
  477. Defaults: {};
  478. }, Readonly<ExtractPropTypes<{
  479. autoClear: {
  480. type: BooleanConstructor;
  481. default: boolean;
  482. };
  483. /** @private Test only. Not work in production. */
  484. mock: {
  485. type: import("vue").PropType<"server" | "client">;
  486. default: "server" | "client";
  487. };
  488. /**
  489. * Only set when you need ssr to extract style on you own.
  490. * If not provided, it will auto create <style /> on the end of Provider in server side.
  491. */
  492. cache: {
  493. type: import("vue").PropType<CacheEntity>;
  494. default: CacheEntity;
  495. };
  496. /** Tell children that this context is default generated context */
  497. defaultCache: {
  498. type: BooleanConstructor;
  499. default: boolean;
  500. };
  501. /** Use `:where` selector to reduce hashId css selector priority */
  502. hashPriority: {
  503. type: import("vue").PropType<HashPriority>;
  504. default: HashPriority;
  505. };
  506. /** Tell cssinjs where to inject style in */
  507. container: {
  508. type: import("vue").PropType<Element | ShadowRoot>;
  509. default: Element | ShadowRoot;
  510. };
  511. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  512. ssrInline: {
  513. type: BooleanConstructor;
  514. default: boolean;
  515. };
  516. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  517. transformers: {
  518. type: import("vue").PropType<Transformer[]>;
  519. default: Transformer[];
  520. };
  521. /**
  522. * Linters to lint css before inject in document.
  523. * Styles will be linted after transforming.
  524. * Please note that `linters` do not support dynamic update.
  525. */
  526. linters: {
  527. type: import("vue").PropType<Linter[]>;
  528. default: Linter[];
  529. };
  530. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  531. [key: string]: any;
  532. }>[], {}, {}, {}, {
  533. autoClear: boolean;
  534. mock: "server" | "client";
  535. cache: CacheEntity;
  536. defaultCache: boolean;
  537. hashPriority: HashPriority;
  538. container: Element | ShadowRoot;
  539. ssrInline: boolean;
  540. transformers: Transformer[];
  541. linters: Linter[];
  542. }>;
  543. __isFragment?: never;
  544. __isTeleport?: never;
  545. __isSuspense?: never;
  546. } & import("vue").ComponentOptionsBase<Readonly<ExtractPropTypes<{
  547. autoClear: {
  548. type: BooleanConstructor;
  549. default: boolean;
  550. };
  551. /** @private Test only. Not work in production. */
  552. mock: {
  553. type: import("vue").PropType<"server" | "client">;
  554. default: "server" | "client";
  555. };
  556. /**
  557. * Only set when you need ssr to extract style on you own.
  558. * If not provided, it will auto create <style /> on the end of Provider in server side.
  559. */
  560. cache: {
  561. type: import("vue").PropType<CacheEntity>;
  562. default: CacheEntity;
  563. };
  564. /** Tell children that this context is default generated context */
  565. defaultCache: {
  566. type: BooleanConstructor;
  567. default: boolean;
  568. };
  569. /** Use `:where` selector to reduce hashId css selector priority */
  570. hashPriority: {
  571. type: import("vue").PropType<HashPriority>;
  572. default: HashPriority;
  573. };
  574. /** Tell cssinjs where to inject style in */
  575. container: {
  576. type: import("vue").PropType<Element | ShadowRoot>;
  577. default: Element | ShadowRoot;
  578. };
  579. /** Component wil render inline `<style />` for fallback in SSR. Not recommend. */
  580. ssrInline: {
  581. type: BooleanConstructor;
  582. default: boolean;
  583. };
  584. /** Transform css before inject in document. Please note that `transformers` do not support dynamic update */
  585. transformers: {
  586. type: import("vue").PropType<Transformer[]>;
  587. default: Transformer[];
  588. };
  589. /**
  590. * Linters to lint css before inject in document.
  591. * Styles will be linted after transforming.
  592. * Please note that `linters` do not support dynamic update.
  593. */
  594. linters: {
  595. type: import("vue").PropType<Linter[]>;
  596. default: Linter[];
  597. };
  598. }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  599. [key: string]: any;
  600. }>[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
  601. autoClear: boolean;
  602. mock: "server" | "client";
  603. cache: CacheEntity;
  604. defaultCache: boolean;
  605. hashPriority: HashPriority;
  606. container: Element | ShadowRoot;
  607. ssrInline: boolean;
  608. transformers: Transformer[];
  609. linters: Linter[];
  610. }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]>;
  611. };
  612. export default _default;