@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,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Input, makeStyles, mergeClasses, Textarea } from '@fluentui/react-components';
3
+ import { isFunction } from '@kwiz/common';
4
+ import React from 'react';
5
+ import { useKWIZFluentContext } from '../helpers/context';
6
+ export const InputEx = (props) => {
7
+ const ctx = useKWIZFluentContext();
8
+ return (_jsx(Input, Object.assign({ appearance: ctx.inputAppearance }, props, { onKeyDown: isFunction(props.onOK) || isFunction(props.onCancel)
9
+ ? e => {
10
+ if (isFunction(props.onOK) && e.key === "Enter")
11
+ props.onOK();
12
+ else if (isFunction(props.onCancel) && e.key === "Escape")
13
+ props.onCancel();
14
+ }
15
+ : undefined })));
16
+ };
17
+ const fullSize = {
18
+ width: '100% !important',
19
+ maxHeight: '100% !important'
20
+ };
21
+ const useStyles = makeStyles({
22
+ fullSizeTextArea: Object.assign(Object.assign({}, fullSize), { ['& > textarea']: fullSize }),
23
+ });
24
+ export const TextAreaEx = (props) => {
25
+ const cssNames = useStyles();
26
+ let css = [];
27
+ if (props.fullSize)
28
+ css.push(cssNames.fullSizeTextArea);
29
+ const textAreaRef = React.useRef(null);
30
+ const recalcHeight = React.useCallback(() => {
31
+ if (textAreaRef.current && props.growNoShrink) {
32
+ if (textAreaRef.current.scrollHeight > textAreaRef.current.clientHeight)
33
+ textAreaRef.current.style.minHeight = textAreaRef.current.scrollHeight + 'px';
34
+ }
35
+ }, [textAreaRef]);
36
+ let style = Object.assign({ height: '100%' }, props.style);
37
+ return (_jsx(Textarea, Object.assign({ ref: textAreaRef, className: mergeClasses(...css) }, props, { style: style, onChange: (e, d) => {
38
+ if (props.onChange)
39
+ props.onChange(e, d);
40
+ recalcHeight();
41
+ } })));
42
+ };
43
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/controls/input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAgB,KAAK,EAAc,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAiB,MAAM,4BAA4B,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,MAAM,CAAC,MAAM,OAAO,GAA6D,CAAC,KAAK,EAAE,EAAE;IACvF,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,CACH,KAAC,KAAK,kBAAC,UAAU,EAAE,GAAG,CAAC,eAAe,IAAM,KAAK,IAC7C,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC,EAAE;gBACF,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;oBAAE,KAAK,CAAC,IAAI,EAAE,CAAC;qBACzD,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;oBAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChF,CAAC;YACD,CAAC,CAAC,SAAS,IAEjB,CACL,CAAC;AACN,CAAC,CAAA;AAED,MAAM,QAAQ,GAAiB;IAC3B,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,iBAAiB;CAC/B,CAAC;AACF,MAAM,SAAS,GAAG,UAAU,CAAC;IACzB,gBAAgB,kCACT,QAAQ,KACX,CAAC,cAAc,CAAC,EAAE,QAAQ,GAC7B;CACJ,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,UAAU,GAAqE,CAAC,KAAK,EAAE,EAAE;IAClG,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAsB,IAAI,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,WAAW,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY;gBACnE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;QACtF,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAI,KAAK,mBAA0B,MAAM,EAAE,MAAM,IAAK,KAAK,CAAC,KAAK,CAAE,CAAC;IACpE,OAAO,CACH,KAAC,QAAQ,kBAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,IAAM,KAAK,IAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrG,IAAI,KAAK,CAAC,QAAQ;gBAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,YAAY,EAAE,CAAC;QACnB,CAAC,IAAI,CACR,CAAC;AACN,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ interface IProps<ItemType> {
2
+ /** you cannot have a menu with trigger in overflow items. put those in groupWrapper controls before/after rendering children. */
3
+ items: ItemType[];
4
+ getKey: (item: ItemType, index: number) => string;
5
+ getPriority?: (item: ItemType, index: number) => number;
6
+ renderItem: (item: ItemType, index: number, overflow?: boolean) => JSX.Element;
7
+ groupWrapper?: (children: React.ReactNode) => JSX.Element;
8
+ menuRef?: React.RefObject<HTMLButtonElement>;
9
+ menuWrapper?: (children: React.ReactNode) => JSX.Element;
10
+ menuTrigger?: (ref: React.RefObject<HTMLButtonElement>, overflowCount: number) => JSX.Element;
11
+ className?: string;
12
+ }
13
+ export declare const KWIZOverflow: <ItemType>(props: IProps<ItemType>) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Menu, MenuButton, MenuItem, MenuList, MenuPopover, MenuTrigger, Overflow, OverflowItem, useIsOverflowItemVisible, useOverflowMenu } from "@fluentui/react-components";
3
+ import { MoreHorizontalFilled } from "@fluentui/react-icons";
4
+ import { isNumber } from '@kwiz/common';
5
+ const OverflowMenu = (props) => {
6
+ const { ref, isOverflowing, overflowCount } = useOverflowMenu();
7
+ if (!isOverflowing) {
8
+ return null;
9
+ }
10
+ let menu = _jsxs(Menu, { children: [_jsx(MenuTrigger, { disableButtonEnhancement: true, children: props.menuTrigger
11
+ ? props.menuTrigger(props.menuRef || ref, overflowCount)
12
+ : _jsx(MenuButton, { icon: _jsx(MoreHorizontalFilled, {}), ref: props.menuRef || ref, "aria-label": "More items", appearance: "subtle" }) }), _jsx(MenuPopover, { children: _jsx(MenuList, { children: props.items.map((item, index) => (_jsx(OverflowMenuItem, Object.assign({}, props, { item: item, index: index }), props.getKey(item, index)))) }) })] });
13
+ return (props.menuWrapper
14
+ ? props.menuWrapper(menu)
15
+ : menu);
16
+ };
17
+ const OverflowMenuItem = (props) => {
18
+ const isVisible = useIsOverflowItemVisible(props.getKey(props.item, props.index));
19
+ if (isVisible) {
20
+ return null;
21
+ }
22
+ return (_jsx(MenuItem, { children: props.renderItem(props.item, props.index, true) }, props.getKey(props.item, props.index)));
23
+ };
24
+ export const KWIZOverflow = (props) => {
25
+ let content = [];
26
+ let addMenu = () => {
27
+ if (menuIndex >= 0)
28
+ content.splice(menuIndex, 0, _jsx(OverflowMenu, Object.assign({}, props), "overflow_menu"));
29
+ else
30
+ content.push(_jsx(OverflowMenu, Object.assign({}, props), "overflow_menu"));
31
+ };
32
+ let menuIndex = -1;
33
+ props.items.forEach((item, index) => {
34
+ //add the menu before the first item with priority
35
+ let priority = props.getPriority ? props.getPriority(item, index) : undefined;
36
+ if (isNumber(priority) && priority > 0)
37
+ menuIndex = index;
38
+ content.push(_jsx(OverflowItem, { id: props.getKey(item, index), priority: priority, children: props.renderItem(item, index) }, props.getKey(item, index)));
39
+ });
40
+ addMenu();
41
+ return (_jsx(Overflow, { minimumVisible: 2, padding: 60, children: _jsx("div", { style: { overflow: "hidden" }, className: props.className, children: props.groupWrapper
42
+ ? props.groupWrapper(content)
43
+ : content }) }, `overflow_${props.items.length}`));
44
+ };
45
+ //# sourceMappingURL=kwizoverflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kwizoverflow.js","sourceRoot":"","sources":["../../src/controls/kwizoverflow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ export interface iListItem {
3
+ key: string | number;
4
+ media?: JSX.Element | string;
5
+ header: string;
6
+ headerMedia?: JSX.Element | string;
7
+ content?: string | JSX.Element | (string | JSX.Element)[];
8
+ onClickOnMedia?: boolean;
9
+ onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
10
+ selected?: boolean;
11
+ }
12
+ interface IProps {
13
+ selectable?: boolean;
14
+ items: iListItem[];
15
+ showAllHeaderMedia?: boolean;
16
+ /** allow multiline content */
17
+ multiline?: boolean;
18
+ dark?: boolean;
19
+ }
20
+ export declare const ListEx: (props: IProps) => import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { makeStyles, tokens } from '@fluentui/react-components';
3
+ import { LOGO_BLUE_SQUARE, LOGO_WHITE_SQUARE, isNullOrUndefined, isString } from '@kwiz/common';
4
+ import { KnownClassNames, mixins } from '../styles/styles';
5
+ import { Horizontal } from './horizontal';
6
+ import { Section } from './section';
7
+ import { Vertical } from './vertical';
8
+ const useStyles = makeStyles({
9
+ list: {
10
+ rowGap: 0
11
+ },
12
+ listItem: {
13
+ padding: tokens.spacingVerticalS,
14
+ ':hover': {
15
+ backgroundColor: tokens.colorNeutralBackground1Hover
16
+ }
17
+ },
18
+ listItemSelected: {
19
+ backgroundColor: tokens.colorNeutralBackground1Selected
20
+ },
21
+ media: {
22
+ width: '32px',
23
+ fontSize: tokens.fontSizeBase600,
24
+ display: 'flex',
25
+ flexDirection: 'column',
26
+ justifyContent: 'center'
27
+ },
28
+ image: {
29
+ width: tokens.lineHeightBase600,
30
+ height: tokens.lineHeightBase600,
31
+ backgroundPosition: 'center center',
32
+ backgroundSize: 'cover',
33
+ borderRadius: tokens.borderRadiusCircular,
34
+ border: `1px solid ${tokens.colorNeutralStroke1}`
35
+ },
36
+ listItemBody: {
37
+ rowGap: 0,
38
+ width: 'calc(100% - 44px)'
39
+ },
40
+ listItemHeader: mixins.ellipsis,
41
+ listItemContent: Object.assign(Object.assign({}, mixins.ellipsis), { fontSize: tokens.fontSizeBase200 }),
42
+ listItemMedia: Object.assign(Object.assign({}, mixins.ellipsis), { maxWidth: '20%', '& svg': {
43
+ height: tokens.fontSizeBase300
44
+ }, '& button': {
45
+ padding: 0,
46
+ minWidth: 0,
47
+ minHeight: 0,
48
+ height: '14px'
49
+ } }),
50
+ listItemMediaNoTrim: {
51
+ overflow: 'visible',
52
+ maxWidth: 'fit-content'
53
+ },
54
+ listItemMultilineContent: {
55
+ whiteSpace: 'pre-line'
56
+ }
57
+ });
58
+ export const ListEx = (props) => {
59
+ const cssNames = useStyles();
60
+ const listItemElm = (item) => _jsxs(Horizontal, { css: [cssNames.listItem, item.selected && cssNames.listItemSelected], onClick: item.onClick, children: [item.media && _jsx(Section, { css: [cssNames.media], onClick: (e) => {
61
+ if (!item.onClickOnMedia)
62
+ e.stopPropagation(); //media may have its on onclick
63
+ }, children: isString(item.media)
64
+ ? _jsx("div", { className: cssNames.image, style: { backgroundImage: `url('${encodeURI(item.media)}'), url('${props.dark ? LOGO_WHITE_SQUARE : LOGO_BLUE_SQUARE}')` } })
65
+ : item.media }), _jsxs(Vertical, { main: true, css: [cssNames.listItemBody], children: [_jsxs(Horizontal, { main: true, children: [_jsx(Section, { main: true, css: [cssNames.listItemHeader], children: item.header }), item.headerMedia && _jsx(Section, { onClick: (e) => {
66
+ e.stopPropagation(); //media may have its on onclick
67
+ }, css: [cssNames.listItemMedia, props.showAllHeaderMedia && cssNames.listItemMediaNoTrim], children: item.headerMedia })] }), !isNullOrUndefined(item.content)
68
+ ? (Array.isArray(item.content) ? item.content : [item.content]).map((c, idx) => isNullOrUndefined(c) ? undefined : _jsx(Section, { css: [cssNames.listItemContent, props.multiline ? cssNames.listItemMultilineContent : undefined], children: c }, idx))
69
+ : undefined] })] }, item.key);
70
+ return (_jsx(Vertical, { css: [cssNames.list, KnownClassNames.list], children: props.items.map(item => listItemElm(item)) }));
71
+ };
72
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/controls/list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ }
4
+ export declare const Loading: React.FunctionComponent<IProps>;
5
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { LOGO_ANIM_SMALL } from '@kwiz/common';
3
+ import { Centered } from './centered';
4
+ export const Loading = (props) => {
5
+ return (_jsx(Centered, { children: _jsx("img", { src: LOGO_ANIM_SMALL, alt: "loading", style: { width: '15vw' } }) }));
6
+ };
7
+ //# sourceMappingURL=loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/controls/loading.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,MAAM,CAAC,MAAM,OAAO,GAAoC,CAAC,KAAK,EAAE,EAAE;IAC9D,OAAO,CACH,KAAC,QAAQ,cAAC,cAAK,GAAG,EAAE,eAAe,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,GAAW,CAC7F,CAAC;AACN,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { IPrompterProps } from './prompt';
3
+ interface IProps {
4
+ step?: number;
5
+ max?: number;
6
+ /** do not wrap in a dialog */
7
+ contentOnly?: boolean;
8
+ cancelText?: string;
9
+ onCancel?: () => void;
10
+ label?: string;
11
+ }
12
+ export declare const PleaseWait: React.FunctionComponent<React.PropsWithChildren<IProps>>;
13
+ export declare const PleaseWaitPrompt: (props: {
14
+ message: string;
15
+ step?: number;
16
+ max?: number;
17
+ }) => IPrompterProps;
18
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Field, ProgressBar } from '@fluentui/react-components';
3
+ import { isFunction } from '@kwiz/common';
4
+ import { Prompter } from './prompt';
5
+ export const PleaseWait = (props) => {
6
+ const field = _jsx(Field, { validationMessage: props.label || "please wait...", validationState: "none", children: _jsx(ProgressBar, { value: props.step, max: props.max }) });
7
+ return (props.contentOnly
8
+ ? field
9
+ : _jsx(Prompter, { hideOk: true, hideCancel: !isFunction(props.onCancel), cancelButtonText: props.cancelText || 'cancel', onCancel: props.onCancel, children: field }));
10
+ };
11
+ export const PleaseWaitPrompt = (props) => ({
12
+ //title: 'please wait...',
13
+ hideOk: true, hideCancel: true,
14
+ children: _jsx(Field, { validationMessage: props.message, validationState: "none", children: _jsx(ProgressBar, { value: props.step, max: props.max }) })
15
+ });
16
+ //# sourceMappingURL=please-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"please-wait.js","sourceRoot":"","sources":["../../src/controls/please-wait.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAkB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAUpD,MAAM,CAAC,MAAM,UAAU,GAA6D,CAAC,KAAK,EAAE,EAAE;IAC1F,MAAM,KAAK,GAAG,KAAC,KAAK,IAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAAE,eAAe,EAAC,MAAM,YAC3F,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI,GAC9C,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,WAAW;QACrB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,QACd,UAAU,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EACvC,gBAAgB,EAAE,KAAK,CAAC,UAAU,IAAI,QAAQ,EAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,YAAG,KAAK,GAAY,CACnD,CAAC;AACN,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAwD,EAAkB,EAAE,CAAC,CAAC;IAC3G,0BAA0B;IAC1B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;IAC9B,QAAQ,EAAE,KAAC,KAAK,IAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAC,MAAM,YACrE,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI,GAC9C;CACX,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { DialogModalType } from '@fluentui/react-components';
2
+ import React from 'react';
3
+ import { ButtonEXProps } from './button';
4
+ export interface IPrompterProps {
5
+ hideOk?: boolean;
6
+ hideCancel?: boolean;
7
+ showCancelInTitle?: boolean;
8
+ /** return false to prevent closing the dialog. */
9
+ onOK?: () => Promise<void> | void;
10
+ onCancel?: () => void;
11
+ okButtonText?: string;
12
+ cancelButtonText?: string;
13
+ title?: string | JSX.Element;
14
+ okButtonProps?: Partial<ButtonEXProps>;
15
+ cancelButtonProps?: Partial<ButtonEXProps>;
16
+ children?: JSX.Element;
17
+ /** allow to epand the dialog to be wider */
18
+ maxWidth?: number | string;
19
+ /** additional button actions at the bottom */
20
+ actions?: JSX.Element[];
21
+ /** dialog title actions */
22
+ titleActions?: JSX.Element[];
23
+ /** specify a specific mount node for this dialog */
24
+ mountNode?: HTMLElement | null | {
25
+ element?: HTMLElement | null;
26
+ className?: string;
27
+ };
28
+ modalType?: DialogModalType;
29
+ /** do not fire ok/cancel on esc/enter press */
30
+ disableKeyboardActions?: boolean;
31
+ }
32
+ export declare const Prompter: React.ForwardRefExoticComponent<IPrompterProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Dialog, DialogActions, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger } from '@fluentui/react-components';
3
+ import { DismissRegular } from '@fluentui/react-icons';
4
+ import { isNotEmptyArray, isNullOrEmptyString } from '@kwiz/common';
5
+ import React from 'react';
6
+ import { useKWIZFluentContext } from '../helpers/context';
7
+ import { useKeyDown } from '../helpers/hooks';
8
+ import { ButtonEX, ButtonEXSecondary } from './button';
9
+ export const Prompter = React.forwardRef((props, ref) => {
10
+ const ctx = useKWIZFluentContext();
11
+ const disableKeyboardActions = React.useRef(props.disableKeyboardActions);
12
+ disableKeyboardActions.current = props.disableKeyboardActions;
13
+ let okProps = Object.assign(Object.assign({}, (props.okButtonProps || {})), { onClick: () => props.onOK(), title: props.okButtonText || 'yes' });
14
+ let cancelProps = Object.assign(Object.assign({}, (props.cancelButtonProps || {})), { onClick: () => props.onCancel(), title: props.cancelButtonText || 'no' });
15
+ useKeyDown({
16
+ onEnter: () => !disableKeyboardActions.current && props.onOK(),
17
+ onEscape: () => !disableKeyboardActions.current && props.onCancel(),
18
+ });
19
+ const actions = [];
20
+ if (!props.hideOk)
21
+ actions.push(_jsx(DialogTrigger, { disableButtonEnhancement: true, children: _jsx(ButtonEXSecondary, Object.assign({}, okProps)) }, 'ok'));
22
+ if (!props.hideCancel)
23
+ actions.push(_jsx(DialogTrigger, { disableButtonEnhancement: true, children: _jsx(ButtonEXSecondary, Object.assign({}, cancelProps)) }, 'cancel'));
24
+ if (isNotEmptyArray(props.actions))
25
+ actions.push(...props.actions);
26
+ const titleActions = props.titleActions ? [...props.titleActions] : [];
27
+ if (props.showCancelInTitle)
28
+ titleActions.push(_jsx(DialogTrigger, { disableButtonEnhancement: true, children: _jsx(ButtonEX, Object.assign({}, cancelProps, { icon: _jsx(DismissRegular, {}) })) }, 'cancel'));
29
+ return (_jsx(Dialog, { open: true, modalType: props.modalType, children: _jsx(DialogSurface, { mountNode: props.mountNode || ctx.mountNode, style: !isNullOrEmptyString(props.maxWidth) ? { maxWidth: props.maxWidth } : undefined, children: _jsxs(DialogBody, { children: [(!isNullOrEmptyString(props.title) || isNotEmptyArray(titleActions)) && _jsx(DialogTitle, { action: titleActions, children: props.title }), _jsx(DialogContent, { ref: ref, children: props.children }), isNotEmptyArray(actions) && _jsx(DialogActions, { fluid: actions.length > 2, children: actions })] }) }) }));
30
+ });
31
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/controls/prompt.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { InputProps } from '@fluentui/react-components';
2
+ import React from 'react';
3
+ interface IProps extends InputProps {
4
+ main?: boolean;
5
+ delay?: number;
6
+ /** if changing the value in the caller - change this prop to reset */
7
+ resetValue?: string;
8
+ onChangeDeferred?: (newValue: string) => void;
9
+ onChangeSync?: (newValue: string) => void;
10
+ }
11
+ /** value is set on first load. to change the value after it was first set - change the compoenet's key. */
12
+ export declare const Search: React.FunctionComponent<React.PropsWithChildren<IProps>>;
13
+ export {};
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Input, makeStyles } from '@fluentui/react-components';
3
+ import { DismissRegular, SearchRegular } from "@fluentui/react-icons";
4
+ import { debounce, isFunction, isNullOrEmptyString } from '@kwiz/common';
5
+ import React, { useState } from 'react';
6
+ import { GetLogger } from '../_modules/config';
7
+ import { useStateEX } from '../helpers/hooks';
8
+ import { mixins } from '../styles/styles';
9
+ const logger = GetLogger("Search");
10
+ const useStyles = makeStyles({
11
+ main: mixins.main,
12
+ clickable: mixins.clickable,
13
+ });
14
+ /** value is set on first load. to change the value after it was first set - change the compoenet's key. */
15
+ export const Search = (props) => {
16
+ const cssNames = useStyles();
17
+ const [resetKey, setResetKey] = useState(1);
18
+ let delay = props.delay || 1;
19
+ //cannot call debounce every render, since it won't be the same debounced instance...
20
+ var notifyParent = React.useMemo(() => debounce(v => {
21
+ logger.log(`Set: ${v}`);
22
+ props.onChangeDeferred(v);
23
+ }, delay * 1000), [delay]);
24
+ let [value, setValue] = useStateEX(props.value, {
25
+ onChange: newValue => {
26
+ if (isFunction(props.onChangeSync))
27
+ props.onChangeSync(newValue);
28
+ if (isFunction(props.onChangeDeferred))
29
+ notifyParent(newValue);
30
+ return newValue;
31
+ }
32
+ });
33
+ //once props change, reset this control value to match
34
+ React.useEffect(() => {
35
+ setValue(props.resetValue);
36
+ //todo: bug: setting value does not sync into the text box
37
+ setResetKey(resetKey + 1);
38
+ }, [props.resetValue]);
39
+ return (_jsx(Input, Object.assign({}, props, { value: value, onChange: (e, data) => setValue(data.value), className: props.main ? cssNames.main : undefined, contentBefore: !isNullOrEmptyString(value) ? undefined : _jsx(SearchRegular, {}), contentAfter: isNullOrEmptyString(value)
40
+ ? undefined
41
+ : _jsx(DismissRegular, { className: cssNames.clickable, onClick: () => {
42
+ setValue("");
43
+ //todo: bug: setting value does not sync into the text box
44
+ setResetKey(resetKey + 1);
45
+ } }) }), resetKey));
46
+ };
47
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/controls/search.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface ISectionProps {
3
+ main?: boolean;
4
+ css?: string[];
5
+ style?: React.CSSProperties;
6
+ onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
7
+ rootProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
8
+ title?: string;
9
+ left?: boolean;
10
+ right?: boolean;
11
+ }
12
+ export declare const Section: React.ForwardRefExoticComponent<ISectionProps & {
13
+ children?: React.ReactNode | undefined;
14
+ } & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { makeStyles, mergeClasses, tokens } from '@fluentui/react-components';
3
+ import { isFunction, isNotEmptyArray } from '@kwiz/common';
4
+ import React from 'react';
5
+ import { KnownClassNames, mixins } from '../styles/styles';
6
+ const useStyles = makeStyles({
7
+ main: mixins.main,
8
+ clickable: mixins.clickable,
9
+ left: Object.assign(Object.assign({}, mixins.float), { float: "left", marginRight: tokens.spacingHorizontalXXL }),
10
+ right: Object.assign(Object.assign({}, mixins.float), { float: "right", marginRight: tokens.spacingHorizontalXXL })
11
+ });
12
+ export const Section = React.forwardRef((props, ref) => {
13
+ const cssNames = useStyles();
14
+ let css = [KnownClassNames.section];
15
+ if (props.main)
16
+ css.push(cssNames.main);
17
+ if (isFunction(props.onClick))
18
+ css.push(cssNames.clickable);
19
+ if (props.left)
20
+ css.push(cssNames.left);
21
+ else if (props.right)
22
+ css.push(cssNames.right);
23
+ if (isNotEmptyArray(props.css))
24
+ css.push(...props.css);
25
+ return (_jsx("div", Object.assign({ ref: ref }, (props.rootProps || {}), { title: props.title, style: props.style, className: mergeClasses(...css), onClick: props.onClick, children: props.children })));
26
+ });
27
+ //# sourceMappingURL=section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/controls/section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,SAAS,GAAG,UAAU,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,IAAI,kCACG,MAAM,CAAC,KAAK,KACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,CAAC,oBAAoB,GAC3C;IACD,KAAK,kCACE,MAAM,CAAC,KAAK,KACf,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,CAAC,oBAAoB,GAC3C;CACJ,CAAC,CAAC;AAcH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAyD,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC3G,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,GAAG,GAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACnC,IAAI,KAAK,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO,CACH,4BAAK,GAAG,EAAE,GAAG,IAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAC9E,SAAS,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,EAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,YACrB,KAAK,CAAC,QAAQ,IACb,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ size: number;
4
+ }
5
+ export declare const YouTubeIcon: React.FunctionComponent<React.PropsWithChildren<IProps>>;
6
+ export declare const MermaidIcon: React.FunctionComponent<React.PropsWithChildren<IProps>>;
7
+ export declare const TeamsIcon: React.FunctionComponent<React.PropsWithChildren<IProps>>;
8
+ export declare const SVGLinkIcon: (props: {
9
+ size: number;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const SVGSplitIcon: (props: {
12
+ size: number;
13
+ }) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const HubSpotIcon: (props: {
15
+ size: number;
16
+ }) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const GetSVGLinkIcon: (props: {
18
+ size: number;
19
+ }) => string;
20
+ export declare const GetSVGSplitIcon: (props: {
21
+ size: number;
22
+ }) => string;
23
+ export {};
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { tokens } from '@fluentui/react-components';
3
+ export const YouTubeIcon = (props) => {
4
+ return (_jsx("svg", { height: `${props.size}px`, width: `${props.size}px`, version: "1.1", id: "Layer_1", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: "0 0 461.001 461.001", xmlSpace: "preserve", children: _jsx("g", { children: _jsx("path", { style: { fill: "#F61C0D" }, d: "M365.257,67.393H95.744C42.866,67.393,0,110.259,0,163.137v134.728\nc0,52.878,42.866,95.744,95.744,95.744h269.513c52.878,0,95.744-42.866,95.744-95.744V163.137\nC461.001,110.259,418.135,67.393,365.257,67.393z M300.506,237.056l-126.06,60.123c-3.359,1.602-7.239-0.847-7.239-4.568V168.607\nc0-3.774,3.982-6.22,7.348-4.514l126.06,63.881C304.363,229.873,304.298,235.248,300.506,237.056z" }) }) }));
5
+ };
6
+ export const MermaidIcon = (props) => {
7
+ return (_jsxs("svg", { height: `${props.size}px`, width: `${props.size}px`, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 490.16 490.16", children: [_jsx("defs", { children: _jsx("style", { children: `.mm-cls-1{fill:#ff3670;}.mm-cls-2{fill:#fff;}` }) }), _jsx("rect", { className: "mm-cls-1", width: "490.16", height: "490.16", rx: "84.61" }), _jsx("path", { className: "mm-cls-2", d: "M407.48,111.18A165.2,165.2,0,0,0,245.08,220,165.2,165.2,0,0,0,82.68,111.18a165.5,165.5,0,0,0,72.06,143.64,88.81,88.81,0,0,1,38.53,73.45v50.86H296.9V328.27a88.8,88.8,0,0,1,38.52-73.45,165.41,165.41,0,0,0,72.06-143.64Z" }), _jsx("path", { className: "mm-cls-2", d: "M160.63,328.27a56.09,56.09,0,0,0-24.27-46.49,198.74,198.74,0,0,1-28.54-23.66A196.87,196.87,0,0,1,82.53,227V379.13h78.1Z" }), _jsx("path", { className: "mm-cls-2", d: "M329.53,328.27a56.09,56.09,0,0,1,24.27-46.49,198.74,198.74,0,0,0,28.54-23.66A196.87,196.87,0,0,0,407.63,227V379.13h-78.1Z" })] }));
8
+ };
9
+ export const TeamsIcon = (props) => {
10
+ return (_jsxs("svg", { height: `${props.size}px`, width: `${props.size}px`, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 2228.833 2073.333", children: [_jsx("path", { fill: "#5059C9", d: "M1554.637,777.5h575.713c54.391,0,98.483,44.092,98.483,98.483c0,0,0,0,0,0v524.398 c0,199.901-162.051,361.952-361.952,361.952h0h-1.711c-199.901,0.028-361.975-162-362.004-361.901c0-0.017,0-0.034,0-0.052V828.971 C1503.167,800.544,1526.211,777.5,1554.637,777.5L1554.637,777.5z" }), _jsx("circle", { fill: "#5059C9", cx: "1943.75", cy: "440.583", r: "233.25" }), _jsx("circle", { fill: "#7B83EB", cx: "1218.083", cy: "336.917", r: "336.917" }), _jsx("path", { fill: "#7B83EB", d: "M1667.323,777.5H717.01c-53.743,1.33-96.257,45.931-95.01,99.676v598.105 c-7.505,322.519,247.657,590.16,570.167,598.053c322.51-7.893,577.671-275.534,570.167-598.053V877.176 C1763.579,823.431,1721.066,778.83,1667.323,777.5z" }), _jsx("path", { opacity: ".1", d: "M1244,777.5v838.145c-0.258,38.435-23.549,72.964-59.09,87.598 c-11.316,4.787-23.478,7.254-35.765,7.257H667.613c-6.738-17.105-12.958-34.21-18.142-51.833 c-18.144-59.477-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1244z" }), _jsx("path", { opacity: ".2", d: "M1192.167,777.5v889.978c-0.002,12.287-2.47,24.449-7.257,35.765 c-14.634,35.541-49.163,58.833-87.598,59.09H691.975c-8.812-17.105-17.105-34.21-24.362-51.833 c-7.257-17.623-12.958-34.21-18.142-51.833c-18.144-59.476-27.402-121.307-27.472-183.49V877.02 c-1.246-53.659,41.198-98.19,94.855-99.52H1192.167z" }), _jsx("path", { opacity: ".2", d: "M1192.167,777.5v786.312c-0.395,52.223-42.632,94.46-94.855,94.855h-447.84 c-18.144-59.476-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1192.167z" }), _jsx("path", { opacity: ".2", d: "M1140.333,777.5v786.312c-0.395,52.223-42.632,94.46-94.855,94.855H649.472 c-18.144-59.476-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1140.333z" }), _jsx("path", { opacity: ".1", d: "M1244,509.522v163.275c-8.812,0.518-17.105,1.037-25.917,1.037 c-8.812,0-17.105-0.518-25.917-1.037c-17.496-1.161-34.848-3.937-51.833-8.293c-104.963-24.857-191.679-98.469-233.25-198.003 c-7.153-16.715-12.706-34.071-16.587-51.833h258.648C1201.449,414.866,1243.801,457.217,1244,509.522z" }), _jsx("path", { opacity: ".2", d: "M1192.167,561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293 c-104.963-24.857-191.679-98.469-233.25-198.003h190.228C1149.616,466.699,1191.968,509.051,1192.167,561.355z" }), _jsx("path", { opacity: ".2", d: "M1192.167,561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293 c-104.963-24.857-191.679-98.469-233.25-198.003h190.228C1149.616,466.699,1191.968,509.051,1192.167,561.355z" }), _jsx("path", { opacity: ".2", d: "M1140.333,561.355v103.148c-104.963-24.857-191.679-98.469-233.25-198.003 h138.395C1097.783,466.699,1140.134,509.051,1140.333,561.355z" }), _jsxs("linearGradient", { id: "a", gradientUnits: "userSpaceOnUse", x1: "198.099", y1: "1683.0726", x2: "942.2344", y2: "394.2607", gradientTransform: "matrix(1 0 0 -1 0 2075.3333)", children: [_jsx("stop", { offset: "0", stopColor: "#5a62c3" }), _jsx("stop", { offset: ".5", stopColor: "#4d55bd" }), _jsx("stop", { offset: "1", stopColor: "#3940ab" })] }), _jsx("path", { fill: "url(#a)", d: "M95.01,466.5h950.312c52.473,0,95.01,42.538,95.01,95.01v950.312c0,52.473-42.538,95.01-95.01,95.01 H95.01c-52.473,0-95.01-42.538-95.01-95.01V561.51C0,509.038,42.538,466.5,95.01,466.5z" }), _jsx("path", { fill: "#FFF", d: "M820.211,828.193H630.241v517.297H509.211V828.193H320.123V727.844h500.088V828.193z" })] }));
11
+ };
12
+ export const SVGLinkIcon = (props) => {
13
+ return (_jsx("svg", { fill: tokens.colorNeutralForeground1, height: `${props.size}px`, width: `${props.size}px`, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 490.16 490.16", children: _jsx("g", { children: _jsxs("g", { children: [_jsx("path", { d: "M409.657,32.474c-43.146-43.146-113.832-43.146-156.978,0l-84.763,84.762c29.07-8.262,60.589-6.12,88.129,6.732\n\t\t\tl44.063-44.064c17.136-17.136,44.982-17.136,62.118,0c17.136,17.136,17.136,44.982,0,62.118l-55.386,55.386l-36.414,36.414\n\t\t\tc-17.136,17.136-44.982,17.136-62.119,0l-47.43,47.43c11.016,11.017,23.868,19.278,37.332,24.48\n\t\t\tc36.415,14.382,78.643,8.874,110.467-16.219c3.06-2.447,6.426-5.201,9.18-8.262l57.222-57.222l34.578-34.578\n\t\t\tC453.109,146.306,453.109,75.926,409.657,32.474z" }), _jsx("path", { d: "M184.135,320.114l-42.228,42.228c-17.136,17.137-44.982,17.137-62.118,0c-17.136-17.136-17.136-44.981,0-62.118\n\t\t\tl91.8-91.799c17.136-17.136,44.982-17.136,62.119,0l47.43-47.43c-11.016-11.016-23.868-19.278-37.332-24.48\n\t\t\tc-38.25-15.3-83.232-8.262-115.362,20.502c-1.53,1.224-3.06,2.754-4.284,3.978l-91.8,91.799\n\t\t\tc-43.146,43.146-43.146,113.832,0,156.979c43.146,43.146,113.832,43.146,156.978,0l82.927-83.845\n\t\t\tC230.035,335.719,220.243,334.496,184.135,320.114z" })] }) }) }));
14
+ };
15
+ export const SVGSplitIcon = (props) => {
16
+ return _jsx("svg", { fill: tokens.colorNeutralForeground1, height: `${props.size}px`, width: `${props.size}px`, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 17 17", children: _jsx("path", { d: "M10.646 13.146l0.707 0.707-2.853 2.854-2.854-2.854 0.707-0.707 1.647 1.647v-3.772h1v3.772l1.646-1.647zM8 2.207v3.772h1v-3.772l1.646 1.646 0.707-0.707-2.853-2.853-2.854 2.853 0.707 0.707 1.647-1.646zM0 8v1h17v-1h-17z" }) });
17
+ };
18
+ export const HubSpotIcon = (props) => {
19
+ return _jsx("svg", { fill: tokens.colorNeutralForeground1, height: `${props.size}px`, width: `${props.size}px`, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: _jsx("path", { d: "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z" }) });
20
+ };
21
+ //get icons as html
22
+ export const GetSVGLinkIcon = (props) => {
23
+ return (`<svg fill="${tokens.colorNeutralForeground1}" height="${props.size}px" width="${props.size}px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490.16 490.16">
24
+ <g>
25
+ <g>
26
+ <path d="M409.657,32.474c-43.146-43.146-113.832-43.146-156.978,0l-84.763,84.762c29.07-8.262,60.589-6.12,88.129,6.732
27
+ l44.063-44.064c17.136-17.136,44.982-17.136,62.118,0c17.136,17.136,17.136,44.982,0,62.118l-55.386,55.386l-36.414,36.414
28
+ c-17.136,17.136-44.982,17.136-62.119,0l-47.43,47.43c11.016,11.017,23.868,19.278,37.332,24.48
29
+ c36.415,14.382,78.643,8.874,110.467-16.219c3.06-2.447,6.426-5.201,9.18-8.262l57.222-57.222l34.578-34.578
30
+ C453.109,146.306,453.109,75.926,409.657,32.474z"/>
31
+ <path d="M184.135,320.114l-42.228,42.228c-17.136,17.137-44.982,17.137-62.118,0c-17.136-17.136-17.136-44.981,0-62.118
32
+ l91.8-91.799c17.136-17.136,44.982-17.136,62.119,0l47.43-47.43c-11.016-11.016-23.868-19.278-37.332-24.48
33
+ c-38.25-15.3-83.232-8.262-115.362,20.502c-1.53,1.224-3.06,2.754-4.284,3.978l-91.8,91.799
34
+ c-43.146,43.146-43.146,113.832,0,156.979c43.146,43.146,113.832,43.146,156.978,0l82.927-83.845
35
+ C230.035,335.719,220.243,334.496,184.135,320.114z"/>
36
+ </g>
37
+ </g>
38
+ </svg>`);
39
+ };
40
+ export const GetSVGSplitIcon = (props) => {
41
+ return `<svg fill="${tokens.colorNeutralForeground1}" height="${props.size}px" width="${props.size}px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17">
42
+ <path d="M10.646 13.146l0.707 0.707-2.853 2.854-2.854-2.854 0.707-0.707 1.647 1.647v-3.772h1v3.772l1.646-1.647zM8 2.207v3.772h1v-3.772l1.646 1.646 0.707-0.707-2.853-2.853-2.854 2.853 0.707 0.707 1.647-1.646zM0 8v1h17v-1h-17z" />
43
+ </svg>`;
44
+ };
45
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/controls/svg.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ /** toolbar buttons that may render or render in overflow */
4
+ buttonGroups: {
5
+ elm: JSX.Element;
6
+ overflowElement?: JSX.Element;
7
+ }[][];
8
+ /** side buttons that will always render, never overflow */
9
+ sideButtons?: JSX.Element;
10
+ }
11
+ export declare const ToolbarEX: React.FunctionComponent<IProps>;
12
+ export {};
@@ -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"}