@fluentui/react-provider 9.0.0-alpha.9 → 9.0.0-nightly.25435def33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +2286 -1
- package/CHANGELOG.md +871 -2
- package/dist/react-provider.d.ts +45 -29
- package/lib/FluentProvider.d.ts +1 -28
- package/lib/FluentProvider.js +1 -48
- package/lib/FluentProvider.js.map +1 -1
- package/lib/common/isConformant.d.ts +4 -0
- package/lib/common/isConformant.js +12 -0
- package/lib/common/isConformant.js.map +1 -0
- package/lib/components/FluentProvider/FluentProvider.d.ts +3 -0
- package/lib/components/FluentProvider/FluentProvider.js +13 -0
- package/lib/components/FluentProvider/FluentProvider.js.map +1 -0
- package/lib/components/FluentProvider/FluentProvider.types.d.ts +25 -0
- package/lib/components/FluentProvider/FluentProvider.types.js +2 -0
- package/lib/components/FluentProvider/FluentProvider.types.js.map +1 -0
- package/lib/components/FluentProvider/index.d.ts +5 -0
- package/lib/components/FluentProvider/index.js +6 -0
- package/lib/components/FluentProvider/index.js.map +1 -0
- package/lib/components/FluentProvider/renderFluentProvider.d.ts +5 -0
- package/lib/components/FluentProvider/renderFluentProvider.js +25 -0
- package/lib/components/FluentProvider/renderFluentProvider.js.map +1 -0
- package/lib/components/FluentProvider/useFluentProvider.d.ts +13 -0
- package/lib/components/FluentProvider/useFluentProvider.js +51 -0
- package/lib/components/FluentProvider/useFluentProvider.js.map +1 -0
- package/lib/components/FluentProvider/useFluentProviderContextValues.d.ts +2 -0
- package/lib/components/FluentProvider/useFluentProviderContextValues.js +23 -0
- package/lib/components/FluentProvider/useFluentProviderContextValues.js.map +1 -0
- package/lib/components/FluentProvider/useFluentProviderStyles.d.ts +3 -0
- package/lib/components/FluentProvider/useFluentProviderStyles.js +22 -0
- package/lib/components/FluentProvider/useFluentProviderStyles.js.map +1 -0
- package/lib/components/FluentProvider/useThemeStyleTag.d.ts +7 -0
- package/lib/components/FluentProvider/useThemeStyleTag.js +58 -0
- package/lib/components/FluentProvider/useThemeStyleTag.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/lib-commonjs/FluentProvider.d.ts +1 -28
- package/lib-commonjs/FluentProvider.js +7 -51
- package/lib-commonjs/FluentProvider.js.map +1 -1
- package/lib-commonjs/common/isConformant.d.ts +4 -0
- package/lib-commonjs/common/isConformant.js +23 -0
- package/lib-commonjs/common/isConformant.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.d.ts +3 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.js +25 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.types.d.ts +25 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.types.js +6 -0
- package/lib-commonjs/components/FluentProvider/FluentProvider.types.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/index.d.ts +5 -0
- package/lib-commonjs/components/FluentProvider/index.js +18 -0
- package/lib-commonjs/components/FluentProvider/index.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/renderFluentProvider.d.ts +5 -0
- package/lib-commonjs/components/FluentProvider/renderFluentProvider.js +39 -0
- package/lib-commonjs/components/FluentProvider/renderFluentProvider.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/useFluentProvider.d.ts +13 -0
- package/lib-commonjs/components/FluentProvider/useFluentProvider.js +66 -0
- package/lib-commonjs/components/FluentProvider/useFluentProvider.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.d.ts +2 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js +34 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderContextValues.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.d.ts +3 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js +31 -0
- package/lib-commonjs/components/FluentProvider/useFluentProviderStyles.js.map +1 -0
- package/lib-commonjs/components/FluentProvider/useThemeStyleTag.d.ts +7 -0
- package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js +70 -0
- package/lib-commonjs/components/FluentProvider/useThemeStyleTag.js.map +1 -0
- package/lib-commonjs/index.d.ts +1 -1
- package/lib-commonjs/index.js +23 -3
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +27 -16
- package/config/api-extractor.json +0 -3
- package/etc/react-provider.api.md +0 -63
- package/just.config.ts +0 -3
- package/lib/context.d.ts +0 -12
- package/lib/context.js +0 -10
- package/lib/context.js.map +0 -1
- package/lib-amd/FluentProvider.d.ts +0 -28
- package/lib-amd/FluentProvider.js +0 -50
- package/lib-amd/FluentProvider.js.map +0 -1
- package/lib-amd/context.d.ts +0 -12
- package/lib-amd/context.js +0 -14
- package/lib-amd/context.js.map +0 -1
- package/lib-amd/index.d.ts +0 -2
- package/lib-amd/index.js +0 -7
- package/lib-amd/index.js.map +0 -1
- package/lib-commonjs/context.d.ts +0 -12
- package/lib-commonjs/context.js +0 -13
- package/lib-commonjs/context.js.map +0 -1
package/dist/react-provider.d.ts
CHANGED
@@ -1,51 +1,67 @@
|
|
1
|
-
import {
|
2
|
-
import
|
3
|
-
import {
|
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';
|
4
13
|
|
5
|
-
|
6
|
-
* A React provider that allows to define theme, text direction and context for rendering for children components.
|
7
|
-
*/
|
8
|
-
export declare const FluentProvider: React.FunctionComponent<ProviderProps>;
|
14
|
+
export declare const FluentProvider: React_2.ForwardRefExoticComponent<FluentProviderProps & React_2.RefAttributes<HTMLElement>>;
|
9
15
|
|
10
|
-
export declare interface
|
16
|
+
export declare interface FluentProviderCommons {
|
11
17
|
/** Sets the direction of text & generated styles. */
|
12
18
|
dir: 'ltr' | 'rtl';
|
13
19
|
/** Provides the document, can be undefined during SSR render. */
|
14
|
-
|
20
|
+
targetDocument: Document | undefined;
|
15
21
|
}
|
16
22
|
|
17
|
-
export declare interface
|
23
|
+
export declare interface FluentProviderContextValues {
|
24
|
+
provider: ProviderContextValue;
|
25
|
+
theme: ThemeContextValue;
|
26
|
+
themeClassName: ThemeClassNameContextValue;
|
27
|
+
tooltip: TooltipContextType;
|
18
28
|
}
|
19
29
|
|
20
|
-
export declare
|
21
|
-
|
22
|
-
export declare interface ProviderProps {
|
23
|
-
/** Sets the direction of text & generated styles. */
|
24
|
-
dir?: 'ltr' | 'rtl';
|
25
|
-
/** Provides the document, can be undefined during SSR render. */
|
26
|
-
document?: Document | undefined;
|
30
|
+
export declare interface FluentProviderProps extends Omit<ComponentProps<FluentProviderSlots>, 'dir'>, Partial<FluentProviderCommons> {
|
27
31
|
theme?: PartialTheme;
|
28
32
|
}
|
29
33
|
|
30
|
-
export declare
|
31
|
-
|
32
|
-
|
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 {
|
33
41
|
theme: Theme;
|
42
|
+
themeClassName: string;
|
34
43
|
}
|
35
44
|
|
36
|
-
|
45
|
+
/**
|
46
|
+
* Render the final JSX of FluentProvider
|
47
|
+
*/
|
48
|
+
export declare const renderFluentProvider: (state: FluentProviderState, contextValues: FluentProviderContextValues) => JSX.Element;
|
37
49
|
|
38
|
-
export
|
50
|
+
export { useFluent }
|
39
51
|
|
40
52
|
/**
|
41
|
-
*
|
42
|
-
*
|
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
|
43
60
|
*/
|
44
|
-
export declare
|
45
|
-
|
46
|
-
|
47
|
-
};
|
61
|
+
export declare const useFluentProvider: (props: FluentProviderProps, ref: React_2.Ref<HTMLElement>) => FluentProviderState;
|
62
|
+
|
63
|
+
export declare function useFluentProviderContextValues(state: FluentProviderState): FluentProviderContextValues;
|
48
64
|
|
49
|
-
export
|
65
|
+
export { useTheme }
|
50
66
|
|
51
67
|
export { }
|
package/lib/FluentProvider.d.ts
CHANGED
@@ -1,28 +1 @@
|
|
1
|
-
|
2
|
-
import * as React from 'react';
|
3
|
-
export interface ProviderProps {
|
4
|
-
/** Sets the direction of text & generated styles. */
|
5
|
-
dir?: 'ltr' | 'rtl';
|
6
|
-
/** Provides the document, can be undefined during SSR render. */
|
7
|
-
document?: Document | undefined;
|
8
|
-
theme?: PartialTheme;
|
9
|
-
}
|
10
|
-
export interface ProviderState {
|
11
|
-
dir: 'ltr' | 'rtl';
|
12
|
-
document: Document | undefined;
|
13
|
-
theme: Theme;
|
14
|
-
}
|
15
|
-
export declare function useFluentProviderState(draftState: ProviderState): void;
|
16
|
-
export declare function renderFluentProvider(state: ProviderState): JSX.Element;
|
17
|
-
/**
|
18
|
-
* Returns the ThemeProvider render function and calculated state, given user input, ref, and
|
19
|
-
* a set of default prop values.
|
20
|
-
*/
|
21
|
-
export declare function useFluentProvider(props: ProviderProps, ref: React.Ref<HTMLElement>): {
|
22
|
-
state: ProviderState;
|
23
|
-
render: typeof renderFluentProvider;
|
24
|
-
};
|
25
|
-
/**
|
26
|
-
* A React provider that allows to define theme, text direction and context for rendering for children components.
|
27
|
-
*/
|
28
|
-
export declare const FluentProvider: React.FunctionComponent<ProviderProps>;
|
1
|
+
export * from './components/FluentProvider/index';
|
package/lib/FluentProvider.js
CHANGED
@@ -1,49 +1,2 @@
|
|
1
|
-
|
2
|
-
import { internal__ThemeContext, useThemeProviderState } from '@fluentui/react-theme-provider';
|
3
|
-
import { FocusManagementProvider } from '@fluentui/react-focus-management';
|
4
|
-
import { getSlots, makeMergeProps, useMergedRefs } from '@fluentui/react-utilities';
|
5
|
-
import * as React from 'react';
|
6
|
-
import { internal__FluentProviderContext, useFluent } from './context';
|
7
|
-
var mergeProps = makeMergeProps();
|
8
|
-
export function useFluentProviderState(draftState) {
|
9
|
-
var parentContext = useFluent();
|
10
|
-
useThemeProviderState(draftState);
|
11
|
-
// TODO: add merge functions
|
12
|
-
draftState.document = draftState.document || parentContext.document;
|
13
|
-
draftState.dir = draftState.dir || parentContext.dir;
|
14
|
-
}
|
15
|
-
export function renderFluentProvider(state) {
|
16
|
-
var _a = getSlots(state), slots = _a.slots, slotProps = _a.slotProps;
|
17
|
-
var dir = state.dir, document = state.document, theme = state.theme;
|
18
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
19
|
-
var value = React.useMemo(function () { return ({ dir: dir, document: document }); }, [dir, document]);
|
20
|
-
return (React.createElement(internal__FluentProviderContext.Provider, { value: value },
|
21
|
-
React.createElement(internal__ThemeContext.Provider, { value: theme },
|
22
|
-
React.createElement(FocusManagementProvider, { document: document, dir: dir },
|
23
|
-
React.createElement(slots.root, __assign({}, slotProps.root))))));
|
24
|
-
}
|
25
|
-
/**
|
26
|
-
* Returns the ThemeProvider render function and calculated state, given user input, ref, and
|
27
|
-
* a set of default prop values.
|
28
|
-
*/
|
29
|
-
export function useFluentProvider(props, ref) {
|
30
|
-
var rootRef = useMergedRefs(ref, React.useRef(null));
|
31
|
-
var state = mergeProps({
|
32
|
-
ref: rootRef,
|
33
|
-
as: 'div',
|
34
|
-
}, {}, props);
|
35
|
-
useFluentProviderState(state);
|
36
|
-
return {
|
37
|
-
state: state,
|
38
|
-
render: renderFluentProvider,
|
39
|
-
};
|
40
|
-
}
|
41
|
-
/**
|
42
|
-
* A React provider that allows to define theme, text direction and context for rendering for children components.
|
43
|
-
*/
|
44
|
-
export var FluentProvider = React.forwardRef(function (props, ref) {
|
45
|
-
var _a = useFluentProvider(props, ref), render = _a.render, state = _a.state;
|
46
|
-
return render(state);
|
47
|
-
});
|
48
|
-
FluentProvider.displayName = 'Provider';
|
1
|
+
export * from './components/FluentProvider/index';
|
49
2
|
//# sourceMappingURL=FluentProvider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FluentProvider.js","sourceRoot":"
|
1
|
+
{"version":3,"file":"FluentProvider.js","sourceRoot":"","sources":["../src/FluentProvider.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { isConformant as baseIsConformant } from '@fluentui/react-conformance';
|
2
|
+
import makeStylesTests from '@fluentui/react-conformance-make-styles';
|
3
|
+
export function isConformant(testInfo) {
|
4
|
+
var defaultOptions = {
|
5
|
+
disabledTests: ['has-docblock'],
|
6
|
+
asPropHandlesRef: true,
|
7
|
+
componentPath: module.parent.filename.replace('.test', ''),
|
8
|
+
extraTests: makeStylesTests
|
9
|
+
};
|
10
|
+
baseIsConformant(defaultOptions, testInfo);
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=isConformant.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/common/isConformant.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,IAAI,gBAAzB,QAAiD,6BAAjD;AAEA,OAAO,eAAP,MAA4B,yCAA5B;AAEA,OAAM,SAAU,YAAV,CACJ,QADI,EACqF;AAEzF,MAAM,cAAc,GAAyC;AAC3D,IAAA,aAAa,EAAE,CAAC,cAAD,CAD4C;AAE3D,IAAA,gBAAgB,EAAE,IAFyC;AAG3D,IAAA,aAAa,EAAE,MAAO,CAAC,MAAR,CAAgB,QAAhB,CAAyB,OAAzB,CAAiC,OAAjC,EAA0C,EAA1C,CAH4C;AAI3D,IAAA,UAAU,EAAE;AAJ+C,GAA7D;AAOA,EAAA,gBAAgB,CAAC,cAAD,EAAiB,QAAjB,CAAhB;AACD","sourceRoot":""}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { renderFluentProvider } from './renderFluentProvider';
|
3
|
+
import { useFluentProvider } from './useFluentProvider';
|
4
|
+
import { useFluentProviderStyles } from './useFluentProviderStyles';
|
5
|
+
import { useFluentProviderContextValues } from './useFluentProviderContextValues';
|
6
|
+
export var FluentProvider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
7
|
+
var state = useFluentProvider(props, ref);
|
8
|
+
useFluentProviderStyles(state);
|
9
|
+
var contextValues = useFluentProviderContextValues(state);
|
10
|
+
return renderFluentProvider(state, contextValues);
|
11
|
+
});
|
12
|
+
FluentProvider.displayName = 'FluentProvider';
|
13
|
+
//# sourceMappingURL=FluentProvider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FluentProvider/FluentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,oBAAT,QAAqC,wBAArC;AACA,SAAS,iBAAT,QAAkC,qBAAlC;AACA,SAAS,uBAAT,QAAwC,2BAAxC;AACA,SAAS,8BAAT,QAA+C,kCAA/C;AAGA,OAAO,IAAM,cAAc,gBAAG,KAAK,CAAC,UAAN,CAAmD,UAAC,KAAD,EAAQ,GAAR,EAAW;AAC1F,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAD,EAAQ,GAAR,CAA/B;AACA,EAAA,uBAAuB,CAAC,KAAD,CAAvB;AAEA,MAAM,aAAa,GAAG,8BAA8B,CAAC,KAAD,CAApD;AAEA,SAAO,oBAAoB,CAAC,KAAD,EAAQ,aAAR,CAA3B;AACD,CAP6B,CAAvB;AASP,cAAc,CAAC,WAAf,GAA6B,gBAA7B","sourceRoot":""}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { ComponentProps, ComponentState, IntrinsicShorthandProps } from '@fluentui/react-utilities';
|
2
|
+
import type { PartialTheme, Theme } from '@fluentui/react-theme';
|
3
|
+
import type { ProviderContextValue, TooltipContextType, ThemeContextValue, ThemeClassNameContextValue } from '@fluentui/react-shared-contexts';
|
4
|
+
export declare type FluentProviderSlots = {
|
5
|
+
root: IntrinsicShorthandProps<'div'>;
|
6
|
+
};
|
7
|
+
export interface FluentProviderCommons {
|
8
|
+
/** Sets the direction of text & generated styles. */
|
9
|
+
dir: 'ltr' | 'rtl';
|
10
|
+
/** Provides the document, can be undefined during SSR render. */
|
11
|
+
targetDocument: Document | undefined;
|
12
|
+
}
|
13
|
+
export interface FluentProviderProps extends Omit<ComponentProps<FluentProviderSlots>, 'dir'>, Partial<FluentProviderCommons> {
|
14
|
+
theme?: PartialTheme;
|
15
|
+
}
|
16
|
+
export interface FluentProviderState extends ComponentState<FluentProviderSlots>, FluentProviderCommons {
|
17
|
+
theme: Theme;
|
18
|
+
themeClassName: string;
|
19
|
+
}
|
20
|
+
export interface FluentProviderContextValues {
|
21
|
+
provider: ProviderContextValue;
|
22
|
+
theme: ThemeContextValue;
|
23
|
+
themeClassName: ThemeClassNameContextValue;
|
24
|
+
tooltip: TooltipContextType;
|
25
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FluentProvider.types.js","sourceRoot":"","sources":["../../../src/components/FluentProvider/FluentProvider.types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FluentProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import type { FluentProviderContextValues, FluentProviderState } from './FluentProvider.types';
|
2
|
+
/**
|
3
|
+
* Render the final JSX of FluentProvider
|
4
|
+
*/
|
5
|
+
export declare const renderFluentProvider: (state: FluentProviderState, contextValues: FluentProviderContextValues) => JSX.Element;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { __assign } from "tslib";
|
2
|
+
import * as React from 'react';
|
3
|
+
import { ProviderContext, TooltipContext, ThemeContext, ThemeClassNameContext } from '@fluentui/react-shared-contexts';
|
4
|
+
import { getSlots } from '@fluentui/react-utilities';
|
5
|
+
import { fluentProviderShorthandProps } from './useFluentProvider';
|
6
|
+
/**
|
7
|
+
* Render the final JSX of FluentProvider
|
8
|
+
*/
|
9
|
+
|
10
|
+
export var renderFluentProvider = function (state, contextValues) {
|
11
|
+
var _a = getSlots(state, fluentProviderShorthandProps),
|
12
|
+
slots = _a.slots,
|
13
|
+
slotProps = _a.slotProps;
|
14
|
+
|
15
|
+
return /*#__PURE__*/React.createElement(ProviderContext.Provider, {
|
16
|
+
value: contextValues.provider
|
17
|
+
}, /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
18
|
+
value: contextValues.theme
|
19
|
+
}, /*#__PURE__*/React.createElement(ThemeClassNameContext.Provider, {
|
20
|
+
value: contextValues.themeClassName
|
21
|
+
}, /*#__PURE__*/React.createElement(TooltipContext.Provider, {
|
22
|
+
value: contextValues.tooltip
|
23
|
+
}, /*#__PURE__*/React.createElement(slots.root, __assign({}, slotProps.root), state.root.children)))));
|
24
|
+
};
|
25
|
+
//# sourceMappingURL=renderFluentProvider.js.map
|
@@ -0,0 +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,IAAM,oBAAoB,GAAG,UAAC,KAAD,EAA6B,aAA7B,EAAuE;AACnG,MAAA,EAAA,GAAuB,QAAQ,CAAsB,KAAtB,EAA6B,4BAA7B,CAA/B;AAAA,MAAE,KAAK,GAAA,EAAA,CAAA,KAAP;AAAA,MAAS,SAAS,GAAA,EAAA,CAAA,SAAlB;;AAEN,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,QAAA,CAAA,EAAA,EAAK,SAAS,CAAC,IAAf,CAAX,EAAiC,KAAK,CAAC,IAAN,CAAW,QAA5C,CADF,CADF,CADF,CADF,CADF;AAWD,CAdM","sourceRoot":""}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import type { FluentProviderProps, FluentProviderSlots, FluentProviderState } from './FluentProvider.types';
|
3
|
+
export declare const fluentProviderShorthandProps: (keyof FluentProviderSlots)[];
|
4
|
+
/**
|
5
|
+
* Create the state required to render FluentProvider.
|
6
|
+
*
|
7
|
+
* The returned state can be modified with hooks such as useFluentProviderStyles,
|
8
|
+
* before being passed to renderFluentProvider.
|
9
|
+
*
|
10
|
+
* @param props - props from this instance of FluentProvider
|
11
|
+
* @param ref - reference to root HTMLElement of FluentProvider
|
12
|
+
*/
|
13
|
+
export declare const useFluentProvider: (props: FluentProviderProps, ref: React.Ref<HTMLElement>) => FluentProviderState;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { __assign } from "tslib";
|
2
|
+
import { useKeyboardNavAttribute } from '@fluentui/react-tabster';
|
3
|
+
import { mergeThemes } from '@fluentui/react-theme';
|
4
|
+
import { useFluent, useTheme } from '@fluentui/react-shared-contexts';
|
5
|
+
import { getNativeElementProps, useMergedRefs } from '@fluentui/react-utilities';
|
6
|
+
import { useThemeStyleTag } from './useThemeStyleTag';
|
7
|
+
export var fluentProviderShorthandProps = ['root'];
|
8
|
+
/**
|
9
|
+
* Create the state required to render FluentProvider.
|
10
|
+
*
|
11
|
+
* The returned state can be modified with hooks such as useFluentProviderStyles,
|
12
|
+
* before being passed to renderFluentProvider.
|
13
|
+
*
|
14
|
+
* @param props - props from this instance of FluentProvider
|
15
|
+
* @param ref - reference to root HTMLElement of FluentProvider
|
16
|
+
*/
|
17
|
+
|
18
|
+
export var useFluentProvider = function (props, ref) {
|
19
|
+
var parentContext = useFluent();
|
20
|
+
var parentTheme = useTheme();
|
21
|
+
/**
|
22
|
+
* TODO: add merge functions to "dir" merge,
|
23
|
+
* nesting providers with the same "dir" should not add additional attributes to DOM
|
24
|
+
* see https://github.com/microsoft/fluentui/blob/0dc74a19f3aa5a058224c20505016fbdb84db172/packages/fluentui/react-northstar/src/utils/mergeProviderContexts.ts#L89-L93
|
25
|
+
*/
|
26
|
+
|
27
|
+
var _a = props.dir,
|
28
|
+
dir = _a === void 0 ? parentContext.dir : _a,
|
29
|
+
_b = props.targetDocument,
|
30
|
+
targetDocument = _b === void 0 ? parentContext.targetDocument : _b,
|
31
|
+
_c = props.theme,
|
32
|
+
theme = _c === void 0 ? {} : _c;
|
33
|
+
var mergedTheme = mergeThemes(parentTheme, theme);
|
34
|
+
return {
|
35
|
+
dir: dir,
|
36
|
+
targetDocument: targetDocument,
|
37
|
+
theme: mergedTheme,
|
38
|
+
themeClassName: useThemeStyleTag({
|
39
|
+
theme: mergedTheme,
|
40
|
+
targetDocument: targetDocument
|
41
|
+
}),
|
42
|
+
components: {
|
43
|
+
root: 'div'
|
44
|
+
},
|
45
|
+
root: getNativeElementProps('div', __assign(__assign({}, props), {
|
46
|
+
dir: dir,
|
47
|
+
ref: useMergedRefs(ref, useKeyboardNavAttribute())
|
48
|
+
}))
|
49
|
+
};
|
50
|
+
};
|
51
|
+
//# sourceMappingURL=useFluentProvider.js.map
|
@@ -0,0 +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,IAAM,4BAA4B,GAAkC,CAAC,MAAD,CAApE;AAEP;;;;;;;;AAQG;;AACH,OAAO,IAAM,iBAAiB,GAAG,UAAC,KAAD,EAA6B,GAA7B,EAAwD;AACvF,MAAM,aAAa,GAAG,SAAS,EAA/B;AACA,MAAM,WAAW,GAAG,QAAQ,EAA5B;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,WAAW,CAAC,WAAD,EAAc,KAAd,CAA/B;AAEA,SAAO;AACL,IAAA,GAAG,EAAA,GADE;AAEL,IAAA,cAAc,EAAA,cAFT;AAGL,IAAA,KAAK,EAAE,WAHF;AAIL,IAAA,cAAc,EAAE,gBAAgB,CAAC;AAAE,MAAA,KAAK,EAAE,WAAT;AAAsB,MAAA,cAAc,EAAA;AAApC,KAAD,CAJ3B;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AAUL,IAAA,IAAI,EAAE,qBAAqB,CAAC,KAAD,EAAM,QAAA,CAAA,QAAA,CAAA,EAAA,EAC5B,KAD4B,CAAA,EACvB;AACR,MAAA,GAAG,EAAA,GADK;AAER,MAAA,GAAG,EAAE,aAAa,CAAC,GAAD,EAAM,uBAAuB,EAA7B;AAFV,KADuB,CAAN;AAVtB,GAAP;AAgBD,CA5BM","sourceRoot":""}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { useConst } from '@fluentui/react-utilities';
|
2
|
+
import * as React from 'react';
|
3
|
+
export function useFluentProviderContextValues(state) {
|
4
|
+
var root = state.root,
|
5
|
+
dir = state.dir,
|
6
|
+
targetDocument = state.targetDocument,
|
7
|
+
theme = state.theme;
|
8
|
+
var provider = React.useMemo(function () {
|
9
|
+
return {
|
10
|
+
dir: dir,
|
11
|
+
targetDocument: targetDocument
|
12
|
+
};
|
13
|
+
}, [dir, targetDocument]); // "Tooltip" component mutates an object in this context, instance should be stable
|
14
|
+
|
15
|
+
var tooltip = useConst({});
|
16
|
+
return {
|
17
|
+
provider: provider,
|
18
|
+
tooltip: tooltip,
|
19
|
+
theme: theme,
|
20
|
+
themeClassName: root.className
|
21
|
+
};
|
22
|
+
}
|
23
|
+
//# sourceMappingURL=useFluentProviderContextValues.js.map
|
@@ -0,0 +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;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,QAAQ,CAAC,EAAD,CAAxB;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","sourceRoot":""}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { __styles, mergeClasses } from '@fluentui/react-make-styles';
|
2
|
+
|
3
|
+
var useStyles = /*#__PURE__*/__styles({
|
4
|
+
"root": {
|
5
|
+
"sj55zd": "f19n0e5",
|
6
|
+
"De3pzq": "fxugw4r",
|
7
|
+
"Bahqtrf": "fk6fouc",
|
8
|
+
"Be2twd7": "fkhj508",
|
9
|
+
"Bhrd7zp": "figsok6"
|
10
|
+
}
|
11
|
+
}, {
|
12
|
+
"d": [".f19n0e5{color:var(--colorNeutralForeground1);}", ".fxugw4r{background-color:var(--colorNeutralBackground1);}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}"]
|
13
|
+
});
|
14
|
+
/** Applies style classnames to slots */
|
15
|
+
|
16
|
+
|
17
|
+
export var useFluentProviderStyles = function (state) {
|
18
|
+
var styles = useStyles();
|
19
|
+
state.root.className = mergeClasses(state.themeClassName, styles.root, state.root.className);
|
20
|
+
return state;
|
21
|
+
};
|
22
|
+
//# sourceMappingURL=useFluentProviderStyles.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FluentProvider/useFluentProviderStyles.ts"],"names":[],"mappings":"AAAA,mBAAqB,YAArB,QAAyC,6BAAzC;;AAGA,IAAM,SAAS,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;AAUA;;;AACA,OAAO,IAAM,uBAAuB,GAAG,UAAC,KAAD,EAA2B;AAChE,MAAM,MAAM,GAAG,SAAS,EAAxB;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,KAAK,CAAC,cAAP,EAAuB,MAAM,CAAC,IAA9B,EAAoC,KAAK,CAAC,IAAN,CAAW,SAA/C,CAAnC;AAEA,SAAO,KAAP;AACD,CANM","sourceRoot":""}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { FluentProviderState } from './FluentProvider.types';
|
2
|
+
/**
|
3
|
+
* Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class
|
4
|
+
*
|
5
|
+
* @returns CSS class to apply the rule
|
6
|
+
*/
|
7
|
+
export declare const useThemeStyleTag: (options: Pick<FluentProviderState, 'theme' | 'targetDocument'>) => string;
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import { useId, usePrevious } from '@fluentui/react-utilities';
|
2
|
+
import { themeToCSSVariables } from '@fluentui/react-theme';
|
3
|
+
import * as React from 'react';
|
4
|
+
/**
|
5
|
+
* Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class
|
6
|
+
*
|
7
|
+
* @returns CSS class to apply the rule
|
8
|
+
*/
|
9
|
+
|
10
|
+
export var useThemeStyleTag = function (options) {
|
11
|
+
var targetDocument = options.targetDocument,
|
12
|
+
theme = options.theme;
|
13
|
+
var styleTagId = useId('fluent-provider');
|
14
|
+
var styleTag = React.useMemo(function () {
|
15
|
+
if (!targetDocument) {
|
16
|
+
return null;
|
17
|
+
}
|
18
|
+
|
19
|
+
var tag = targetDocument.createElement('style');
|
20
|
+
tag.setAttribute('id', styleTagId);
|
21
|
+
targetDocument.head.appendChild(tag);
|
22
|
+
return tag;
|
23
|
+
}, [styleTagId, targetDocument]);
|
24
|
+
var cssRule = React.useMemo(function () {
|
25
|
+
var cssVars = themeToCSSVariables(theme);
|
26
|
+
var cssVarsAsString = Object.keys(cssVars).reduce(function (cssVarRule, cssVar) {
|
27
|
+
cssVarRule += cssVar + ": " + cssVars[cssVar] + "; ";
|
28
|
+
return cssVarRule;
|
29
|
+
}, ''); // result: .fluent-provider1 { --css-var: '#fff' }
|
30
|
+
|
31
|
+
return "." + styleTagId + " { " + cssVarsAsString + " }";
|
32
|
+
}, [theme, styleTagId]);
|
33
|
+
var previousCssRule = usePrevious(cssRule);
|
34
|
+
|
35
|
+
if (styleTag && previousCssRule !== cssRule) {
|
36
|
+
var sheet = styleTag.sheet;
|
37
|
+
|
38
|
+
if (sheet.cssRules.length > 0) {
|
39
|
+
sheet.deleteRule(0);
|
40
|
+
}
|
41
|
+
|
42
|
+
sheet.insertRule(cssRule, 0);
|
43
|
+
} // Removes the style tag from the targetDocument on unmount or change
|
44
|
+
|
45
|
+
|
46
|
+
React.useEffect(function () {
|
47
|
+
return function () {
|
48
|
+
var _a;
|
49
|
+
|
50
|
+
if (styleTag) {
|
51
|
+
// IE11 safe node removal, otherwise use node.remove()
|
52
|
+
(_a = styleTag.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(styleTag);
|
53
|
+
}
|
54
|
+
};
|
55
|
+
}, [styleTag]);
|
56
|
+
return styleTagId;
|
57
|
+
};
|
58
|
+
//# sourceMappingURL=useThemeStyleTag.js.map
|
@@ -0,0 +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;AAGA;;;;AAIG;;AACH,OAAO,IAAM,gBAAgB,GAAG,UAAC,OAAD,EAA+D;AACrF,MAAA,cAAc,GAAY,OAAO,CAAnB,cAAd;AAAA,MAAgB,KAAK,GAAK,OAAO,CAAZ,KAArB;AAER,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAD,CAAxB;AACA,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAN,CAAc,YAAA;AAC7B,QAAI,CAAC,cAAL,EAAqB;AACnB,aAAO,IAAP;AACD;;AAED,QAAM,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,MAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,YAAA;AAC5B,QAAM,OAAO,GAAG,mBAAmB,CAAC,KAAD,CAAnC;AACA,QAAM,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,OAAZ,EAAqB,MAArB,CAA4B,UAAC,UAAD,EAAa,MAAb,EAAmB;AACrE,MAAA,UAAU,IAAO,MAAM,GAAA,IAAN,GAAW,OAAO,CAAC,MAAD,CAAlB,GAA0B,IAA3C;AACA,aAAO,UAAP;AACD,KAHuB,EAGrB,EAHqB,CAAxB,CAF4B,CAO5B;;AACA,WAAO,MAAI,UAAJ,GAAc,KAAd,GAAoB,eAApB,GAAmC,IAA1C;AACD,GATe,EASb,CAAC,KAAD,EAAQ,UAAR,CATa,CAAhB;AAUA,MAAM,eAAe,GAAG,WAAW,CAAC,OAAD,CAAnC;;AAEA,MAAI,QAAQ,IAAI,eAAe,KAAK,OAApC,EAA6C;AAC3C,QAAM,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,GAnC4F,CAqC7F;;;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,YAAA;AACd,WAAO,YAAA;;;AACL,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":""}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"
|
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"}
|
package/lib/tsdoc-metadata.json
CHANGED
@@ -1,28 +1 @@
|
|
1
|
-
|
2
|
-
import * as React from 'react';
|
3
|
-
export interface ProviderProps {
|
4
|
-
/** Sets the direction of text & generated styles. */
|
5
|
-
dir?: 'ltr' | 'rtl';
|
6
|
-
/** Provides the document, can be undefined during SSR render. */
|
7
|
-
document?: Document | undefined;
|
8
|
-
theme?: PartialTheme;
|
9
|
-
}
|
10
|
-
export interface ProviderState {
|
11
|
-
dir: 'ltr' | 'rtl';
|
12
|
-
document: Document | undefined;
|
13
|
-
theme: Theme;
|
14
|
-
}
|
15
|
-
export declare function useFluentProviderState(draftState: ProviderState): void;
|
16
|
-
export declare function renderFluentProvider(state: ProviderState): JSX.Element;
|
17
|
-
/**
|
18
|
-
* Returns the ThemeProvider render function and calculated state, given user input, ref, and
|
19
|
-
* a set of default prop values.
|
20
|
-
*/
|
21
|
-
export declare function useFluentProvider(props: ProviderProps, ref: React.Ref<HTMLElement>): {
|
22
|
-
state: ProviderState;
|
23
|
-
render: typeof renderFluentProvider;
|
24
|
-
};
|
25
|
-
/**
|
26
|
-
* A React provider that allows to define theme, text direction and context for rendering for children components.
|
27
|
-
*/
|
28
|
-
export declare const FluentProvider: React.FunctionComponent<ProviderProps>;
|
1
|
+
export * from './components/FluentProvider/index';
|