@kwiz/fluentui 1.0.21 → 1.0.24

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 (109) hide show
  1. package/.github/workflows/npm-publish.yml +4 -15
  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 +36 -0
  21. package/dist/controls/dropdown.js +35 -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/drag-drop/drag-drop-container.d.ts +15 -0
  75. package/dist/helpers/drag-drop/drag-drop-container.js +13 -0
  76. package/dist/helpers/drag-drop/drag-drop-container.js.map +1 -0
  77. package/dist/helpers/drag-drop/drag-drop-context.d.ts +30 -0
  78. package/dist/helpers/drag-drop/drag-drop-context.js +47 -0
  79. package/dist/helpers/drag-drop/drag-drop-context.js.map +1 -0
  80. package/dist/helpers/drag-drop/exports.d.ts +4 -0
  81. package/dist/helpers/drag-drop/exports.js +3 -0
  82. package/dist/helpers/drag-drop/exports.js.map +1 -0
  83. package/dist/helpers/drag-drop/use-draggable.d.ts +13 -0
  84. package/dist/helpers/drag-drop/use-draggable.js +33 -0
  85. package/dist/helpers/drag-drop/use-draggable.js.map +1 -0
  86. package/dist/helpers/drag-drop/use-droppable.d.ts +14 -0
  87. package/dist/helpers/drag-drop/use-droppable.js +28 -0
  88. package/dist/helpers/drag-drop/use-droppable.js.map +1 -0
  89. package/dist/helpers/hooks.d.ts +62 -0
  90. package/dist/helpers/hooks.js +287 -0
  91. package/dist/helpers/hooks.js.map +1 -0
  92. package/dist/index.d.ts +26 -0
  93. package/dist/index.js +26 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/styles/styles.d.ts +19 -0
  96. package/dist/styles/styles.js +79 -0
  97. package/dist/styles/styles.js.map +1 -0
  98. package/dist/styles/theme.d.ts +6 -0
  99. package/dist/styles/theme.js +77 -0
  100. package/dist/styles/theme.js.map +1 -0
  101. package/package.json +3 -1
  102. package/src/controls/dropdown.tsx +33 -28
  103. package/src/helpers/drag-drop/drag-drop-container.tsx +47 -0
  104. package/src/helpers/drag-drop/drag-drop-context.tsx +67 -0
  105. package/src/helpers/drag-drop/exports.ts +4 -0
  106. package/src/helpers/drag-drop/readme.md +76 -0
  107. package/src/helpers/drag-drop/use-draggable.ts +56 -0
  108. package/src/helpers/drag-drop/use-droppable.ts +48 -0
  109. package/src/index.ts +1 -0
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Toolbar, ToolbarDivider, ToolbarGroup } from '@fluentui/react-components';
3
+ import { useCommonStyles } from '../styles/styles';
4
+ import { KWIZOverflow } from './kwizoverflow';
5
+ export const ToolbarEX = (props) => {
6
+ const commonCssNames = useCommonStyles();
7
+ let elements = [];
8
+ props.buttonGroups.forEach((group, groupIndex) => {
9
+ group.forEach((button, buttonIndex) => {
10
+ const mapped = Object.assign(Object.assign({}, button), { id: `m${groupIndex}-${buttonIndex}` });
11
+ if (buttonIndex === 0 && groupIndex > 0 && props.buttonGroups[groupIndex - 1].length > 0) {
12
+ //first button, not first group, and previous group was not empty
13
+ //add divider
14
+ mapped.overflowElement = mapped.overflowElement || mapped.elm;
15
+ //this way if button rendes it is with the divider, but if it is in overflow - there will be no divider
16
+ mapped.elm = _jsxs("span", { children: [_jsx(ToolbarDivider, { style: { display: 'inline-flex' } }), mapped.elm] });
17
+ }
18
+ elements.push(mapped);
19
+ });
20
+ });
21
+ return (_jsx(KWIZOverflow, { className: commonCssNames.printHide, items: elements, getKey: e => e.id, renderItem: (e, i, overflow) => overflow && e.overflowElement || e.elm, getPriority: e => e.priority || -1, groupWrapper: children => _jsxs(Toolbar, { "aria-label": "Default", style: { justifyContent: "space-between" }, children: [_jsx(ToolbarGroup, { role: "presentation", children: children }), _jsx(ToolbarGroup, { role: "presentation", children: props.sideButtons })] }) }));
22
+ };
23
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/controls/toolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,CAAC,MAAM,SAAS,GAAoC,CAAC,KAAK,EAAE,EAAE;IAChE,MAAM,cAAc,GAAG,eAAe,EAAE,CAAC;IAEzC,IAAI,QAAQ,GAAyF,EAAE,CAAC;IACxG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAClC,MAAM,MAAM,mCAAQ,MAAM,KAAE,EAAE,EAAE,IAAI,UAAU,IAAI,WAAW,EAAE,GAAE,CAAC;YAClE,IAAI,WAAW,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvF,iEAAiE;gBACjE,aAAa;gBACb,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,GAAG,CAAC;gBAC9D,uGAAuG;gBACvG,MAAM,CAAC,GAAG,GAAG,2BACT,KAAC,cAAc,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,GAAI,EACpD,MAAM,CAAC,GAAG,IACR,CAAC;YAEZ,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,YAAY,IAAC,SAAS,EAAE,cAAc,CAAC,SAAS,EAC7C,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACjB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,EACtE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAClC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAC,OAAO,kBAAY,SAAS,EAAC,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAC9F,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,YAC5B,QAAQ,GACE,EACf,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,YAC5B,KAAK,CAAC,WAAW,GACP,IACT,GACZ,CAAC,CAAC;AACZ,CAAC,CAAA"}
@@ -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,15 @@
1
+ import { iDraggedItemType, iDraggableProps } from "./use-draggable";
2
+ import { iDroppableProps } from "./use-droppable";
3
+ interface one<DragItemType extends iDraggedItemType<string>> {
4
+ dragInfo: iDraggableProps<DragItemType>;
5
+ }
6
+ interface other<DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never> {
7
+ dropInfo: iDroppableProps<DropInfoTypes, DropInfoItemTypes>;
8
+ }
9
+ type iDragDropProps<DragItemType extends iDraggedItemType<string>, DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never> = one<DragItemType> | other<DropInfoTypes, DropInfoItemTypes> | (one<DragItemType> & other<DropInfoTypes, DropInfoItemTypes>);
10
+ type iProps<DragItemType extends iDraggedItemType<string>, DropInfoTypes extends string, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes>> = Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
11
+ onDraggingClassName?: string;
12
+ onDragOverClassName?: string;
13
+ } & iDragDropProps<DragItemType, DropInfoTypes, DropInfoItemTypes>;
14
+ export declare function DragDropContainer<DragItemType extends iDraggedItemType<string> = never, DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never>(props: React.PropsWithChildren<iProps<DragItemType, DropInfoTypes, DropInfoItemTypes>>): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isNullOrEmptyString } from "@kwiz/common";
3
+ import { useDragDropContext } from "./drag-drop-context";
4
+ export function DragDropContainer(props) {
5
+ const { drag, drop, dragDropRef } = useDragDropContext(props);
6
+ const classNames = isNullOrEmptyString(props.className) ? [] : props.className.split(' ');
7
+ if (drag.isDragging && props.onDraggingClassName)
8
+ classNames.push(props.onDraggingClassName);
9
+ if (drop.isOver && props.onDragOverClassName)
10
+ classNames.push(props.onDragOverClassName);
11
+ return _jsx("div", Object.assign({}, (props || {}), { ref: dragDropRef, className: classNames.join(' '), children: props.children }));
12
+ }
13
+ //# sourceMappingURL=drag-drop-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag-drop-container.js","sourceRoot":"","sources":["../../../src/helpers/drag-drop/drag-drop-container.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAgCzD,MAAM,UAAU,iBAAiB,CAI/B,KAAsF;IAEpF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAa,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpG,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,mBAAmB;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC7F,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEzF,OAAO,8BAAS,CAAC,KAAK,IAAI,EAAE,CAAC,IAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,KAAK,CAAC,QAAQ,IAAO,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { iDraggableProps, iDraggedItemType } from "./use-draggable";
3
+ import { iDroppableProps } from "./use-droppable";
4
+ export interface iDragDropContext {
5
+ isDragging: boolean;
6
+ setIsDragging: (value: boolean) => void;
7
+ }
8
+ export declare const DragDropContext: React.Context<iDragDropContext>;
9
+ export declare function useDragDropContextInternal(): iDragDropContext;
10
+ export declare function useDragDropContext<DragItemType extends iDraggedItemType<string> = never, DropInfoType extends iDroppableProps<string, any> = never>(info: {
11
+ dragInfo?: iDraggableProps<DragItemType>;
12
+ dropInfo?: DropInfoType;
13
+ }): {
14
+ dragDropContext: iDragDropContext;
15
+ drag: {
16
+ isDragging: boolean;
17
+ dragRef: import("react-dnd").ConnectDragSource;
18
+ };
19
+ drop: {
20
+ canDrop: boolean;
21
+ isOver: boolean;
22
+ dropRef: import("react-dnd").ConnectDropTarget;
23
+ };
24
+ dragDropRef: import("react-dnd").ConnectDragSource;
25
+ };
26
+ export declare function useDragDropContextProvider(): iDragDropContext;
27
+ interface iProps {
28
+ }
29
+ export declare const DragDropContextProvider: React.FunctionComponent<React.PropsWithChildren<iProps>>;
30
+ export {};
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isNullOrUndefined } from "@kwiz/common";
3
+ import React, { useContext } from "react";
4
+ import { DndProvider } from "react-dnd";
5
+ import { HTML5Backend } from "react-dnd-html5-backend";
6
+ import { useStateEX } from "../hooks";
7
+ import { useDraggable } from "./use-draggable";
8
+ import useDroppable from "./use-droppable";
9
+ //create context
10
+ export const DragDropContext = React.createContext(null);
11
+ //use context from within controls
12
+ export function useDragDropContextInternal() {
13
+ const dragDropContext = useContext(DragDropContext);
14
+ return dragDropContext;
15
+ }
16
+ export function useDragDropContext(info) {
17
+ const dragDropContext = useDragDropContextInternal();
18
+ const isDraggable = !isNullOrUndefined(info.dragInfo);
19
+ const isDroppable = !isNullOrUndefined(info.dropInfo);
20
+ const drag = useDraggable(info === null || info === void 0 ? void 0 : info.dragInfo);
21
+ const drop = useDroppable(info === null || info === void 0 ? void 0 : info.dropInfo);
22
+ const acceptDrops = isDroppable && !drag.isDragging && dragDropContext.isDragging;
23
+ return {
24
+ dragDropContext,
25
+ drag,
26
+ drop,
27
+ dragDropRef: isDraggable && !isDroppable
28
+ ? drag.dragRef
29
+ : !isDraggable && isDroppable
30
+ ? drop.dropRef
31
+ //both drag and drop allowed
32
+ : acceptDrops ? drop.dropRef : drag.dragRef
33
+ };
34
+ }
35
+ export function useDragDropContextProvider() {
36
+ const [isDragging, setIsDragging] = useStateEX(false);
37
+ //build context
38
+ const ctx = {
39
+ isDragging, setIsDragging
40
+ };
41
+ return ctx;
42
+ }
43
+ export const DragDropContextProvider = (props) => {
44
+ const provider = useDragDropContextProvider();
45
+ return _jsx(DragDropContext.Provider, { value: provider, children: _jsx(DndProvider, { backend: HTML5Backend, children: props.children }) });
46
+ };
47
+ //# sourceMappingURL=drag-drop-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag-drop-context.js","sourceRoot":"","sources":["../../../src/helpers/drag-drop/drag-drop-context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAqC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,YAAiC,MAAM,iBAAiB,CAAC;AAMhE,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAmB,IAAI,CAAC,CAAC;AAC3E,kCAAkC;AAClC,MAAM,UAAU,0BAA0B;IACtC,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACpD,OAAO,eAAe,CAAC;AAC3B,CAAC;AACD,MAAM,UAAU,kBAAkB,CAGhC,IAGD;IACG,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,CAAC;IAElF,OAAO;QACH,eAAe;QACf,IAAI;QACJ,IAAI;QACJ,WAAW,EAAE,WAAW,IAAI,CAAC,WAAW;YACpC,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,CAAC,WAAW,IAAI,WAAW;gBACzB,CAAC,CAAC,IAAI,CAAC,OAAO;gBACd,4BAA4B;gBAC5B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;KACtD,CAAC;AACN,CAAC;AACD,MAAM,UAAU,0BAA0B;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAEtD,eAAe;IACf,MAAM,GAAG,GAAqB;QAC1B,UAAU,EAAE,aAAa;KAC5B,CAAC;IAGF,OAAO,GAAG,CAAC;AACf,CAAC;AAID,MAAM,CAAC,MAAM,uBAAuB,GAA6D,CAAC,KAAK,EAAE,EAAE;IACvG,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAC5C,KAAC,WAAW,IAAC,OAAO,EAAE,YAAY,YAC7B,KAAK,CAAC,QAAQ,GACL,GACS,CAAC;AAChC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { DragDropContainer } from './drag-drop-container';
2
+ export { DragDropContextProvider, useDragDropContext } from "./drag-drop-context";
3
+ export type { iDraggedItemType } from "./use-draggable";
4
+ export type { iDroppableProps } from "./use-droppable";
@@ -0,0 +1,3 @@
1
+ export { DragDropContainer } from './drag-drop-container';
2
+ export { DragDropContextProvider, useDragDropContext } from "./drag-drop-context";
3
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../src/helpers/drag-drop/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ConnectDragSource } from 'react-dnd';
2
+ export interface iDraggedItemType<DragType extends string> {
3
+ type: DragType;
4
+ }
5
+ export interface iDraggableProps<ItemType extends iDraggedItemType<string>> {
6
+ item: ItemType;
7
+ onBeginDrag?: () => void;
8
+ onEndDrag?: (dropResult: any) => void;
9
+ }
10
+ export declare function useDraggable<ItemType extends iDraggedItemType<string>>(props?: iDraggableProps<ItemType>): {
11
+ isDragging: boolean;
12
+ dragRef: ConnectDragSource;
13
+ };
@@ -0,0 +1,33 @@
1
+ import { useEffect } from 'react';
2
+ import { useDrag } from 'react-dnd';
3
+ import { useDragDropContextInternal } from './drag-drop-context';
4
+ export function useDraggable(props) {
5
+ const { item, onBeginDrag, onEndDrag, } = props || {
6
+ item: {
7
+ type: "~invalid~"
8
+ }
9
+ };
10
+ const dragDropContext = useDragDropContextInternal();
11
+ const [{ isDragging }, dragRef] = useDrag(() => ({
12
+ type: item.type,
13
+ item,
14
+ collect: (monitor) => ({
15
+ isDragging: monitor.isDragging(),
16
+ }),
17
+ end: (item, monitor) => {
18
+ dragDropContext.setIsDragging(false);
19
+ onEndDrag && onEndDrag(monitor.getDropResult());
20
+ },
21
+ }), [item, item.type]);
22
+ useEffect(() => {
23
+ if (isDragging) {
24
+ dragDropContext.setIsDragging(true);
25
+ onBeginDrag && onBeginDrag();
26
+ }
27
+ }, [isDragging, onBeginDrag]);
28
+ return {
29
+ isDragging,
30
+ dragRef,
31
+ };
32
+ }
33
+ //# sourceMappingURL=use-draggable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-draggable.js","sourceRoot":"","sources":["../../../src/helpers/drag-drop/use-draggable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAwC,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAWjE,MAAM,UAAU,YAAY,CAA4C,KAAiC;IAIrG,MAAM,EACF,IAAI,EACJ,WAAW,EACX,SAAS,GACZ,GAAG,KAAK,IAAI;QACT,IAAI,EAAE;YACF,IAAI,EAAE,WAAW;SACpB;KACJ,CAAC;IAEF,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAC;IAErD,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI;QACJ,OAAO,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,CAAC;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;SACnC,CAAC;QACF,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACnB,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACpD,CAAC;KACJ,CAAC,EACF,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,UAAU,EAAE,CAAC;YACb,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,WAAW,IAAI,WAAW,EAAE,CAAC;QACjC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;IAE7B,OAAO;QACH,UAAU;QACV,OAAO;KACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ConnectDropTarget } from 'react-dnd';
2
+ import { iDraggedItemType } from './use-draggable';
3
+ export interface iDroppableProps<DropTypes extends string, ItemTypes extends iDraggedItemType<DropTypes>> {
4
+ acceptTypes: DropTypes[];
5
+ onItemDrop: (item: ItemTypes) => void;
6
+ onHover?: (item: ItemTypes) => void;
7
+ onDrop?: () => void;
8
+ }
9
+ declare function useDroppable<DropType extends string, ItemType extends iDraggedItemType<DropType>>(props?: iDroppableProps<DropType, ItemType>): {
10
+ canDrop: boolean;
11
+ isOver: boolean;
12
+ dropRef: ConnectDropTarget;
13
+ };
14
+ export default useDroppable;
@@ -0,0 +1,28 @@
1
+ import { useDrop } from 'react-dnd';
2
+ function useDroppable(props) {
3
+ const { acceptTypes, onItemDrop, onHover, onDrop, } = props || {
4
+ acceptTypes: [],
5
+ onItemDrop: () => { }
6
+ };
7
+ const [{ canDrop, isOver }, dropRef] = useDrop({
8
+ accept: acceptTypes,
9
+ drop: (item) => {
10
+ onItemDrop(item);
11
+ onDrop === null || onDrop === void 0 ? void 0 : onDrop();
12
+ },
13
+ hover: (item) => {
14
+ onHover === null || onHover === void 0 ? void 0 : onHover(item);
15
+ },
16
+ collect: (monitor) => ({
17
+ canDrop: monitor.canDrop(),
18
+ isOver: monitor.isOver(),
19
+ }),
20
+ });
21
+ return {
22
+ canDrop,
23
+ isOver,
24
+ dropRef,
25
+ };
26
+ }
27
+ export default useDroppable;
28
+ //# sourceMappingURL=use-droppable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-droppable.js","sourceRoot":"","sources":["../../../src/helpers/drag-drop/use-droppable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,OAAO,EAAE,MAAM,WAAW,CAAC;AAU1E,SAAS,YAAY,CAAuE,KAA2C;IAKnI,MAAM,EACF,WAAW,EACX,UAAU,EACV,OAAO,EACP,MAAM,GACT,GAAG,KAAK,IAAI;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;KACxB,CAAC;IAEF,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAC3C,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,CAAC,IAAc,EAAE,EAAE;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QACf,CAAC;QACD,KAAK,EAAE,CAAC,IAAc,EAAE,EAAE;YACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SAC3B,CAAC;KACL,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,MAAM;QACN,OAAO;KACV,CAAC;AACN,CAAC;AAED,eAAe,YAAY,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;