@fluentui/react-provider 0.0.0-nightly-20230321-0440.1 → 0.0.0-nightly-20230324-0422.1

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 (38) hide show
  1. package/.swcrc +30 -0
  2. package/CHANGELOG.json +64 -13
  3. package/CHANGELOG.md +24 -9
  4. package/dist/index.d.ts +20 -2
  5. package/lib/FluentProvider.js.map +1 -1
  6. package/lib/components/FluentProvider/FluentProvider.js.map +1 -1
  7. package/lib/components/FluentProvider/FluentProvider.types.js.map +1 -1
  8. package/lib/components/FluentProvider/index.js.map +1 -1
  9. package/lib/components/FluentProvider/renderFluentProvider.js +10 -4
  10. package/lib/components/FluentProvider/renderFluentProvider.js.map +1 -1
  11. package/lib/components/FluentProvider/useFluentProvider.js +24 -9
  12. package/lib/components/FluentProvider/useFluentProvider.js.map +1 -1
  13. package/lib/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  14. package/lib/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  15. package/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js +40 -16
  16. package/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js.map +1 -1
  17. package/lib/index.js.map +1 -1
  18. package/lib-commonjs/FluentProvider.js +5 -4
  19. package/lib-commonjs/FluentProvider.js.map +1 -1
  20. package/lib-commonjs/components/FluentProvider/FluentProvider.js +18 -14
  21. package/lib-commonjs/components/FluentProvider/FluentProvider.js.map +1 -1
  22. package/lib-commonjs/components/FluentProvider/FluentProvider.types.js +3 -2
  23. package/lib-commonjs/components/FluentProvider/FluentProvider.types.js.map +1 -1
  24. package/lib-commonjs/components/FluentProvider/index.js +11 -10
  25. package/lib-commonjs/components/FluentProvider/index.js.map +1 -1
  26. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js +40 -37
  27. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js.map +1 -1
  28. package/lib-commonjs/components/FluentProvider/useFluentProvider.js +82 -84
  29. package/lib-commonjs/components/FluentProvider/useFluentProvider.js.map +1 -1
  30. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js +32 -35
  31. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  32. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js +48 -30
  33. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  34. package/lib-commonjs/components/FluentProvider/useFluentProviderThemeStyleTag.js +89 -64
  35. package/lib-commonjs/components/FluentProvider/useFluentProviderThemeStyleTag.js.map +1 -1
  36. package/lib-commonjs/index.js +20 -47
  37. package/lib-commonjs/index.js.map +1 -1
  38. package/package.json +8 -8
@@ -1,37 +1,55 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ fluentProviderClassNames: ()=>fluentProviderClassNames,
13
+ useFluentProviderStyles_unstable: ()=>useFluentProviderStyles_unstable
5
14
  });
6
- exports.useFluentProviderStyles_unstable = exports.fluentProviderClassNames = void 0;
7
- const core_1 = /*#__PURE__*/require("@griffel/core");
8
- const react_1 = /*#__PURE__*/require("@griffel/react");
9
- const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
10
- exports.fluentProviderClassNames = {
11
- root: 'fui-FluentProvider'
15
+ const _core = require("@griffel/core");
16
+ const _react = require("@griffel/react");
17
+ const fluentProviderClassNames = {
18
+ root: 'fui-FluentProvider'
12
19
  };
13
- const useStyles = /*#__PURE__*/core_1.__styles({
14
- root: {
15
- sj55zd: "f19n0e5",
16
- De3pzq: "fxugw4r",
17
- fsow6f: ["f1o700av", "fes3tcz"],
18
- Bahqtrf: "fk6fouc",
19
- Be2twd7: "fkhj508",
20
- Bhrd7zp: "figsok6",
21
- Bg96gwp: "f1i3iumi"
22
- }
20
+ const useStyles = /*#__PURE__*/ (0, _core["__styles"])({
21
+ root: {
22
+ sj55zd: "f19n0e5",
23
+ De3pzq: "fxugw4r",
24
+ fsow6f: [
25
+ "f1o700av",
26
+ "fes3tcz"
27
+ ],
28
+ Bahqtrf: "fk6fouc",
29
+ Be2twd7: "fkhj508",
30
+ Bhrd7zp: "figsok6",
31
+ Bg96gwp: "f1i3iumi"
32
+ }
23
33
  }, {
24
- d: [".f19n0e5{color:var(--colorNeutralForeground1);}", ".fxugw4r{background-color:var(--colorNeutralBackground1);}", ".f1o700av{text-align:left;}", ".fes3tcz{text-align:right;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}"]
34
+ d: [
35
+ ".f19n0e5{color:var(--colorNeutralForeground1);}",
36
+ ".fxugw4r{background-color:var(--colorNeutralBackground1);}",
37
+ ".f1o700av{text-align:left;}",
38
+ ".fes3tcz{text-align:right;}",
39
+ ".fk6fouc{font-family:var(--fontFamilyBase);}",
40
+ ".fkhj508{font-size:var(--fontSizeBase300);}",
41
+ ".figsok6{font-weight:var(--fontWeightRegular);}",
42
+ ".f1i3iumi{line-height:var(--lineHeightBase300);}"
43
+ ]
25
44
  });
26
- /** Applies style classnames to slots */
27
- const useFluentProviderStyles_unstable = state => {
28
- const renderer = react_1.useRenderer_unstable();
29
- const styles = useStyles({
30
- dir: state.dir,
31
- renderer
32
- });
33
- state.root.className = core_1.mergeClasses(exports.fluentProviderClassNames.root, state.themeClassName, styles.root, state.root.className);
34
- return state;
35
- };
36
- exports.useFluentProviderStyles_unstable = useFluentProviderStyles_unstable;
45
+ const useFluentProviderStyles_unstable = (state)=>{
46
+ const renderer = (0, _react.useRenderer_unstable)();
47
+ const styles = useStyles({
48
+ dir: state.dir,
49
+ renderer
50
+ });
51
+ state.root.className = (0, _core.mergeClasses)(fluentProviderClassNames.root, state.themeClassName, styles.root, state.root.className);
52
+ return state;
53
+ }; //# sourceMappingURL=useFluentProviderStyles.js.map
54
+
37
55
  //# sourceMappingURL=useFluentProviderStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["core_1","require","react_1","react_theme_1","exports","fluentProviderClassNames","root","useStyles","__styles","sj55zd","De3pzq","fsow6f","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","useFluentProviderStyles_unstable","state","renderer","useRenderer_unstable","styles","dir","className","mergeClasses","themeClassName"],"sources":["../../../../../../../../../packages/react-components/react-provider/src/components/FluentProvider/useFluentProviderStyles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/core';\nimport { useRenderer_unstable } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { FluentProviderSlots, FluentProviderState } from './FluentProvider.types';\nimport { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const fluentProviderClassNames: SlotClassNames<FluentProviderSlots> = {\n root: 'fui-FluentProvider',\n};\n\nconst useStyles = makeStyles({\n root: {\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n textAlign: 'left',\n ...typographyStyles.body1,\n },\n});\n\n/** Applies style classnames to slots */\nexport const useFluentProviderStyles_unstable = (state: FluentProviderState) => {\n const renderer = useRenderer_unstable();\n const styles = useStyles({ dir: state.dir, renderer });\n\n state.root.className = mergeClasses(\n fluentProviderClassNames.root,\n state.themeClassName,\n styles.root,\n state.root.className,\n );\n\n return state;\n};\n"],"mappings":";;;;;;AAAA,MAAAA,MAAA,gBAAAC,OAAA;AACA,MAAAC,OAAA,gBAAAD,OAAA;AACA,MAAAE,aAAA,gBAAAF,OAAA;AAIaG,OAAA,CAAAC,wBAAwB,GAAwC;EAC3EC,IAAI,EAAE;CACP;AAED,MAAMC,SAAS,gBAAGP,MAAA,CAAAQ,QAAU;EAAAF,IAAA;IAAAG,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAO1B;AAEF;AACO,MAAMC,gCAAgC,GAAIC,KAA0B,IAAI;EAC7E,MAAMC,QAAQ,GAAGjB,OAAA,CAAAkB,oBAAoB,EAAE;EACvC,MAAMC,MAAM,GAAGd,SAAS,CAAC;IAAEe,GAAG,EAAEJ,KAAK,CAACI,GAAG;IAAEH;EAAQ,CAAE,CAAC;EAEtDD,KAAK,CAACZ,IAAI,CAACiB,SAAS,GAAGvB,MAAA,CAAAwB,YAAY,CACjCpB,OAAA,CAAAC,wBAAwB,CAACC,IAAI,EAC7BY,KAAK,CAACO,cAAc,EACpBJ,MAAM,CAACf,IAAI,EACXY,KAAK,CAACZ,IAAI,CAACiB,SAAS,CACrB;EAED,OAAOL,KAAK;AACd,CAAC;AAZYd,OAAA,CAAAa,gCAAgC,GAAAA,gCAAA"}
1
+ {"version":3,"sources":["../../../lib/components/FluentProvider/useFluentProviderStyles.js"],"sourcesContent":["import { __styles, mergeClasses } from '@griffel/core';\nimport { useRenderer_unstable } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const fluentProviderClassNames = {\n root: 'fui-FluentProvider'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n sj55zd: \"f19n0e5\",\n De3pzq: \"fxugw4r\",\n fsow6f: [\"f1o700av\", \"fes3tcz\"],\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\"\n }\n}, {\n d: [\".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".f1o700av{text-align:left;}\", \".fes3tcz{text-align:right;}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\"]\n});\n/** Applies style classnames to slots */\nexport const useFluentProviderStyles_unstable = state => {\n const renderer = useRenderer_unstable();\n const styles = useStyles({\n dir: state.dir,\n renderer\n });\n state.root.className = mergeClasses(fluentProviderClassNames.root, state.themeClassName, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useFluentProviderStyles.js.map"],"names":["fluentProviderClassNames","useFluentProviderStyles_unstable","root","useStyles","__styles","sj55zd","De3pzq","fsow6f","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","state","renderer","useRenderer_unstable","styles","dir","className","mergeClasses","themeClassName"],"mappings":";;;;;;;;;;;IAGaA,wBAAwB,MAAxBA;IAiBAC,gCAAgC,MAAhCA;;sBApB0B;uBACF;AAE9B,MAAMD,2BAA2B;IACtCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,iBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,QAAQ;QACRC,QAAQ;YAAC;YAAY;SAAU;QAC/BC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAmD;QAA8D;QAA+B;QAA+B;QAAgD;QAA+C;QAAmD;KAAmD;AAC1X;AAEO,MAAMX,mCAAmCY,CAAAA,QAAS;IACvD,MAAMC,WAAWC,IAAAA,2BAAoB;IACrC,MAAMC,SAASb,UAAU;QACvBc,KAAKJ,MAAMI,GAAG;QACdH;IACF;IACAD,MAAMX,IAAI,CAACgB,SAAS,GAAGC,IAAAA,kBAAY,EAACnB,yBAAyBE,IAAI,EAAEW,MAAMO,cAAc,EAAEJ,OAAOd,IAAI,EAAEW,MAAMX,IAAI,CAACgB,SAAS;IAC1H,OAAOL;AACT,GACA,mDAAmD"}
@@ -1,73 +1,98 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useFluentProviderThemeStyleTag", {
6
+ enumerable: true,
7
+ get: ()=>useFluentProviderThemeStyleTag
5
8
  });
6
- exports.useFluentProviderThemeStyleTag = void 0;
7
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
8
- const react_1 = /*#__PURE__*/require("@griffel/react");
9
- const React = /*#__PURE__*/require("react");
10
- const useFluentProviderStyles_1 = /*#__PURE__*/require("./useFluentProviderStyles");
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
12
+ const _useFluentProviderStyles = require("./useFluentProviderStyles");
11
13
  // String concatenation is used to prevent bundlers to complain with older versions of React
12
- const useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : react_utilities_1.useIsomorphicLayoutEffect;
13
- const createStyleTag = (target, elementAttributes) => {
14
- if (!target) {
15
- return undefined;
16
- }
17
- const tag = target.createElement('style');
18
- Object.keys(elementAttributes).forEach(attrName => {
19
- tag.setAttribute(attrName, elementAttributes[attrName]);
20
- });
21
- target.head.appendChild(tag);
22
- return tag;
23
- };
24
- const insertSheet = (tag, rule) => {
25
- const sheet = tag.sheet;
26
- if (sheet) {
27
- if (sheet.cssRules.length > 0) {
28
- sheet.deleteRule(0);
14
+ const useInsertionEffect = _react['useInsertion' + 'Effect'] ? _react['useInsertion' + 'Effect'] : _reactUtilities.useIsomorphicLayoutEffect;
15
+ const createStyleTag = (target, elementAttributes)=>{
16
+ if (!target) {
17
+ return undefined;
29
18
  }
30
- sheet.insertRule(rule, 0);
31
- } else if (process.env.NODE_ENV !== 'production') {
32
- // eslint-disable-next-line no-console
33
- console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');
34
- }
35
- };
36
- /**
37
- * Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class
38
- *
39
- * @returns CSS class to apply the rule
40
- */
41
- const useFluentProviderThemeStyleTag = options => {
42
- const {
43
- targetDocument,
44
- theme
45
- } = options;
46
- const renderer = react_1.useRenderer_unstable();
47
- const styleTag = React.useRef();
48
- const styleTagId = react_utilities_1.useId(useFluentProviderStyles_1.fluentProviderClassNames.root);
49
- const styleElementAttributes = renderer.styleElementAttributes;
50
- const cssVarsAsString = React.useMemo(() => {
51
- return theme ? Object.keys(theme).reduce((cssVarRule, cssVar) => {
52
- cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;
53
- return cssVarRule;
54
- }, '') : '';
55
- }, [theme]);
56
- const rule = `.${styleTagId} { ${cssVarsAsString} }`;
57
- useInsertionEffect(() => {
58
- styleTag.current = createStyleTag(targetDocument, {
59
- ...styleElementAttributes,
60
- id: styleTagId
19
+ const tag = target.createElement('style');
20
+ Object.keys(elementAttributes).forEach((attrName)=>{
21
+ tag.setAttribute(attrName, elementAttributes[attrName]);
61
22
  });
62
- if (styleTag.current) {
63
- insertSheet(styleTag.current, rule);
64
- return () => {
65
- var _a;
66
- (_a = styleTag.current) === null || _a === void 0 ? void 0 : _a.remove();
67
- };
23
+ target.head.appendChild(tag);
24
+ return tag;
25
+ };
26
+ const insertSheet = (tag, rule)=>{
27
+ const sheet = tag.sheet;
28
+ if (sheet) {
29
+ if (sheet.cssRules.length > 0) {
30
+ sheet.deleteRule(0);
31
+ }
32
+ sheet.insertRule(rule, 0);
33
+ } else if (process.env.NODE_ENV !== 'production') {
34
+ // eslint-disable-next-line no-console
35
+ console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');
68
36
  }
69
- }, [styleTagId, targetDocument, rule, styleElementAttributes]);
70
- return styleTagId;
71
37
  };
72
- exports.useFluentProviderThemeStyleTag = useFluentProviderThemeStyleTag;
38
+ const useFluentProviderThemeStyleTag = (options)=>{
39
+ const { targetDocument , theme , rendererAttributes } = options;
40
+ const styleTag = _react.useRef();
41
+ const styleTagId = (0, _reactUtilities.useId)(_useFluentProviderStyles.fluentProviderClassNames.root);
42
+ const styleElementAttributes = rendererAttributes;
43
+ const cssVarsAsString = _react.useMemo(()=>{
44
+ return theme ? Object.keys(theme).reduce((cssVarRule, cssVar)=>{
45
+ cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;
46
+ return cssVarRule;
47
+ }, '') : '';
48
+ }, [
49
+ theme
50
+ ]);
51
+ const rule = `.${styleTagId} { ${cssVarsAsString} }`;
52
+ useHandleSSRStyleElements(targetDocument, styleTagId);
53
+ useInsertionEffect(()=>{
54
+ // The style element could already have been created during SSR - no need to recreate it
55
+ const ssrStyleElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.getElementById(styleTagId);
56
+ if (ssrStyleElement) {
57
+ styleTag.current = ssrStyleElement;
58
+ } else {
59
+ styleTag.current = createStyleTag(targetDocument, {
60
+ ...styleElementAttributes,
61
+ id: styleTagId
62
+ });
63
+ if (styleTag.current) {
64
+ insertSheet(styleTag.current, rule);
65
+ }
66
+ }
67
+ return ()=>{
68
+ var _styleTag_current;
69
+ (_styleTag_current = styleTag.current) === null || _styleTag_current === void 0 ? void 0 : _styleTag_current.remove();
70
+ };
71
+ }, [
72
+ styleTagId,
73
+ targetDocument,
74
+ rule,
75
+ styleElementAttributes
76
+ ]);
77
+ return {
78
+ styleTagId,
79
+ rule
80
+ };
81
+ };
82
+ function useHandleSSRStyleElements(targetDocument, styleTagId) {
83
+ // Using a state factory so that this logic only runs once per render
84
+ // Each FluentProvider can create its own style element during SSR as a slot
85
+ // Moves all theme style elements to document head during render to avoid hydration errors.
86
+ // Should be strict mode safe since the logic is idempotent.
87
+ _react.useState(()=>{
88
+ if (!targetDocument) {
89
+ return;
90
+ }
91
+ const themeStyleElement = targetDocument.getElementById(styleTagId);
92
+ if (themeStyleElement) {
93
+ targetDocument.head.append(themeStyleElement);
94
+ }
95
+ });
96
+ } //# sourceMappingURL=useFluentProviderThemeStyleTag.js.map
97
+
73
98
  //# sourceMappingURL=useFluentProviderThemeStyleTag.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["react_utilities_1","require","react_1","React","useFluentProviderStyles_1","useInsertionEffect","useIsomorphicLayoutEffect","createStyleTag","target","elementAttributes","undefined","tag","createElement","Object","keys","forEach","attrName","setAttribute","head","appendChild","insertSheet","rule","sheet","cssRules","length","deleteRule","insertRule","process","env","NODE_ENV","console","error","useFluentProviderThemeStyleTag","options","targetDocument","theme","renderer","useRenderer_unstable","styleTag","useRef","styleTagId","useId","fluentProviderClassNames","root","styleElementAttributes","cssVarsAsString","useMemo","reduce","cssVarRule","cssVar","current","id","_a","remove","exports"],"sources":["../../../../../../../../../packages/react-components/react-provider/src/components/FluentProvider/useFluentProviderThemeStyleTag.ts"],"sourcesContent":["import { useId, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport { useRenderer_unstable } from '@griffel/react';\nimport * as React from 'react';\n\nimport type { FluentProviderState } from './FluentProvider.types';\nimport { fluentProviderClassNames } from './useFluentProviderStyles';\n\n// String concatenation is used to prevent bundlers to complain with older versions of React\nconst useInsertionEffect = (React as never)['useInsertion' + 'Effect']\n ? (React as never)['useInsertion' + 'Effect']\n : useIsomorphicLayoutEffect;\n\nconst createStyleTag = (target: Document | undefined, elementAttributes: Record<string, string>) => {\n if (!target) {\n return undefined;\n }\n\n const tag = target.createElement('style');\n\n Object.keys(elementAttributes).forEach(attrName => {\n tag.setAttribute(attrName, elementAttributes[attrName]);\n });\n\n target.head.appendChild(tag);\n return tag;\n};\n\nconst insertSheet = (tag: HTMLStyleElement, rule: string) => {\n const sheet = tag.sheet;\n\n if (sheet) {\n if (sheet.cssRules.length > 0) {\n sheet.deleteRule(0);\n }\n sheet.insertRule(rule, 0);\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');\n }\n};\n\n/**\n * Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class\n *\n * @returns CSS class to apply the rule\n */\nexport const useFluentProviderThemeStyleTag = (options: Pick<FluentProviderState, 'theme' | 'targetDocument'>) => {\n const { targetDocument, theme } = options;\n\n const renderer = useRenderer_unstable();\n const styleTag = React.useRef<HTMLStyleElement>();\n\n const styleTagId = useId(fluentProviderClassNames.root);\n const styleElementAttributes = renderer.styleElementAttributes;\n\n const cssVarsAsString = React.useMemo(() => {\n return theme\n ? (Object.keys(theme) as (keyof typeof theme)[]).reduce((cssVarRule, cssVar) => {\n cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;\n return cssVarRule;\n }, '')\n : '';\n }, [theme]);\n\n const rule = `.${styleTagId} { ${cssVarsAsString} }`;\n\n useInsertionEffect(() => {\n styleTag.current = createStyleTag(targetDocument, { ...styleElementAttributes, id: styleTagId });\n\n if (styleTag.current) {\n insertSheet(styleTag.current, rule);\n\n return () => {\n styleTag.current?.remove();\n };\n }\n }, [styleTagId, targetDocument, rule, styleElementAttributes]);\n\n return styleTagId;\n};\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../lib/components/FluentProvider/useFluentProviderThemeStyleTag.js"],"sourcesContent":["import { useId, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { fluentProviderClassNames } from './useFluentProviderStyles';\n// String concatenation is used to prevent bundlers to complain with older versions of React\nconst useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useIsomorphicLayoutEffect;\nconst createStyleTag = (target, elementAttributes) => {\n if (!target) {\n return undefined;\n }\n const tag = target.createElement('style');\n Object.keys(elementAttributes).forEach(attrName => {\n tag.setAttribute(attrName, elementAttributes[attrName]);\n });\n target.head.appendChild(tag);\n return tag;\n};\nconst insertSheet = (tag, rule) => {\n const sheet = tag.sheet;\n if (sheet) {\n if (sheet.cssRules.length > 0) {\n sheet.deleteRule(0);\n }\n sheet.insertRule(rule, 0);\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');\n }\n};\n/**\n * Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class\n * @internal\n * @returns CSS class to apply the rule\n */\nexport const useFluentProviderThemeStyleTag = options => {\n const {\n targetDocument,\n theme,\n rendererAttributes\n } = options;\n const styleTag = React.useRef();\n const styleTagId = useId(fluentProviderClassNames.root);\n const styleElementAttributes = rendererAttributes;\n const cssVarsAsString = React.useMemo(() => {\n return theme ? Object.keys(theme).reduce((cssVarRule, cssVar) => {\n cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;\n return cssVarRule;\n }, '') : '';\n }, [theme]);\n const rule = `.${styleTagId} { ${cssVarsAsString} }`;\n useHandleSSRStyleElements(targetDocument, styleTagId);\n useInsertionEffect(() => {\n // The style element could already have been created during SSR - no need to recreate it\n const ssrStyleElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.getElementById(styleTagId);\n if (ssrStyleElement) {\n styleTag.current = ssrStyleElement;\n } else {\n styleTag.current = createStyleTag(targetDocument, {\n ...styleElementAttributes,\n id: styleTagId\n });\n if (styleTag.current) {\n insertSheet(styleTag.current, rule);\n }\n }\n return () => {\n var _styleTag_current;\n (_styleTag_current = styleTag.current) === null || _styleTag_current === void 0 ? void 0 : _styleTag_current.remove();\n };\n }, [styleTagId, targetDocument, rule, styleElementAttributes]);\n return {\n styleTagId,\n rule\n };\n};\nfunction useHandleSSRStyleElements(targetDocument, styleTagId) {\n // Using a state factory so that this logic only runs once per render\n // Each FluentProvider can create its own style element during SSR as a slot\n // Moves all theme style elements to document head during render to avoid hydration errors.\n // Should be strict mode safe since the logic is idempotent.\n React.useState(() => {\n if (!targetDocument) {\n return;\n }\n const themeStyleElement = targetDocument.getElementById(styleTagId);\n if (themeStyleElement) {\n targetDocument.head.append(themeStyleElement);\n }\n });\n}\n//# sourceMappingURL=useFluentProviderThemeStyleTag.js.map"],"names":["useFluentProviderThemeStyleTag","useInsertionEffect","React","useIsomorphicLayoutEffect","createStyleTag","target","elementAttributes","undefined","tag","createElement","Object","keys","forEach","attrName","setAttribute","head","appendChild","insertSheet","rule","sheet","cssRules","length","deleteRule","insertRule","process","env","NODE_ENV","console","error","options","targetDocument","theme","rendererAttributes","styleTag","useRef","styleTagId","useId","fluentProviderClassNames","root","styleElementAttributes","cssVarsAsString","useMemo","reduce","cssVarRule","cssVar","useHandleSSRStyleElements","ssrStyleElement","getElementById","current","id","_styleTag_current","remove","useState","themeStyleElement","append"],"mappings":"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"}
@@ -1,50 +1,23 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useFluentProviderThemeStyleTag = exports.useFluentProviderStyles_unstable = exports.useFluentProvider_unstable = exports.useFluentProviderContextValues_unstable = exports.renderFluentProvider_unstable = exports.FluentProvider = exports.fluentProviderClassNames = void 0;
7
- var FluentProvider_1 = /*#__PURE__*/require("./FluentProvider");
8
- Object.defineProperty(exports, "fluentProviderClassNames", {
9
- enumerable: true,
10
- get: function () {
11
- return FluentProvider_1.fluentProviderClassNames;
12
- }
13
- });
14
- Object.defineProperty(exports, "FluentProvider", {
15
- enumerable: true,
16
- get: function () {
17
- return FluentProvider_1.FluentProvider;
18
- }
19
- });
20
- Object.defineProperty(exports, "renderFluentProvider_unstable", {
21
- enumerable: true,
22
- get: function () {
23
- return FluentProvider_1.renderFluentProvider_unstable;
24
- }
25
- });
26
- Object.defineProperty(exports, "useFluentProviderContextValues_unstable", {
27
- enumerable: true,
28
- get: function () {
29
- return FluentProvider_1.useFluentProviderContextValues_unstable;
30
- }
31
- });
32
- Object.defineProperty(exports, "useFluentProvider_unstable", {
33
- enumerable: true,
34
- get: function () {
35
- return FluentProvider_1.useFluentProvider_unstable;
36
- }
37
- });
38
- Object.defineProperty(exports, "useFluentProviderStyles_unstable", {
39
- enumerable: true,
40
- get: function () {
41
- return FluentProvider_1.useFluentProviderStyles_unstable;
42
- }
43
- });
44
- Object.defineProperty(exports, "useFluentProviderThemeStyleTag", {
45
- enumerable: true,
46
- get: function () {
47
- return FluentProvider_1.useFluentProviderThemeStyleTag;
48
- }
49
- });
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ fluentProviderClassNames: ()=>_fluentProvider.fluentProviderClassNames,
13
+ FluentProvider: ()=>_fluentProvider.FluentProvider,
14
+ renderFluentProvider_unstable: ()=>_fluentProvider.renderFluentProvider_unstable,
15
+ useFluentProviderContextValues_unstable: ()=>_fluentProvider.useFluentProviderContextValues_unstable,
16
+ useFluentProvider_unstable: ()=>_fluentProvider.useFluentProvider_unstable,
17
+ useFluentProviderStyles_unstable: ()=>_fluentProvider.useFluentProviderStyles_unstable,
18
+ useFluentProviderThemeStyleTag: ()=>_fluentProvider.useFluentProviderThemeStyleTag
19
+ });
20
+ const _fluentProvider = require("./FluentProvider");
21
+ //# sourceMappingURL=index.js.map
22
+
50
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FluentProvider_1","require","Object","defineProperty","exports","enumerable","get","fluentProviderClassNames","FluentProvider","renderFluentProvider_unstable","useFluentProviderContextValues_unstable","useFluentProvider_unstable","useFluentProviderStyles_unstable","useFluentProviderThemeStyleTag"],"sources":["../../../../../../../packages/react-components/react-provider/src/index.ts"],"sourcesContent":["export {\n fluentProviderClassNames,\n FluentProvider,\n renderFluentProvider_unstable,\n useFluentProviderContextValues_unstable,\n useFluentProvider_unstable,\n useFluentProviderStyles_unstable,\n useFluentProviderThemeStyleTag,\n} from './FluentProvider';\nexport type {\n FluentProviderContextValues,\n FluentProviderCustomStyleHooks,\n FluentProviderProps,\n FluentProviderState,\n FluentProviderSlots,\n} from './FluentProvider';\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,gBAAAC,OAAA;AACEC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAO,wBAAwB;EAAA;AAAA;AACxBL,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAQ,cAAc;EAAA;AAAA;AACdN,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAS,6BAA6B;EAAA;AAAA;AAC7BP,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAU,uCAAuC;EAAA;AAAA;AACvCR,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAW,0BAA0B;EAAA;AAAA;AAC1BT,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAY,gCAAgC;EAAA;AAAA;AAChCV,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,gBAAA,CAAAa,8BAA8B;EAAA;AAAA"}
1
+ {"version":3,"sources":["../lib/index.js"],"sourcesContent":["export { fluentProviderClassNames, FluentProvider, renderFluentProvider_unstable, useFluentProviderContextValues_unstable, useFluentProvider_unstable, useFluentProviderStyles_unstable, useFluentProviderThemeStyleTag } from './FluentProvider';\n//# sourceMappingURL=index.js.map"],"names":["fluentProviderClassNames","FluentProvider","renderFluentProvider_unstable","useFluentProviderContextValues_unstable","useFluentProvider_unstable","useFluentProviderStyles_unstable","useFluentProviderThemeStyleTag"],"mappings":";;;;;;;;;;;IAASA,wBAAwB,MAAxBA,wCAAwB;IAAEC,cAAc,MAAdA,8BAAc;IAAEC,6BAA6B,MAA7BA,6CAA6B;IAAEC,uCAAuC,MAAvCA,uDAAuC;IAAEC,0BAA0B,MAA1BA,0CAA0B;IAAEC,gCAAgC,MAAhCA,gDAAgC;IAAEC,8BAA8B,MAA9BA,8CAA8B;;gCAAQ;CAC/N,iCAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-provider",
3
- "version": "0.0.0-nightly-20230321-0440.1",
3
+ "version": "0.0.0-nightly-20230324-0422.1",
4
4
  "description": "Fluent UI React provider component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -22,23 +22,23 @@
22
22
  "storybook": "start-storybook",
23
23
  "start": "yarn storybook",
24
24
  "type-check": "tsc -b tsconfig.json",
25
- "generate-api": "tsc -p ./tsconfig.lib.json --emitDeclarationOnly && just-scripts api-extractor"
25
+ "generate-api": "just-scripts generate-api"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@fluentui/eslint-plugin": "*",
29
29
  "@fluentui/react-conformance": "*",
30
- "@fluentui/react-conformance-griffel": "0.0.0-nightly-20230321-0440.1",
30
+ "@fluentui/react-conformance-griffel": "0.0.0-nightly-20230324-0422.1",
31
31
  "@fluentui/scripts-api-extractor": "*",
32
32
  "@fluentui/scripts-tasks": "*"
33
33
  },
34
34
  "dependencies": {
35
35
  "@griffel/core": "^1.9.0",
36
36
  "@griffel/react": "^1.5.2",
37
- "@fluentui/react-shared-contexts": "0.0.0-nightly-20230321-0440.1",
38
- "@fluentui/react-tabster": "0.0.0-nightly-20230321-0440.1",
39
- "@fluentui/react-theme": "0.0.0-nightly-20230321-0440.1",
40
- "@fluentui/react-utilities": "0.0.0-nightly-20230321-0440.1",
41
- "tslib": "^2.1.0"
37
+ "@fluentui/react-shared-contexts": "0.0.0-nightly-20230324-0422.1",
38
+ "@fluentui/react-tabster": "0.0.0-nightly-20230324-0422.1",
39
+ "@fluentui/react-theme": "0.0.0-nightly-20230324-0422.1",
40
+ "@fluentui/react-utilities": "0.0.0-nightly-20230324-0422.1",
41
+ "@swc/helpers": "^0.4.14"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@types/react": ">=16.8.0 <19.0.0",