@griffel/react 1.5.4 → 1.5.5

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.
package/README.md CHANGED
@@ -15,6 +15,7 @@ A package with wrappers and APIs to be used with React.js.
15
15
  - [`makeStaticStyles()`](#makestaticstyles)
16
16
  - [`makeResetStyles()`](#makeresetstyles)
17
17
  - [`createDOMRenderer()`, `RendererProvider`](#createdomrenderer-rendererprovider)
18
+ - [insertionPoint](#insertionpoint)
18
19
  - [styleElementAttributes](#styleelementattributes)
19
20
  - [`TextDirectionProvider`](#textdirectionprovider)
20
21
  - [Shorthands](#shorthands)
@@ -375,6 +376,30 @@ function App(props) {
375
376
  }
376
377
  ```
377
378
 
379
+ ### insertionPoint
380
+
381
+ If specified, a renderer will insert created style tags after this element:
382
+
383
+ ```js
384
+ import { createDOMRenderer } from '@griffel/react';
385
+
386
+ const insertionPoint = document.head.querySelector('#foo');
387
+ const renderer = createDOMRenderer(document, {
388
+ insertionPoint,
389
+ });
390
+ ```
391
+
392
+ ```html
393
+ <html>
394
+ <head>
395
+ <style id="foo" />
396
+ <!-- Style elements created by Griffel will be inserted after "#foo" element -->
397
+ <style data-make-styles-bucket="d" />
398
+ <style id="bar" />
399
+ </head>
400
+ </html>
401
+ ```
402
+
378
403
  ### styleElementAttributes
379
404
 
380
405
  A map of attributes that's passed to the generated style elements. For example, is useful to set ["nonce" attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce).
@@ -382,7 +407,7 @@ A map of attributes that's passed to the generated style elements. For example,
382
407
  ```js
383
408
  import { createDOMRenderer } from '@griffel/react';
384
409
 
385
- const renderer = createDOMRenderer(targetDocument, {
410
+ const renderer = createDOMRenderer(document, {
386
411
  styleElementAttributes: {
387
412
  nonce: 'random',
388
413
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@griffel/react",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
4
4
  "description": "React implementation of Atomic CSS-in-JS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,13 +9,13 @@
9
9
  },
10
10
  "sideEffects": false,
11
11
  "dependencies": {
12
- "@griffel/core": "^1.9.2",
12
+ "@griffel/core": "^1.10.0",
13
13
  "tslib": "^2.1.0"
14
14
  },
15
15
  "peerDependencies": {
16
16
  "react": ">=16.8.0 <19.0.0"
17
17
  },
18
- "main": "./index.cjs.js",
19
18
  "module": "./index.esm.js",
20
- "typings": "./index.d.ts"
19
+ "main": "./index.cjs.js",
20
+ "types": "./src/index.d.ts"
21
21
  }
@@ -54,14 +54,16 @@ function renderToStyleElements(renderer) {
54
54
  if (!cssRules.length) {
55
55
  return null;
56
56
  }
57
- return /*#__PURE__*/React__namespace.createElement('style', Object.assign({
58
- key: stylesheet.bucketName
59
- }, stylesheet.elementAttributes, {
57
+ return /*#__PURE__*/React__namespace.createElement('style', {
58
+ key: stylesheet.bucketName,
59
+ // TODO: support "nonce"
60
+ // ...renderer.styleNodeAttributes,
61
+ ...stylesheet.elementAttributes,
60
62
  'data-make-styles-rehydration': 'true',
61
63
  dangerouslySetInnerHTML: {
62
64
  __html: cssRules.join('')
63
65
  }
64
- }));
66
+ });
65
67
  }).filter(Boolean);
66
68
  }
67
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"renderToStyleElements.cjs.js","sources":["../../../packages/react/src/renderToStyleElements.ts"],"sourcesContent":["import { styleBucketOrdering } from '@griffel/core';\nimport * as React from 'react';\nimport type { GriffelRenderer } from '@griffel/core';\n\n/**\n * This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.\n *\n * @public\n */\nexport function renderToStyleElements(renderer: GriffelRenderer): React.ReactElement[] {\n const stylesheets = Object.values(renderer.stylesheets)\n // first sort: bucket names\n .sort((a, b) => {\n return styleBucketOrdering.indexOf(a.bucketName) - styleBucketOrdering.indexOf(b.bucketName);\n })\n // second sort: media queries\n .sort((a, b) => {\n const mediaA = a.elementAttributes['media'];\n const mediaB = b.elementAttributes['media'];\n\n if (mediaA && mediaB) {\n return renderer.compareMediaQueries(mediaA, mediaB);\n }\n\n if (mediaA || mediaB) {\n return mediaA ? 1 : -1;\n }\n\n return 0;\n });\n\n return stylesheets\n .map(stylesheet => {\n const cssRules = stylesheet.cssRules();\n // don't want to create any empty style elements\n if (!cssRules.length) {\n return null;\n }\n\n return React.createElement('style', {\n key: stylesheet.bucketName,\n\n // TODO: support \"nonce\"\n // ...renderer.styleNodeAttributes,\n ...stylesheet.elementAttributes,\n 'data-make-styles-rehydration': 'true',\n\n dangerouslySetInnerHTML: {\n __html: cssRules.join(''),\n },\n });\n })\n .filter(Boolean) as React.ReactElement[];\n}\n"],"names":["renderToStyleElements","renderer","stylesheets","Object","values","sort","a","b","styleBucketOrdering","indexOf","bucketName","mediaA","elementAttributes","mediaB","compareMediaQueries","map","stylesheet","cssRules","length","React","createElement","key","dangerouslySetInnerHTML","__html","join","filter","Boolean"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;SAKgBA,qBAAqB,CAACC,QAAyB;EAC7D,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACC,WAAW;;GAEnDG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,OAAOC,wBAAmB,CAACC,OAAO,CAACH,CAAC,CAACI,UAAU,CAAC,GAAGF,wBAAmB,CAACC,OAAO,CAACF,CAAC,CAACG,UAAU,CAAC;GAC7F;;GAEAL,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,MAAMI,MAAM,GAAGL,CAAC,CAACM,iBAAiB,CAAC,OAAO,CAAC;IAC3C,MAAMC,MAAM,GAAGN,CAAC,CAACK,iBAAiB,CAAC,OAAO,CAAC;IAE3C,IAAID,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOZ,QAAQ,CAACa,mBAAmB,CAACH,MAAM,EAAEE,MAAM,CAAC;;IAGrD,IAAIF,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOF,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGxB,OAAO,CAAC;GACT,CAAC;EAEJ,OAAOT,WAAW,CACfa,GAAG,CAACC,UAAU;IACb,MAAMC,QAAQ,GAAGD,UAAU,CAACC,QAAQ,EAAE;;IAEtC,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;MACpB,OAAO,IAAI;;IAGb,oBAAOC,gBAAK,CAACC,aAAa,CAAC,OAAO;MAChCC,GAAG,EAAEL,UAAU,CAACN;OAIbM,UAAU,CAACJ,iBAAiB;MAC/B,8BAA8B,EAAE,MAAM;MAEtCU,uBAAuB,EAAE;QACvBC,MAAM,EAAEN,QAAQ,CAACO,IAAI,CAAC,EAAE;;OAE1B;GACH,CAAC,CACDC,MAAM,CAACC,OAAO,CAAyB;AAC5C;;;;"}
1
+ {"version":3,"file":"renderToStyleElements.cjs.js","sources":["../../../packages/react/src/renderToStyleElements.ts"],"sourcesContent":["import { styleBucketOrdering } from '@griffel/core';\nimport * as React from 'react';\nimport type { GriffelRenderer } from '@griffel/core';\n\n/**\n * This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.\n *\n * @public\n */\nexport function renderToStyleElements(renderer: GriffelRenderer): React.ReactElement[] {\n const stylesheets = Object.values(renderer.stylesheets)\n // first sort: bucket names\n .sort((a, b) => {\n return styleBucketOrdering.indexOf(a.bucketName) - styleBucketOrdering.indexOf(b.bucketName);\n })\n // second sort: media queries\n .sort((a, b) => {\n const mediaA = a.elementAttributes['media'];\n const mediaB = b.elementAttributes['media'];\n\n if (mediaA && mediaB) {\n return renderer.compareMediaQueries(mediaA, mediaB);\n }\n\n if (mediaA || mediaB) {\n return mediaA ? 1 : -1;\n }\n\n return 0;\n });\n\n return stylesheets\n .map(stylesheet => {\n const cssRules = stylesheet.cssRules();\n // don't want to create any empty style elements\n if (!cssRules.length) {\n return null;\n }\n\n return React.createElement('style', {\n key: stylesheet.bucketName,\n\n // TODO: support \"nonce\"\n // ...renderer.styleNodeAttributes,\n ...stylesheet.elementAttributes,\n 'data-make-styles-rehydration': 'true',\n\n dangerouslySetInnerHTML: {\n __html: cssRules.join(''),\n },\n });\n })\n .filter(Boolean) as React.ReactElement[];\n}\n"],"names":["renderToStyleElements","renderer","stylesheets","Object","values","sort","a","b","styleBucketOrdering","indexOf","bucketName","mediaA","elementAttributes","mediaB","compareMediaQueries","map","stylesheet","cssRules","length","React","createElement","key","dangerouslySetInnerHTML","__html","join","filter","Boolean"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;SAKgBA,qBAAqB,CAACC,QAAyB;EAC7D,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACC,WAAW;;GAEnDG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,OAAOC,wBAAmB,CAACC,OAAO,CAACH,CAAC,CAACI,UAAU,CAAC,GAAGF,wBAAmB,CAACC,OAAO,CAACF,CAAC,CAACG,UAAU,CAAC;GAC7F;;GAEAL,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,MAAMI,MAAM,GAAGL,CAAC,CAACM,iBAAiB,CAAC,OAAO,CAAC;IAC3C,MAAMC,MAAM,GAAGN,CAAC,CAACK,iBAAiB,CAAC,OAAO,CAAC;IAE3C,IAAID,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOZ,QAAQ,CAACa,mBAAmB,CAACH,MAAM,EAAEE,MAAM,CAAC;;IAGrD,IAAIF,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOF,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGxB,OAAO,CAAC;GACT,CAAC;EAEJ,OAAOT,WAAW,CACfa,GAAG,CAACC,UAAU;IACb,MAAMC,QAAQ,GAAGD,UAAU,CAACC,QAAQ,EAAE;;IAEtC,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;MACpB,OAAO,IAAI;;IAGb,oBAAOC,gBAAK,CAACC,aAAa,CAAC,OAAO,EAAE;MAClCC,GAAG,EAAEL,UAAU,CAACN,UAAU;;;MAI1B,GAAGM,UAAU,CAACJ,iBAAiB;MAC/B,8BAA8B,EAAE,MAAM;MAEtCU,uBAAuB,EAAE;QACvBC,MAAM,EAAEN,QAAQ,CAACO,IAAI,CAAC,EAAE;;KAE3B,CAAC;GACH,CAAC,CACDC,MAAM,CAACC,OAAO,CAAyB;AAC5C;;;;"}
@@ -30,14 +30,16 @@ function renderToStyleElements(renderer) {
30
30
  if (!cssRules.length) {
31
31
  return null;
32
32
  }
33
- return /*#__PURE__*/React.createElement('style', Object.assign({
34
- key: stylesheet.bucketName
35
- }, stylesheet.elementAttributes, {
33
+ return /*#__PURE__*/React.createElement('style', {
34
+ key: stylesheet.bucketName,
35
+ // TODO: support "nonce"
36
+ // ...renderer.styleNodeAttributes,
37
+ ...stylesheet.elementAttributes,
36
38
  'data-make-styles-rehydration': 'true',
37
39
  dangerouslySetInnerHTML: {
38
40
  __html: cssRules.join('')
39
41
  }
40
- }));
42
+ });
41
43
  }).filter(Boolean);
42
44
  }
43
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"renderToStyleElements.esm.js","sources":["../../../packages/react/src/renderToStyleElements.ts"],"sourcesContent":["import { styleBucketOrdering } from '@griffel/core';\nimport * as React from 'react';\nimport type { GriffelRenderer } from '@griffel/core';\n\n/**\n * This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.\n *\n * @public\n */\nexport function renderToStyleElements(renderer: GriffelRenderer): React.ReactElement[] {\n const stylesheets = Object.values(renderer.stylesheets)\n // first sort: bucket names\n .sort((a, b) => {\n return styleBucketOrdering.indexOf(a.bucketName) - styleBucketOrdering.indexOf(b.bucketName);\n })\n // second sort: media queries\n .sort((a, b) => {\n const mediaA = a.elementAttributes['media'];\n const mediaB = b.elementAttributes['media'];\n\n if (mediaA && mediaB) {\n return renderer.compareMediaQueries(mediaA, mediaB);\n }\n\n if (mediaA || mediaB) {\n return mediaA ? 1 : -1;\n }\n\n return 0;\n });\n\n return stylesheets\n .map(stylesheet => {\n const cssRules = stylesheet.cssRules();\n // don't want to create any empty style elements\n if (!cssRules.length) {\n return null;\n }\n\n return React.createElement('style', {\n key: stylesheet.bucketName,\n\n // TODO: support \"nonce\"\n // ...renderer.styleNodeAttributes,\n ...stylesheet.elementAttributes,\n 'data-make-styles-rehydration': 'true',\n\n dangerouslySetInnerHTML: {\n __html: cssRules.join(''),\n },\n });\n })\n .filter(Boolean) as React.ReactElement[];\n}\n"],"names":["renderToStyleElements","renderer","stylesheets","Object","values","sort","a","b","styleBucketOrdering","indexOf","bucketName","mediaA","elementAttributes","mediaB","compareMediaQueries","map","stylesheet","cssRules","length","React","createElement","key","dangerouslySetInnerHTML","__html","join","filter","Boolean"],"mappings":";;;AAIA;;;;;SAKgBA,qBAAqB,CAACC,QAAyB;EAC7D,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACC,WAAW;;GAEnDG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,OAAOC,mBAAmB,CAACC,OAAO,CAACH,CAAC,CAACI,UAAU,CAAC,GAAGF,mBAAmB,CAACC,OAAO,CAACF,CAAC,CAACG,UAAU,CAAC;GAC7F;;GAEAL,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,MAAMI,MAAM,GAAGL,CAAC,CAACM,iBAAiB,CAAC,OAAO,CAAC;IAC3C,MAAMC,MAAM,GAAGN,CAAC,CAACK,iBAAiB,CAAC,OAAO,CAAC;IAE3C,IAAID,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOZ,QAAQ,CAACa,mBAAmB,CAACH,MAAM,EAAEE,MAAM,CAAC;;IAGrD,IAAIF,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOF,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGxB,OAAO,CAAC;GACT,CAAC;EAEJ,OAAOT,WAAW,CACfa,GAAG,CAACC,UAAU;IACb,MAAMC,QAAQ,GAAGD,UAAU,CAACC,QAAQ,EAAE;;IAEtC,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;MACpB,OAAO,IAAI;;IAGb,oBAAOC,KAAK,CAACC,aAAa,CAAC,OAAO;MAChCC,GAAG,EAAEL,UAAU,CAACN;OAIbM,UAAU,CAACJ,iBAAiB;MAC/B,8BAA8B,EAAE,MAAM;MAEtCU,uBAAuB,EAAE;QACvBC,MAAM,EAAEN,QAAQ,CAACO,IAAI,CAAC,EAAE;;OAE1B;GACH,CAAC,CACDC,MAAM,CAACC,OAAO,CAAyB;AAC5C;;;;"}
1
+ {"version":3,"file":"renderToStyleElements.esm.js","sources":["../../../packages/react/src/renderToStyleElements.ts"],"sourcesContent":["import { styleBucketOrdering } from '@griffel/core';\nimport * as React from 'react';\nimport type { GriffelRenderer } from '@griffel/core';\n\n/**\n * This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.\n *\n * @public\n */\nexport function renderToStyleElements(renderer: GriffelRenderer): React.ReactElement[] {\n const stylesheets = Object.values(renderer.stylesheets)\n // first sort: bucket names\n .sort((a, b) => {\n return styleBucketOrdering.indexOf(a.bucketName) - styleBucketOrdering.indexOf(b.bucketName);\n })\n // second sort: media queries\n .sort((a, b) => {\n const mediaA = a.elementAttributes['media'];\n const mediaB = b.elementAttributes['media'];\n\n if (mediaA && mediaB) {\n return renderer.compareMediaQueries(mediaA, mediaB);\n }\n\n if (mediaA || mediaB) {\n return mediaA ? 1 : -1;\n }\n\n return 0;\n });\n\n return stylesheets\n .map(stylesheet => {\n const cssRules = stylesheet.cssRules();\n // don't want to create any empty style elements\n if (!cssRules.length) {\n return null;\n }\n\n return React.createElement('style', {\n key: stylesheet.bucketName,\n\n // TODO: support \"nonce\"\n // ...renderer.styleNodeAttributes,\n ...stylesheet.elementAttributes,\n 'data-make-styles-rehydration': 'true',\n\n dangerouslySetInnerHTML: {\n __html: cssRules.join(''),\n },\n });\n })\n .filter(Boolean) as React.ReactElement[];\n}\n"],"names":["renderToStyleElements","renderer","stylesheets","Object","values","sort","a","b","styleBucketOrdering","indexOf","bucketName","mediaA","elementAttributes","mediaB","compareMediaQueries","map","stylesheet","cssRules","length","React","createElement","key","dangerouslySetInnerHTML","__html","join","filter","Boolean"],"mappings":";;;AAIA;;;;;SAKgBA,qBAAqB,CAACC,QAAyB;EAC7D,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAACH,QAAQ,CAACC,WAAW;;GAEnDG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,OAAOC,mBAAmB,CAACC,OAAO,CAACH,CAAC,CAACI,UAAU,CAAC,GAAGF,mBAAmB,CAACC,OAAO,CAACF,CAAC,CAACG,UAAU,CAAC;GAC7F;;GAEAL,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC;IACT,MAAMI,MAAM,GAAGL,CAAC,CAACM,iBAAiB,CAAC,OAAO,CAAC;IAC3C,MAAMC,MAAM,GAAGN,CAAC,CAACK,iBAAiB,CAAC,OAAO,CAAC;IAE3C,IAAID,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOZ,QAAQ,CAACa,mBAAmB,CAACH,MAAM,EAAEE,MAAM,CAAC;;IAGrD,IAAIF,MAAM,IAAIE,MAAM,EAAE;MACpB,OAAOF,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGxB,OAAO,CAAC;GACT,CAAC;EAEJ,OAAOT,WAAW,CACfa,GAAG,CAACC,UAAU;IACb,MAAMC,QAAQ,GAAGD,UAAU,CAACC,QAAQ,EAAE;;IAEtC,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;MACpB,OAAO,IAAI;;IAGb,oBAAOC,KAAK,CAACC,aAAa,CAAC,OAAO,EAAE;MAClCC,GAAG,EAAEL,UAAU,CAACN,UAAU;;;MAI1B,GAAGM,UAAU,CAACJ,iBAAiB;MAC/B,8BAA8B,EAAE,MAAM;MAEtCU,uBAAuB,EAAE;QACvBC,MAAM,EAAEN,QAAQ,CAACO,IAAI,CAAC,EAAE;;KAE3B,CAAC;GACH,CAAC,CACDC,MAAM,CAACC,OAAO,CAAyB;AAC5C;;;;"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes