@griffel/react 1.7.1 → 1.7.3
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/.storybook/main.js +20 -0
- package/.storybook/preview.js +1 -0
- package/CHANGELOG.json +1281 -0
- package/CHANGELOG.md +501 -0
- package/README.md +4 -0
- package/bundle-size/__css.fixture.js +7 -0
- package/bundle-size/__styles.fixture.js +7 -0
- package/bundle-size/makeResetStyles.fixture.js +7 -0
- package/bundle-size/makeStaticStyles.fixture.js +7 -0
- package/bundle-size/makeStyles.fixture.js +7 -0
- package/eslint.config.mjs +31 -0
- package/package.json +3 -3
- package/project.json +96 -0
- package/src/RendererContext.tsx +52 -0
- package/src/TextDirectionContext.tsx +34 -0
- package/src/__css.ts +21 -0
- package/src/__resetCSS.ts +19 -0
- package/src/__resetStyles.ts +28 -0
- package/src/{__staticCSS.js → __staticCSS.ts} +7 -6
- package/src/__staticStyles.ts +22 -0
- package/src/__styles.ts +27 -0
- package/src/createDOMRenderer.test.tsx +133 -0
- package/src/{index.d.ts → index.ts} +6 -0
- package/src/insertionFactory-node.test.ts +31 -0
- package/src/insertionFactory.test.ts +29 -0
- package/src/insertionFactory.ts +27 -0
- package/src/makeResetStyles.test.tsx +27 -0
- package/src/makeResetStyles.ts +31 -0
- package/src/makeStaticStyles.ts +23 -0
- package/src/makeStyles.test.tsx +27 -0
- package/src/makeStyles.ts +31 -0
- package/src/renderToStyleElements-node.test.tsx +418 -0
- package/src/renderToStyleElements.test.tsx +103 -0
- package/src/renderToStyleElements.ts +61 -0
- package/src/stories/ComponentStyles.stories.tsx +55 -0
- package/src/stories/DOMRendererFilter.stories.tsx +76 -0
- package/src/stories/FallbackValues.stories.tsx +50 -0
- package/src/stories/makeStyles.stories.tsx +17 -0
- package/src/useInsertionEffect.ts +11 -0
- package/src/utils/canUseDOM-node.test.ts +14 -0
- package/src/utils/canUseDOM.test.tsx +8 -0
- package/src/utils/canUseDOM.ts +8 -0
- package/src/utils/isInsideComponent.ts +41 -0
- package/tsconfig.json +20 -0
- package/tsconfig.lib.json +28 -0
- package/tsconfig.spec.json +21 -0
- package/tsconfig.storybook.json +12 -0
- package/vitest.config.ts +21 -0
- package/LICENSE.md +0 -21
- package/lib/RendererContext.cjs +0 -45
- package/lib/TextDirectionContext.cjs +0 -33
- package/lib/__css.cjs +0 -22
- package/lib/__resetCSS.cjs +0 -22
- package/lib/__resetStyles.cjs +0 -26
- package/lib/__staticCSS.cjs +0 -18
- package/lib/__staticStyles.cjs +0 -23
- package/lib/__styles.cjs +0 -26
- package/lib/index.cjs +0 -78
- package/lib/insertionFactory.cjs +0 -33
- package/lib/makeResetStyles.cjs +0 -35
- package/lib/makeStaticStyles.cjs +0 -28
- package/lib/makeStyles.cjs +0 -35
- package/lib/renderToStyleElements.cjs +0 -50
- package/lib/useInsertionEffect.cjs +0 -20
- package/lib/utils/canUseDOM.cjs +0 -17
- package/lib/utils/isInsideComponent.cjs +0 -46
- package/src/RendererContext.d.ts +0 -24
- package/src/RendererContext.js +0 -31
- package/src/RendererContext.js.map +0 -1
- package/src/TextDirectionContext.d.ts +0 -19
- package/src/TextDirectionContext.js +0 -22
- package/src/TextDirectionContext.js.map +0 -1
- package/src/__css.d.ts +0 -7
- package/src/__css.js +0 -17
- package/src/__css.js.map +0 -1
- package/src/__resetCSS.d.ts +0 -6
- package/src/__resetCSS.js +0 -17
- package/src/__resetCSS.js.map +0 -1
- package/src/__resetStyles.d.ts +0 -7
- package/src/__resetStyles.js +0 -20
- package/src/__resetStyles.js.map +0 -1
- package/src/__staticCSS.d.ts +0 -6
- package/src/__staticCSS.js.map +0 -1
- package/src/__staticStyles.d.ts +0 -7
- package/src/__staticStyles.js +0 -18
- package/src/__staticStyles.js.map +0 -1
- package/src/__styles.d.ts +0 -7
- package/src/__styles.js +0 -20
- package/src/__styles.js.map +0 -1
- package/src/index.js +0 -16
- package/src/index.js.map +0 -1
- package/src/insertionFactory.d.ts +0 -2
- package/src/insertionFactory.js +0 -21
- package/src/insertionFactory.js.map +0 -1
- package/src/makeResetStyles.d.ts +0 -2
- package/src/makeResetStyles.js +0 -23
- package/src/makeResetStyles.js.map +0 -1
- package/src/makeStaticStyles.d.ts +0 -2
- package/src/makeStaticStyles.js +0 -17
- package/src/makeStaticStyles.js.map +0 -1
- package/src/makeStyles.d.ts +0 -2
- package/src/makeStyles.js +0 -23
- package/src/makeStyles.js.map +0 -1
- package/src/renderToStyleElements.d.ts +0 -8
- package/src/renderToStyleElements.js +0 -51
- package/src/renderToStyleElements.js.map +0 -1
- package/src/useInsertionEffect.d.ts +0 -1
- package/src/useInsertionEffect.js +0 -10
- package/src/useInsertionEffect.js.map +0 -1
- package/src/utils/canUseDOM.d.ts +0 -1
- package/src/utils/canUseDOM.js +0 -9
- package/src/utils/canUseDOM.js.map +0 -1
- package/src/utils/isInsideComponent.d.ts +0 -1
- package/src/utils/isInsideComponent.js +0 -39
- package/src/utils/isInsideComponent.js.map +0 -1
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ReactElement } from 'react';
|
|
2
|
-
import type { GriffelRenderer } from '@griffel/core';
|
|
3
|
-
/**
|
|
4
|
-
* This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.
|
|
5
|
-
*
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
export declare function renderToStyleElements(renderer: GriffelRenderer): ReactElement[];
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { styleBucketOrdering } from '@griffel/core';
|
|
3
|
-
import { createElement } from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* This method returns a list of <style> React elements with the rendered CSS. This is useful for Server-Side rendering.
|
|
6
|
-
*
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export function renderToStyleElements(renderer) {
|
|
10
|
-
const stylesheets = Object.values(renderer.stylesheets)
|
|
11
|
-
// first sort: bucket by order [data-priority]
|
|
12
|
-
.sort((a, b) => {
|
|
13
|
-
return Number(a.elementAttributes['data-priority']) - Number(b.elementAttributes['data-priority']);
|
|
14
|
-
})
|
|
15
|
-
// second sort: bucket by bucket name
|
|
16
|
-
.sort((a, b) => {
|
|
17
|
-
return styleBucketOrdering.indexOf(a.bucketName) - styleBucketOrdering.indexOf(b.bucketName);
|
|
18
|
-
})
|
|
19
|
-
// third sort: media queries
|
|
20
|
-
.sort((a, b) => {
|
|
21
|
-
const mediaA = a.elementAttributes['media'];
|
|
22
|
-
const mediaB = b.elementAttributes['media'];
|
|
23
|
-
if (mediaA && mediaB) {
|
|
24
|
-
return renderer.compareMediaQueries(mediaA, mediaB);
|
|
25
|
-
}
|
|
26
|
-
if (mediaA || mediaB) {
|
|
27
|
-
return mediaA ? 1 : -1;
|
|
28
|
-
}
|
|
29
|
-
return 0;
|
|
30
|
-
});
|
|
31
|
-
return stylesheets
|
|
32
|
-
.map(stylesheet => {
|
|
33
|
-
const cssRules = stylesheet.cssRules();
|
|
34
|
-
// don't want to create any empty style elements
|
|
35
|
-
if (!cssRules.length) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
return createElement('style', {
|
|
39
|
-
key: stylesheet.bucketName,
|
|
40
|
-
// TODO: support "nonce"
|
|
41
|
-
// ...renderer.styleNodeAttributes,
|
|
42
|
-
...stylesheet.elementAttributes,
|
|
43
|
-
'data-make-styles-rehydration': 'true',
|
|
44
|
-
dangerouslySetInnerHTML: {
|
|
45
|
-
__html: cssRules.join(''),
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
})
|
|
49
|
-
.filter(Boolean);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=renderToStyleElements.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderToStyleElements.js","sourceRoot":"","sources":["../../../../packages/react/src/renderToStyleElements.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAyB;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrD,8CAA8C;SAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACrG,CAAC,CAAC;QACF,qCAAqC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/F,CAAC,CAAC;QACF,4BAA4B;SAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEL,OAAO,WAAW;SACf,GAAG,CAAC,UAAU,CAAC,EAAE;QAChB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACvC,gDAAgD;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,aAAa,CAAC,OAAO,EAAE;YAC5B,GAAG,EAAE,UAAU,CAAC,UAAU;YAE1B,wBAAwB;YACxB,mCAAmC;YACnC,GAAG,UAAU,CAAC,iBAAiB;YAC/B,8BAA8B,EAAE,MAAM;YAEtC,uBAAuB,EAAE;gBACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;aAC1B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAmB,CAAC;AACvC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
export const useInsertionEffect =
|
|
7
|
-
// @ts-expect-error Hack to make sure that `useInsertionEffect` will not cause bundling issues in older React versions
|
|
8
|
-
// eslint-disable-next-line no-useless-concat
|
|
9
|
-
React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : undefined;
|
|
10
|
-
//# sourceMappingURL=useInsertionEffect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useInsertionEffect.js","sourceRoot":"","sources":["../../../../packages/react/src/useInsertionEffect.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB;AAC7B,sHAAsH;AACtH,6CAA6C;AAC7C,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC"}
|
package/src/utils/canUseDOM.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/src/utils/canUseDOM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"canUseDOM.js","sourceRoot":"","sources":["../../../../../packages/react/src/utils/canUseDOM.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
function getDispatcher() {
|
|
4
|
-
try {
|
|
5
|
-
return React[''.concat('__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE')].H;
|
|
6
|
-
}
|
|
7
|
-
catch {
|
|
8
|
-
// React 19+
|
|
9
|
-
}
|
|
10
|
-
try {
|
|
11
|
-
return React[''.concat('__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED')].ReactCurrentDispatcher
|
|
12
|
-
.current;
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
// React 18 and below
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export function isInsideComponent() {
|
|
22
|
-
// React 18 always logs errors if a dispatcher is not present:
|
|
23
|
-
// https://github.com/facebook/react/blob/42f15b324f50d0fd98322c21646ac3013e30344a/packages/react/src/ReactHooks.js#L26-L36
|
|
24
|
-
try {
|
|
25
|
-
const dispatcher = getDispatcher();
|
|
26
|
-
// Before any React component was rendered "dispatcher" will be "null"
|
|
27
|
-
if (dispatcher === null || dispatcher === undefined) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
// A check with hooks call (i.e. call "React.useContext()" outside a component) will always produce errors, but
|
|
31
|
-
// a call on the dispatcher wont
|
|
32
|
-
dispatcher.useContext({});
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=isInsideComponent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isInsideComponent.js","sourceRoot":"","sources":["../../../../../packages/react/src/utils/isInsideComponent.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,OAAQ,KAAa,CAAC,EAAE,CAAC,MAAM,CAAC,iEAAiE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAQ,KAAa,CAAC,EAAE,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC,sBAAsB;aAC1G,OAAO,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,8DAA8D;IAC9D,2HAA2H;IAC3H,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,sEAAsE;QACtE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,+GAA+G;QAC/G,gCAAgC;QAChC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|