@fluentui/react-provider 0.0.0-nightlyfe9829e48120211112.1 → 0.0.0-nightlyff78d1e27a20220217.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 (52) hide show
  1. package/CHANGELOG.json +279 -20
  2. package/CHANGELOG.md +68 -13
  3. package/dist/react-provider.d.ts +12 -15
  4. package/lib/FluentProvider.js.map +1 -1
  5. package/lib/components/FluentProvider/FluentProvider.js +8 -8
  6. package/lib/components/FluentProvider/FluentProvider.js.map +1 -1
  7. package/lib/components/FluentProvider/FluentProvider.types.d.ts +8 -7
  8. package/lib/components/FluentProvider/FluentProvider.types.js.map +1 -1
  9. package/lib/components/FluentProvider/index.js.map +1 -1
  10. package/lib/components/FluentProvider/renderFluentProvider.d.ts +1 -1
  11. package/lib/components/FluentProvider/renderFluentProvider.js +7 -4
  12. package/lib/components/FluentProvider/renderFluentProvider.js.map +1 -1
  13. package/lib/components/FluentProvider/useFluentProvider.d.ts +4 -5
  14. package/lib/components/FluentProvider/useFluentProvider.js +31 -6
  15. package/lib/components/FluentProvider/useFluentProvider.js.map +1 -1
  16. package/lib/components/FluentProvider/useFluentProviderContextValues.d.ts +1 -1
  17. package/lib/components/FluentProvider/useFluentProviderContextValues.js +2 -1
  18. package/lib/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  19. package/lib/components/FluentProvider/useFluentProviderStyles.d.ts +1 -1
  20. package/lib/components/FluentProvider/useFluentProviderStyles.js +3 -2
  21. package/lib/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  22. package/lib/components/FluentProvider/useThemeStyleTag.js +4 -9
  23. package/lib/components/FluentProvider/useThemeStyleTag.js.map +1 -1
  24. package/lib/index.js.map +1 -1
  25. package/lib-commonjs/FluentProvider.js.map +1 -1
  26. package/lib-commonjs/components/FluentProvider/FluentProvider.js +4 -4
  27. package/lib-commonjs/components/FluentProvider/FluentProvider.js.map +1 -1
  28. package/lib-commonjs/components/FluentProvider/FluentProvider.types.d.ts +8 -7
  29. package/lib-commonjs/components/FluentProvider/FluentProvider.types.js.map +1 -1
  30. package/lib-commonjs/components/FluentProvider/index.js.map +1 -1
  31. package/lib-commonjs/components/FluentProvider/renderFluentProvider.d.ts +1 -1
  32. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js +10 -7
  33. package/lib-commonjs/components/FluentProvider/renderFluentProvider.js.map +1 -1
  34. package/lib-commonjs/components/FluentProvider/useFluentProvider.d.ts +4 -5
  35. package/lib-commonjs/components/FluentProvider/useFluentProvider.js +36 -11
  36. package/lib-commonjs/components/FluentProvider/useFluentProvider.js.map +1 -1
  37. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.d.ts +1 -1
  38. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js +4 -3
  39. package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js.map +1 -1
  40. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.d.ts +1 -1
  41. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js +8 -6
  42. package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js.map +1 -1
  43. package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js +4 -10
  44. package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js.map +1 -1
  45. package/lib-commonjs/index.js.map +1 -1
  46. package/package.json +13 -15
  47. package/lib/common/isConformant.d.ts +0 -4
  48. package/lib/common/isConformant.js +0 -12
  49. package/lib/common/isConformant.js.map +0 -1
  50. package/lib-commonjs/common/isConformant.d.ts +0 -4
  51. package/lib-commonjs/common/isConformant.js +0 -23
  52. package/lib-commonjs/common/isConformant.js.map +0 -1
@@ -1,16 +1,16 @@
1
1
  import * as React from 'react';
2
+ import { TextDirectionProvider } from '@griffel/react';
2
3
  import { ProviderContext, TooltipContext, ThemeContext, ThemeClassNameContext } from '@fluentui/react-shared-contexts';
3
4
  import { getSlots } from '@fluentui/react-utilities';
4
- import { fluentProviderShorthandProps } from './useFluentProvider';
5
5
  /**
6
6
  * Render the final JSX of FluentProvider
7
7
  */
8
8
 
9
- export const renderFluentProvider = (state, contextValues) => {
9
+ export const renderFluentProvider_unstable = (state, contextValues) => {
10
10
  const {
11
11
  slots,
12
12
  slotProps
13
- } = getSlots(state, fluentProviderShorthandProps);
13
+ } = getSlots(state);
14
14
  return /*#__PURE__*/React.createElement(ProviderContext.Provider, {
15
15
  value: contextValues.provider
16
16
  }, /*#__PURE__*/React.createElement(ThemeContext.Provider, {
@@ -19,6 +19,9 @@ export const renderFluentProvider = (state, contextValues) => {
19
19
  value: contextValues.themeClassName
20
20
  }, /*#__PURE__*/React.createElement(TooltipContext.Provider, {
21
21
  value: contextValues.tooltip
22
- }, /*#__PURE__*/React.createElement(slots.root, Object.assign({}, slotProps.root), state.root.children)))));
22
+ }, /*#__PURE__*/React.createElement(TextDirectionProvider, {
23
+ dir: contextValues.textDirection
24
+ }, /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
25
+ }, state.root.children))))));
23
26
  };
24
27
  //# sourceMappingURL=renderFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/renderFluentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,eAAT,EAA0B,cAA1B,EAA0C,YAA1C,EAAwD,qBAAxD,QAAqF,iCAArF;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAEA,SAAS,4BAAT,QAA6C,qBAA7C;AAEA;;AAEG;;AACH,OAAO,MAAM,oBAAoB,GAAG,CAAC,KAAD,EAA6B,aAA7B,KAA2E;AAC7G,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAsB,KAAtB,EAA6B,4BAA7B,CAArC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,eAAe,CAAC,QAAjB,EAAyB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAzB,eACE,KAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAd,EAAsB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAtB,eACE,KAAA,CAAA,aAAA,CAAC,qBAAqB,CAAC,QAAvB,EAA+B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA/B,eACE,KAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAhB,EAAwB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAxB,eACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,SAAS,CAAC,IAAf,CAAX,EAAiC,KAAK,CAAC,IAAN,CAAW,QAA5C,CADF,CADF,CADF,CADF,CADF;AAWD,CAdM","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/renderFluentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,qBAAT,QAAsC,gBAAtC;AACA,SAAS,eAAT,EAA0B,cAA1B,EAA0C,YAA1C,EAAwD,qBAAxD,QAAqF,iCAArF;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,6BAA6B,GAAG,CAC3C,KAD2C,EAE3C,aAF2C,KAGzC;AACF,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAsB,KAAtB,CAArC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,eAAe,CAAC,QAAjB,EAAyB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAzB,eACE,KAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAd,EAAsB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAtB,eACE,KAAA,CAAA,aAAA,CAAC,qBAAqB,CAAC,QAAvB,EAA+B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA/B,eACE,KAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAhB,EAAwB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAxB,eACE,KAAA,CAAA,aAAA,CAAC,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","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/"}
@@ -1,13 +1,12 @@
1
1
  import * as React from 'react';
2
- import type { FluentProviderProps, FluentProviderSlots, FluentProviderState } from './FluentProvider.types';
3
- export declare const fluentProviderShorthandProps: (keyof FluentProviderSlots)[];
2
+ import type { FluentProviderProps, FluentProviderState } from './FluentProvider.types';
4
3
  /**
5
4
  * Create the state required to render FluentProvider.
6
5
  *
7
- * The returned state can be modified with hooks such as useFluentProviderStyles,
8
- * before being passed to renderFluentProvider.
6
+ * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,
7
+ * before being passed to renderFluentProvider_unstable.
9
8
  *
10
9
  * @param props - props from this instance of FluentProvider
11
10
  * @param ref - reference to root HTMLElement of FluentProvider
12
11
  */
13
- export declare const useFluentProvider: (props: FluentProviderProps, ref: React.Ref<HTMLElement>) => FluentProviderState;
12
+ export declare const useFluentProvider_unstable: (props: FluentProviderProps, ref: React.Ref<HTMLElement>) => FluentProviderState;
@@ -1,20 +1,19 @@
1
1
  import { useKeyboardNavAttribute } from '@fluentui/react-tabster';
2
- import { mergeThemes } from '@fluentui/react-theme';
3
2
  import { useFluent, useTheme } from '@fluentui/react-shared-contexts';
4
3
  import { getNativeElementProps, useMergedRefs } from '@fluentui/react-utilities';
4
+ import * as React from 'react';
5
5
  import { useThemeStyleTag } from './useThemeStyleTag';
6
- export const fluentProviderShorthandProps = ['root'];
7
6
  /**
8
7
  * Create the state required to render FluentProvider.
9
8
  *
10
- * The returned state can be modified with hooks such as useFluentProviderStyles,
11
- * before being passed to renderFluentProvider.
9
+ * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,
10
+ * before being passed to renderFluentProvider_unstable.
12
11
  *
13
12
  * @param props - props from this instance of FluentProvider
14
13
  * @param ref - reference to root HTMLElement of FluentProvider
15
14
  */
16
15
 
17
- export const useFluentProvider = (props, ref) => {
16
+ export const useFluentProvider_unstable = (props, ref) => {
18
17
  const parentContext = useFluent();
19
18
  const parentTheme = useTheme();
20
19
  /**
@@ -26,9 +25,20 @@ export const useFluentProvider = (props, ref) => {
26
25
  const {
27
26
  dir = parentContext.dir,
28
27
  targetDocument = parentContext.targetDocument,
29
- theme = {}
28
+ theme
30
29
  } = props;
31
30
  const mergedTheme = mergeThemes(parentTheme, theme);
31
+ React.useEffect(() => {
32
+ if (process.env.NODE_ENV !== 'production' && mergedTheme === undefined) {
33
+ // eslint-disable-next-line no-console
34
+ console.warn(`
35
+ FluentProvider: your "theme" is not defined !
36
+ =============================================
37
+ Make sure your root FluentProvider has set a theme or you're setting the theme in your child FluentProvider.
38
+ `);
39
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
40
+
41
+ }, []);
32
42
  return {
33
43
  dir,
34
44
  targetDocument,
@@ -46,4 +56,19 @@ export const useFluentProvider = (props, ref) => {
46
56
  })
47
57
  };
48
58
  };
59
+
60
+ function mergeThemes(a, b) {
61
+ // Merge impacts perf: we should like to avoid it if it's possible
62
+ if (a && b) {
63
+ return { ...a,
64
+ ...b
65
+ };
66
+ }
67
+
68
+ if (a) {
69
+ return a;
70
+ }
71
+
72
+ return b;
73
+ }
49
74
  //# sourceMappingURL=useFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProvider.ts"],"names":[],"mappings":"AAAA,SAAS,uBAAT,QAAwC,yBAAxC;AACA,SAAS,WAAT,QAA4B,uBAA5B;AACA,SAAS,SAAT,EAAoB,QAApB,QAAoC,iCAApC;AACA,SAAS,qBAAT,EAAgC,aAAhC,QAAqD,2BAArD;AAEA,SAAS,gBAAT,QAAiC,oBAAjC;AAGA,OAAO,MAAM,4BAA4B,GAAkC,CAAC,MAAD,CAApE;AAEP;;;;;;;;AAQG;;AACH,OAAO,MAAM,iBAAiB,GAAG,CAAC,KAAD,EAA6B,GAA7B,KAAiF;AAChH,QAAM,aAAa,GAAG,SAAS,EAA/B;AACA,QAAM,WAAW,GAAG,QAAQ,EAA5B;AAEA;;;;AAIG;;AACH,QAAM;AAAE,IAAA,GAAG,GAAG,aAAa,CAAC,GAAtB;AAA2B,IAAA,cAAc,GAAG,aAAa,CAAC,cAA1D;AAA0E,IAAA,KAAK,GAAG;AAAlF,MAAyF,KAA/F;AACA,QAAM,WAAW,GAAG,WAAW,CAAC,WAAD,EAAc,KAAd,CAA/B;AAEA,SAAO;AACL,IAAA,GADK;AAEL,IAAA,cAFK;AAGL,IAAA,KAAK,EAAE,WAHF;AAIL,IAAA,cAAc,EAAE,gBAAgB,CAAC;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA;AAAtB,KAAD,CAJ3B;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AAUL,IAAA,IAAI,EAAE,qBAAqB,CAAC,KAAD,EAAQ,EACjC,GAAG,KAD8B;AAEjC,MAAA,GAFiC;AAGjC,MAAA,GAAG,EAAE,aAAa,CAAC,GAAD,EAAM,uBAAuB,EAA7B;AAHe,KAAR;AAVtB,GAAP;AAgBD,CA5BM","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProvider.ts"],"names":[],"mappings":"AAAA,SAAS,uBAAT,QAAwC,yBAAxC;AAEA,SAAS,SAAT,EAAoB,QAApB,QAAoC,iCAApC;AACA,SAAS,qBAAT,EAAgC,aAAhC,QAAqD,2BAArD;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,gBAAT,QAAiC,oBAAjC;AAGA;;;;;;;;AAQG;;AACH,OAAO,MAAM,0BAA0B,GAAG,CACxC,KADwC,EAExC,GAFwC,KAGjB;AACvB,QAAM,aAAa,GAAG,SAAS,EAA/B;AACA,QAAM,WAAW,GAAG,QAAQ,EAA5B;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,gBAAgB,CAAC;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA;AAAtB,KAAD,CAJ3B;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AAUL,IAAA,IAAI,EAAE,qBAAqB,CAAC,KAAD,EAAQ,EACjC,GAAG,KAD8B;AAEjC,MAAA,GAFiC;AAGjC,MAAA,GAAG,EAAE,aAAa,CAAC,GAAD,EAAM,uBAAuB,EAA7B;AAHe,KAAR;AAVtB,GAAP;AAgBD,CA3CM;;AA6CP,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 { useThemeStyleTag } from './useThemeStyleTag';\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: useThemeStyleTag({ 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/"}
@@ -1,2 +1,2 @@
1
1
  import type { FluentProviderContextValues, FluentProviderState } from './FluentProvider.types';
2
- export declare function useFluentProviderContextValues(state: FluentProviderState): FluentProviderContextValues;
2
+ export declare function useFluentProviderContextValues_unstable(state: FluentProviderState): FluentProviderContextValues;
@@ -1,6 +1,6 @@
1
1
  import { useConst } from '@fluentui/react-utilities';
2
2
  import * as React from 'react';
3
- export function useFluentProviderContextValues(state) {
3
+ export function useFluentProviderContextValues_unstable(state) {
4
4
  const {
5
5
  root,
6
6
  dir,
@@ -15,6 +15,7 @@ export function useFluentProviderContextValues(state) {
15
15
  const tooltip = useConst({});
16
16
  return {
17
17
  provider,
18
+ textDirection: dir,
18
19
  tooltip,
19
20
  theme,
20
21
  themeClassName: root.className
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProviderContextValues.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,2BAAzB;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAGA,OAAM,SAAU,8BAAV,CAAyC,KAAzC,EAAmE;AACvE,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,CAHuE,CAIvE;;AACA,QAAM,OAAO,GAAG,QAAQ,CAAC,EAAD,CAAxB;AAEA,SAAO;AACL,IAAA,QADK;AAEL,IAAA,OAFK;AAGL,IAAA,KAHK;AAIL,IAAA,cAAc,EAAE,IAAI,CAAC;AAJhB,GAAP;AAMD","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProviderContextValues.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,2BAAzB;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAGA,OAAM,SAAU,uCAAV,CAAkD,KAAlD,EAA4E;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,QAAQ,CAAC,EAAD,CAAxB;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","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/"}
@@ -1,4 +1,4 @@
1
1
  import type { FluentProviderState } from './FluentProvider.types';
2
2
  export declare const fluentProviderClassName = "fui-FluentProvider";
3
3
  /** Applies style classnames to slots */
4
- export declare const useFluentProviderStyles: (state: FluentProviderState) => FluentProviderState;
4
+ export declare const useFluentProviderStyles_unstable: (state: FluentProviderState) => FluentProviderState;
@@ -1,4 +1,5 @@
1
- import { __styles, mergeClasses } from '@fluentui/react-make-styles';
1
+ import { __styles, mergeClasses } from '@griffel/react';
2
+ import { tokens } from '@fluentui/react-theme';
2
3
  export const fluentProviderClassName = 'fui-FluentProvider';
3
4
 
4
5
  const useStyles = /*#__PURE__*/__styles({
@@ -15,7 +16,7 @@ const useStyles = /*#__PURE__*/__styles({
15
16
  /** Applies style classnames to slots */
16
17
 
17
18
 
18
- export const useFluentProviderStyles = state => {
19
+ export const useFluentProviderStyles_unstable = state => {
19
20
  const styles = useStyles();
20
21
  state.root.className = mergeClasses(fluentProviderClassName, state.themeClassName, styles.root, state.root.className);
21
22
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProviderStyles.ts"],"names":[],"mappings":"AAAA,mBAAqB,YAArB,QAAyC,6BAAzC;AAGA,OAAO,MAAM,uBAAuB,GAAG,oBAAhC;;AAEP,MAAM,SAAS,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAUA;;;AACA,OAAO,MAAM,uBAAuB,GAAI,KAAD,IAA+B;AACpE,QAAM,MAAM,GAAG,SAAS,EAAxB;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,uBAAD,EAA0B,KAAK,CAAC,cAAhC,EAAgD,MAAM,CAAC,IAAvD,EAA6D,KAAK,CAAC,IAAN,CAAW,SAAxE,CAAnC;AAEA,SAAO,KAAP;AACD,CANM","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useFluentProviderStyles.ts"],"names":[],"mappings":"AAAA,mBAAqB,YAArB,QAAyC,gBAAzC;AACA,SAAS,MAAT,QAAuB,uBAAvB;AAGA,OAAO,MAAM,uBAAuB,GAAG,oBAAhC;;AAEP,MAAM,SAAS,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAUA;;;AACA,OAAO,MAAM,gCAAgC,GAAI,KAAD,IAA+B;AAC7E,QAAM,MAAM,GAAG,SAAS,EAAxB;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,uBAAD,EAA0B,KAAK,CAAC,cAAhC,EAAgD,MAAM,CAAC,IAAvD,EAA6D,KAAK,CAAC,IAAN,CAAW,SAAxE,CAAnC;AAEA,SAAO,KAAP;AACD,CANM","sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { FluentProviderState } from './FluentProvider.types';\n\nexport const fluentProviderClassName = 'fui-FluentProvider';\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(fluentProviderClassName, state.themeClassName, styles.root, state.root.className);\n\n return state;\n};\n"],"sourceRoot":"../src/"}
@@ -1,5 +1,4 @@
1
1
  import { useId, usePrevious } from '@fluentui/react-utilities';
2
- import { themeToCSSVariables } from '@fluentui/react-theme';
3
2
  import * as React from 'react';
4
3
  import { fluentProviderClassName } from './useFluentProviderStyles';
5
4
  /**
@@ -25,11 +24,10 @@ export const useThemeStyleTag = options => {
25
24
  return tag;
26
25
  }, [styleTagId, targetDocument]);
27
26
  const cssRule = React.useMemo(() => {
28
- const cssVars = themeToCSSVariables(theme);
29
- const cssVarsAsString = Object.keys(cssVars).reduce((cssVarRule, cssVar) => {
30
- cssVarRule += `${cssVar}: ${cssVars[cssVar]}; `;
27
+ const cssVarsAsString = theme ? Object.keys(theme).reduce((cssVarRule, cssVar) => {
28
+ cssVarRule += `--${cssVar}: ${theme[cssVar]}; `;
31
29
  return cssVarRule;
32
- }, ''); // result: .fluent-provider1 { --css-var: '#fff' }
30
+ }, '') : ''; // result: .fluent-provider1 { --css-var: '#fff' }
33
31
 
34
32
  return `.${styleTagId} { ${cssVarsAsString} }`;
35
33
  }, [theme, styleTagId]);
@@ -48,11 +46,8 @@ export const useThemeStyleTag = options => {
48
46
 
49
47
  React.useEffect(() => {
50
48
  return () => {
51
- var _a;
52
-
53
49
  if (styleTag) {
54
- // IE11 safe node removal, otherwise use node.remove()
55
- (_a = styleTag.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(styleTag);
50
+ styleTag.remove();
56
51
  }
57
52
  };
58
53
  }, [styleTag]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useThemeStyleTag.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,EAAgB,WAAhB,QAAmC,2BAAnC;AACA,SAAS,mBAAT,QAAoC,uBAApC;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAEA,SAAS,uBAAT,QAAwC,2BAAxC;AAEA;;;;AAIG;;AACH,OAAO,MAAM,gBAAgB,GAAI,OAAD,IAAmE;AACjG,QAAM;AAAE,IAAA,cAAF;AAAkB,IAAA;AAAlB,MAA4B,OAAlC;AAEA,QAAM,UAAU,GAAG,KAAK,CAAC,uBAAD,CAAxB;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,OAAO,GAAG,mBAAmB,CAAC,KAAD,CAAnC;AACA,UAAM,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,OAAZ,EAAqB,MAArB,CAA4B,CAAC,UAAD,EAAa,MAAb,KAAuB;AACzE,MAAA,UAAU,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,MAAD,CAAQ,IAA3C;AACA,aAAO,UAAP;AACD,KAHuB,EAGrB,EAHqB,CAAxB,CAFiC,CAOjC;;AACA,WAAO,IAAI,UAAU,MAAM,eAAe,IAA1C;AACD,GATe,EASb,CAAC,KAAD,EAAQ,UAAR,CATa,CAAhB;AAUA,QAAM,eAAe,GAAG,WAAW,CAAC,OAAD,CAAnC;;AAEA,MAAI,QAAQ,IAAI,eAAe,KAAK,OAApC,EAA6C;AAC3C,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAvB;;AAEA,QAAI,KAAK,CAAC,QAAN,CAAe,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,MAAA,KAAK,CAAC,UAAN,CAAiB,CAAjB;AACD;;AAED,IAAA,KAAK,CAAC,UAAN,CAAiB,OAAjB,EAA0B,CAA1B;AACD,GAnCgG,CAqCjG;;;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,WAAO,MAAK;;;AACV,UAAI,QAAJ,EAAc;AACZ;AACA,SAAA,EAAA,GAAA,QAAQ,CAAC,aAAT,MAAsB,IAAtB,IAAsB,EAAA,KAAA,KAAA,CAAtB,GAAsB,KAAA,CAAtB,GAAsB,EAAA,CAAE,WAAF,CAAc,QAAd,CAAtB;AACD;AACF,KALD;AAMD,GAPD,EAOG,CAAC,QAAD,CAPH;AASA,SAAO,UAAP;AACD,CAhDM","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/useThemeStyleTag.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,EAAgB,WAAhB,QAAmC,2BAAnC;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAEA,SAAS,uBAAT,QAAwC,2BAAxC;AAEA;;;;AAIG;;AACH,OAAO,MAAM,gBAAgB,GAAI,OAAD,IAAmE;AACjG,QAAM;AAAE,IAAA,cAAF;AAAkB,IAAA;AAAlB,MAA4B,OAAlC;AAEA,QAAM,UAAU,GAAG,KAAK,CAAC,uBAAD,CAAxB;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,WAAW,CAAC,OAAD,CAAnC;;AAEA,MAAI,QAAQ,IAAI,eAAe,KAAK,OAApC,EAA6C;AAC3C,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAvB;;AAEA,QAAI,KAAK,CAAC,QAAN,CAAe,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,MAAA,KAAK,CAAC,UAAN,CAAiB,CAAjB;AACD;;AAED,IAAA,KAAK,CAAC,UAAN,CAAiB,OAAjB,EAA0B,CAA1B;AACD,GApCgG,CAsCjG;;;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,CAhDM","sourcesContent":["import { useId, usePrevious } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport type { FluentProviderState } from './FluentProvider.types';\nimport { fluentProviderClassName } 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 useThemeStyleTag = (options: Pick<FluentProviderState, 'theme' | 'targetDocument'>) => {\n const { targetDocument, theme } = options;\n\n const styleTagId = useId(fluentProviderClassName);\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 as CSSStyleSheet;\n\n if (sheet.cssRules.length > 0) {\n sheet.deleteRule(0);\n }\n\n sheet.insertRule(cssRule, 0);\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/"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["export * from './FluentProvider';\nexport { useFluent, useTheme } from '@fluentui/react-shared-contexts';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FluentProvider.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,mCAAA,CAAA,EAAA,OAAA","sourceRoot":""}
1
+ {"version":3,"sources":["FluentProvider.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,mCAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './components/FluentProvider/index';\n"],"sourceRoot":"../src/"}
@@ -16,10 +16,10 @@ const useFluentProviderStyles_1 = /*#__PURE__*/require("./useFluentProviderStyle
16
16
  const useFluentProviderContextValues_1 = /*#__PURE__*/require("./useFluentProviderContextValues");
17
17
 
18
18
  exports.FluentProvider = /*#__PURE__*/React.forwardRef((props, ref) => {
19
- const state = useFluentProvider_1.useFluentProvider(props, ref);
20
- useFluentProviderStyles_1.useFluentProviderStyles(state);
21
- const contextValues = useFluentProviderContextValues_1.useFluentProviderContextValues(state);
22
- return renderFluentProvider_1.renderFluentProvider(state, contextValues);
19
+ const state = useFluentProvider_1.useFluentProvider_unstable(props, ref);
20
+ useFluentProviderStyles_1.useFluentProviderStyles_unstable(state);
21
+ const contextValues = useFluentProviderContextValues_1.useFluentProviderContextValues_unstable(state);
22
+ return renderFluentProvider_1.renderFluentProvider_unstable(state, contextValues);
23
23
  });
24
24
  exports.FluentProvider.displayName = 'FluentProvider';
25
25
  //# sourceMappingURL=FluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/FluentProvider.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,sBAAA,gBAAA,OAAA,CAAA,wBAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;;AACA,MAAA,yBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,gCAAA,gBAAA,OAAA,CAAA,kCAAA,CAAA;;AAGa,OAAA,CAAA,cAAA,gBAAiB,KAAK,CAAC,UAAN,CAAmD,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC9F,QAAM,KAAK,GAAG,mBAAA,CAAA,iBAAA,CAAkB,KAAlB,EAAyB,GAAzB,CAAd;AACA,EAAA,yBAAA,CAAA,uBAAA,CAAwB,KAAxB;AAEA,QAAM,aAAa,GAAG,gCAAA,CAAA,8BAAA,CAA+B,KAA/B,CAAtB;AAEA,SAAO,sBAAA,CAAA,oBAAA,CAAqB,KAArB,EAA4B,aAA5B,CAAP;AACD,CAP6B,CAAjB;AASb,OAAA,CAAA,cAAA,CAAe,WAAf,GAA6B,gBAA7B","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/FluentProvider.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,sBAAA,gBAAA,OAAA,CAAA,wBAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;;AACA,MAAA,yBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,gCAAA,gBAAA,OAAA,CAAA,kCAAA,CAAA;;AAGa,OAAA,CAAA,cAAA,gBAAiB,KAAK,CAAC,UAAN,CAAmD,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC9F,QAAM,KAAK,GAAG,mBAAA,CAAA,0BAAA,CAA2B,KAA3B,EAAkC,GAAlC,CAAd;AACA,EAAA,yBAAA,CAAA,gCAAA,CAAiC,KAAjC;AAEA,QAAM,aAAa,GAAG,gCAAA,CAAA,uCAAA,CAAwC,KAAxC,CAAtB;AAEA,SAAO,sBAAA,CAAA,6BAAA,CAA8B,KAA9B,EAAqC,aAArC,CAAP;AACD,CAP6B,CAAjB;AASb,OAAA,CAAA,cAAA,CAAe,WAAf,GAA6B,gBAA7B","sourcesContent":["import * as React from 'react';\nimport { renderFluentProvider_unstable } from './renderFluentProvider';\nimport { useFluentProvider_unstable } from './useFluentProvider';\nimport { useFluentProviderStyles_unstable } from './useFluentProviderStyles';\nimport { useFluentProviderContextValues_unstable } from './useFluentProviderContextValues';\nimport type { FluentProviderProps } from './FluentProvider.types';\n\nexport const FluentProvider = React.forwardRef<HTMLElement, FluentProviderProps>((props, ref) => {\n const state = useFluentProvider_unstable(props, ref);\n useFluentProviderStyles_unstable(state);\n\n const contextValues = useFluentProviderContextValues_unstable(state);\n\n return renderFluentProvider_unstable(state, contextValues);\n});\n\nFluentProvider.displayName = 'FluentProvider';\n"],"sourceRoot":"../src/"}
@@ -1,10 +1,10 @@
1
- import type { ComponentProps, ComponentState, IntrinsicShorthandProps } from '@fluentui/react-utilities';
1
+ import type { ProviderContextValue, TooltipContextType, ThemeClassNameContextValue } from '@fluentui/react-shared-contexts';
2
2
  import type { PartialTheme, Theme } from '@fluentui/react-theme';
3
- import type { ProviderContextValue, TooltipContextType, ThemeContextValue, ThemeClassNameContextValue } from '@fluentui/react-shared-contexts';
3
+ import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
4
4
  export declare type FluentProviderSlots = {
5
- root: IntrinsicShorthandProps<'div'>;
5
+ root: Slot<'div'>;
6
6
  };
7
- export interface FluentProviderCommons {
7
+ interface FluentProviderCommons {
8
8
  /** Sets the direction of text & generated styles. */
9
9
  dir: 'ltr' | 'rtl';
10
10
  /** Provides the document, can be undefined during SSR render. */
@@ -14,12 +14,13 @@ export interface FluentProviderProps extends Omit<ComponentProps<FluentProviderS
14
14
  theme?: PartialTheme;
15
15
  }
16
16
  export interface FluentProviderState extends ComponentState<FluentProviderSlots>, FluentProviderCommons {
17
- theme: Theme;
17
+ theme: Theme | Partial<Theme> | undefined;
18
18
  themeClassName: string;
19
19
  }
20
- export interface FluentProviderContextValues {
20
+ export interface FluentProviderContextValues extends Pick<FluentProviderState, 'theme'> {
21
21
  provider: ProviderContextValue;
22
- theme: ThemeContextValue;
23
22
  themeClassName: ThemeClassNameContextValue;
23
+ textDirection: 'ltr' | 'rtl';
24
24
  tooltip: TooltipContextType;
25
25
  }
26
+ export {};
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,2BAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kCAAA,CAAA,EAAA,OAAA","sourceRoot":""}
1
+ {"version":3,"sources":["components/FluentProvider/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,2BAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kCAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './FluentProvider';\nexport * from './FluentProvider.types';\nexport * from './renderFluentProvider';\nexport * from './useFluentProvider';\nexport * from './useFluentProviderStyles';\nexport * from './useFluentProviderContextValues';\n"],"sourceRoot":"../src/"}
@@ -2,4 +2,4 @@ import type { FluentProviderContextValues, FluentProviderState } from './FluentP
2
2
  /**
3
3
  * Render the final JSX of FluentProvider
4
4
  */
5
- export declare const renderFluentProvider: (state: FluentProviderState, contextValues: FluentProviderContextValues) => JSX.Element;
5
+ export declare const renderFluentProvider_unstable: (state: FluentProviderState, contextValues: FluentProviderContextValues) => JSX.Element;
@@ -3,25 +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
8
  const React = /*#__PURE__*/require("react");
9
9
 
10
+ const react_1 = /*#__PURE__*/require("@griffel/react");
11
+
10
12
  const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
11
13
 
12
14
  const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
13
-
14
- const useFluentProvider_1 = /*#__PURE__*/require("./useFluentProvider");
15
15
  /**
16
16
  * Render the final JSX of FluentProvider
17
17
  */
18
18
 
19
19
 
20
- const renderFluentProvider = (state, contextValues) => {
20
+ const renderFluentProvider_unstable = (state, contextValues) => {
21
21
  const {
22
22
  slots,
23
23
  slotProps
24
- } = react_utilities_1.getSlots(state, useFluentProvider_1.fluentProviderShorthandProps);
24
+ } = react_utilities_1.getSlots(state);
25
25
  return React.createElement(react_shared_contexts_1.ProviderContext.Provider, {
26
26
  value: contextValues.provider
27
27
  }, React.createElement(react_shared_contexts_1.ThemeContext.Provider, {
@@ -30,8 +30,11 @@ const renderFluentProvider = (state, contextValues) => {
30
30
  value: contextValues.themeClassName
31
31
  }, React.createElement(react_shared_contexts_1.TooltipContext.Provider, {
32
32
  value: contextValues.tooltip
33
- }, React.createElement(slots.root, Object.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))))));
34
37
  };
35
38
 
36
- exports.renderFluentProvider = renderFluentProvider;
39
+ exports.renderFluentProvider_unstable = renderFluentProvider_unstable;
37
40
  //# sourceMappingURL=renderFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/renderFluentProvider.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,MAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;AAEA;;AAEG;;;AACI,MAAM,oBAAoB,GAAG,CAAC,KAAD,EAA6B,aAA7B,KAA2E;AAC7G,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAA8B,KAA9B,EAAqC,mBAAA,CAAA,4BAArC,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,KAAK,CAAC,IAAP,EAAW,MAAA,CAAA,MAAA,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/"}
@@ -1,13 +1,12 @@
1
1
  import * as React from 'react';
2
- import type { FluentProviderProps, FluentProviderSlots, FluentProviderState } from './FluentProvider.types';
3
- export declare const fluentProviderShorthandProps: (keyof FluentProviderSlots)[];
2
+ import type { FluentProviderProps, FluentProviderState } from './FluentProvider.types';
4
3
  /**
5
4
  * Create the state required to render FluentProvider.
6
5
  *
7
- * The returned state can be modified with hooks such as useFluentProviderStyles,
8
- * before being passed to renderFluentProvider.
6
+ * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,
7
+ * before being passed to renderFluentProvider_unstable.
9
8
  *
10
9
  * @param props - props from this instance of FluentProvider
11
10
  * @param ref - reference to root HTMLElement of FluentProvider
12
11
  */
13
- export declare const useFluentProvider: (props: FluentProviderProps, ref: React.Ref<HTMLElement>) => FluentProviderState;
12
+ export declare const useFluentProvider_unstable: (props: FluentProviderProps, ref: React.Ref<HTMLElement>) => FluentProviderState;
@@ -3,30 +3,29 @@
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
8
  const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
9
9
 
10
- const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
11
-
12
10
  const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
13
11
 
14
12
  const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
15
13
 
16
- const useThemeStyleTag_1 = /*#__PURE__*/require("./useThemeStyleTag");
14
+ const React = /*#__PURE__*/require("react");
17
15
 
18
- exports.fluentProviderShorthandProps = ['root'];
16
+ const useThemeStyleTag_1 = /*#__PURE__*/require("./useThemeStyleTag");
19
17
  /**
20
18
  * Create the state required to render FluentProvider.
21
19
  *
22
- * The returned state can be modified with hooks such as useFluentProviderStyles,
23
- * 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.
24
22
  *
25
23
  * @param props - props from this instance of FluentProvider
26
24
  * @param ref - reference to root HTMLElement of FluentProvider
27
25
  */
28
26
 
29
- const useFluentProvider = (props, ref) => {
27
+
28
+ const useFluentProvider_unstable = (props, ref) => {
30
29
  const parentContext = react_shared_contexts_1.useFluent();
31
30
  const parentTheme = react_shared_contexts_1.useTheme();
32
31
  /**
@@ -38,9 +37,20 @@ const useFluentProvider = (props, ref) => {
38
37
  const {
39
38
  dir = parentContext.dir,
40
39
  targetDocument = parentContext.targetDocument,
41
- theme = {}
40
+ theme
42
41
  } = props;
43
- const mergedTheme = react_theme_1.mergeThemes(parentTheme, theme);
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
+ }, []);
44
54
  return {
45
55
  dir,
46
56
  targetDocument,
@@ -59,5 +69,20 @@ const useFluentProvider = (props, ref) => {
59
69
  };
60
70
  };
61
71
 
62
- 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
+ }
63
88
  //# sourceMappingURL=useFluentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FluentProvider/useFluentProvider.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,eAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;;AACA,MAAA,uBAAA,gBAAA,OAAA,CAAA,iCAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,MAAA,kBAAA,gBAAA,OAAA,CAAA,oBAAA,CAAA;;AAGa,OAAA,CAAA,4BAAA,GAA8D,CAAC,MAAD,CAA9D;AAEb;;;;;;;;AAQG;;AACI,MAAM,iBAAiB,GAAG,CAAC,KAAD,EAA6B,GAA7B,KAAiF;AAChH,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,KAAK,GAAG;AAAlF,MAAyF,KAA/F;AACA,QAAM,WAAW,GAAG,aAAA,CAAA,WAAA,CAAY,WAAZ,EAAyB,KAAzB,CAApB;AAEA,SAAO;AACL,IAAA,GADK;AAEL,IAAA,cAFK;AAGL,IAAA,KAAK,EAAE,WAHF;AAIL,IAAA,cAAc,EAAE,kBAAA,CAAA,gBAAA,CAAiB;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA;AAAtB,KAAjB,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,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,kBAAA,gBAAA,OAAA,CAAA,oBAAA,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,kBAAA,CAAA,gBAAA,CAAiB;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA;AAAtB,KAAjB,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 { useThemeStyleTag } from './useThemeStyleTag';\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: useThemeStyleTag({ 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/"}
@@ -1,2 +1,2 @@
1
1
  import type { FluentProviderContextValues, FluentProviderState } from './FluentProvider.types';
2
- export declare function useFluentProviderContextValues(state: FluentProviderState): FluentProviderContextValues;
2
+ export declare function useFluentProviderContextValues_unstable(state: FluentProviderState): FluentProviderContextValues;
@@ -3,13 +3,13 @@
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
8
  const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
9
 
10
10
  const React = /*#__PURE__*/require("react");
11
11
 
12
- function useFluentProviderContextValues(state) {
12
+ function useFluentProviderContextValues_unstable(state) {
13
13
  const {
14
14
  root,
15
15
  dir,
@@ -24,11 +24,12 @@ function useFluentProviderContextValues(state) {
24
24
  const tooltip = react_utilities_1.useConst({});
25
25
  return {
26
26
  provider,
27
+ textDirection: dir,
27
28
  tooltip,
28
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,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGA,SAAgB,8BAAhB,CAA+C,KAA/C,EAAyE;AACvE,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,CAHuE,CAIvE;;AACA,QAAM,OAAO,GAAG,iBAAA,CAAA,QAAA,CAAS,EAAT,CAAhB;AAEA,SAAO;AACL,IAAA,QADK;AAEL,IAAA,OAFK;AAGL,IAAA,KAHK;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/"}
@@ -1,4 +1,4 @@
1
1
  import type { FluentProviderState } from './FluentProvider.types';
2
2
  export declare const fluentProviderClassName = "fui-FluentProvider";
3
3
  /** Applies style classnames to slots */
4
- export declare const useFluentProviderStyles: (state: FluentProviderState) => FluentProviderState;
4
+ export declare const useFluentProviderStyles_unstable: (state: FluentProviderState) => FluentProviderState;
@@ -3,13 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useFluentProviderStyles = exports.fluentProviderClassName = void 0;
6
+ exports.useFluentProviderStyles_unstable = exports.fluentProviderClassName = void 0;
7
7
 
8
- const react_make_styles_1 = /*#__PURE__*/require("@fluentui/react-make-styles");
8
+ const react_1 = /*#__PURE__*/require("@griffel/react");
9
+
10
+ const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
9
11
 
10
12
  exports.fluentProviderClassName = 'fui-FluentProvider';
11
13
 
12
- const useStyles = /*#__PURE__*/react_make_styles_1.__styles({
14
+ const useStyles = /*#__PURE__*/react_1.__styles({
13
15
  "root": {
14
16
  "sj55zd": "f19n0e5",
15
17
  "De3pzq": "fxugw4r",
@@ -23,11 +25,11 @@ const useStyles = /*#__PURE__*/react_make_styles_1.__styles({
23
25
  /** Applies style classnames to slots */
24
26
 
25
27
 
26
- const useFluentProviderStyles = state => {
28
+ const useFluentProviderStyles_unstable = state => {
27
29
  const styles = useStyles();
28
- state.root.className = react_make_styles_1.mergeClasses(exports.fluentProviderClassName, state.themeClassName, styles.root, state.root.className);
30
+ state.root.className = react_1.mergeClasses(exports.fluentProviderClassName, state.themeClassName, styles.root, state.root.className);
29
31
  return state;
30
32
  };
31
33
 
32
- exports.useFluentProviderStyles = useFluentProviderStyles;
34
+ exports.useFluentProviderStyles_unstable = useFluentProviderStyles_unstable;
33
35
  //# sourceMappingURL=useFluentProviderStyles.js.map