@vuu-ui/vuu-popups 0.13.25 → 0.13.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1,12 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var useDialog = require('./dialog/useDialog.js');
4
- var DialogHeader = require('./dialog-header/DialogHeader.js');
5
4
  var Popup = require('./popup/Popup.js');
6
5
  var useAnchoredPosition = require('./popup/useAnchoredPosition.js');
7
6
  var PopupMenu = require('./popup-menu/PopupMenu.js');
8
7
  var Portal = require('./portal/Portal.js');
9
- var Prompt = require('./prompt/Prompt.js');
10
8
  var Tooltip = require('./tooltip/Tooltip.js');
11
9
  var useTooltip = require('./tooltip/useTooltip.js');
12
10
  var NotificationsProvider = require('./notifications/NotificationsProvider.js');
@@ -17,12 +15,10 @@ var ToastNotification = require('./notifications/ToastNotification.js');
17
15
  exports.DialogProvider = useDialog.DialogProvider;
18
16
  exports.useDialog = useDialog.useDialog;
19
17
  exports.useDialogContext = useDialog.useDialogContext;
20
- exports.DialogHeader = DialogHeader.DialogHeader;
21
18
  exports.PopupComponent = Popup.PopupComponent;
22
19
  exports.useAnchoredPosition = useAnchoredPosition.useAnchoredPosition;
23
20
  exports.PopupMenu = PopupMenu.PopupMenu;
24
21
  exports.Portal = Portal.Portal;
25
- exports.Prompt = Prompt.Prompt;
26
22
  exports.Tooltip = Tooltip.Tooltip;
27
23
  exports.useTooltip = useTooltip.useTooltip;
28
24
  exports.NotificationsProvider = NotificationsProvider.NotificationsProvider;
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
package/esm/index.js CHANGED
@@ -1,10 +1,8 @@
1
1
  export { DialogProvider, useDialog, useDialogContext } from './dialog/useDialog.js';
2
- export { DialogHeader } from './dialog-header/DialogHeader.js';
3
2
  export { PopupComponent } from './popup/Popup.js';
4
3
  export { useAnchoredPosition } from './popup/useAnchoredPosition.js';
5
4
  export { PopupMenu } from './popup-menu/PopupMenu.js';
6
5
  export { Portal } from './portal/Portal.js';
7
- export { Prompt } from './prompt/Prompt.js';
8
6
  export { Tooltip } from './tooltip/Tooltip.js';
9
7
  export { useTooltip } from './tooltip/useTooltip.js';
10
8
  export { NotificationsProvider, useNotifications } from './notifications/NotificationsProvider.js';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.13.25",
2
+ "version": "0.13.27",
3
3
  "description": "VUU popup components - Context Menu, Dialog etc",
4
4
  "author": "heswell",
5
5
  "license": "Apache-2.0",
@@ -7,11 +7,11 @@
7
7
  "@salt-ds/core": "1.43.0",
8
8
  "@salt-ds/styles": "0.2.1",
9
9
  "@salt-ds/window": "0.1.1",
10
- "@vuu-ui/vuu-context-menu": "0.13.25",
11
- "@vuu-ui/vuu-data-types": "0.13.25",
12
- "@vuu-ui/vuu-layout": "0.13.25",
13
- "@vuu-ui/vuu-utils": "0.13.25",
14
- "@vuu-ui/vuu-ui-controls": "0.13.25"
10
+ "@vuu-ui/vuu-context-menu": "0.13.27",
11
+ "@vuu-ui/vuu-data-types": "0.13.27",
12
+ "@vuu-ui/vuu-layout": "0.13.27",
13
+ "@vuu-ui/vuu-utils": "0.13.27",
14
+ "@vuu-ui/vuu-ui-controls": "0.13.27"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "clsx": "^2.0.0",
package/types/index.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  export * from "./dialog";
2
- export * from "./dialog-header";
3
2
  export * from "./popup";
4
3
  export * from "./popup-menu";
5
4
  export * from "./portal";
6
- export * from "./prompt";
7
5
  export * from "./tooltip";
8
6
  export * from "./notifications";
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var dialogHeaderCss = ".vuuDialogHeader {\n --saltButton-height: 28px;\n --saltButton-width: 28px;\n --saltToolbar-background: transparent;\n --saltToolbar-height: calc(var(--salt-size-base) + 5px);\n --vuuToolbarProxy-height: 22px;\n --salt-text-fontFamily: Nunito Sans A-Variant, sans-serif;\n\n align-items: center;\n display: flex;\n color: var(--light-text-primary, #15171B);\n flex: 0 0 var(--vuuDialogHeader-height, var()--salt-size-base);\n font-feature-settings: 'ss02' on, 'ss01' on, 'salt' on, 'liga' off;\n font-size: 16px;\n font-weight: 600;\n justify-content: space-between;\n}\n \n.vuuDialogHeader > .Responsive-inner {\n align-items: center;\n}\n \n.vuuDialogHeader > .Responsive-inner > :last-child{\n right: 2px;\n}\n \n ";
4
-
5
- module.exports = dialogHeaderCss;
6
- //# sourceMappingURL=DialogHeader.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogHeader.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var DialogHeader$1 = require('./DialogHeader.css.js');
8
-
9
- const classBase = "vuuDialogHeader";
10
- const DialogHeader = ({
11
- hideCloseButton = false,
12
- title,
13
- onClose,
14
- ...htmlAttributes
15
- }) => {
16
- const targetWindow = window.useWindow();
17
- styles.useComponentCssInjection({
18
- testId: "vuu-dialoh-header",
19
- css: DialogHeader$1,
20
- window: targetWindow
21
- });
22
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...htmlAttributes, className: classBase, children: [
23
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { className: "dialogHeader", children: title }),
24
- !hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(
25
- core.Button,
26
- {
27
- onClick: onClose,
28
- "data-align": "end",
29
- "data-icon": "close",
30
- variant: "secondary"
31
- },
32
- "close"
33
- )
34
- ] });
35
- };
36
-
37
- exports.DialogHeader = DialogHeader;
38
- //# sourceMappingURL=DialogHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogHeader.js","sources":["../../../../packages/vuu-popups/src/dialog-header/DialogHeader.tsx"],"sourcesContent":["import { Button, Text } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes } from \"react\";\n\nimport dialogHeaderCss from \"./DialogHeader.css\";\n\nconst classBase = \"vuuDialogHeader\";\n\nexport interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {\n hideCloseButton?: boolean;\n onClose: () => void;\n}\n\nexport const DialogHeader = ({\n hideCloseButton = false,\n title,\n onClose,\n ...htmlAttributes\n}: DialogHeaderProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-dialoh-header\",\n css: dialogHeaderCss,\n window: targetWindow,\n });\n\n return (\n <div {...htmlAttributes} className={classBase}>\n <Text className=\"dialogHeader\">{title}</Text>\n {!hideCloseButton && (\n <Button\n key=\"close\"\n onClick={onClose}\n data-align=\"end\"\n data-icon=\"close\"\n variant=\"secondary\"\n />\n )}\n </div>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","dialogHeaderCss","jsxs","jsx","Text","Button"],"mappings":";;;;;;;;AAOA,MAAM,SAAY,GAAA,iBAAA;AAOX,MAAM,eAAe,CAAC;AAAA,EAC3B,eAAkB,GAAA,KAAA;AAAA,EAClB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAyB,KAAA;AACvB,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAC,cAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,uBACGC,eAAA,CAAA,KAAA,EAAA,EAAK,GAAG,cAAA,EAAgB,WAAW,SAClC,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAAC,SAAA,EAAA,EAAK,SAAU,EAAA,cAAA,EAAgB,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,IACrC,CAAC,eACA,oBAAAD,cAAA;AAAA,MAACE,WAAA;AAAA,MAAA;AAAA,QAEC,OAAS,EAAA,OAAA;AAAA,QACT,YAAW,EAAA,KAAA;AAAA,QACX,WAAU,EAAA,OAAA;AAAA,QACV,OAAQ,EAAA;AAAA,OAAA;AAAA,MAJJ;AAAA;AAKN,GAEJ,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var propmtCss = ".vuuPrompt {\n --saltButton-padding: var(--prompt-padding);\n --saltButton-width: auto;\n --border-width: var(--vuuPrompt-borderWidth, 1px);\n --border-color: var(--vuuPrompt-borderColor, var(--vuu-color-purple-10));\n --prompt-padding: 16px;\n --variant-color: inherit;\n --vuu-icon-color: var(--vuu-color-gray-80);\n --vuu-icon-left: 6px;\n --vuu-icon-size: 24px;\n\n background-color: var(--salt-container-primary-background);\n border-color: var(--border-color);\n border-radius:4px;\n border-style: solid;\n border-width: var(--border-width);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n margin: 0;\n padding: 0;\n position: absolute;\n}\n\n.vuuPrompt-warn {\n --border-color: var(--vuu-color-yellow-20);\n --variant-color: var(--vuu-color-yellow-20);\n}\n\n.vuuPrompt-form {\n display: flex;\n flex-direction: column;\n}\n\n.vuuPrompt-header {\n align-items: center;\n background-color: var(--variant-color);\n display: flex;\n flex: 0 0 32px; \n font-size: 16px;\n font-weight: 700;\n padding: 0 var(--prompt-padding); \n}\n\n.vuuPrompt-header[data-icon]{\n padding-left: 36px;\n}\n\n\n.vuuPrompt-text {\n flex: 1 1 auto;\n padding: var(--prompt-padding);\n\n}\n.vuuPrompt-buttonBar {\n align-items: flex-end;\n display: flex;\n flex: 0 0 32px;\n gap: 6px;\n justify-content: flex-end;\n padding: 0 var(--prompt-padding) var(--prompt-padding) var(--prompt-padding); \n\n}";
4
-
5
- module.exports = propmtCss;
6
- //# sourceMappingURL=Prompt.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prompt.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,83 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var vuuUtils = require('@vuu-ui/vuu-utils');
5
- var core = require('@salt-ds/core');
6
- var styles = require('@salt-ds/styles');
7
- var window = require('@salt-ds/window');
8
- var cx = require('clsx');
9
- var React = require('react');
10
- var useAnchoredPosition = require('../popup/useAnchoredPosition.js');
11
- var Prompt$1 = require('./Prompt.css.js');
12
-
13
- const classBase = "vuuPrompt";
14
- const AnchorBody = { current: document.body };
15
- const EMPTY_PROPS = {};
16
- const Prompt = ({
17
- PopupProps = EMPTY_PROPS,
18
- cancelButtonLabel = "Cancel",
19
- confirmButtonLabel = "Confirm",
20
- icon,
21
- onCancel,
22
- onConfirm,
23
- style,
24
- text,
25
- title,
26
- variant = "info",
27
- ...htmlAttributes
28
- }) => {
29
- const {
30
- anchorElement = AnchorBody,
31
- offsetLeft = 0,
32
- offsetTop = 0,
33
- placement = "below"
34
- } = PopupProps;
35
- const targetWindow = window.useWindow();
36
- styles.useComponentCssInjection({
37
- testId: "vuu-prompt",
38
- css: Prompt$1,
39
- window: targetWindow
40
- });
41
- const [themeClass, _, dataMode] = vuuUtils.useThemeAttributes();
42
- const { position } = useAnchoredPosition.useAnchoredPosition({
43
- anchorElement,
44
- offsetLeft,
45
- offsetTop,
46
- placement
47
- });
48
- const rootRef = React.useRef(null);
49
- const confirmRef = React.useRef(null);
50
- React.useLayoutEffect(() => {
51
- if (rootRef.current) {
52
- rootRef.current.showModal();
53
- if (confirmRef.current) {
54
- confirmRef.current.focus();
55
- }
56
- if (placement.endsWith("center")) {
57
- const { width } = rootRef.current.getBoundingClientRect();
58
- rootRef.current.style.marginLeft = `-${width / 2}px`;
59
- }
60
- }
61
- }, [placement]);
62
- return /* @__PURE__ */ jsxRuntime.jsx(
63
- "dialog",
64
- {
65
- ...htmlAttributes,
66
- className: cx(classBase, `${classBase}-${variant}`, themeClass),
67
- "data-mode": dataMode,
68
- ref: rootRef,
69
- style: { ...style, ...position },
70
- children: /* @__PURE__ */ jsxRuntime.jsxs("form", { className: `${classBase}-form`, children: [
71
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-header`, "data-icon": icon, children: title }),
72
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-text`, children: text }),
73
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${classBase}-buttonBar`, children: [
74
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, { onClick: onCancel, variant: "secondary", children: cancelButtonLabel }),
75
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, { onClick: onConfirm, ref: confirmRef, value: "default", children: confirmButtonLabel })
76
- ] })
77
- ] })
78
- }
79
- );
80
- };
81
-
82
- exports.Prompt = Prompt;
83
- //# sourceMappingURL=Prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prompt.js","sources":["../../../../packages/vuu-popups/src/prompt/Prompt.tsx"],"sourcesContent":["import { useThemeAttributes } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, useLayoutEffect, useRef } from \"react\";\nimport { PopupComponentProps, useAnchoredPosition } from \"../popup\";\n\nimport propmtCss from \"./Prompt.css\";\n\nconst classBase = \"vuuPrompt\";\n\nconst AnchorBody = { current: document.body };\n\nconst EMPTY_PROPS = {};\n\nexport interface PromptProps extends HTMLAttributes<HTMLDialogElement> {\n PopupProps?: Partial<PopupComponentProps>;\n cancelButtonLabel?: string;\n confirmButtonLabel?: string;\n onCancel: () => void;\n onConfirm: () => void;\n icon?: string;\n text: string;\n variant?: \"warn\" | \"error\" | \"info\";\n}\n\nexport const Prompt = ({\n PopupProps = EMPTY_PROPS,\n cancelButtonLabel = \"Cancel\",\n confirmButtonLabel = \"Confirm\",\n icon,\n onCancel,\n onConfirm,\n style,\n text,\n title,\n variant = \"info\",\n ...htmlAttributes\n}: PromptProps) => {\n const {\n anchorElement = AnchorBody,\n offsetLeft = 0,\n offsetTop = 0,\n placement = \"below\",\n } = PopupProps;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-prompt\",\n css: propmtCss,\n window: targetWindow,\n });\n\n const [themeClass, _, dataMode] = useThemeAttributes();\n const { position } = useAnchoredPosition({\n anchorElement,\n offsetLeft,\n offsetTop,\n placement,\n });\n const rootRef = useRef<HTMLDialogElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n rootRef.current.showModal();\n if (confirmRef.current) {\n confirmRef.current.focus();\n }\n if (placement.endsWith(\"center\")) {\n const { width } = rootRef.current.getBoundingClientRect();\n rootRef.current.style.marginLeft = `-${width / 2}px`;\n }\n }\n }, [placement]);\n\n return (\n <dialog\n {...htmlAttributes}\n className={cx(classBase, `${classBase}-${variant}`, themeClass)}\n data-mode={dataMode}\n ref={rootRef}\n style={{ ...style, ...position }}\n >\n <form className={`${classBase}-form`}>\n <div className={`${classBase}-header`} data-icon={icon}>\n {title}\n </div>\n <div className={`${classBase}-text`}>{text}</div>\n <div className={`${classBase}-buttonBar`}>\n <Button onClick={onCancel} variant=\"secondary\">\n {cancelButtonLabel}\n </Button>\n <Button onClick={onConfirm} ref={confirmRef} value=\"default\">\n {confirmButtonLabel}\n </Button>\n </div>\n </form>\n </dialog>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","propmtCss","useThemeAttributes","useAnchoredPosition","useRef","useLayoutEffect","jsx","jsxs","Button"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- var dialogHeaderCss = ".vuuDialogHeader {\n --saltButton-height: 28px;\n --saltButton-width: 28px;\n --saltToolbar-background: transparent;\n --saltToolbar-height: calc(var(--salt-size-base) + 5px);\n --vuuToolbarProxy-height: 22px;\n --salt-text-fontFamily: Nunito Sans A-Variant, sans-serif;\n\n align-items: center;\n display: flex;\n color: var(--light-text-primary, #15171B);\n flex: 0 0 var(--vuuDialogHeader-height, var()--salt-size-base);\n font-feature-settings: 'ss02' on, 'ss01' on, 'salt' on, 'liga' off;\n font-size: 16px;\n font-weight: 600;\n justify-content: space-between;\n}\n \n.vuuDialogHeader > .Responsive-inner {\n align-items: center;\n}\n \n.vuuDialogHeader > .Responsive-inner > :last-child{\n right: 2px;\n}\n \n ";
2
-
3
- export { dialogHeaderCss as default };
4
- //# sourceMappingURL=DialogHeader.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogHeader.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,36 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Text, Button } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import dialogHeaderCss from './DialogHeader.css.js';
6
-
7
- const classBase = "vuuDialogHeader";
8
- const DialogHeader = ({
9
- hideCloseButton = false,
10
- title,
11
- onClose,
12
- ...htmlAttributes
13
- }) => {
14
- const targetWindow = useWindow();
15
- useComponentCssInjection({
16
- testId: "vuu-dialoh-header",
17
- css: dialogHeaderCss,
18
- window: targetWindow
19
- });
20
- return /* @__PURE__ */ jsxs("div", { ...htmlAttributes, className: classBase, children: [
21
- /* @__PURE__ */ jsx(Text, { className: "dialogHeader", children: title }),
22
- !hideCloseButton && /* @__PURE__ */ jsx(
23
- Button,
24
- {
25
- onClick: onClose,
26
- "data-align": "end",
27
- "data-icon": "close",
28
- variant: "secondary"
29
- },
30
- "close"
31
- )
32
- ] });
33
- };
34
-
35
- export { DialogHeader };
36
- //# sourceMappingURL=DialogHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogHeader.js","sources":["../../../../packages/vuu-popups/src/dialog-header/DialogHeader.tsx"],"sourcesContent":["import { Button, Text } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes } from \"react\";\n\nimport dialogHeaderCss from \"./DialogHeader.css\";\n\nconst classBase = \"vuuDialogHeader\";\n\nexport interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {\n hideCloseButton?: boolean;\n onClose: () => void;\n}\n\nexport const DialogHeader = ({\n hideCloseButton = false,\n title,\n onClose,\n ...htmlAttributes\n}: DialogHeaderProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-dialoh-header\",\n css: dialogHeaderCss,\n window: targetWindow,\n });\n\n return (\n <div {...htmlAttributes} className={classBase}>\n <Text className=\"dialogHeader\">{title}</Text>\n {!hideCloseButton && (\n <Button\n key=\"close\"\n onClick={onClose}\n data-align=\"end\"\n data-icon=\"close\"\n variant=\"secondary\"\n />\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,SAAY,GAAA,iBAAA;AAOX,MAAM,eAAe,CAAC;AAAA,EAC3B,eAAkB,GAAA,KAAA;AAAA,EAClB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAyB,KAAA;AACvB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAA,eAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,cAAA,EAAgB,WAAW,SAClC,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,EAAA,EAAK,SAAU,EAAA,cAAA,EAAgB,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,IACrC,CAAC,eACA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QAEC,OAAS,EAAA,OAAA;AAAA,QACT,YAAW,EAAA,KAAA;AAAA,QACX,WAAU,EAAA,OAAA;AAAA,QACV,OAAQ,EAAA;AAAA,OAAA;AAAA,MAJJ;AAAA;AAKN,GAEJ,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +0,0 @@
1
- var propmtCss = ".vuuPrompt {\n --saltButton-padding: var(--prompt-padding);\n --saltButton-width: auto;\n --border-width: var(--vuuPrompt-borderWidth, 1px);\n --border-color: var(--vuuPrompt-borderColor, var(--vuu-color-purple-10));\n --prompt-padding: 16px;\n --variant-color: inherit;\n --vuu-icon-color: var(--vuu-color-gray-80);\n --vuu-icon-left: 6px;\n --vuu-icon-size: 24px;\n\n background-color: var(--salt-container-primary-background);\n border-color: var(--border-color);\n border-radius:4px;\n border-style: solid;\n border-width: var(--border-width);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n margin: 0;\n padding: 0;\n position: absolute;\n}\n\n.vuuPrompt-warn {\n --border-color: var(--vuu-color-yellow-20);\n --variant-color: var(--vuu-color-yellow-20);\n}\n\n.vuuPrompt-form {\n display: flex;\n flex-direction: column;\n}\n\n.vuuPrompt-header {\n align-items: center;\n background-color: var(--variant-color);\n display: flex;\n flex: 0 0 32px; \n font-size: 16px;\n font-weight: 700;\n padding: 0 var(--prompt-padding); \n}\n\n.vuuPrompt-header[data-icon]{\n padding-left: 36px;\n}\n\n\n.vuuPrompt-text {\n flex: 1 1 auto;\n padding: var(--prompt-padding);\n\n}\n.vuuPrompt-buttonBar {\n align-items: flex-end;\n display: flex;\n flex: 0 0 32px;\n gap: 6px;\n justify-content: flex-end;\n padding: 0 var(--prompt-padding) var(--prompt-padding) var(--prompt-padding); \n\n}";
2
-
3
- export { propmtCss as default };
4
- //# sourceMappingURL=Prompt.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prompt.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,81 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useThemeAttributes } from '@vuu-ui/vuu-utils';
3
- import { Button } from '@salt-ds/core';
4
- import { useComponentCssInjection } from '@salt-ds/styles';
5
- import { useWindow } from '@salt-ds/window';
6
- import cx from 'clsx';
7
- import { useRef, useLayoutEffect } from 'react';
8
- import { useAnchoredPosition } from '../popup/useAnchoredPosition.js';
9
- import propmtCss from './Prompt.css.js';
10
-
11
- const classBase = "vuuPrompt";
12
- const AnchorBody = { current: document.body };
13
- const EMPTY_PROPS = {};
14
- const Prompt = ({
15
- PopupProps = EMPTY_PROPS,
16
- cancelButtonLabel = "Cancel",
17
- confirmButtonLabel = "Confirm",
18
- icon,
19
- onCancel,
20
- onConfirm,
21
- style,
22
- text,
23
- title,
24
- variant = "info",
25
- ...htmlAttributes
26
- }) => {
27
- const {
28
- anchorElement = AnchorBody,
29
- offsetLeft = 0,
30
- offsetTop = 0,
31
- placement = "below"
32
- } = PopupProps;
33
- const targetWindow = useWindow();
34
- useComponentCssInjection({
35
- testId: "vuu-prompt",
36
- css: propmtCss,
37
- window: targetWindow
38
- });
39
- const [themeClass, _, dataMode] = useThemeAttributes();
40
- const { position } = useAnchoredPosition({
41
- anchorElement,
42
- offsetLeft,
43
- offsetTop,
44
- placement
45
- });
46
- const rootRef = useRef(null);
47
- const confirmRef = useRef(null);
48
- useLayoutEffect(() => {
49
- if (rootRef.current) {
50
- rootRef.current.showModal();
51
- if (confirmRef.current) {
52
- confirmRef.current.focus();
53
- }
54
- if (placement.endsWith("center")) {
55
- const { width } = rootRef.current.getBoundingClientRect();
56
- rootRef.current.style.marginLeft = `-${width / 2}px`;
57
- }
58
- }
59
- }, [placement]);
60
- return /* @__PURE__ */ jsx(
61
- "dialog",
62
- {
63
- ...htmlAttributes,
64
- className: cx(classBase, `${classBase}-${variant}`, themeClass),
65
- "data-mode": dataMode,
66
- ref: rootRef,
67
- style: { ...style, ...position },
68
- children: /* @__PURE__ */ jsxs("form", { className: `${classBase}-form`, children: [
69
- /* @__PURE__ */ jsx("div", { className: `${classBase}-header`, "data-icon": icon, children: title }),
70
- /* @__PURE__ */ jsx("div", { className: `${classBase}-text`, children: text }),
71
- /* @__PURE__ */ jsxs("div", { className: `${classBase}-buttonBar`, children: [
72
- /* @__PURE__ */ jsx(Button, { onClick: onCancel, variant: "secondary", children: cancelButtonLabel }),
73
- /* @__PURE__ */ jsx(Button, { onClick: onConfirm, ref: confirmRef, value: "default", children: confirmButtonLabel })
74
- ] })
75
- ] })
76
- }
77
- );
78
- };
79
-
80
- export { Prompt };
81
- //# sourceMappingURL=Prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prompt.js","sources":["../../../../packages/vuu-popups/src/prompt/Prompt.tsx"],"sourcesContent":["import { useThemeAttributes } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, useLayoutEffect, useRef } from \"react\";\nimport { PopupComponentProps, useAnchoredPosition } from \"../popup\";\n\nimport propmtCss from \"./Prompt.css\";\n\nconst classBase = \"vuuPrompt\";\n\nconst AnchorBody = { current: document.body };\n\nconst EMPTY_PROPS = {};\n\nexport interface PromptProps extends HTMLAttributes<HTMLDialogElement> {\n PopupProps?: Partial<PopupComponentProps>;\n cancelButtonLabel?: string;\n confirmButtonLabel?: string;\n onCancel: () => void;\n onConfirm: () => void;\n icon?: string;\n text: string;\n variant?: \"warn\" | \"error\" | \"info\";\n}\n\nexport const Prompt = ({\n PopupProps = EMPTY_PROPS,\n cancelButtonLabel = \"Cancel\",\n confirmButtonLabel = \"Confirm\",\n icon,\n onCancel,\n onConfirm,\n style,\n text,\n title,\n variant = \"info\",\n ...htmlAttributes\n}: PromptProps) => {\n const {\n anchorElement = AnchorBody,\n offsetLeft = 0,\n offsetTop = 0,\n placement = \"below\",\n } = PopupProps;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-prompt\",\n css: propmtCss,\n window: targetWindow,\n });\n\n const [themeClass, _, dataMode] = useThemeAttributes();\n const { position } = useAnchoredPosition({\n anchorElement,\n offsetLeft,\n offsetTop,\n placement,\n });\n const rootRef = useRef<HTMLDialogElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n rootRef.current.showModal();\n if (confirmRef.current) {\n confirmRef.current.focus();\n }\n if (placement.endsWith(\"center\")) {\n const { width } = rootRef.current.getBoundingClientRect();\n rootRef.current.style.marginLeft = `-${width / 2}px`;\n }\n }\n }, [placement]);\n\n return (\n <dialog\n {...htmlAttributes}\n className={cx(classBase, `${classBase}-${variant}`, themeClass)}\n data-mode={dataMode}\n ref={rootRef}\n style={{ ...style, ...position }}\n >\n <form className={`${classBase}-form`}>\n <div className={`${classBase}-header`} data-icon={icon}>\n {title}\n </div>\n <div className={`${classBase}-text`}>{text}</div>\n <div className={`${classBase}-buttonBar`}>\n <Button onClick={onCancel} variant=\"secondary\">\n {cancelButtonLabel}\n </Button>\n <Button onClick={onConfirm} ref={confirmRef} value=\"default\">\n {confirmButtonLabel}\n </Button>\n </div>\n </form>\n </dialog>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { HTMLAttributes } from "react";
2
- export interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {
3
- hideCloseButton?: boolean;
4
- onClose: () => void;
5
- }
6
- export declare const DialogHeader: ({ hideCloseButton, title, onClose, ...htmlAttributes }: DialogHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export * from "./DialogHeader";
@@ -1,13 +0,0 @@
1
- import { HTMLAttributes } from "react";
2
- import { PopupComponentProps } from "../popup";
3
- export interface PromptProps extends HTMLAttributes<HTMLDialogElement> {
4
- PopupProps?: Partial<PopupComponentProps>;
5
- cancelButtonLabel?: string;
6
- confirmButtonLabel?: string;
7
- onCancel: () => void;
8
- onConfirm: () => void;
9
- icon?: string;
10
- text: string;
11
- variant?: "warn" | "error" | "info";
12
- }
13
- export declare const Prompt: ({ PopupProps, cancelButtonLabel, confirmButtonLabel, icon, onCancel, onConfirm, style, text, title, variant, ...htmlAttributes }: PromptProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export * from "./Prompt";