@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.
Files changed (115) hide show
  1. package/.storybook/main.js +20 -0
  2. package/.storybook/preview.js +1 -0
  3. package/CHANGELOG.json +1281 -0
  4. package/CHANGELOG.md +501 -0
  5. package/README.md +4 -0
  6. package/bundle-size/__css.fixture.js +7 -0
  7. package/bundle-size/__styles.fixture.js +7 -0
  8. package/bundle-size/makeResetStyles.fixture.js +7 -0
  9. package/bundle-size/makeStaticStyles.fixture.js +7 -0
  10. package/bundle-size/makeStyles.fixture.js +7 -0
  11. package/eslint.config.mjs +31 -0
  12. package/package.json +3 -3
  13. package/project.json +96 -0
  14. package/src/RendererContext.tsx +52 -0
  15. package/src/TextDirectionContext.tsx +34 -0
  16. package/src/__css.ts +21 -0
  17. package/src/__resetCSS.ts +19 -0
  18. package/src/__resetStyles.ts +28 -0
  19. package/src/{__staticCSS.js → __staticCSS.ts} +7 -6
  20. package/src/__staticStyles.ts +22 -0
  21. package/src/__styles.ts +27 -0
  22. package/src/createDOMRenderer.test.tsx +133 -0
  23. package/src/{index.d.ts → index.ts} +6 -0
  24. package/src/insertionFactory-node.test.ts +31 -0
  25. package/src/insertionFactory.test.ts +29 -0
  26. package/src/insertionFactory.ts +27 -0
  27. package/src/makeResetStyles.test.tsx +27 -0
  28. package/src/makeResetStyles.ts +31 -0
  29. package/src/makeStaticStyles.ts +23 -0
  30. package/src/makeStyles.test.tsx +27 -0
  31. package/src/makeStyles.ts +31 -0
  32. package/src/renderToStyleElements-node.test.tsx +418 -0
  33. package/src/renderToStyleElements.test.tsx +103 -0
  34. package/src/renderToStyleElements.ts +61 -0
  35. package/src/stories/ComponentStyles.stories.tsx +55 -0
  36. package/src/stories/DOMRendererFilter.stories.tsx +76 -0
  37. package/src/stories/FallbackValues.stories.tsx +50 -0
  38. package/src/stories/makeStyles.stories.tsx +17 -0
  39. package/src/useInsertionEffect.ts +11 -0
  40. package/src/utils/canUseDOM-node.test.ts +14 -0
  41. package/src/utils/canUseDOM.test.tsx +8 -0
  42. package/src/utils/canUseDOM.ts +8 -0
  43. package/src/utils/isInsideComponent.ts +41 -0
  44. package/tsconfig.json +20 -0
  45. package/tsconfig.lib.json +28 -0
  46. package/tsconfig.spec.json +21 -0
  47. package/tsconfig.storybook.json +12 -0
  48. package/vitest.config.ts +21 -0
  49. package/LICENSE.md +0 -21
  50. package/lib/RendererContext.cjs +0 -45
  51. package/lib/TextDirectionContext.cjs +0 -33
  52. package/lib/__css.cjs +0 -22
  53. package/lib/__resetCSS.cjs +0 -22
  54. package/lib/__resetStyles.cjs +0 -26
  55. package/lib/__staticCSS.cjs +0 -18
  56. package/lib/__staticStyles.cjs +0 -23
  57. package/lib/__styles.cjs +0 -26
  58. package/lib/index.cjs +0 -78
  59. package/lib/insertionFactory.cjs +0 -33
  60. package/lib/makeResetStyles.cjs +0 -35
  61. package/lib/makeStaticStyles.cjs +0 -28
  62. package/lib/makeStyles.cjs +0 -35
  63. package/lib/renderToStyleElements.cjs +0 -50
  64. package/lib/useInsertionEffect.cjs +0 -20
  65. package/lib/utils/canUseDOM.cjs +0 -17
  66. package/lib/utils/isInsideComponent.cjs +0 -46
  67. package/src/RendererContext.d.ts +0 -24
  68. package/src/RendererContext.js +0 -31
  69. package/src/RendererContext.js.map +0 -1
  70. package/src/TextDirectionContext.d.ts +0 -19
  71. package/src/TextDirectionContext.js +0 -22
  72. package/src/TextDirectionContext.js.map +0 -1
  73. package/src/__css.d.ts +0 -7
  74. package/src/__css.js +0 -17
  75. package/src/__css.js.map +0 -1
  76. package/src/__resetCSS.d.ts +0 -6
  77. package/src/__resetCSS.js +0 -17
  78. package/src/__resetCSS.js.map +0 -1
  79. package/src/__resetStyles.d.ts +0 -7
  80. package/src/__resetStyles.js +0 -20
  81. package/src/__resetStyles.js.map +0 -1
  82. package/src/__staticCSS.d.ts +0 -6
  83. package/src/__staticCSS.js.map +0 -1
  84. package/src/__staticStyles.d.ts +0 -7
  85. package/src/__staticStyles.js +0 -18
  86. package/src/__staticStyles.js.map +0 -1
  87. package/src/__styles.d.ts +0 -7
  88. package/src/__styles.js +0 -20
  89. package/src/__styles.js.map +0 -1
  90. package/src/index.js +0 -16
  91. package/src/index.js.map +0 -1
  92. package/src/insertionFactory.d.ts +0 -2
  93. package/src/insertionFactory.js +0 -21
  94. package/src/insertionFactory.js.map +0 -1
  95. package/src/makeResetStyles.d.ts +0 -2
  96. package/src/makeResetStyles.js +0 -23
  97. package/src/makeResetStyles.js.map +0 -1
  98. package/src/makeStaticStyles.d.ts +0 -2
  99. package/src/makeStaticStyles.js +0 -17
  100. package/src/makeStaticStyles.js.map +0 -1
  101. package/src/makeStyles.d.ts +0 -2
  102. package/src/makeStyles.js +0 -23
  103. package/src/makeStyles.js.map +0 -1
  104. package/src/renderToStyleElements.d.ts +0 -8
  105. package/src/renderToStyleElements.js +0 -51
  106. package/src/renderToStyleElements.js.map +0 -1
  107. package/src/useInsertionEffect.d.ts +0 -1
  108. package/src/useInsertionEffect.js +0 -10
  109. package/src/useInsertionEffect.js.map +0 -1
  110. package/src/utils/canUseDOM.d.ts +0 -1
  111. package/src/utils/canUseDOM.js +0 -9
  112. package/src/utils/canUseDOM.js.map +0 -1
  113. package/src/utils/isInsideComponent.d.ts +0 -1
  114. package/src/utils/isInsideComponent.js +0 -39
  115. 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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,9 +0,0 @@
1
- /**
2
- * Verifies if an application can use DOM.
3
- *
4
- * @internal
5
- */
6
- export function canUseDOM() {
7
- return typeof window !== 'undefined' && !!(window.document && window.document.createElement);
8
- }
9
- //# sourceMappingURL=canUseDOM.js.map
@@ -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"}