@fluentui/react-provider 9.0.0-nightly.d730088d7f.0 → 9.0.0-rc.10

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 (73) hide show
  1. package/CHANGELOG.json +661 -24
  2. package/CHANGELOG.md +277 -113
  3. package/dist/index.d.ts +83 -0
  4. package/{lib → dist}/tsdoc-metadata.json +0 -0
  5. package/lib/FluentProvider.js.map +1 -1
  6. package/lib/components/FluentProvider/FluentProvider.js +9 -9
  7. package/lib/components/FluentProvider/FluentProvider.js.map +1 -1
  8. package/lib/components/FluentProvider/FluentProvider.types.js.map +1 -1
  9. package/lib/components/FluentProvider/index.js +2 -0
  10. package/lib/components/FluentProvider/index.js.map +1 -1
  11. package/lib/components/FluentProvider/renderFluentProvider.js +10 -8
  12. package/lib/components/FluentProvider/renderFluentProvider.js.map +1 -1
  13. package/lib/components/FluentProvider/useFluentProvider.js +46 -23
  14. package/lib/components/FluentProvider/useFluentProvider.js.map +1 -1
  15. package/lib/components/FluentProvider/useFluentProviderContextValues.js +16 -15
  16. package/lib/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  17. package/lib/components/FluentProvider/useFluentProviderStyles.js +14 -5
  18. package/lib/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  19. package/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js +61 -0
  20. package/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js.map +1 -0
  21. package/lib/index.js +2 -1
  22. package/lib/index.js.map +1 -1
  23. package/lib-commonjs/FluentProvider.js +1 -1
  24. package/lib-commonjs/FluentProvider.js.map +1 -1
  25. package/lib-commonjs/components/FluentProvider/FluentProvider.js +10 -10
  26. package/lib-commonjs/components/FluentProvider/FluentProvider.js.map +1 -1
  27. package/lib-commonjs/components/FluentProvider/FluentProvider.types.js.map +1 -1
  28. package/lib-commonjs/components/FluentProvider/index.js +5 -1
  29. package/lib-commonjs/components/FluentProvider/index.js.map +1 -1
  30. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js +15 -14
  31. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js.map +1 -1
  32. package/lib-commonjs/components/FluentProvider/useFluentProvider.js +52 -30
  33. package/lib-commonjs/components/FluentProvider/useFluentProvider.js.map +1 -1
  34. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js +20 -19
  35. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  36. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js +18 -7
  37. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  38. package/lib-commonjs/components/FluentProvider/useFluentProviderThemeStyleTag.js +73 -0
  39. package/lib-commonjs/components/FluentProvider/useFluentProviderThemeStyleTag.js.map +1 -0
  40. package/lib-commonjs/index.js +51 -3
  41. package/lib-commonjs/index.js.map +1 -1
  42. package/package.json +21 -26
  43. package/dist/react-provider.d.ts +0 -67
  44. package/lib/FluentProvider.d.ts +0 -1
  45. package/lib/common/isConformant.d.ts +0 -4
  46. package/lib/common/isConformant.js +0 -12
  47. package/lib/common/isConformant.js.map +0 -1
  48. package/lib/components/FluentProvider/FluentProvider.d.ts +0 -3
  49. package/lib/components/FluentProvider/FluentProvider.types.d.ts +0 -25
  50. package/lib/components/FluentProvider/index.d.ts +0 -5
  51. package/lib/components/FluentProvider/renderFluentProvider.d.ts +0 -5
  52. package/lib/components/FluentProvider/useFluentProvider.d.ts +0 -13
  53. package/lib/components/FluentProvider/useFluentProviderContextValues.d.ts +0 -2
  54. package/lib/components/FluentProvider/useFluentProviderStyles.d.ts +0 -3
  55. package/lib/components/FluentProvider/useThemeStyleTag.d.ts +0 -7
  56. package/lib/components/FluentProvider/useThemeStyleTag.js +0 -58
  57. package/lib/components/FluentProvider/useThemeStyleTag.js.map +0 -1
  58. package/lib/index.d.ts +0 -2
  59. package/lib-commonjs/FluentProvider.d.ts +0 -1
  60. package/lib-commonjs/common/isConformant.d.ts +0 -4
  61. package/lib-commonjs/common/isConformant.js +0 -23
  62. package/lib-commonjs/common/isConformant.js.map +0 -1
  63. package/lib-commonjs/components/FluentProvider/FluentProvider.d.ts +0 -3
  64. package/lib-commonjs/components/FluentProvider/FluentProvider.types.d.ts +0 -25
  65. package/lib-commonjs/components/FluentProvider/index.d.ts +0 -5
  66. package/lib-commonjs/components/FluentProvider/renderFluentProvider.d.ts +0 -5
  67. package/lib-commonjs/components/FluentProvider/useFluentProvider.d.ts +0 -13
  68. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.d.ts +0 -2
  69. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.d.ts +0 -3
  70. package/lib-commonjs/components/FluentProvider/useThemeStyleTag.d.ts +0 -7
  71. package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js +0 -70
  72. package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js.map +0 -1
  73. package/lib-commonjs/index.d.ts +0 -2
@@ -3,27 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.renderFluentProvider = void 0;
6
+ exports.renderFluentProvider_unstable = void 0;
7
7
 
8
- var tslib_1 = /*#__PURE__*/require("tslib");
8
+ const React = /*#__PURE__*/require("react");
9
9
 
10
- var React = /*#__PURE__*/require("react");
10
+ const react_1 = /*#__PURE__*/require("@griffel/react");
11
11
 
12
- var react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
12
+ const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
13
13
 
14
- var react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
15
-
16
- var useFluentProvider_1 = /*#__PURE__*/require("./useFluentProvider");
14
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
17
15
  /**
18
16
  * Render the final JSX of FluentProvider
19
17
  */
20
18
 
21
19
 
22
- var renderFluentProvider = function (state, contextValues) {
23
- var _a = react_utilities_1.getSlots(state, useFluentProvider_1.fluentProviderShorthandProps),
24
- slots = _a.slots,
25
- slotProps = _a.slotProps;
26
-
20
+ const renderFluentProvider_unstable = (state, contextValues) => {
21
+ const {
22
+ slots,
23
+ slotProps
24
+ } = react_utilities_1.getSlots(state);
27
25
  return React.createElement(react_shared_contexts_1.ProviderContext.Provider, {
28
26
  value: contextValues.provider
29
27
  }, React.createElement(react_shared_contexts_1.ThemeContext.Provider, {
@@ -32,8 +30,11 @@ var renderFluentProvider = function (state, contextValues) {
32
30
  value: contextValues.themeClassName
33
31
  }, React.createElement(react_shared_contexts_1.TooltipContext.Provider, {
34
32
  value: contextValues.tooltip
35
- }, React.createElement(slots.root, tslib_1.__assign({}, slotProps.root), state.root.children)))));
33
+ }, React.createElement(react_1.TextDirectionProvider, {
34
+ dir: contextValues.textDirection
35
+ }, React.createElement(slots.root, { ...slotProps.root
36
+ }, state.root.children))))));
36
37
  };
37
38
 
38
- exports.renderFluentProvider = renderFluentProvider;
39
+ exports.renderFluentProvider_unstable = renderFluentProvider_unstable;
39
40
  //# sourceMappingURL=renderFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/renderFluentProvider.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,IAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,IAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,IAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;AAEA;;AAEG;;;AACI,IAAM,oBAAoB,GAAG,UAAC,KAAD,EAA6B,aAA7B,EAAuE;AACnG,MAAA,EAAA,GAAuB,iBAAA,CAAA,QAAA,CAA8B,KAA9B,EAAqC,mBAAA,CAAA,4BAArC,CAAvB;AAAA,MAAE,KAAK,GAAA,EAAA,CAAA,KAAP;AAAA,MAAS,SAAS,GAAA,EAAA,CAAA,SAAlB;;AAEN,SACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,eAAA,CAAgB,QAAjB,EAAyB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAzB,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,YAAA,CAAa,QAAd,EAAsB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAtB,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,qBAAA,CAAsB,QAAvB,EAA+B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA/B,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,cAAA,CAAe,QAAhB,EAAwB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAxB,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,OAAA,CAAA,QAAA,CAAA,EAAA,EAAK,SAAS,CAAC,IAAf,CAAX,EAAiC,KAAK,CAAC,IAAN,CAAW,QAA5C,CADF,CADF,CADF,CADF,CADF;AAWD,CAdM;;AAAM,OAAA,CAAA,oBAAA,GAAoB,oBAApB","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/renderFluentProvider.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AACA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,6BAA6B,GAAG,CAC3C,KAD2C,EAE3C,aAF2C,KAGzC;AACF,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAA8B,KAA9B,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,eAAA,CAAgB,QAAjB,EAAyB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAzB,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,YAAA,CAAa,QAAd,EAAsB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAtB,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,qBAAA,CAAsB,QAAvB,EAA+B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA/B,EACE,KAAA,CAAA,aAAA,CAAC,uBAAA,CAAA,cAAA,CAAe,QAAhB,EAAwB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAxB,EACE,KAAA,CAAA,aAAA,CAAC,OAAA,CAAA,qBAAD,EAAsB;AAAC,IAAA,GAAG,EAAE,aAAa,CAAC;AAApB,GAAtB,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EAAiC,KAAK,CAAC,IAAN,CAAW,QAA5C,CADF,CADF,CADF,CADF,CADF,CADF;AAaD,CAnBM;;AAAM,OAAA,CAAA,6BAAA,GAA6B,6BAA7B","sourcesContent":["import * as React from 'react';\nimport { TextDirectionProvider } from '@griffel/react';\nimport { ProviderContext, TooltipContext, ThemeContext, ThemeClassNameContext } from '@fluentui/react-shared-contexts';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { FluentProviderSlots, FluentProviderContextValues, FluentProviderState } from './FluentProvider.types';\n\n/**\n * Render the final JSX of FluentProvider\n */\nexport const renderFluentProvider_unstable = (\n state: FluentProviderState,\n contextValues: FluentProviderContextValues,\n) => {\n const { slots, slotProps } = getSlots<FluentProviderSlots>(state);\n\n return (\n <ProviderContext.Provider value={contextValues.provider}>\n <ThemeContext.Provider value={contextValues.theme}>\n <ThemeClassNameContext.Provider value={contextValues.themeClassName}>\n <TooltipContext.Provider value={contextValues.tooltip}>\n <TextDirectionProvider dir={contextValues.textDirection}>\n <slots.root {...slotProps.root}>{state.root.children}</slots.root>\n </TextDirectionProvider>\n </TooltipContext.Provider>\n </ThemeClassNameContext.Provider>\n </ThemeContext.Provider>\n </ProviderContext.Provider>\n );\n};\n"],"sourceRoot":"../src/"}
@@ -3,64 +3,86 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useFluentProvider = exports.fluentProviderShorthandProps = void 0;
6
+ exports.useFluentProvider_unstable = void 0;
7
7
 
8
- var tslib_1 = /*#__PURE__*/require("tslib");
8
+ const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
9
9
 
10
- var react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
10
+ const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
11
11
 
12
- var react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
12
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
13
13
 
14
- var react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
14
+ const React = /*#__PURE__*/require("react");
15
15
 
16
- var react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
17
-
18
- var useThemeStyleTag_1 = /*#__PURE__*/require("./useThemeStyleTag");
19
-
20
- exports.fluentProviderShorthandProps = ['root'];
16
+ const useFluentProviderThemeStyleTag_1 = /*#__PURE__*/require("./useFluentProviderThemeStyleTag");
21
17
  /**
22
18
  * Create the state required to render FluentProvider.
23
19
  *
24
- * The returned state can be modified with hooks such as useFluentProviderStyles,
25
- * before being passed to renderFluentProvider.
20
+ * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,
21
+ * before being passed to renderFluentProvider_unstable.
26
22
  *
27
23
  * @param props - props from this instance of FluentProvider
28
24
  * @param ref - reference to root HTMLElement of FluentProvider
29
25
  */
30
26
 
31
- var useFluentProvider = function (props, ref) {
32
- var parentContext = react_shared_contexts_1.useFluent();
33
- var parentTheme = react_shared_contexts_1.useTheme();
27
+
28
+ const useFluentProvider_unstable = (props, ref) => {
29
+ const parentContext = react_shared_contexts_1.useFluent();
30
+ const parentTheme = react_shared_contexts_1.useTheme();
34
31
  /**
35
32
  * TODO: add merge functions to "dir" merge,
36
33
  * nesting providers with the same "dir" should not add additional attributes to DOM
37
34
  * see https://github.com/microsoft/fluentui/blob/0dc74a19f3aa5a058224c20505016fbdb84db172/packages/fluentui/react-northstar/src/utils/mergeProviderContexts.ts#L89-L93
38
35
  */
39
36
 
40
- var _a = props.dir,
41
- dir = _a === void 0 ? parentContext.dir : _a,
42
- _b = props.targetDocument,
43
- targetDocument = _b === void 0 ? parentContext.targetDocument : _b,
44
- _c = props.theme,
45
- theme = _c === void 0 ? {} : _c;
46
- var mergedTheme = react_theme_1.mergeThemes(parentTheme, theme);
37
+ const {
38
+ dir = parentContext.dir,
39
+ targetDocument = parentContext.targetDocument,
40
+ theme
41
+ } = props;
42
+ const mergedTheme = mergeThemes(parentTheme, theme);
43
+ React.useEffect(() => {
44
+ if (process.env.NODE_ENV !== 'production' && mergedTheme === undefined) {
45
+ // eslint-disable-next-line no-console
46
+ console.warn(`
47
+ FluentProvider: your "theme" is not defined !
48
+ =============================================
49
+ Make sure your root FluentProvider has set a theme or you're setting the theme in your child FluentProvider.
50
+ `);
51
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
52
+
53
+ }, []);
47
54
  return {
48
- dir: dir,
49
- targetDocument: targetDocument,
55
+ dir,
56
+ targetDocument,
50
57
  theme: mergedTheme,
51
- themeClassName: useThemeStyleTag_1.useThemeStyleTag({
58
+ themeClassName: useFluentProviderThemeStyleTag_1.useFluentProviderThemeStyleTag({
52
59
  theme: mergedTheme,
53
- targetDocument: targetDocument
60
+ targetDocument
54
61
  }),
55
62
  components: {
56
63
  root: 'div'
57
64
  },
58
- root: react_utilities_1.getNativeElementProps('div', tslib_1.__assign(tslib_1.__assign({}, props), {
59
- dir: dir,
65
+ root: react_utilities_1.getNativeElementProps('div', { ...props,
66
+ dir,
60
67
  ref: react_utilities_1.useMergedRefs(ref, react_tabster_1.useKeyboardNavAttribute())
61
- }))
68
+ })
62
69
  };
63
70
  };
64
71
 
65
- exports.useFluentProvider = useFluentProvider;
72
+ exports.useFluentProvider_unstable = useFluentProvider_unstable;
73
+
74
+ function mergeThemes(a, b) {
75
+ // Merge impacts perf: we should like to avoid it if it's possible
76
+ if (a && b) {
77
+ return { ...a,
78
+ ...b
79
+ };
80
+ }
81
+
82
+ if (a) {
83
+ return a;
84
+ }
85
+
86
+ return b;
87
+ }
66
88
  //# sourceMappingURL=useFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,eAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;;AACA,IAAA,aAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;;AACA,IAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,IAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,IAAA,kBAAA,gBAAA,OAAA,CAAA,oBAAA,CAAA;;AAGa,OAAA,CAAA,4BAAA,GAA8D,CAAC,MAAD,CAA9D;AAEb;;;;;;;;AAQG;;AACI,IAAM,iBAAiB,GAAG,UAAC,KAAD,EAA6B,GAA7B,EAAwD;AACvF,MAAM,aAAa,GAAG,uBAAA,CAAA,SAAA,EAAtB;AACA,MAAM,WAAW,GAAG,uBAAA,CAAA,QAAA,EAApB;AAEA;;;;AAIG;;AACK,MAAA,EAAA,GAAuF,KAAK,CAArE,GAAvB;AAAA,MAAA,GAAG,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,aAAa,CAAC,GAAjB,GAAoB,EAAvB;AAAA,MAAyB,EAAA,GAA8D,KAAK,CAAtB,cAAtE;AAAA,MAAyB,cAAc,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,aAAa,CAAC,cAAjB,GAA+B,EAAtE;AAAA,MAAwE,EAAA,GAAe,KAAK,CAAV,KAAlF;AAAA,MAAwE,KAAK,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAH,GAAK,EAAlF;AACR,MAAM,WAAW,GAAG,aAAA,CAAA,WAAA,CAAY,WAAZ,EAAyB,KAAzB,CAApB;AAEA,SAAO;AACL,IAAA,GAAG,EAAA,GADE;AAEL,IAAA,cAAc,EAAA,cAFT;AAGL,IAAA,KAAK,EAAE,WAHF;AAIL,IAAA,cAAc,EAAE,kBAAA,CAAA,gBAAA,CAAiB;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA,cAAc,EAAA;AAApC,KAAjB,CAJX;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AAUL,IAAA,IAAI,EAAE,iBAAA,CAAA,qBAAA,CAAsB,KAAtB,EAA2B,OAAA,CAAA,QAAA,CAAA,OAAA,CAAA,QAAA,CAAA,EAAA,EAC5B,KAD4B,CAAA,EACvB;AACR,MAAA,GAAG,EAAA,GADK;AAER,MAAA,GAAG,EAAE,iBAAA,CAAA,aAAA,CAAc,GAAd,EAAmB,eAAA,CAAA,uBAAA,EAAnB;AAFG,KADuB,CAA3B;AAVD,GAAP;AAgBD,CA5BM;;AAAM,OAAA,CAAA,iBAAA,GAAiB,iBAAjB","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProvider.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,eAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;;AAEA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,gCAAA,gBAAA,OAAA,CAAA,kCAAA,CAAA;AAGA;;;;;;;;AAQG;;;AACI,MAAM,0BAA0B,GAAG,CACxC,KADwC,EAExC,GAFwC,KAGjB;AACvB,QAAM,aAAa,GAAG,uBAAA,CAAA,SAAA,EAAtB;AACA,QAAM,WAAW,GAAG,uBAAA,CAAA,QAAA,EAApB;AAEA;;;;AAIG;;AACH,QAAM;AAAE,IAAA,GAAG,GAAG,aAAa,CAAC,GAAtB;AAA2B,IAAA,cAAc,GAAG,aAAa,CAAC,cAA1D;AAA0E,IAAA;AAA1E,MAAoF,KAA1F;AACA,QAAM,WAAW,GAAG,WAAW,CAAC,WAAD,EAAc,KAAd,CAA/B;AAEA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,QAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAAzB,IAAyC,WAAW,KAAK,SAA7D,EAAwE;AACtE;AACA,MAAA,OAAO,CAAC,IAAR,CAAa;;;;AAIZ,OAJD;AAKD,KARkB,CASnB;;AACD,GAVD,EAUG,EAVH;AAYA,SAAO;AACL,IAAA,GADK;AAEL,IAAA,cAFK;AAGL,IAAA,KAAK,EAAE,WAHF;AAIL,IAAA,cAAc,EAAE,gCAAA,CAAA,8BAAA,CAA+B;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA;AAAtB,KAA/B,CAJX;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AAUL,IAAA,IAAI,EAAE,iBAAA,CAAA,qBAAA,CAAsB,KAAtB,EAA6B,EACjC,GAAG,KAD8B;AAEjC,MAAA,GAFiC;AAGjC,MAAA,GAAG,EAAE,iBAAA,CAAA,aAAA,CAAc,GAAd,EAAmB,eAAA,CAAA,uBAAA,EAAnB;AAH4B,KAA7B;AAVD,GAAP;AAgBD,CA3CM;;AAAM,OAAA,CAAA,0BAAA,GAA0B,0BAA1B;;AA6Cb,SAAS,WAAT,CAAqB,CAArB,EAA4D,CAA5D,EAAuE;AACrE;AACA,MAAI,CAAC,IAAI,CAAT,EAAY;AACV,WAAO,EAAE,GAAG,CAAL;AAAQ,SAAG;AAAX,KAAP;AACD;;AAED,MAAI,CAAJ,EAAO;AACL,WAAO,CAAP;AACD;;AAED,SAAO,CAAP;AACD","sourcesContent":["import { useKeyboardNavAttribute } from '@fluentui/react-tabster';\nimport type { Theme } from '@fluentui/react-theme';\nimport { useFluent, useTheme } from '@fluentui/react-shared-contexts';\nimport { getNativeElementProps, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useFluentProviderThemeStyleTag } from './useFluentProviderThemeStyleTag';\nimport type { FluentProviderProps, FluentProviderState } from './FluentProvider.types';\n\n/**\n * Create the state required to render FluentProvider.\n *\n * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,\n * before being passed to renderFluentProvider_unstable.\n *\n * @param props - props from this instance of FluentProvider\n * @param ref - reference to root HTMLElement of FluentProvider\n */\nexport const useFluentProvider_unstable = (\n props: FluentProviderProps,\n ref: React.Ref<HTMLElement>,\n): FluentProviderState => {\n const parentContext = useFluent();\n const parentTheme = useTheme();\n\n /**\n * TODO: add merge functions to \"dir\" merge,\n * nesting providers with the same \"dir\" should not add additional attributes to DOM\n * see https://github.com/microsoft/fluentui/blob/0dc74a19f3aa5a058224c20505016fbdb84db172/packages/fluentui/react-northstar/src/utils/mergeProviderContexts.ts#L89-L93\n */\n const { dir = parentContext.dir, targetDocument = parentContext.targetDocument, theme } = props;\n const mergedTheme = mergeThemes(parentTheme, theme);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && mergedTheme === undefined) {\n // eslint-disable-next-line no-console\n console.warn(`\n FluentProvider: your \"theme\" is not defined !\n =============================================\n Make sure your root FluentProvider has set a theme or you're setting the theme in your child FluentProvider.\n `);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n dir,\n targetDocument,\n theme: mergedTheme,\n themeClassName: useFluentProviderThemeStyleTag({ theme: mergedTheme, targetDocument }),\n\n components: {\n root: 'div',\n },\n\n root: getNativeElementProps('div', {\n ...props,\n dir,\n ref: useMergedRefs(ref, useKeyboardNavAttribute()),\n }),\n };\n};\n\nfunction mergeThemes(a: Theme | Partial<Theme> | undefined, b: typeof a): Theme | Partial<Theme> | undefined {\n // Merge impacts perf: we should like to avoid it if it's possible\n if (a && b) {\n return { ...a, ...b };\n }\n\n if (a) {\n return a;\n }\n\n return b;\n}\n"],"sourceRoot":"../src/"}
@@ -3,32 +3,33 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useFluentProviderContextValues = void 0;
6
+ exports.useFluentProviderContextValues_unstable = void 0;
7
7
 
8
- var react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
8
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
9
 
10
- var React = /*#__PURE__*/require("react");
10
+ const React = /*#__PURE__*/require("react");
11
11
 
12
- function useFluentProviderContextValues(state) {
13
- var root = state.root,
14
- dir = state.dir,
15
- targetDocument = state.targetDocument,
16
- theme = state.theme;
17
- var provider = React.useMemo(function () {
18
- return {
19
- dir: dir,
20
- targetDocument: targetDocument
21
- };
22
- }, [dir, targetDocument]); // "Tooltip" component mutates an object in this context, instance should be stable
12
+ function useFluentProviderContextValues_unstable(state) {
13
+ const {
14
+ root,
15
+ dir,
16
+ targetDocument,
17
+ theme
18
+ } = state;
19
+ const provider = React.useMemo(() => ({
20
+ dir,
21
+ targetDocument
22
+ }), [dir, targetDocument]); // "Tooltip" component mutates an object in this context, instance should be stable
23
23
 
24
- var tooltip = react_utilities_1.useConst({});
24
+ const tooltip = react_utilities_1.useConst({});
25
25
  return {
26
- provider: provider,
27
- tooltip: tooltip,
28
- theme: theme,
26
+ provider,
27
+ textDirection: dir,
28
+ tooltip,
29
+ theme,
29
30
  themeClassName: root.className
30
31
  };
31
32
  }
32
33
 
33
- exports.useFluentProviderContextValues = useFluentProviderContextValues;
34
+ exports.useFluentProviderContextValues_unstable = useFluentProviderContextValues_unstable;
34
35
  //# sourceMappingURL=useFluentProviderContextValues.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProviderContextValues.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,IAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGA,SAAgB,8BAAhB,CAA+C,KAA/C,EAAyE;AAC/D,MAAA,IAAI,GAAiC,KAAK,CAAtC,IAAJ;AAAA,MAAM,GAAG,GAA4B,KAAK,CAAjC,GAAT;AAAA,MAAW,cAAc,GAAY,KAAK,CAAjB,cAAzB;AAAA,MAA2B,KAAK,GAAK,KAAK,CAAV,KAAhC;AAER,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAN,CAAc,YAAA;AAAM,WAAC;AAAE,MAAA,GAAG,EAAA,GAAL;AAAO,MAAA,cAAc,EAAtB;AAAC,KAAD;AAAyB,GAA7C,EAA+C,CAAC,GAAD,EAAM,cAAN,CAA/C,CAAjB,CAHuE,CAIvE;;AACA,MAAM,OAAO,GAAG,iBAAA,CAAA,QAAA,CAAS,EAAT,CAAhB;AAEA,SAAO;AACL,IAAA,QAAQ,EAAA,QADH;AAEL,IAAA,OAAO,EAAA,OAFF;AAGL,IAAA,KAAK,EAAA,KAHA;AAIL,IAAA,cAAc,EAAE,IAAI,CAAC;AAJhB,GAAP;AAMD;;AAbD,OAAA,CAAA,8BAAA,GAAA,8BAAA","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProviderContextValues.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGA,SAAgB,uCAAhB,CAAwD,KAAxD,EAAkF;AAChF,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,GAAR;AAAa,IAAA,cAAb;AAA6B,IAAA;AAA7B,MAAuC,KAA7C;AAEA,QAAM,QAAQ,GAAG,KAAK,CAAC,OAAN,CAAc,OAAO;AAAE,IAAA,GAAF;AAAO,IAAA;AAAP,GAAP,CAAd,EAA+C,CAAC,GAAD,EAAM,cAAN,CAA/C,CAAjB,CAHgF,CAIhF;;AACA,QAAM,OAAO,GAAG,iBAAA,CAAA,QAAA,CAAS,EAAT,CAAhB;AAEA,SAAO;AACL,IAAA,QADK;AAEL,IAAA,aAAa,EAAE,GAFV;AAGL,IAAA,OAHK;AAIL,IAAA,KAJK;AAKL,IAAA,cAAc,EAAE,IAAI,CAAC;AALhB,GAAP;AAOD;;AAdD,OAAA,CAAA,uCAAA,GAAA,uCAAA","sourcesContent":["import { useConst } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport type { FluentProviderContextValues, FluentProviderState } from './FluentProvider.types';\n\nexport function useFluentProviderContextValues_unstable(state: FluentProviderState): FluentProviderContextValues {\n const { root, dir, targetDocument, theme } = state;\n\n const provider = React.useMemo(() => ({ dir, targetDocument }), [dir, targetDocument]);\n // \"Tooltip\" component mutates an object in this context, instance should be stable\n const tooltip = useConst({});\n\n return {\n provider,\n textDirection: dir,\n tooltip,\n theme,\n themeClassName: root.className!,\n };\n}\n"],"sourceRoot":"../src/"}
@@ -3,11 +3,22 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useFluentProviderStyles = void 0;
6
+ exports.useFluentProviderStyles_unstable = exports.fluentProviderClassNames = exports.fluentProviderClassName = void 0;
7
7
 
8
- var react_make_styles_1 = /*#__PURE__*/require("@fluentui/react-make-styles");
8
+ const react_1 = /*#__PURE__*/require("@griffel/react");
9
9
 
10
- var useStyles = /*#__PURE__*/react_make_styles_1.__styles({
10
+ const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
11
+ /**
12
+ * @deprecated Use `fluentProviderClassNames.root` instead.
13
+ */
14
+
15
+
16
+ exports.fluentProviderClassName = 'fui-FluentProvider';
17
+ exports.fluentProviderClassNames = {
18
+ root: 'fui-FluentProvider'
19
+ };
20
+
21
+ const useStyles = /*#__PURE__*/react_1.__styles({
11
22
  "root": {
12
23
  "sj55zd": "f19n0e5",
13
24
  "De3pzq": "fxugw4r",
@@ -21,11 +32,11 @@ var useStyles = /*#__PURE__*/react_make_styles_1.__styles({
21
32
  /** Applies style classnames to slots */
22
33
 
23
34
 
24
- var useFluentProviderStyles = function (state) {
25
- var styles = useStyles();
26
- state.root.className = react_make_styles_1.mergeClasses(state.themeClassName, styles.root, state.root.className);
35
+ const useFluentProviderStyles_unstable = state => {
36
+ const styles = useStyles();
37
+ state.root.className = react_1.mergeClasses(exports.fluentProviderClassNames.root, state.themeClassName, styles.root, state.root.className);
27
38
  return state;
28
39
  };
29
40
 
30
- exports.useFluentProviderStyles = useFluentProviderStyles;
41
+ exports.useFluentProviderStyles_unstable = useFluentProviderStyles_unstable;
31
42
  //# sourceMappingURL=useFluentProviderStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProviderStyles.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,mBAAA,gBAAA,OAAA,CAAA,6BAAA,CAAA;;AAGA,IAAM,SAAS,gBAAG,mBAAA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAUA;;;AACO,IAAM,uBAAuB,GAAG,UAAC,KAAD,EAA2B;AAChE,MAAM,MAAM,GAAG,SAAS,EAAxB;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,mBAAA,CAAA,YAAA,CAAa,KAAK,CAAC,cAAnB,EAAmC,MAAM,CAAC,IAA1C,EAAgD,KAAK,CAAC,IAAN,CAAW,SAA3D,CAAvB;AAEA,SAAO,KAAP;AACD,CANM;;AAAM,OAAA,CAAA,uBAAA,GAAuB,uBAAvB","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProviderStyles.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;AAIA;;AAEG;;;AACU,OAAA,CAAA,uBAAA,GAA0B,oBAA1B;AACA,OAAA,CAAA,wBAAA,GAAgE;AAC3E,EAAA,IAAI,EAAE;AADqE,CAAhE;;AAIb,MAAM,SAAS,gBAAG,OAAA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAUA;;;AACO,MAAM,gCAAgC,GAAI,KAAD,IAA+B;AAC7E,QAAM,MAAM,GAAG,SAAS,EAAxB;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,OAAA,CAAA,YAAA,CACrB,OAAA,CAAA,wBAAA,CAAyB,IADJ,EAErB,KAAK,CAAC,cAFe,EAGrB,MAAM,CAAC,IAHc,EAIrB,KAAK,CAAC,IAAN,CAAW,SAJU,CAAvB;AAOA,SAAO,KAAP;AACD,CAXM;;AAAM,OAAA,CAAA,gCAAA,GAAgC,gCAAhC","sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { FluentProviderSlots, FluentProviderState } from './FluentProvider.types';\nimport { SlotClassNames } from '@fluentui/react-utilities';\n\n/**\n * @deprecated Use `fluentProviderClassNames.root` instead.\n */\nexport const fluentProviderClassName = 'fui-FluentProvider';\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 fontFamily: tokens.fontFamilyBase,\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n },\n});\n\n/** Applies style classnames to slots */\nexport const useFluentProviderStyles_unstable = (state: FluentProviderState) => {\n const styles = useStyles();\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"],"sourceRoot":"../src/"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useFluentProviderThemeStyleTag = void 0;
7
+
8
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
+
10
+ const React = /*#__PURE__*/require("react");
11
+
12
+ const useFluentProviderStyles_1 = /*#__PURE__*/require("./useFluentProviderStyles");
13
+ /**
14
+ * Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class
15
+ *
16
+ * @returns CSS class to apply the rule
17
+ */
18
+
19
+
20
+ const useFluentProviderThemeStyleTag = options => {
21
+ const {
22
+ targetDocument,
23
+ theme
24
+ } = options;
25
+ const styleTagId = react_utilities_1.useId(useFluentProviderStyles_1.fluentProviderClassNames.root);
26
+ const styleTag = React.useMemo(() => {
27
+ if (!targetDocument) {
28
+ return null;
29
+ }
30
+
31
+ const tag = targetDocument.createElement('style');
32
+ tag.setAttribute('id', styleTagId);
33
+ targetDocument.head.appendChild(tag);
34
+ return tag;
35
+ }, [styleTagId, targetDocument]);
36
+ const cssRule = React.useMemo(() => {
37
+ const cssVarsAsString = theme ? Object.keys(theme).reduce((cssVarRule, cssVar) => {
38
+ cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;
39
+ return cssVarRule;
40
+ }, '') : ''; // result: .fluent-provider1 { --css-var: '#fff' }
41
+
42
+ return `.${styleTagId} { ${cssVarsAsString} }`;
43
+ }, [theme, styleTagId]);
44
+ const previousCssRule = react_utilities_1.usePrevious(cssRule);
45
+
46
+ if (styleTag && previousCssRule !== cssRule) {
47
+ const sheet = styleTag.sheet;
48
+
49
+ if (sheet) {
50
+ if (sheet.cssRules.length > 0) {
51
+ sheet.deleteRule(0);
52
+ }
53
+
54
+ sheet.insertRule(cssRule, 0);
55
+ } else if (process.env.NODE_ENV !== 'production') {
56
+ // eslint-disable-next-line no-console
57
+ console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');
58
+ }
59
+ } // Removes the style tag from the targetDocument on unmount or change
60
+
61
+
62
+ React.useEffect(() => {
63
+ return () => {
64
+ if (styleTag) {
65
+ styleTag.remove();
66
+ }
67
+ };
68
+ }, [styleTag]);
69
+ return styleTagId;
70
+ };
71
+
72
+ exports.useFluentProviderThemeStyleTag = useFluentProviderThemeStyleTag;
73
+ //# sourceMappingURL=useFluentProviderThemeStyleTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProviderThemeStyleTag.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAEA,MAAA,yBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;AAEA;;;;AAIG;;;AACI,MAAM,8BAA8B,GAAI,OAAD,IAAmE;AAC/G,QAAM;AAAE,IAAA,cAAF;AAAkB,IAAA;AAAlB,MAA4B,OAAlC;AAEA,QAAM,UAAU,GAAG,iBAAA,CAAA,KAAA,CAAM,yBAAA,CAAA,wBAAA,CAAyB,IAA/B,CAAnB;AACA,QAAM,QAAQ,GAAG,KAAK,CAAC,OAAN,CAAc,MAAK;AAClC,QAAI,CAAC,cAAL,EAAqB;AACnB,aAAO,IAAP;AACD;;AAED,UAAM,GAAG,GAAG,cAAc,CAAC,aAAf,CAA6B,OAA7B,CAAZ;AACA,IAAA,GAAG,CAAC,YAAJ,CAAiB,IAAjB,EAAuB,UAAvB;AACA,IAAA,cAAc,CAAC,IAAf,CAAoB,WAApB,CAAgC,GAAhC;AACA,WAAO,GAAP;AACD,GATgB,EASd,CAAC,UAAD,EAAa,cAAb,CATc,CAAjB;AAWA,QAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,MAAK;AACjC,UAAM,eAAe,GAAG,KAAK,GACxB,MAAM,CAAC,IAAP,CAAY,KAAZ,EAA8C,MAA9C,CAAqD,CAAC,UAAD,EAAa,MAAb,KAAuB;AAC3E,MAAA,UAAU,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC,MAAD,CAAQ,IAA3C;AACA,aAAO,UAAP;AACD,KAHA,EAGE,EAHF,CADwB,GAKzB,EALJ,CADiC,CAQjC;;AACA,WAAO,IAAI,UAAU,MAAM,eAAe,IAA1C;AACD,GAVe,EAUb,CAAC,KAAD,EAAQ,UAAR,CAVa,CAAhB;AAWA,QAAM,eAAe,GAAG,iBAAA,CAAA,WAAA,CAAY,OAAZ,CAAxB;;AAEA,MAAI,QAAQ,IAAI,eAAe,KAAK,OAApC,EAA6C;AAC3C,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAvB;;AAEA,QAAI,KAAJ,EAAW;AACT,UAAI,KAAK,CAAC,QAAN,CAAe,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,QAAA,KAAK,CAAC,UAAN,CAAiB,CAAjB;AACD;;AACD,MAAA,KAAK,CAAC,UAAN,CAAiB,OAAjB,EAA0B,CAA1B;AACD,KALD,MAKO,IAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;AAChD;AACA,MAAA,OAAO,CAAC,KAAR,CAAc,uFAAd;AACD;AACF,GAxC8G,CA0C/G;;;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,WAAO,MAAK;AACV,UAAI,QAAJ,EAAc;AACZ,QAAA,QAAQ,CAAC,MAAT;AACD;AACF,KAJD;AAKD,GAND,EAMG,CAAC,QAAD,CANH;AAQA,SAAO,UAAP;AACD,CApDM;;AAAM,OAAA,CAAA,8BAAA,GAA8B,8BAA9B","sourcesContent":["import { useId, usePrevious } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport type { FluentProviderState } from './FluentProvider.types';\nimport { fluentProviderClassNames } from './useFluentProviderStyles';\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 styleTagId = useId(fluentProviderClassNames.root);\n const styleTag = React.useMemo(() => {\n if (!targetDocument) {\n return null;\n }\n\n const tag = targetDocument.createElement('style');\n tag.setAttribute('id', styleTagId);\n targetDocument.head.appendChild(tag);\n return tag;\n }, [styleTagId, targetDocument]);\n\n const cssRule = React.useMemo(() => {\n const cssVarsAsString = theme\n ? (Object.keys(theme) as (keyof typeof theme)[]).reduce((cssVarRule, cssVar) => {\n cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;\n return cssVarRule;\n }, '')\n : '';\n\n // result: .fluent-provider1 { --css-var: '#fff' }\n return `.${styleTagId} { ${cssVarsAsString} }`;\n }, [theme, styleTagId]);\n const previousCssRule = usePrevious(cssRule);\n\n if (styleTag && previousCssRule !== cssRule) {\n const sheet = styleTag.sheet;\n\n if (sheet) {\n if (sheet.cssRules.length > 0) {\n sheet.deleteRule(0);\n }\n sheet.insertRule(cssRule, 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 // Removes the style tag from the targetDocument on unmount or change\n React.useEffect(() => {\n return () => {\n if (styleTag) {\n styleTag.remove();\n }\n };\n }, [styleTag]);\n\n return styleTagId;\n};\n"],"sourceRoot":"../src/"}
@@ -3,11 +3,59 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useTheme = exports.useFluent = void 0;
6
+ exports.useTheme = exports.useFluent = exports.useFluentProviderThemeStyleTag = exports.useFluentProviderStyles_unstable = exports.useFluentProvider_unstable = exports.useFluentProviderContextValues_unstable = exports.renderFluentProvider_unstable = exports.FluentProvider = exports.fluentProviderClassNames = exports.fluentProviderClassName = void 0;
7
7
 
8
- var tslib_1 = /*#__PURE__*/require("tslib");
8
+ var FluentProvider_1 = /*#__PURE__*/require("./FluentProvider"); // eslint-disable-next-line deprecation/deprecation
9
9
 
10
- tslib_1.__exportStar(require("./FluentProvider"), exports);
10
+
11
+ Object.defineProperty(exports, "fluentProviderClassName", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return FluentProvider_1.fluentProviderClassName;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "fluentProviderClassNames", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return FluentProvider_1.fluentProviderClassNames;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "FluentProvider", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return FluentProvider_1.FluentProvider;
27
+ }
28
+ });
29
+ Object.defineProperty(exports, "renderFluentProvider_unstable", {
30
+ enumerable: true,
31
+ get: function () {
32
+ return FluentProvider_1.renderFluentProvider_unstable;
33
+ }
34
+ });
35
+ Object.defineProperty(exports, "useFluentProviderContextValues_unstable", {
36
+ enumerable: true,
37
+ get: function () {
38
+ return FluentProvider_1.useFluentProviderContextValues_unstable;
39
+ }
40
+ });
41
+ Object.defineProperty(exports, "useFluentProvider_unstable", {
42
+ enumerable: true,
43
+ get: function () {
44
+ return FluentProvider_1.useFluentProvider_unstable;
45
+ }
46
+ });
47
+ Object.defineProperty(exports, "useFluentProviderStyles_unstable", {
48
+ enumerable: true,
49
+ get: function () {
50
+ return FluentProvider_1.useFluentProviderStyles_unstable;
51
+ }
52
+ });
53
+ Object.defineProperty(exports, "useFluentProviderThemeStyleTag", {
54
+ enumerable: true,
55
+ get: function () {
56
+ return FluentProvider_1.useFluentProviderThemeStyleTag;
57
+ }
58
+ });
11
59
 
12
60
  var react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
13
61
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA;;AACA,IAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AAAS,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,WAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,uBAAA,CAAA,SAAA;AAAS;AAAT,CAAA;AAAW,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,UAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,uBAAA,CAAA,QAAA;AAAQ;AAAR,CAAA","sourceRoot":""}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,gBAAA,gBAAA,OAAA,CAAA,kBAAA,CAAA,C,CACE;;;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,yBAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,uBAAA;AAAuB;AAAvB,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,0BAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,wBAAA;AAAwB;AAAxB,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,gBAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,cAAA;AAAc;AAAd,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,+BAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,6BAAA;AAA6B;AAA7B,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,yCAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,uCAAA;AAAuC;AAAvC,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,4BAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,0BAAA;AAA0B;AAA1B,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,kCAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,gCAAA;AAAgC;AAAhC,CAAA;AACA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,gCAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,gBAAA,CAAA,8BAAA;AAA8B;AAA9B,CAAA;;AASF,IAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AAAS,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,WAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,uBAAA,CAAA,SAAA;AAAS;AAAT,CAAA;AAAW,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,UAAA,EAAA;AAAA,EAAA,UAAA,EAAA,IAAA;AAAA,EAAA,GAAA,EAAA,YAAA;AAAA,WAAA,uBAAA,CAAA,QAAA;AAAQ;AAAR,CAAA","sourcesContent":["export {\n // eslint-disable-next-line deprecation/deprecation\n fluentProviderClassName,\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 FluentProviderProps,\n FluentProviderState,\n FluentProviderSlots,\n} from './FluentProvider';\n\nexport { useFluent, useTheme } from '@fluentui/react-shared-contexts';\n"],"sourceRoot":"../src/"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@fluentui/react-provider",
3
- "version": "9.0.0-nightly.d730088d7f.0",
3
+ "version": "9.0.0-rc.10",
4
4
  "description": "Fluent UI React provider component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
7
- "typings": "lib/index.d.ts",
7
+ "typings": "dist/index.d.ts",
8
8
  "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
@@ -14,40 +14,29 @@
14
14
  "scripts": {
15
15
  "build": "just-scripts build",
16
16
  "bundle-size": "bundle-size measure",
17
- "test": "jest",
17
+ "test": "jest --passWithNoTests",
18
18
  "clean": "just-scripts clean",
19
19
  "code-style": "just-scripts code-style",
20
20
  "just": "just-scripts",
21
21
  "lint": "just-scripts lint",
22
22
  "docs": "api-extractor run --config=config/api-extractor.local.json --local",
23
- "build:local": "tsc -p . --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output dist/react-provider/src && yarn docs",
24
- "storybook": "start-storybook",
25
- "start": "yarn storybook"
23
+ "build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../../scripts/typescript/normalize-import --output ./dist/packages/react-components/react-provider/src && yarn docs",
24
+ "storybook": "node ../../../scripts/storybook/runner",
25
+ "start": "yarn storybook",
26
+ "type-check": "tsc -b tsconfig.json"
26
27
  },
27
28
  "devDependencies": {
28
- "@fluentui/babel-make-styles": "9.0.0-nightly.d730088d7f.0",
29
29
  "@fluentui/eslint-plugin": "*",
30
- "@fluentui/jest-serializer-make-styles": "9.0.0-nightly.d730088d7f.0",
31
30
  "@fluentui/react-conformance": "*",
32
- "@fluentui/react-conformance-make-styles": "9.0.0-nightly.d730088d7f.0",
33
- "@fluentui/scripts": "^1.0.0",
34
- "@types/enzyme": "3.10.3",
35
- "@types/enzyme-adapter-react-16": "1.0.3",
36
- "@types/jest": "24.9.1",
37
- "@types/react": "16.9.42",
38
- "@types/react-dom": "16.9.10",
39
- "enzyme": "~3.10.0",
40
- "enzyme-adapter-react-16": "^1.15.0",
41
- "react": "16.8.6",
42
- "react-dom": "16.8.6",
43
- "react-test-renderer": "^16.3.0"
31
+ "@fluentui/react-conformance-griffel": "9.0.0-beta.6",
32
+ "@fluentui/scripts": "^1.0.0"
44
33
  },
45
34
  "dependencies": {
46
- "@fluentui/react-make-styles": "9.0.0-nightly.d730088d7f.0",
47
- "@fluentui/react-shared-contexts": "9.0.0-nightly.d730088d7f.0",
48
- "@fluentui/react-tabster": "9.0.0-nightly.d730088d7f.0",
49
- "@fluentui/react-theme": "9.0.0-nightly.d730088d7f.0",
50
- "@fluentui/react-utilities": "9.0.0-nightly.d730088d7f.0",
35
+ "@griffel/react": "1.0.5",
36
+ "@fluentui/react-shared-contexts": "9.0.0-rc.8",
37
+ "@fluentui/react-tabster": "9.0.0-rc.10",
38
+ "@fluentui/react-theme": "9.0.0-rc.8",
39
+ "@fluentui/react-utilities": "9.0.0-rc.9",
51
40
  "tslib": "^2.1.0"
52
41
  },
53
42
  "peerDependencies": {
@@ -57,11 +46,17 @@
57
46
  "react-dom": ">=16.8.0 <18.0.0"
58
47
  },
59
48
  "beachball": {
60
- "tag": "beta",
61
49
  "disallowedChangeTypes": [
62
50
  "major",
63
51
  "minor",
64
52
  "patch"
65
53
  ]
54
+ },
55
+ "exports": {
56
+ ".": {
57
+ "types": "./lib/index.d.ts",
58
+ "import": "./lib/index.js",
59
+ "require": "./lib-commonjs/index.js"
60
+ }
66
61
  }
67
62
  }
@@ -1,67 +0,0 @@
1
- import type { ComponentProps } from '@fluentui/react-utilities';
2
- import type { ComponentState } from '@fluentui/react-utilities';
3
- import type { IntrinsicShorthandProps } from '@fluentui/react-utilities';
4
- import type { PartialTheme } from '@fluentui/react-theme';
5
- import type { ProviderContextValue } from '@fluentui/react-shared-contexts';
6
- import * as React_2 from 'react';
7
- import type { Theme } from '@fluentui/react-theme';
8
- import type { ThemeClassNameContextValue } from '@fluentui/react-shared-contexts';
9
- import type { ThemeContextValue } from '@fluentui/react-shared-contexts';
10
- import type { TooltipContextType } from '@fluentui/react-shared-contexts';
11
- import { useFluent } from '@fluentui/react-shared-contexts';
12
- import { useTheme } from '@fluentui/react-shared-contexts';
13
-
14
- export declare const FluentProvider: React_2.ForwardRefExoticComponent<FluentProviderProps & React_2.RefAttributes<HTMLElement>>;
15
-
16
- export declare interface FluentProviderCommons {
17
- /** Sets the direction of text & generated styles. */
18
- dir: 'ltr' | 'rtl';
19
- /** Provides the document, can be undefined during SSR render. */
20
- targetDocument: Document | undefined;
21
- }
22
-
23
- export declare interface FluentProviderContextValues {
24
- provider: ProviderContextValue;
25
- theme: ThemeContextValue;
26
- themeClassName: ThemeClassNameContextValue;
27
- tooltip: TooltipContextType;
28
- }
29
-
30
- export declare interface FluentProviderProps extends Omit<ComponentProps<FluentProviderSlots>, 'dir'>, Partial<FluentProviderCommons> {
31
- theme?: PartialTheme;
32
- }
33
-
34
- export declare const fluentProviderShorthandProps: (keyof FluentProviderSlots)[];
35
-
36
- export declare type FluentProviderSlots = {
37
- root: IntrinsicShorthandProps<'div'>;
38
- };
39
-
40
- export declare interface FluentProviderState extends ComponentState<FluentProviderSlots>, FluentProviderCommons {
41
- theme: Theme;
42
- themeClassName: string;
43
- }
44
-
45
- /**
46
- * Render the final JSX of FluentProvider
47
- */
48
- export declare const renderFluentProvider: (state: FluentProviderState, contextValues: FluentProviderContextValues) => JSX.Element;
49
-
50
- export { useFluent }
51
-
52
- /**
53
- * Create the state required to render FluentProvider.
54
- *
55
- * The returned state can be modified with hooks such as useFluentProviderStyles,
56
- * before being passed to renderFluentProvider.
57
- *
58
- * @param props - props from this instance of FluentProvider
59
- * @param ref - reference to root HTMLElement of FluentProvider
60
- */
61
- export declare const useFluentProvider: (props: FluentProviderProps, ref: React_2.Ref<HTMLElement>) => FluentProviderState;
62
-
63
- export declare function useFluentProviderContextValues(state: FluentProviderState): FluentProviderContextValues;
64
-
65
- export { useTheme }
66
-
67
- export { }
@@ -1 +0,0 @@
1
- export * from './components/FluentProvider/index';
@@ -1,4 +0,0 @@
1
- import type { IsConformantOptions } from '@fluentui/react-conformance';
2
- export declare function isConformant<TProps = {}>(testInfo: Omit<IsConformantOptions<TProps>, 'componentPath'> & {
3
- componentPath?: string;
4
- }): void;