@kwiz/fluentui 1.0.20 → 1.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/.github/workflows/npm-publish.yml +1 -0
  2. package/dist/_modules/config.d.ts +1 -0
  3. package/dist/_modules/config.js +9 -0
  4. package/dist/_modules/config.js.map +1 -0
  5. package/dist/_modules/constants.d.ts +2 -0
  6. package/dist/_modules/constants.js +3 -0
  7. package/dist/_modules/constants.js.map +1 -0
  8. package/dist/controls/accordion.d.ts +13 -0
  9. package/dist/controls/accordion.js +27 -0
  10. package/dist/controls/accordion.js.map +1 -0
  11. package/dist/controls/button.d.ts +28 -0
  12. package/dist/controls/button.js +113 -0
  13. package/dist/controls/button.js.map +1 -0
  14. package/dist/controls/centered.d.ts +5 -0
  15. package/dist/controls/centered.js +14 -0
  16. package/dist/controls/centered.js.map +1 -0
  17. package/dist/controls/date.d.ts +8 -0
  18. package/dist/controls/date.js +32 -0
  19. package/dist/controls/date.js.map +1 -0
  20. package/dist/controls/dropdown.d.ts +31 -0
  21. package/dist/controls/dropdown.js +28 -0
  22. package/dist/controls/dropdown.js.map +1 -0
  23. package/dist/controls/error-boundary.d.ts +23 -0
  24. package/dist/controls/error-boundary.js +33 -0
  25. package/dist/controls/error-boundary.js.map +1 -0
  26. package/dist/controls/field-editor.d.ts +13 -0
  27. package/dist/controls/field-editor.js +15 -0
  28. package/dist/controls/field-editor.js.map +1 -0
  29. package/dist/controls/file-upload.d.ts +18 -0
  30. package/dist/controls/file-upload.js +41 -0
  31. package/dist/controls/file-upload.js.map +1 -0
  32. package/dist/controls/horizontal.d.ts +8 -0
  33. package/dist/controls/horizontal.js +23 -0
  34. package/dist/controls/horizontal.js.map +1 -0
  35. package/dist/controls/input.d.ts +13 -0
  36. package/dist/controls/input.js +43 -0
  37. package/dist/controls/input.js.map +1 -0
  38. package/dist/controls/kwizoverflow.d.ts +14 -0
  39. package/dist/controls/kwizoverflow.js +45 -0
  40. package/dist/controls/kwizoverflow.js.map +1 -0
  41. package/dist/controls/list.d.ts +21 -0
  42. package/dist/controls/list.js +72 -0
  43. package/dist/controls/list.js.map +1 -0
  44. package/dist/controls/loading.d.ts +5 -0
  45. package/dist/controls/loading.js +7 -0
  46. package/dist/controls/loading.js.map +1 -0
  47. package/dist/controls/please-wait.d.ts +18 -0
  48. package/dist/controls/please-wait.js +16 -0
  49. package/dist/controls/please-wait.js.map +1 -0
  50. package/dist/controls/prompt.d.ts +32 -0
  51. package/dist/controls/prompt.js +31 -0
  52. package/dist/controls/prompt.js.map +1 -0
  53. package/dist/controls/search.d.ts +13 -0
  54. package/dist/controls/search.js +47 -0
  55. package/dist/controls/search.js.map +1 -0
  56. package/dist/controls/section.d.ts +14 -0
  57. package/dist/controls/section.js +27 -0
  58. package/dist/controls/section.js.map +1 -0
  59. package/dist/controls/svg.d.ts +23 -0
  60. package/dist/controls/svg.js +45 -0
  61. package/dist/controls/svg.js.map +1 -0
  62. package/dist/controls/toolbar.d.ts +12 -0
  63. package/dist/controls/toolbar.js +23 -0
  64. package/dist/controls/toolbar.js.map +1 -0
  65. package/dist/controls/vertical-content.d.ts +6 -0
  66. package/dist/controls/vertical-content.js +37 -0
  67. package/dist/controls/vertical-content.js.map +1 -0
  68. package/dist/controls/vertical.d.ts +8 -0
  69. package/dist/controls/vertical.js +23 -0
  70. package/dist/controls/vertical.js.map +1 -0
  71. package/dist/helpers/context.d.ts +26 -0
  72. package/dist/helpers/context.js +15 -0
  73. package/dist/helpers/context.js.map +1 -0
  74. package/dist/helpers/hooks.d.ts +62 -0
  75. package/dist/helpers/hooks.js +287 -0
  76. package/dist/helpers/hooks.js.map +1 -0
  77. package/dist/index.d.ts +25 -0
  78. package/dist/index.js +25 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/styles/styles.d.ts +19 -0
  81. package/dist/styles/styles.js +79 -0
  82. package/dist/styles/styles.js.map +1 -0
  83. package/dist/styles/theme.d.ts +6 -0
  84. package/dist/styles/theme.js +77 -0
  85. package/dist/styles/theme.js.map +1 -0
  86. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ css?: string[];
4
+ }
5
+ export declare const VerticalContent: React.FunctionComponent<React.PropsWithChildren<IProps>>;
6
+ export {};
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { makeStyles, mergeClasses } from '@fluentui/react-components';
3
+ import { isNotEmptyArray } from '@kwiz/common';
4
+ import React from 'react';
5
+ import { useWindowSize } from '../helpers/hooks';
6
+ const useStyles = makeStyles({
7
+ verticalContainer: {
8
+ position: "relative",
9
+ ['& > div']: {
10
+ position: "absolute",
11
+ transform: "rotate(90deg)"
12
+ }
13
+ }
14
+ });
15
+ export const VerticalContent = (props) => {
16
+ const classes = useStyles();
17
+ let css = [classes.verticalContainer];
18
+ const size = useWindowSize();
19
+ let div = React.useRef();
20
+ let rotate = React.useRef();
21
+ if (isNotEmptyArray(props.css))
22
+ css.push(...props.css);
23
+ React.useEffect(() => {
24
+ if (div.current && rotate.current) {
25
+ let rootDiv = div.current;
26
+ let rotateDiv = rotate.current;
27
+ rootDiv.style.height = `${rotateDiv.clientWidth}px`;
28
+ rootDiv.style.width = `${rotateDiv.clientHeight}px`;
29
+ rootDiv.style.minHeight = `${rotateDiv.clientWidth}px`;
30
+ rootDiv.style.minWidth = `${rotateDiv.clientHeight}px`;
31
+ rotateDiv.style.top = `${(rotateDiv.clientWidth - rotateDiv.clientHeight) / 2}px`;
32
+ rotateDiv.style.left = `-${(rotateDiv.clientWidth - rotateDiv.clientHeight) / 2}px`;
33
+ }
34
+ }, [div, rotate, size.height, size.width]);
35
+ return (_jsx("div", { ref: div, className: mergeClasses(...css), children: _jsx("div", { ref: rotate, children: props.children }) }));
36
+ };
37
+ //# sourceMappingURL=vertical-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-content.js","sourceRoot":"","sources":["../../src/controls/vertical-content.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,SAAS,GAAG,UAAU,CAAC;IACzB,iBAAiB,EAAE;QACf,QAAQ,EAAE,UAAU;QACpB,CAAC,SAAS,CAAC,EAAE;YACT,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,eAAe;SAC7B;KACJ;CACJ,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,eAAe,GAA6D,CAAC,KAAK,EAAE,EAAE;IAC/F,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAE5B,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,OAAO,GAAI,GAAG,CAAC,OAA0B,CAAC;YAC9C,IAAI,SAAS,GAAI,MAAM,CAAC,OAA0B,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,IAAI,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,CAAC,YAAY,IAAI,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,CAAC,WAAW,IAAI,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,SAAS,CAAC,YAAY,IAAI,CAAC;YAEvD,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAClF,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QACxF,CAAC;IACL,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3C,OAAO,CACH,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,YAC1C,cAAK,GAAG,EAAE,MAAM,YACX,KAAK,CAAC,QAAQ,GACb,GACJ,CACT,CAAC;AACN,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { ISectionProps } from './section';
3
+ interface IProps extends ISectionProps {
4
+ wrap?: boolean;
5
+ nogap?: boolean;
6
+ }
7
+ export declare const Vertical: React.FunctionComponent<React.PropsWithChildren<IProps>>;
8
+ export {};
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { makeStyles } from '@fluentui/react-components';
3
+ import { isNotEmptyArray } from '@kwiz/common';
4
+ import { KnownClassNames, mixins } from '../styles/styles';
5
+ import { Section } from './section';
6
+ const useStyles = makeStyles({
7
+ vertical: Object.assign(Object.assign({}, mixins.flex), { flexDirection: 'column' }),
8
+ wrap: mixins.wrap,
9
+ nogap: mixins.nogap
10
+ });
11
+ export const Vertical = (props) => {
12
+ const cssNames = useStyles();
13
+ let css = [KnownClassNames.vertical];
14
+ css.push(cssNames.vertical);
15
+ if (props.wrap)
16
+ css.push(cssNames.wrap);
17
+ if (props.nogap)
18
+ css.push(cssNames.nogap);
19
+ if (isNotEmptyArray(props.css))
20
+ css.push(...props.css);
21
+ return (_jsx(Section, Object.assign({}, props, { css: css })));
22
+ };
23
+ //# sourceMappingURL=vertical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical.js","sourceRoot":"","sources":["../../src/controls/vertical.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAiB,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,SAAS,GAAG,UAAU,CAAC;IACzB,QAAQ,kCACD,MAAM,CAAC,IAAI,KACd,aAAa,EAAE,QAAQ,GAC1B;IACD,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,KAAK,EAAE,MAAM,CAAC,KAAK;CACtB,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,QAAQ,GAA6D,CAAC,KAAK,EAAE,EAAE;IACxF,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,GAAG,GAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE/C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,IAAI;QACV,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,KAAK;QACX,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO,CACH,KAAC,OAAO,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,IAAI,CACnC,CAAC;AACN,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ export interface iKWIZFluentContext {
3
+ /**
4
+ * Where the portal children are mounted on DOM
5
+ *
6
+ * @default a new element on document.body without any styling
7
+ */
8
+ mountNode?: HTMLElement | null | {
9
+ element?: HTMLElement | null;
10
+ className?: string;
11
+ };
12
+ /**
13
+ * Controls the colors and borders of the input.
14
+ *
15
+ * @default 'underline'
16
+ */
17
+ inputAppearance?: 'outline' | 'underline' | 'filled-darker' | 'filled-lighter';
18
+ /**
19
+ * A button can be rounded, circular, or square.
20
+ *
21
+ * @default 'rounded'
22
+ */
23
+ buttonShape?: 'rounded' | 'circular' | 'square';
24
+ }
25
+ export declare const KWIZFluentContext: React.Context<iKWIZFluentContext>;
26
+ export declare function useKWIZFluentContext(): iKWIZFluentContext;
@@ -0,0 +1,15 @@
1
+ import { isNullOrUndefined } from "@kwiz/common";
2
+ import React from "react";
3
+ //create context
4
+ export const KWIZFluentContext = React.createContext(null);
5
+ //use context from within controls
6
+ export function useKWIZFluentContext() {
7
+ let ctx = React.useContext(KWIZFluentContext) || {};
8
+ //set defaults
9
+ if (isNullOrUndefined(ctx.inputAppearance))
10
+ ctx.inputAppearance = "underline";
11
+ if (isNullOrUndefined(ctx.buttonShape))
12
+ ctx.buttonShape = "circular";
13
+ return ctx;
14
+ }
15
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/helpers/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAqB,IAAI,CAAC,CAAC;AAC/E,kCAAkC;AAClC,MAAM,UAAU,oBAAoB;IAChC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACpD,cAAc;IACd,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC;QACtC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC;IACtC,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC;QAClC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC;IACjC,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { ToastIntent } from "@fluentui/react-components";
2
+ import { MutableRefObject, SetStateAction } from "react";
3
+ import { iKWIZFluentContext } from "./context";
4
+ /** Empty array ensures that effect is only run on mount */
5
+ export declare const useEffectOnlyOnMount: any[];
6
+ /** set state on steroids. provide promise callback after render, onChange transformer and automatic skip-set when value not changed */
7
+ export declare function useStateEX<ValueType>(initialValue: ValueType, options?: {
8
+ onChange?: (newValue: SetStateAction<ValueType>) => SetStateAction<ValueType>;
9
+ skipUpdateIfSame?: boolean;
10
+ name?: string;
11
+ }): [
12
+ ValueType,
13
+ (newValue: SetStateAction<ValueType>) => Promise<ValueType>,
14
+ MutableRefObject<ValueType>
15
+ ];
16
+ export declare function useTrackFocus(props: {
17
+ onFocus: () => void;
18
+ onLoseFocus: () => void;
19
+ ref?: MutableRefObject<HTMLElement>;
20
+ }): MutableRefObject<HTMLElement>;
21
+ export declare function useWindowSize(): {
22
+ width: number;
23
+ height: number;
24
+ };
25
+ export declare function useIsInPrint(): boolean;
26
+ /** set block message if you want to block nav.
27
+ * - call setMessage to add a blocker message
28
+ * - call onNav when you have internal navigation (open / close popups)
29
+ * - render the navPrompt control to your page
30
+ * FYI for page unload, most modern browsers won't show your message but a generic one instead. */
31
+ export declare function useBlockNav(): {
32
+ setMessage: (id: string, message?: string) => void;
33
+ onNav: (nav: () => void) => void;
34
+ navPrompt: import("react/jsx-runtime").JSX.Element;
35
+ };
36
+ export declare function useKeyDown(options: {
37
+ elm?: HTMLElement | Document;
38
+ onEnter?: (e: KeyboardEvent) => void;
39
+ onEscape?: (e: KeyboardEvent) => void;
40
+ onKeyDown?: (e: KeyboardEvent) => void;
41
+ }): void;
42
+ export declare function useToast(): {
43
+ control: import("react/jsx-runtime").JSX.Element;
44
+ dispatch: (info: {
45
+ title?: string;
46
+ body?: string;
47
+ subtitle?: string;
48
+ titleAction?: {
49
+ text: string;
50
+ onClick: () => void;
51
+ };
52
+ footerActions?: {
53
+ text: string;
54
+ onClick: () => void;
55
+ }[];
56
+ intent?: ToastIntent;
57
+ }) => void;
58
+ };
59
+ export declare function useKWIZFluentContextProvider(options: {
60
+ root?: React.MutableRefObject<HTMLDivElement>;
61
+ ctx?: iKWIZFluentContext;
62
+ }): iKWIZFluentContext;
@@ -0,0 +1,287 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Link, Toast, ToastBody, Toaster, ToastFooter, ToastTitle, useId, useToastController } from "@fluentui/react-components";
3
+ import { isDebug, isFunction, isNotEmptyArray, isNullOrEmptyString, jsonClone, jsonStringify, LoggerLevel, objectsEqual, wrapFunction } from "@kwiz/common";
4
+ import { useCallback, useEffect, useRef, useState } from "react";
5
+ import { GetLogger } from "../_modules/config";
6
+ import { Prompter } from "../controls/prompt";
7
+ import { KnownClassNames } from "../styles/styles";
8
+ import { useKWIZFluentContext } from "./context";
9
+ const logger = GetLogger("helpers/hooks");
10
+ /** Empty array ensures that effect is only run on mount */
11
+ export const useEffectOnlyOnMount = [];
12
+ /** set state on steroids. provide promise callback after render, onChange transformer and automatic skip-set when value not changed */
13
+ export function useStateEX(initialValue, options) {
14
+ options = options || {};
15
+ const name = options.name || '';
16
+ let logger = GetLogger(`useStateWithTrack${isNullOrEmptyString(name) ? '' : ` ${name}`}`);
17
+ logger.setLevel(LoggerLevel.WARN);
18
+ const [value, setValueInState] = useState(initialValue);
19
+ const currentValue = useRef(value);
20
+ /** make this a collection in case several callers are awaiting the same propr update */
21
+ const resolveState = useRef([]);
22
+ const isMounted = useRef(false);
23
+ useEffect(() => {
24
+ isMounted.current = true;
25
+ return () => {
26
+ isMounted.current = false;
27
+ };
28
+ }, useEffectOnlyOnMount);
29
+ function resolvePromises() {
30
+ if (isNotEmptyArray(resolveState.current)) {
31
+ let resolvers = resolveState.current.slice();
32
+ resolveState.current = []; //clear
33
+ resolvers.map(r => r(currentValue.current));
34
+ }
35
+ }
36
+ ;
37
+ useEffect(() => {
38
+ resolvePromises();
39
+ if (isNotEmptyArray(resolveState.current)) {
40
+ logger.log(`resolved after render`);
41
+ let resolvers = resolveState.current.slice();
42
+ resolveState.current = []; //clear
43
+ resolvers.map(r => r(value));
44
+ }
45
+ }, [value, resolveState.current]);
46
+ let setValueWithCheck = !options.skipUpdateIfSame ? setValueInState : (newValue) => {
47
+ logger.groupSync('conditional value change', log => {
48
+ if (logger.getLevel() === LoggerLevel.VERBOSE) {
49
+ log('old: ' + jsonStringify(currentValue.current));
50
+ log('new: ' + jsonStringify(newValue));
51
+ }
52
+ if (!objectsEqual(newValue, currentValue.current)) {
53
+ log(`value changed`);
54
+ setValueInState(newValue);
55
+ }
56
+ else {
57
+ log(`value unchanged`);
58
+ resolvePromises();
59
+ }
60
+ });
61
+ };
62
+ let setValueWithEvents = wrapFunction(setValueWithCheck, {
63
+ before: newValue => isFunction(options.onChange) ? options.onChange(newValue) : newValue,
64
+ after: newValue => currentValue.current = newValue
65
+ });
66
+ const setValue = useCallback((newState) => new Promise(resolve => {
67
+ if (!isMounted.current) {
68
+ //unmounted may never resolve
69
+ logger.log(`resolved without wait`);
70
+ resolve(newState);
71
+ }
72
+ else {
73
+ resolveState.current.push(resolve);
74
+ setValueWithEvents(newState);
75
+ }
76
+ }), []);
77
+ return [value, setValue, currentValue];
78
+ }
79
+ export function useTrackFocus(props) {
80
+ const wrapperDiv = props.ref || useRef(null);
81
+ useEffect(() => {
82
+ function focusIn(e) {
83
+ let elm = e.target; //document.activeElement;
84
+ if (wrapperDiv.current) {
85
+ while (elm && elm !== wrapperDiv.current) {
86
+ elm = elm.parentElement;
87
+ }
88
+ }
89
+ else
90
+ elm = null;
91
+ if (wrapperDiv.current && elm === wrapperDiv.current)
92
+ props.onFocus();
93
+ else
94
+ props.onLoseFocus();
95
+ }
96
+ if (wrapperDiv.current) {
97
+ if (wrapperDiv.current)
98
+ wrapperDiv.current.tabIndex = 1;
99
+ window.addEventListener("focusin", focusIn);
100
+ // Remove event listener on cleanup
101
+ return () => window.removeEventListener("focusin", focusIn);
102
+ }
103
+ }, [wrapperDiv.current]);
104
+ return wrapperDiv;
105
+ }
106
+ export function useWindowSize() {
107
+ // Initialize state with undefined width/height so server and client renders match
108
+ // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
109
+ const [windowSize, setWindowSize] = useState({
110
+ width: undefined,
111
+ height: undefined
112
+ });
113
+ useEffect(() => {
114
+ // Handler to call on window resize
115
+ function handleResize() {
116
+ // Set window width/height to state
117
+ setWindowSize({
118
+ width: window.innerWidth,
119
+ height: window.innerHeight
120
+ });
121
+ }
122
+ // Add event listener
123
+ window.addEventListener("resize", handleResize);
124
+ // Call handler right away so state gets updated with initial window size
125
+ handleResize();
126
+ // Remove event listener on cleanup
127
+ return () => window.removeEventListener("resize", handleResize);
128
+ }, useEffectOnlyOnMount);
129
+ return windowSize;
130
+ }
131
+ export function useIsInPrint() {
132
+ // Initialize state with false
133
+ const [printMode, setPrintMode] = useState(false);
134
+ useEffect(() => {
135
+ function forcePrint(e) {
136
+ if (e.ctrlKey && e.shiftKey && e.altKey) {
137
+ if (e.key.toLocaleLowerCase() === "q") {
138
+ document.body.classList.remove(KnownClassNames.print);
139
+ handlePrint(e, false);
140
+ }
141
+ else {
142
+ console.warn('forced print mode - to exit refresh to ctrl+shift+alt+q');
143
+ document.body.classList.add(KnownClassNames.print);
144
+ handlePrint(e, true);
145
+ }
146
+ }
147
+ }
148
+ // Handler to call on printing
149
+ function handlePrint(e, force) {
150
+ if (force === true)
151
+ setPrintMode(true);
152
+ else if (window.matchMedia) {
153
+ var mediaQueryList = window.matchMedia('print');
154
+ if (mediaQueryList.matches) {
155
+ setPrintMode(true);
156
+ }
157
+ else {
158
+ setPrintMode(false);
159
+ }
160
+ }
161
+ }
162
+ // Add event listener
163
+ window.addEventListener("print", handlePrint);
164
+ if (isDebug())
165
+ window.addEventListener("keydown", forcePrint);
166
+ // Call handler right away so state gets updated with initial printing state
167
+ handlePrint();
168
+ // Remove event listener on cleanup
169
+ return () => {
170
+ window.removeEventListener("print", handlePrint);
171
+ if (isDebug())
172
+ window.removeEventListener("keydown", forcePrint);
173
+ };
174
+ }, useEffectOnlyOnMount);
175
+ return printMode;
176
+ }
177
+ /** set block message if you want to block nav.
178
+ * - call setMessage to add a blocker message
179
+ * - call onNav when you have internal navigation (open / close popups)
180
+ * - render the navPrompt control to your page
181
+ * FYI for page unload, most modern browsers won't show your message but a generic one instead. */
182
+ export function useBlockNav() {
183
+ const [, setBlockNavMessages, blockNavMessagesRef] = useStateEX({});
184
+ const [prompt, setPrompt] = useStateEX(null);
185
+ const getMessagesArr = useCallback(() => {
186
+ return Object.keys(blockNavMessagesRef.current).map(id => blockNavMessagesRef.current[id]);
187
+ }, useEffectOnlyOnMount);
188
+ const getMessages = useCallback(() => {
189
+ return getMessagesArr().join();
190
+ }, useEffectOnlyOnMount);
191
+ const onNav = useCallback((nav) => {
192
+ let messages = getMessagesArr();
193
+ if (isNotEmptyArray(messages)) {
194
+ //need to release react to re-render the prompt
195
+ window.setTimeout(() => {
196
+ //prompt, if ok - clear messages and nav.
197
+ setPrompt({
198
+ okButtonText: "Leave",
199
+ cancelButtonText: "Cancel",
200
+ title: "Leave page?",
201
+ children: messages.length > 1
202
+ ? _jsx("ul", { children: messages.map((m, i) => _jsx("li", { children: m }, `m${i}`)) })
203
+ : _jsx("p", { children: messages[0] }),
204
+ onCancel: () => setPrompt(null),
205
+ onOK: () => {
206
+ setPrompt(null);
207
+ setBlockNavMessages({}); //clear messages
208
+ nav();
209
+ }
210
+ });
211
+ }, 1);
212
+ }
213
+ else
214
+ nav();
215
+ }, useEffectOnlyOnMount);
216
+ useEffect(() => {
217
+ function handleBeforeUnload(e) {
218
+ //todo: use blockMessageRef.current so that we don't have to re-register every time message changes.
219
+ //otherwise we would have to add blockMessage as a dependency for this useEffect
220
+ const message = getMessages();
221
+ if (!isNullOrEmptyString(message)) {
222
+ e.preventDefault();
223
+ e.returnValue = message;
224
+ }
225
+ }
226
+ // Add event listener
227
+ window.addEventListener("beforeunload", handleBeforeUnload);
228
+ // Remove event listener on cleanup
229
+ return () => window.removeEventListener("beforeunload", handleBeforeUnload);
230
+ }, useEffectOnlyOnMount);
231
+ return {
232
+ setMessage: (id, message) => {
233
+ let current = jsonClone(blockNavMessagesRef.current);
234
+ if (isNullOrEmptyString(message))
235
+ delete current[id];
236
+ else
237
+ current[id] = message;
238
+ if (!objectsEqual(current, blockNavMessagesRef.current))
239
+ setBlockNavMessages(current);
240
+ },
241
+ // clearMessages: () => {
242
+ // setBlockNavMessages({});
243
+ // },
244
+ // getMessages,
245
+ // getMessagesArr,
246
+ onNav,
247
+ navPrompt: prompt ? _jsx(Prompter, Object.assign({}, prompt)) : undefined
248
+ };
249
+ }
250
+ export function useKeyDown(options) {
251
+ let elm = options.elm || document;
252
+ useEffect(() => {
253
+ let handler = (e) => {
254
+ if (e.key === "Enter" && isFunction(options.onEnter))
255
+ options.onEnter(e);
256
+ else if (e.key === "Escape" && isFunction(options.onEscape))
257
+ options.onEscape(e);
258
+ if (isFunction(options.onKeyDown))
259
+ options.onKeyDown(e);
260
+ };
261
+ elm.addEventListener("keydown", handler);
262
+ return () => elm.removeEventListener("keydown", handler);
263
+ }, [elm]);
264
+ }
265
+ export function useToast() {
266
+ const ctx = useKWIZFluentContext();
267
+ const toasterId = useId("toaster");
268
+ const { dispatchToast } = useToastController(toasterId);
269
+ return {
270
+ control: _jsx(Toaster, { mountNode: ctx.mountNode, toasterId: toasterId }),
271
+ dispatch: (info) => {
272
+ dispatchToast(_jsxs(Toast, { children: [info.title && _jsx(ToastTitle, { action: info.titleAction ? _jsx(Link, { onClick: info.titleAction.onClick, children: info.titleAction.text }) : undefined, children: info.title }), info.body && _jsx(ToastBody, { subtitle: info.subtitle, children: info.body }), isNotEmptyArray(info.footerActions) &&
273
+ _jsx(ToastFooter, { children: info.footerActions.map((a, i) => _jsx(Link, { onClick: a.onClick, children: a.text }, `l${i}`)) })] }), { intent: info.intent || "info" });
274
+ }
275
+ };
276
+ }
277
+ export function useKWIZFluentContextProvider(options) {
278
+ let v = options && options.ctx || {};
279
+ const [kwizFluentContext, setKwizFluentContext] = useState(v);
280
+ useEffect(() => {
281
+ // ref only updates in useEffect, not in useMemo or anything else.
282
+ // we need to set it into state so it will trigger a ui update
283
+ setKwizFluentContext(Object.assign(Object.assign({}, v), { mountNode: options.root.current }));
284
+ }, [options.root]);
285
+ return kwizFluentContext;
286
+ }
287
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/helpers/hooks.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAe,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC9I,OAAO,EAAe,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzK,OAAO,EAAoC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAkB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAsB,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAErE,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAC1C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,uIAAuI;AACvI,MAAM,UAAU,UAAU,CAAY,YAAuB,EAAE,OAM9D;IAEG,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAEhC,IAAI,MAAM,GAAG,SAAS,CAAC,oBAAoB,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1F,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnC,wFAAwF;IACxF,MAAM,YAAY,GAAG,MAAM,CAA6B,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACX,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAEzB,OAAO,GAAG,EAAE;YACR,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC;IACN,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAEzB,SAAS,eAAe;QACpB,IAAI,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA,OAAO;YACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAAA,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACX,eAAe,EAAE,CAAC;QAClB,IAAI,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACpC,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA,OAAO;YACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAElC,IAAI,iBAAiB,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAmB,EAAE,EAAE;QAC1F,MAAM,CAAC,SAAS,CAAC,0BAA0B,EAAE,GAAG,CAAC,EAAE;YAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5C,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,QAAkB,EAAE,YAAY,CAAC,OAAiB,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,eAAe,CAAC,CAAC;gBACrB,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;iBACI,CAAC;gBACF,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACvB,eAAe,EAAE,CAAC;YACtB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAGD,IAAI,kBAAkB,GAAG,YAAY,CAAC,iBAAiB,EAAE;QACrD,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;QACxF,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,GAAG,QAAqB;KAClE,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,QAAmB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAY,OAAO,CAAC,EAAE;QACnF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrB,6BAA6B;YAC7B,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACpC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;aACI,CAAC;YACF,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAER,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC3C,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,KAA4F;IACtH,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACX,SAAS,OAAO,CAAC,CAAa;YAC1B,IAAI,GAAG,GAAG,CAAC,CAAC,MAAqB,CAAC,CAAA,yBAAyB;YAC3D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,GAAG,IAAI,GAAG,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvC,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC5B,CAAC;YACL,CAAC;;gBAAM,GAAG,GAAG,IAAI,CAAC;YAClB,IAAI,UAAU,CAAC,OAAO,IAAI,GAAG,KAAK,UAAU,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC;;gBACjE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,UAAU,CAAC,OAAO;gBAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5C,mCAAmC;YACnC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACzB,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,MAAM,UAAU,aAAa;IACzB,kFAAkF;IAClF,4EAA4E;IAC5E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAGzC;QACC,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;KACpB,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,mCAAmC;QACnC,SAAS,YAAY;YAEjB,mCAAmC;YACnC,aAAa,CAAC;gBACV,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC7B,CAAC,CAAC;QACP,CAAC;QACD,qBAAqB;QACrB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,yEAAyE;QACzE,YAAY,EAAE,CAAC;QACf,mCAAmC;QACnC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACzB,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,MAAM,UAAU,YAAY;IACxB,8BAA8B;IAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACX,SAAS,UAAU,CAAC,CAAgB;YAChC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,GAAG,EAAE,CAAC;oBACpC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACtD,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC1B,CAAC;qBACI,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;oBACxE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACnD,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;QACD,8BAA8B;QAC9B,SAAS,WAAW,CAAC,CAAS,EAAE,KAAe;YAC3C,IAAI,KAAK,KAAK,IAAI;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;iBAClC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzB,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBACzB,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,YAAY,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;QACD,qBAAqB;QACrB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE;YACT,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,4EAA4E;QAC5E,WAAW,EAAE,CAAC;QACd,mCAAmC;QACnC,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACT,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC;IACN,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACzB,OAAO,SAAS,CAAC;AACrB,CAAC;AACD;;;;kGAIkG;AAClG,MAAM,UAAU,WAAW;IACvB,MAAM,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,GAAG,UAAU,CAAsB,EAAE,CAAC,CAAC;IACzF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAiB,IAAI,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,OAAO,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAEzB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,GAAe,EAAE,EAAE;QAC1C,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;QAChC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,+CAA+C;YAC/C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,yCAAyC;gBACzC,SAAS,CAAC;oBACN,YAAY,EAAE,OAAO;oBACrB,gBAAgB,EAAE,QAAQ;oBAC1B,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;wBACzB,CAAC,CAAC,uBACG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAmB,CAAC,IAAX,IAAI,CAAC,EAAE,CAAU,CAAC,GAClD;wBACL,CAAC,CAAC,sBAAI,QAAQ,CAAC,CAAC,CAAC,GAAK;oBAC1B,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC/B,IAAI,EAAE,GAAG,EAAE;wBACP,SAAS,CAAC,IAAI,CAAC,CAAC;wBAChB,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAA,gBAAgB;wBACxC,GAAG,EAAE,CAAC;oBACV,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC;;YACI,GAAG,EAAE,CAAC;IACf,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAGzB,SAAS,CAAC,GAAG,EAAE;QACX,SAAS,kBAAkB,CAAC,CAAoB;YAC5C,oGAAoG;YACpG,gFAAgF;YAChF,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,qBAAqB;QACrB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC5D,mCAAmC;QACnC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChF,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACzB,OAAO;QACH,UAAU,EAAE,CAAC,EAAU,EAAE,OAAgB,EAAE,EAAE;YACzC,IAAI,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,mBAAmB,CAAC,OAAO,CAAC;gBAC5B,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;;gBAClB,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBACnD,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,yBAAyB;QACzB,+BAA+B;QAC/B,KAAK;QACL,eAAe;QACf,kBAAkB;QAClB,KAAK;QACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAC,QAAQ,oBAAK,MAAM,EAAI,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAM1B;IACG,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YAC/B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACpE,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACd,CAAC;AAGD,MAAM,UAAU,QAAQ;IACpB,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxD,OAAO;QACH,OAAO,EAAE,KAAC,OAAO,IAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,GAAI;QACpE,QAAQ,EAAE,CAAC,IAOV,EAAE,EAAE;YACD,aAAa,CAAC,MAAC,KAAK,eACf,IAAI,CAAC,KAAK,IAAI,KAAC,UAAU,IAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,YAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAQ,CAAC,CAAC,CAAC,SAAS,YAAG,IAAI,CAAC,KAAK,GAAc,EACnK,IAAI,CAAC,IAAI,IAAI,KAAC,SAAS,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,YAAG,IAAI,CAAC,IAAI,GAAa,EACxE,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;wBAChC,KAAC,WAAW,cACP,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,IAAI,IAAe,OAAO,EAAE,CAAC,CAAC,OAAO,YAAG,CAAC,CAAC,IAAI,IAApC,IAAI,CAAC,EAAE,CAAqC,CAAC,GAChF,IAEd,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAG5C;IACG,IAAI,CAAC,GAAuB,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;IACzD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAqB,CAAC,CAAC,CAAC;IAClF,SAAS,CAAC,GAAG,EAAE;QACX,kEAAkE;QAClE,8DAA8D;QAC9D,oBAAoB,iCACb,CAAC,KACJ,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IACjC,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnB,OAAO,iBAAiB,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,25 @@
1
+ export * from './controls/accordion';
2
+ export * from './controls/button';
3
+ export * from './controls/centered';
4
+ export * from './controls/date';
5
+ export * from './controls/dropdown';
6
+ export * from './controls/error-boundary';
7
+ export * from './controls/field-editor';
8
+ export * from './controls/file-upload';
9
+ export * from './controls/horizontal';
10
+ export * from './controls/input';
11
+ export * from './controls/kwizoverflow';
12
+ export * from './controls/list';
13
+ export * from './controls/loading';
14
+ export * from './controls/please-wait';
15
+ export * from './controls/prompt';
16
+ export * from './controls/search';
17
+ export * from './controls/section';
18
+ export * from './controls/svg';
19
+ export * from './controls/toolbar';
20
+ export * from './controls/vertical';
21
+ export * from './controls/vertical-content';
22
+ export { KWIZFluentContext, useKWIZFluentContext } from './helpers/context';
23
+ export type { iKWIZFluentContext } from './helpers/context';
24
+ export * from './helpers/hooks';
25
+ export { KnownClassNames } from './styles/styles';
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ export * from './controls/accordion';
2
+ export * from './controls/button';
3
+ export * from './controls/centered';
4
+ export * from './controls/date';
5
+ export * from './controls/dropdown';
6
+ export * from './controls/error-boundary';
7
+ export * from './controls/field-editor';
8
+ export * from './controls/file-upload';
9
+ export * from './controls/horizontal';
10
+ export * from './controls/input';
11
+ export * from './controls/kwizoverflow';
12
+ export * from './controls/list';
13
+ export * from './controls/loading';
14
+ export * from './controls/please-wait';
15
+ export * from './controls/prompt';
16
+ export * from './controls/search';
17
+ export * from './controls/section';
18
+ export * from './controls/svg';
19
+ export * from './controls/toolbar';
20
+ export * from './controls/vertical';
21
+ export * from './controls/vertical-content';
22
+ export { KWIZFluentContext, useKWIZFluentContext } from './helpers/context';
23
+ export * from './helpers/hooks';
24
+ export { KnownClassNames } from './styles/styles';
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { GriffelStyle } from "@fluentui/react-components";
2
+ export declare namespace mixins {
3
+ const main: GriffelStyle;
4
+ const clickable: GriffelStyle;
5
+ const float: GriffelStyle;
6
+ const flex: GriffelStyle;
7
+ const wrap: GriffelStyle;
8
+ const nogap: GriffelStyle;
9
+ const ellipsis: GriffelStyle;
10
+ }
11
+ export declare const KnownClassNames: {
12
+ print: string;
13
+ section: string;
14
+ vertical: string;
15
+ horizontal: string;
16
+ list: string;
17
+ };
18
+ export declare const useCommonStyles: () => Record<"printShow" | "printHide", string>;
19
+ export declare const widthMedium = 360;