@mindlogic-ai/logician-ui 4.0.0-alpha.36 → 4.0.0-alpha.38
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/USAGE.md +17 -0
- package/dist/components/Form/FormSection/CollapsibleFormSection.js +1 -0
- package/dist/components/Form/FormSection/CollapsibleFormSection.js.map +1 -1
- package/dist/components/Form/FormSection/CollapsibleFormSection.mjs +1 -0
- package/dist/components/Form/FormSection/CollapsibleFormSection.mjs.map +1 -1
- package/dist/components/Toast/Toast.d.ts +7 -3
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/Toast/Toast.js +7 -3
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/Toast.mjs +8 -4
- package/dist/components/Toast/Toast.mjs.map +1 -1
- package/dist/components/Toast/Toast.styles.d.ts +8 -0
- package/dist/components/Toast/Toast.styles.d.ts.map +1 -1
- package/dist/components/Toast/Toast.styles.js +59 -0
- package/dist/components/Toast/Toast.styles.js.map +1 -1
- package/dist/components/Toast/Toast.styles.mjs +57 -1
- package/dist/components/Toast/Toast.styles.mjs.map +1 -1
- package/dist/components/Toast/Toast.types.d.ts +25 -1
- package/dist/components/Toast/Toast.types.d.ts.map +1 -1
- package/dist/components/Toast/Toaster.d.ts.map +1 -1
- package/dist/components/Toast/Toaster.js +9 -1
- package/dist/components/Toast/Toaster.js.map +1 -1
- package/dist/components/Toast/Toaster.mjs +9 -1
- package/dist/components/Toast/Toaster.mjs.map +1 -1
- package/dist/components/Toast/useToast.d.ts +1 -1
- package/dist/components/Toast/useToast.d.ts.map +1 -1
- package/dist/components/Toast/useToast.js +9 -1
- package/dist/components/Toast/useToast.js.map +1 -1
- package/dist/components/Toast/useToast.mjs +10 -2
- package/dist/components/Toast/useToast.mjs.map +1 -1
- package/dist/components/Workflow/Workflow.d.ts +1 -1
- package/dist/components/Workflow/Workflow.d.ts.map +1 -1
- package/dist/components/Workflow/Workflow.js +2 -2
- package/dist/components/Workflow/Workflow.js.map +1 -1
- package/dist/components/Workflow/Workflow.mjs +2 -2
- package/dist/components/Workflow/Workflow.mjs.map +1 -1
- package/dist/components/Workflow/Workflow.types.d.ts +9 -0
- package/dist/components/Workflow/Workflow.types.d.ts.map +1 -1
- package/dist/components/Workflow/Workflow.types.js.map +1 -1
- package/dist/components/Workflow/Workflow.types.mjs.map +1 -1
- package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts +6 -2
- package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts.map +1 -1
- package/dist/components/Workflow/canvas/Canvas/Canvas.js +29 -23
- package/dist/components/Workflow/canvas/Canvas/Canvas.js.map +1 -1
- package/dist/components/Workflow/canvas/Canvas/Canvas.mjs +31 -25
- package/dist/components/Workflow/canvas/Canvas/Canvas.mjs.map +1 -1
- package/dist/components/Workflow/createNode.d.ts +25 -1
- package/dist/components/Workflow/createNode.d.ts.map +1 -1
- package/dist/components/Workflow/createNode.js +39 -1
- package/dist/components/Workflow/createNode.js.map +1 -1
- package/dist/components/Workflow/createNode.mjs +38 -2
- package/dist/components/Workflow/createNode.mjs.map +1 -1
- package/dist/components/Workflow/index.d.ts +2 -0
- package/dist/components/Workflow/index.d.ts.map +1 -1
- package/dist/components/Workflow/layout/autoLayout.d.ts +10 -0
- package/dist/components/Workflow/layout/autoLayout.d.ts.map +1 -1
- package/dist/components/Workflow/layout/autoLayout.js +4 -0
- package/dist/components/Workflow/layout/autoLayout.js.map +1 -1
- package/dist/components/Workflow/layout/autoLayout.mjs +1 -1
- package/dist/components/Workflow/layout/autoLayout.mjs.map +1 -1
- package/dist/components/Workflow/placement.d.ts +65 -0
- package/dist/components/Workflow/placement.d.ts.map +1 -0
- package/dist/components/Workflow/placement.js +100 -0
- package/dist/components/Workflow/placement.js.map +1 -0
- package/dist/components/Workflow/placement.mjs +96 -0
- package/dist/components/Workflow/placement.mjs.map +1 -0
- package/dist/components/Workflow/useWorkflowActions.d.ts +54 -0
- package/dist/components/Workflow/useWorkflowActions.d.ts.map +1 -0
- package/dist/components/Workflow/useWorkflowActions.js +105 -0
- package/dist/components/Workflow/useWorkflowActions.js.map +1 -0
- package/dist/components/Workflow/useWorkflowActions.mjs +103 -0
- package/dist/components/Workflow/useWorkflowActions.mjs.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Toast/Toast.action.test.tsx +135 -0
- package/src/components/Toast/Toast.stories.tsx +111 -0
- package/src/components/Toast/Toast.styles.ts +60 -0
- package/src/components/Toast/Toast.tsx +16 -3
- package/src/components/Toast/Toast.types.ts +26 -1
- package/src/components/Toast/Toaster.tsx +11 -0
- package/src/components/Toast/useToast.tsx +17 -2
- package/src/components/Workflow/README.md +64 -0
- package/src/components/Workflow/Workflow.tsx +2 -0
- package/src/components/Workflow/Workflow.types.ts +10 -0
- package/src/components/Workflow/canvas/Canvas/Canvas.tsx +57 -53
- package/src/components/Workflow/createNode.test.ts +40 -2
- package/src/components/Workflow/createNode.ts +70 -2
- package/src/components/Workflow/index.ts +8 -0
- package/src/components/Workflow/layout/autoLayout.ts +4 -4
- package/src/components/Workflow/placement.test.ts +156 -0
- package/src/components/Workflow/placement.ts +172 -0
- package/src/components/Workflow/stories/Workflow.stories.tsx +79 -0
- package/src/components/Workflow/useWorkflowActions.test.tsx +345 -0
- package/src/components/Workflow/useWorkflowActions.ts +196 -0
- package/src/guidelines/FeedbackActions.mdx +133 -0
package/USAGE.md
CHANGED
|
@@ -297,3 +297,20 @@ function App() {
|
|
|
297
297
|
Responsive Button
|
|
298
298
|
</Button>
|
|
299
299
|
```
|
|
300
|
+
|
|
301
|
+
### 5. Actions in Feedback Surfaces
|
|
302
|
+
|
|
303
|
+
- A toast takes at most one action, through the `action` prop; dismiss is the ×
|
|
304
|
+
- Never put a `<Button>` inside a toast's `description`
|
|
305
|
+
- Inside a tinted toast or banner, the action uses the status color
|
|
306
|
+
- Panes and dialogs carry buttons: ink solid primary + outline neutral
|
|
307
|
+
|
|
308
|
+
Full rules and the surface matrix: Storybook → **Guidelines / Actions in feedback surfaces** (`src/guidelines/FeedbackActions.mdx`).
|
|
309
|
+
|
|
310
|
+
```tsx
|
|
311
|
+
showToast({
|
|
312
|
+
status: 'error',
|
|
313
|
+
description: '크레딧이 부족합니다.',
|
|
314
|
+
action: { label: '크레딧 구매', onClick: openCreditPurchaseModal },
|
|
315
|
+
});
|
|
316
|
+
```
|
|
@@ -32,6 +32,7 @@ require('../../Chip/Chip.js');
|
|
|
32
32
|
require('../../Badge/Badge.js');
|
|
33
33
|
require('../../Workflow/canvas/NodeShell/NodeShell.styles.js');
|
|
34
34
|
require('../../Workflow/graphObserver.js');
|
|
35
|
+
require('@dagrejs/dagre');
|
|
35
36
|
require('../../Workflow/canvas/Canvas/Canvas.js');
|
|
36
37
|
|
|
37
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleFormSection.js","sources":["../../../../src/components/Form/FormSection/CollapsibleFormSection.tsx"],"sourcesContent":[null],"names":["_jsx","CollapsibleSection","VStack"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollapsibleFormSection.js","sources":["../../../../src/components/Form/FormSection/CollapsibleFormSection.tsx"],"sourcesContent":[null],"names":["_jsx","CollapsibleSection","VStack"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;AAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,EACrC,KAAK,EACL,MAAM,EACN,WAAW,GAAG,IAAI,EAClB,QAAQ,GAAG,KAAK,EAChB,GAAG,GAAG,CAAC,EACP,QAAQ,GACoB,MAC5BA,cAAA,CAACC,qCAAkB,EAAA,EACjB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EAAA,QAAA,EAEpBD,eAACE,YAAM,EAAA,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,MAAM,EAAA,QAAA,EACvC,QAAQ,EAAA,CACF,EAAA,CACU;;;;"}
|
|
@@ -30,6 +30,7 @@ import '../../Chip/Chip.mjs';
|
|
|
30
30
|
import '../../Badge/Badge.mjs';
|
|
31
31
|
import '../../Workflow/canvas/NodeShell/NodeShell.styles.mjs';
|
|
32
32
|
import '../../Workflow/graphObserver.mjs';
|
|
33
|
+
import '@dagrejs/dagre';
|
|
33
34
|
import '../../Workflow/canvas/Canvas/Canvas.mjs';
|
|
34
35
|
|
|
35
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleFormSection.mjs","sources":["../../../../src/components/Form/FormSection/CollapsibleFormSection.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollapsibleFormSection.mjs","sources":["../../../../src/components/Form/FormSection/CollapsibleFormSection.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;AAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,EACrC,KAAK,EACL,MAAM,EACN,WAAW,GAAG,IAAI,EAClB,QAAQ,GAAG,KAAK,EAChB,GAAG,GAAG,CAAC,EACP,QAAQ,GACoB,MAC5BA,GAAA,CAAC,kBAAkB,EAAA,EACjB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EAAA,QAAA,EAEpBA,IAAC,MAAM,EAAA,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,MAAM,EAAA,QAAA,EACvC,QAAQ,EAAA,CACF,EAAA,CACU;;;;"}
|
|
@@ -2,8 +2,12 @@ import { ToastProps } from './Toast.types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Toast component using Chakra UI v3 composition pattern
|
|
4
4
|
*
|
|
5
|
-
* Uses Toast.Root, Toast.Title, Toast.Description,
|
|
6
|
-
* for better composition and customization.
|
|
5
|
+
* Uses Toast.Root, Toast.Title, Toast.Description, Toast.ActionTrigger and
|
|
6
|
+
* Toast.CloseTrigger for better composition and customization.
|
|
7
|
+
*
|
|
8
|
+
* `action` renders under the description as a text action in the status
|
|
9
|
+
* color, aligned with the text column. Don't put a `<Button>` in
|
|
10
|
+
* `description` — use `action`.
|
|
7
11
|
*/
|
|
8
|
-
export declare const Toast: ({ title, description, status, onClose, ...rest }: ToastProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const Toast: ({ title, description, status, onClose, action, ...rest }: ToastProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
13
|
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,0DAOnB,UAAU,4CAuCZ,CAAC"}
|
|
@@ -9,10 +9,14 @@ var ToastIcon = require('./ToastIcon/ToastIcon.js');
|
|
|
9
9
|
/**
|
|
10
10
|
* Toast component using Chakra UI v3 composition pattern
|
|
11
11
|
*
|
|
12
|
-
* Uses Toast.Root, Toast.Title, Toast.Description,
|
|
13
|
-
* for better composition and customization.
|
|
12
|
+
* Uses Toast.Root, Toast.Title, Toast.Description, Toast.ActionTrigger and
|
|
13
|
+
* Toast.CloseTrigger for better composition and customization.
|
|
14
|
+
*
|
|
15
|
+
* `action` renders under the description as a text action in the status
|
|
16
|
+
* color, aligned with the text column. Don't put a `<Button>` in
|
|
17
|
+
* `description` — use `action`.
|
|
14
18
|
*/
|
|
15
|
-
const Toast = ({ title, description, status = 'success', onClose, ...rest }) => (jsxRuntime.jsxs(react.Toast.Root, { width: { md: 'sm' }, borderWidth: "1px", borderRadius: "md", boxShadow: "lg", pointerEvents: "auto", ...rest, children: [jsxRuntime.jsxs(react.Flex, { align: "center", gap: 2, children: [jsxRuntime.jsx(ToastIcon.ToastIcon, { status: status }), jsxRuntime.jsxs(react.Stack, { gap: 1, flex: 1, maxWidth: "100%", children: [title && (jsxRuntime.jsx(react.Toast.Title, { fontWeight: "bold", fontSize: "h5", children: title })), description && (jsxRuntime.jsx(react.Toast.Description, { color: "inherit", fontWeight: "semibold", children: description }))] })] }), jsxRuntime.jsx(react.Toast.CloseTrigger, { onClick: onClose, cursor: "pointer", ...Toast_styles.closeButtonStyles[status] })] }));
|
|
19
|
+
const Toast = ({ title, description, status = 'success', onClose, action, ...rest }) => (jsxRuntime.jsxs(react.Toast.Root, { width: { md: 'sm' }, borderWidth: "1px", borderRadius: "md", boxShadow: "lg", pointerEvents: "auto", ...rest, children: [jsxRuntime.jsxs(react.Flex, { align: "center", gap: 2, children: [jsxRuntime.jsx(ToastIcon.ToastIcon, { status: status }), jsxRuntime.jsxs(react.Stack, { gap: 1, flex: 1, maxWidth: "100%", children: [title && (jsxRuntime.jsx(react.Toast.Title, { fontWeight: "bold", fontSize: "h5", children: title })), description && (jsxRuntime.jsx(react.Toast.Description, { color: "inherit", fontWeight: "semibold", children: description })), action && (jsxRuntime.jsx(react.Toast.ActionTrigger, { onClick: action.onClick, ...Toast_styles.actionStyles[status], children: action.label }))] })] }), jsxRuntime.jsx(react.Toast.CloseTrigger, { onClick: onClose, cursor: "pointer", ...Toast_styles.closeButtonStyles[status] })] }));
|
|
16
20
|
|
|
17
21
|
exports.Toast = Toast;
|
|
18
22
|
//# sourceMappingURL=Toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":[null],"names":["_jsxs","ChakraToast","Flex","_jsx","ToastIcon","Stack","closeButtonStyles"],"mappings":";;;;;;;;AAMA
|
|
1
|
+
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":[null],"names":["_jsxs","ChakraToast","Flex","_jsx","ToastIcon","Stack","actionStyles","closeButtonStyles"],"mappings":";;;;;;;;AAMA;;;;;;;;;AASG;AACI,MAAM,KAAK,GAAG,CAAC,EACpB,KAAK,EACL,WAAW,EACX,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,MAAM,EACN,GAAG,IAAI,EACI,MACXA,gBAACC,WAAW,CAAC,IAAI,EAAA,EACf,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EACnB,WAAW,EAAC,KAAK,EACjB,YAAY,EAAC,IAAI,EACjB,SAAS,EAAC,IAAI,EACd,aAAa,EAAC,MAAM,EAAA,GAChB,IAAI,EAAA,QAAA,EAAA,CAERD,gBAACE,UAAI,EAAA,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAEzBC,eAACC,mBAAS,EAAA,EAAC,MAAM,EAAE,MAAM,GAAI,EAC7BJ,eAAA,CAACK,WAAK,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAA,QAAA,EAAA,CACpC,KAAK,KACJF,eAACF,WAAW,CAAC,KAAK,EAAA,EAAC,UAAU,EAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAA,QAAA,EAC/C,KAAK,GACY,CACrB,EACA,WAAW,KACVE,cAAA,CAACF,WAAW,CAAC,WAAW,EAAA,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAA,QAAA,EAC3D,WAAW,GACY,CAC3B,EACA,MAAM,KACLE,cAAA,CAACF,WAAW,CAAC,aAAa,EAAA,EACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAA,GAClBK,yBAAY,CAAC,MAAM,CAAS,EAAA,QAAA,EAEhC,MAAM,CAAC,KAAK,EAAA,CACa,CAC7B,CAAA,EAAA,CACK,CAAA,EAAA,CACH,EACPH,cAAA,CAACF,WAAW,CAAC,YAAY,IACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAC,SAAS,EAAA,GACXM,8BAAiB,CAAC,MAAM,CAAS,EAAA,CACtC,CAAA,EAAA,CACe;;;;"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { Toast as Toast$1, Flex, Stack } from '@chakra-ui/react';
|
|
4
|
-
import { closeButtonStyles } from './Toast.styles.mjs';
|
|
4
|
+
import { actionStyles, closeButtonStyles } from './Toast.styles.mjs';
|
|
5
5
|
import { ToastIcon } from './ToastIcon/ToastIcon.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Toast component using Chakra UI v3 composition pattern
|
|
9
9
|
*
|
|
10
|
-
* Uses Toast.Root, Toast.Title, Toast.Description,
|
|
11
|
-
* for better composition and customization.
|
|
10
|
+
* Uses Toast.Root, Toast.Title, Toast.Description, Toast.ActionTrigger and
|
|
11
|
+
* Toast.CloseTrigger for better composition and customization.
|
|
12
|
+
*
|
|
13
|
+
* `action` renders under the description as a text action in the status
|
|
14
|
+
* color, aligned with the text column. Don't put a `<Button>` in
|
|
15
|
+
* `description` — use `action`.
|
|
12
16
|
*/
|
|
13
|
-
const Toast = ({ title, description, status = 'success', onClose, ...rest }) => (jsxs(Toast$1.Root, { width: { md: 'sm' }, borderWidth: "1px", borderRadius: "md", boxShadow: "lg", pointerEvents: "auto", ...rest, children: [jsxs(Flex, { align: "center", gap: 2, children: [jsx(ToastIcon, { status: status }), jsxs(Stack, { gap: 1, flex: 1, maxWidth: "100%", children: [title && (jsx(Toast$1.Title, { fontWeight: "bold", fontSize: "h5", children: title })), description && (jsx(Toast$1.Description, { color: "inherit", fontWeight: "semibold", children: description }))] })] }), jsx(Toast$1.CloseTrigger, { onClick: onClose, cursor: "pointer", ...closeButtonStyles[status] })] }));
|
|
17
|
+
const Toast = ({ title, description, status = 'success', onClose, action, ...rest }) => (jsxs(Toast$1.Root, { width: { md: 'sm' }, borderWidth: "1px", borderRadius: "md", boxShadow: "lg", pointerEvents: "auto", ...rest, children: [jsxs(Flex, { align: "center", gap: 2, children: [jsx(ToastIcon, { status: status }), jsxs(Stack, { gap: 1, flex: 1, maxWidth: "100%", children: [title && (jsx(Toast$1.Title, { fontWeight: "bold", fontSize: "h5", children: title })), description && (jsx(Toast$1.Description, { color: "inherit", fontWeight: "semibold", children: description })), action && (jsx(Toast$1.ActionTrigger, { onClick: action.onClick, ...actionStyles[status], children: action.label }))] })] }), jsx(Toast$1.CloseTrigger, { onClick: onClose, cursor: "pointer", ...closeButtonStyles[status] })] }));
|
|
14
18
|
|
|
15
19
|
export { Toast };
|
|
16
20
|
//# sourceMappingURL=Toast.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.mjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":[null],"names":["_jsxs","ChakraToast","_jsx"],"mappings":";;;;;;AAMA
|
|
1
|
+
{"version":3,"file":"Toast.mjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":[null],"names":["_jsxs","ChakraToast","_jsx"],"mappings":";;;;;;AAMA;;;;;;;;;AASG;AACI,MAAM,KAAK,GAAG,CAAC,EACpB,KAAK,EACL,WAAW,EACX,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,MAAM,EACN,GAAG,IAAI,EACI,MACXA,KAACC,OAAW,CAAC,IAAI,EAAA,EACf,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EACnB,WAAW,EAAC,KAAK,EACjB,YAAY,EAAC,IAAI,EACjB,SAAS,EAAC,IAAI,EACd,aAAa,EAAC,MAAM,EAAA,GAChB,IAAI,EAAA,QAAA,EAAA,CAERD,KAAC,IAAI,EAAA,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAEzBE,IAAC,SAAS,EAAA,EAAC,MAAM,EAAE,MAAM,GAAI,EAC7BF,IAAA,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAA,QAAA,EAAA,CACpC,KAAK,KACJE,IAACD,OAAW,CAAC,KAAK,EAAA,EAAC,UAAU,EAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAA,QAAA,EAC/C,KAAK,GACY,CACrB,EACA,WAAW,KACVC,GAAA,CAACD,OAAW,CAAC,WAAW,EAAA,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAA,QAAA,EAC3D,WAAW,GACY,CAC3B,EACA,MAAM,KACLC,GAAA,CAACD,OAAW,CAAC,aAAa,EAAA,EACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAA,GAClB,YAAY,CAAC,MAAM,CAAS,EAAA,QAAA,EAEhC,MAAM,CAAC,KAAK,EAAA,CACa,CAC7B,CAAA,EAAA,CACK,CAAA,EAAA,CACH,EACPC,GAAA,CAACD,OAAW,CAAC,YAAY,IACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAC,SAAS,EAAA,GACX,iBAAiB,CAAC,MAAM,CAAS,EAAA,CACtC,CAAA,EAAA,CACe;;;;"}
|
|
@@ -13,4 +13,12 @@ export declare const toastStyles: Record<ToastStatus, BoxProps>;
|
|
|
13
13
|
* Uses BoxProps for flexibility with Toast.CloseTrigger
|
|
14
14
|
*/
|
|
15
15
|
export declare const closeButtonStyles: Record<ToastStatus, BoxProps>;
|
|
16
|
+
export declare const actionStyles: Record<ToastStatus, BoxProps>;
|
|
17
|
+
/** Default duration (ms) of a toast without an action, when none is given */
|
|
18
|
+
export declare const TOAST_DEFAULT_DURATION = 5000;
|
|
19
|
+
/**
|
|
20
|
+
* Default duration (ms) of a toast that carries an action, when none is given.
|
|
21
|
+
* The reader needs time to read the message *and* decide to act.
|
|
22
|
+
*/
|
|
23
|
+
export declare const TOAST_ACTION_DURATION = 8000;
|
|
16
24
|
//# sourceMappingURL=Toast.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAqBrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAyB3D,CAAC"}
|
|
1
|
+
{"version":3,"file":"Toast.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAqBrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAyB3D,CAAC;AA0BF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAyBtD,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
|
|
@@ -60,7 +60,66 @@ const closeButtonStyles = {
|
|
|
60
60
|
},
|
|
61
61
|
},
|
|
62
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Action styles for each toast status.
|
|
65
|
+
*
|
|
66
|
+
* A toast's action is a text action in the toast's own text color — the same
|
|
67
|
+
* palette as `toastStyles[status].color` — with the hover tint of the close ×.
|
|
68
|
+
* No border and no fill: a neutral or outlined button inside a tinted toast
|
|
69
|
+
* reads as a separate card dropped on top of it.
|
|
70
|
+
*
|
|
71
|
+
* `ml: -2` cancels the horizontal padding so the label lines up with the
|
|
72
|
+
* description text above it.
|
|
73
|
+
*/
|
|
74
|
+
const actionBase = {
|
|
75
|
+
fontWeight: 'bold',
|
|
76
|
+
px: 2,
|
|
77
|
+
py: 1,
|
|
78
|
+
ml: -2,
|
|
79
|
+
height: 'auto',
|
|
80
|
+
alignSelf: 'flex-start',
|
|
81
|
+
borderRadius: 'sm',
|
|
82
|
+
borderWidth: 0,
|
|
83
|
+
bg: 'transparent',
|
|
84
|
+
cursor: 'pointer',
|
|
85
|
+
};
|
|
86
|
+
const actionStyles = {
|
|
87
|
+
info: {
|
|
88
|
+
...actionBase,
|
|
89
|
+
color: 'primary.dark',
|
|
90
|
+
_hover: { bg: 'primary.lighter' },
|
|
91
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'primary.dark' },
|
|
92
|
+
},
|
|
93
|
+
warning: {
|
|
94
|
+
...actionBase,
|
|
95
|
+
color: 'warning.dark',
|
|
96
|
+
_hover: { bg: 'warning.lighter' },
|
|
97
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'warning.dark' },
|
|
98
|
+
},
|
|
99
|
+
success: {
|
|
100
|
+
...actionBase,
|
|
101
|
+
color: 'success.dark',
|
|
102
|
+
_hover: { bg: 'success.lighter' },
|
|
103
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'success.dark' },
|
|
104
|
+
},
|
|
105
|
+
error: {
|
|
106
|
+
...actionBase,
|
|
107
|
+
color: 'danger.dark',
|
|
108
|
+
_hover: { bg: 'danger.lighter' },
|
|
109
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'danger.dark' },
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
/** Default duration (ms) of a toast without an action, when none is given */
|
|
113
|
+
const TOAST_DEFAULT_DURATION = 5000;
|
|
114
|
+
/**
|
|
115
|
+
* Default duration (ms) of a toast that carries an action, when none is given.
|
|
116
|
+
* The reader needs time to read the message *and* decide to act.
|
|
117
|
+
*/
|
|
118
|
+
const TOAST_ACTION_DURATION = 8000;
|
|
63
119
|
|
|
120
|
+
exports.TOAST_ACTION_DURATION = TOAST_ACTION_DURATION;
|
|
121
|
+
exports.TOAST_DEFAULT_DURATION = TOAST_DEFAULT_DURATION;
|
|
122
|
+
exports.actionStyles = actionStyles;
|
|
64
123
|
exports.closeButtonStyles = closeButtonStyles;
|
|
65
124
|
exports.toastStyles = toastStyles;
|
|
66
125
|
//# sourceMappingURL=Toast.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.styles.js","sources":["../../../src/components/Toast/Toast.styles.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;AAKG;AACI,MAAM,WAAW,GAAkC;AACxD,IAAA,IAAI,EAAE;QACJ,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,KAAK,EAAE;QACL,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,gBAAgB;AAC9B,KAAA;;AAGH;;;;AAIG;AACI,MAAM,iBAAiB,GAAkC;AAC9D,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,gBAAgB;AACrB,SAAA;AACF,KAAA
|
|
1
|
+
{"version":3,"file":"Toast.styles.js","sources":["../../../src/components/Toast/Toast.styles.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,62 @@ const closeButtonStyles = {
|
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* Action styles for each toast status.
|
|
63
|
+
*
|
|
64
|
+
* A toast's action is a text action in the toast's own text color — the same
|
|
65
|
+
* palette as `toastStyles[status].color` — with the hover tint of the close ×.
|
|
66
|
+
* No border and no fill: a neutral or outlined button inside a tinted toast
|
|
67
|
+
* reads as a separate card dropped on top of it.
|
|
68
|
+
*
|
|
69
|
+
* `ml: -2` cancels the horizontal padding so the label lines up with the
|
|
70
|
+
* description text above it.
|
|
71
|
+
*/
|
|
72
|
+
const actionBase = {
|
|
73
|
+
fontWeight: 'bold',
|
|
74
|
+
px: 2,
|
|
75
|
+
py: 1,
|
|
76
|
+
ml: -2,
|
|
77
|
+
height: 'auto',
|
|
78
|
+
alignSelf: 'flex-start',
|
|
79
|
+
borderRadius: 'sm',
|
|
80
|
+
borderWidth: 0,
|
|
81
|
+
bg: 'transparent',
|
|
82
|
+
cursor: 'pointer',
|
|
83
|
+
};
|
|
84
|
+
const actionStyles = {
|
|
85
|
+
info: {
|
|
86
|
+
...actionBase,
|
|
87
|
+
color: 'primary.dark',
|
|
88
|
+
_hover: { bg: 'primary.lighter' },
|
|
89
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'primary.dark' },
|
|
90
|
+
},
|
|
91
|
+
warning: {
|
|
92
|
+
...actionBase,
|
|
93
|
+
color: 'warning.dark',
|
|
94
|
+
_hover: { bg: 'warning.lighter' },
|
|
95
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'warning.dark' },
|
|
96
|
+
},
|
|
97
|
+
success: {
|
|
98
|
+
...actionBase,
|
|
99
|
+
color: 'success.dark',
|
|
100
|
+
_hover: { bg: 'success.lighter' },
|
|
101
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'success.dark' },
|
|
102
|
+
},
|
|
103
|
+
error: {
|
|
104
|
+
...actionBase,
|
|
105
|
+
color: 'danger.dark',
|
|
106
|
+
_hover: { bg: 'danger.lighter' },
|
|
107
|
+
_focusVisible: { outline: '2px solid', outlineColor: 'danger.dark' },
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
/** Default duration (ms) of a toast without an action, when none is given */
|
|
111
|
+
const TOAST_DEFAULT_DURATION = 5000;
|
|
112
|
+
/**
|
|
113
|
+
* Default duration (ms) of a toast that carries an action, when none is given.
|
|
114
|
+
* The reader needs time to read the message *and* decide to act.
|
|
115
|
+
*/
|
|
116
|
+
const TOAST_ACTION_DURATION = 8000;
|
|
61
117
|
|
|
62
|
-
export { closeButtonStyles, toastStyles };
|
|
118
|
+
export { TOAST_ACTION_DURATION, TOAST_DEFAULT_DURATION, actionStyles, closeButtonStyles, toastStyles };
|
|
63
119
|
//# sourceMappingURL=Toast.styles.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.styles.mjs","sources":["../../../src/components/Toast/Toast.styles.ts"],"sourcesContent":[null],"names":[],"mappings":";AAIA;;;;;AAKG;AACI,MAAM,WAAW,GAAkC;AACxD,IAAA,IAAI,EAAE;QACJ,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,KAAK,EAAE;QACL,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,gBAAgB;AAC9B,KAAA;;AAGH;;;;AAIG;AACI,MAAM,iBAAiB,GAAkC;AAC9D,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,gBAAgB;AACrB,SAAA;AACF,KAAA
|
|
1
|
+
{"version":3,"file":"Toast.styles.mjs","sources":["../../../src/components/Toast/Toast.styles.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,20 @@ import { BoxProps, ToastOptions, ToastRootProps, ToastStatusChangeDetails } from
|
|
|
5
5
|
* Subset of Zag.js Type, excluding 'loading' for UI consistency
|
|
6
6
|
*/
|
|
7
7
|
export type ToastStatus = 'info' | 'warning' | 'success' | 'error';
|
|
8
|
+
/**
|
|
9
|
+
* The single action a toast can carry.
|
|
10
|
+
*
|
|
11
|
+
* Rendered as a text action in the toast's status color, under the
|
|
12
|
+
* description. Clicking it calls `onClick` and dismisses the toast.
|
|
13
|
+
* One action per toast — dismiss is the ×, never a second action.
|
|
14
|
+
* See the "Guidelines/Actions in feedback surfaces" page in Storybook.
|
|
15
|
+
*/
|
|
16
|
+
export interface ToastAction {
|
|
17
|
+
/** Action label — keep it to a short verb phrase ("크레딧 구매", "Undo") */
|
|
18
|
+
label: ReactNode;
|
|
19
|
+
/** Called when the action is clicked; the toast is dismissed afterwards */
|
|
20
|
+
onClick: () => void;
|
|
21
|
+
}
|
|
8
22
|
/**
|
|
9
23
|
* Toast component props
|
|
10
24
|
* Uses ToastRootProps as base and overrides title for ReactNode support
|
|
@@ -18,14 +32,22 @@ export interface ToastProps extends Omit<ToastRootProps, 'title'> {
|
|
|
18
32
|
status?: ToastStatus;
|
|
19
33
|
/** Custom close handler */
|
|
20
34
|
onClose?: () => void;
|
|
35
|
+
/** One action, rendered as a text action in the status color */
|
|
36
|
+
action?: ToastAction;
|
|
21
37
|
}
|
|
22
38
|
/**
|
|
23
39
|
* Options for useToast hook
|
|
24
40
|
* Extends Chakra's ToastOptions with custom properties
|
|
25
41
|
*/
|
|
26
|
-
export interface UseToastOptions extends ToastOptions {
|
|
42
|
+
export interface UseToastOptions extends Omit<ToastOptions, 'action'> {
|
|
27
43
|
/** Toast status - restricted to common statuses */
|
|
28
44
|
status?: ToastStatus;
|
|
45
|
+
/**
|
|
46
|
+
* One action, rendered as a text action in the status color.
|
|
47
|
+
* Unlike Chakra's `action`, the label accepts any ReactNode.
|
|
48
|
+
* When set and `duration` is not given, the toast stays for 8s instead of 5s.
|
|
49
|
+
*/
|
|
50
|
+
action?: ToastAction;
|
|
29
51
|
/** Custom styles to apply to the toast */
|
|
30
52
|
styles?: BoxProps;
|
|
31
53
|
}
|
|
@@ -38,6 +60,8 @@ export interface ToasterCreateOptions extends ToastOptions {
|
|
|
38
60
|
meta?: {
|
|
39
61
|
/** Custom close handler for the toast */
|
|
40
62
|
onClose?: () => void;
|
|
63
|
+
/** Toast action (ReactNode label); takes precedence over Chakra's `action` */
|
|
64
|
+
action?: ToastAction;
|
|
41
65
|
/** Custom styles to merge with default toast styles */
|
|
42
66
|
styles?: BoxProps;
|
|
43
67
|
/** Allow additional custom metadata */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC/D,uDAAuD;IACvD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gCAAgC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,KAAK,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC/D,uDAAuD;IACvD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gCAAgC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IACnE,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,mEAAmE;IACnE,IAAI,CAAC,EAAE;QACL,yCAAyC;QACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,8EAA8E;QAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,uDAAuD;QACvD,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,uCAAuC;QACvC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toaster.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Toaster.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toaster.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,kBAAkB,CAAC;AAM1B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,mBAGpB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,+CAoCnB,CAAC"}
|
|
@@ -50,7 +50,15 @@ const Toaster = () => (jsxRuntime.jsx(react.Portal, { children: jsxRuntime.jsx(r
|
|
|
50
50
|
// Extract custom data from meta
|
|
51
51
|
const customStyles = toast.meta?.styles || {};
|
|
52
52
|
const onClose = toast.meta?.onClose;
|
|
53
|
-
|
|
53
|
+
// `useToast` passes the action through meta so its label can be a
|
|
54
|
+
// ReactNode. A plain `toaster.create({ action })` (Chakra's own option)
|
|
55
|
+
// also works: Toast.ActionTrigger already calls `toast.action.onClick`
|
|
56
|
+
// itself, so the handler passed down here must not call it again.
|
|
57
|
+
const action = toast.meta?.action ??
|
|
58
|
+
(toast.action
|
|
59
|
+
? { label: toast.action.label, onClick: () => { } }
|
|
60
|
+
: undefined);
|
|
61
|
+
return (jsxRuntime.jsx(Toast.Toast, { title: toast.title, description: toast.description, status: toast.type, onClose: onClose, action: action, ...Toast_styles.toastStyles[toast.type], ...customStyles }));
|
|
54
62
|
} }) }));
|
|
55
63
|
|
|
56
64
|
exports.Toaster = Toaster;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.js","sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":[null],"names":["createToaster","_jsx","Portal","ChakraToaster","Toast","toastStyles"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"Toaster.js","sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":[null],"names":["createToaster","_jsx","Portal","ChakraToaster","Toast","toastStyles"],"mappings":";;;;;;;;AAWA;;;;;;;;;;;;AAYG;AACI,MAAM,OAAO,GAAwBA,mBAAa,CAAC;AACxD,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,eAAe,EAAE,IAAI;AACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,OAAO,GAAG,OACrBC,cAAA,CAACC,YAAM,cACLD,cAAA,CAACE,aAAa,EAAA,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAC5B,aAAa,EAAC,MAAM,EACpB,GAAG,EAAE,CAAC,YAEL,CAAC,KAAK,KAAI;;YAET,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE;AAC7C,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO;;;;;AAKnC,YAAA,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,EAAE,MAAM;iBACjB,KAAK,CAAC;AACL,sBAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAK,EAAE,CAAC;sBAC9C,SAAS,CAAC;AAEhB,YAAA,QACEF,cAAA,CAACG,WAAK,IACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,MAAM,EAAE,KAAK,CAAC,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAA,GACVC,wBAAW,CAAC,KAAK,CAAC,IAAgC,CAAC,KACnD,YAAY,EAAA,CAChB;QAEN,CAAC,EAAA,CACa,EAAA,CACT;;;;;"}
|
|
@@ -48,7 +48,15 @@ const Toaster = () => (jsx(Portal, { children: jsx(Toaster$1, { toaster: toaster
|
|
|
48
48
|
// Extract custom data from meta
|
|
49
49
|
const customStyles = toast.meta?.styles || {};
|
|
50
50
|
const onClose = toast.meta?.onClose;
|
|
51
|
-
|
|
51
|
+
// `useToast` passes the action through meta so its label can be a
|
|
52
|
+
// ReactNode. A plain `toaster.create({ action })` (Chakra's own option)
|
|
53
|
+
// also works: Toast.ActionTrigger already calls `toast.action.onClick`
|
|
54
|
+
// itself, so the handler passed down here must not call it again.
|
|
55
|
+
const action = toast.meta?.action ??
|
|
56
|
+
(toast.action
|
|
57
|
+
? { label: toast.action.label, onClick: () => { } }
|
|
58
|
+
: undefined);
|
|
59
|
+
return (jsx(Toast, { title: toast.title, description: toast.description, status: toast.type, onClose: onClose, action: action, ...toastStyles[toast.type], ...customStyles }));
|
|
52
60
|
} }) }));
|
|
53
61
|
|
|
54
62
|
export { Toaster, toaster };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.mjs","sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":[null],"names":["_jsx","ChakraToaster"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Toaster.mjs","sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":[null],"names":["_jsx","ChakraToaster"],"mappings":";;;;;;AAWA;;;;;;;;;;;;AAYG;AACI,MAAM,OAAO,GAAwB,aAAa,CAAC;AACxD,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,eAAe,EAAE,IAAI;AACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,OAAO,GAAG,OACrBA,GAAA,CAAC,MAAM,cACLA,GAAA,CAACC,SAAa,EAAA,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAC5B,aAAa,EAAC,MAAM,EACpB,GAAG,EAAE,CAAC,YAEL,CAAC,KAAK,KAAI;;YAET,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE;AAC7C,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO;;;;;AAKnC,YAAA,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,EAAE,MAAM;iBACjB,KAAK,CAAC;AACL,sBAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAK,EAAE,CAAC;sBAC9C,SAAS,CAAC;AAEhB,YAAA,QACED,GAAA,CAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,MAAM,EAAE,KAAK,CAAC,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAA,GACV,WAAW,CAAC,KAAK,CAAC,IAAgC,CAAC,KACnD,YAAY,EAAA,CAChB;QAEN,CAAC,EAAA,CACa,EAAA,CACT;;;;"}
|
|
@@ -3,7 +3,7 @@ import { UseToastOptions } from './Toast.types';
|
|
|
3
3
|
* Custom hook for managing toast notifications
|
|
4
4
|
* @returns Toast management functions
|
|
5
5
|
*/
|
|
6
|
-
export declare const useToast: () => (({ status, title, description, styles: stylesProp, duration, ...rest }: UseToastOptions) => string) & {
|
|
6
|
+
export declare const useToast: () => (({ status, title, description, styles: stylesProp, duration: durationProp, action, ...rest }: UseToastOptions) => string) & {
|
|
7
7
|
dismiss: (id?: string) => void;
|
|
8
8
|
dismissAll: () => void;
|
|
9
9
|
update: (id: string, data: Partial<import("@zag-js/toast").Props<import("react").ReactNode>>) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/useToast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/useToast.tsx"],"names":[],"mappings":"AAOA,OAAO,EAGL,eAAe,EAChB,MAAM,eAAe,CAAC;AAKvB;;;GAGG;AACH,eAAO,MAAM,QAAQ,uGAWhB,eAAe;;;;CAgEnB,CAAC"}
|
|
@@ -12,7 +12,14 @@ const MAX_TOASTS = 3;
|
|
|
12
12
|
*/
|
|
13
13
|
const useToast = () => {
|
|
14
14
|
const activeToasts = React.useRef([]); // Track active toast IDs
|
|
15
|
-
const showToast = ({ status = 'success', title, description, styles: stylesProp, duration
|
|
15
|
+
const showToast = ({ status = 'success', title, description, styles: stylesProp, duration: durationProp, action, ...rest }) => {
|
|
16
|
+
// A toast with an action stays longer, unless the caller chose a duration
|
|
17
|
+
// (including `null` / `Infinity` for a persistent toast).
|
|
18
|
+
const duration = durationProp !== undefined
|
|
19
|
+
? durationProp
|
|
20
|
+
: action
|
|
21
|
+
? Toast_styles.TOAST_ACTION_DURATION
|
|
22
|
+
: Toast_styles.TOAST_DEFAULT_DURATION;
|
|
16
23
|
// NOTE: placement is not supported - must be configured in Toaster.tsx createToaster()
|
|
17
24
|
const styles = {
|
|
18
25
|
...Toast_styles.toastStyles[status],
|
|
@@ -35,6 +42,7 @@ const useToast = () => {
|
|
|
35
42
|
meta: {
|
|
36
43
|
// Pass custom data through meta
|
|
37
44
|
styles, // for custom toast style
|
|
45
|
+
action, // ReactNode label, so it travels in meta rather than `action`
|
|
38
46
|
onClose: () => Toaster.toaster.dismiss(toastId), // Custom close handler
|
|
39
47
|
},
|
|
40
48
|
onStatusChange: (details) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.js","sources":["../../../src/components/Toast/useToast.tsx"],"sourcesContent":[null],"names":["useRef","toastStyles","toaster"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useToast.js","sources":["../../../src/components/Toast/useToast.tsx"],"sourcesContent":[null],"names":["useRef","TOAST_ACTION_DURATION","TOAST_DEFAULT_DURATION","toastStyles","toaster"],"mappings":";;;;;;;AAcA,MAAM,UAAU,GAAG,CAAC;AAEpB;;;AAGG;AACI,MAAM,QAAQ,GAAG,MAAK;IAC3B,MAAM,YAAY,GAAGA,YAAM,CAAW,EAAE,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,CAAC,EACjB,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,WAAW,EACX,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,MAAM,EACN,GAAG,IAAI,EACS,KAAI;;;AAGpB,QAAA,MAAM,QAAQ,GACZ,YAAY,KAAK;AACf,cAAE;AACF,cAAE;AACA,kBAAEC;kBACAC,mCAAsB;;AAG9B,QAAA,MAAM,MAAM,GAAG;YACb,GAAGC,wBAAW,CAAC,MAAM,CAAC;AACtB,YAAA,GAAG,UAAU;SACd;;QAGD,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;AAC7C,YAAA,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,OAAO;YAC5C,IAAI,aAAa,EAAE;AACjB,gBAAAC,eAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC/B,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B;QACF;;AAGA,QAAA,MAAM,OAAO,GAAGA,eAAO,CAAC,MAAM,CAAC;YAC7B,QAAQ;YACR,KAAK;YACL,WAAW;YACX,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE;;AAEJ,gBAAA,MAAM;AACN,gBAAA,MAAM;gBACN,OAAO,EAAE,MAAMA,eAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACxC,aAAA;AACD,YAAA,cAAc,EAAE,CAAC,OAAiC,KAAI;AACpD,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;;AAElC,oBAAA,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,CAAC,EAAE,KAAK,EAAE,KAAK,OAAO,CACvB;gBACH;YACF,CAAC;AACD,YAAA,GAAG,IAAI;AACgB,SAAA,CAAC;;AAG1B,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAKA,eAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzD,QAAA,YAAY,CAAC,OAAO,GAAG,EAAE;AAC3B,IAAA,CAAC;AAED,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QAC9B,OAAO,EAAEA,eAAO,CAAC,OAAO;QACxB,UAAU;QACV,MAAM,EAAEA,eAAO,CAAC,MAAM;AACvB,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useRef } from 'react';
|
|
3
|
-
import { toastStyles } from './Toast.styles.mjs';
|
|
3
|
+
import { toastStyles, TOAST_ACTION_DURATION, TOAST_DEFAULT_DURATION } from './Toast.styles.mjs';
|
|
4
4
|
import { toaster } from './Toaster.mjs';
|
|
5
5
|
|
|
6
6
|
const MAX_TOASTS = 3;
|
|
@@ -10,7 +10,14 @@ const MAX_TOASTS = 3;
|
|
|
10
10
|
*/
|
|
11
11
|
const useToast = () => {
|
|
12
12
|
const activeToasts = useRef([]); // Track active toast IDs
|
|
13
|
-
const showToast = ({ status = 'success', title, description, styles: stylesProp, duration
|
|
13
|
+
const showToast = ({ status = 'success', title, description, styles: stylesProp, duration: durationProp, action, ...rest }) => {
|
|
14
|
+
// A toast with an action stays longer, unless the caller chose a duration
|
|
15
|
+
// (including `null` / `Infinity` for a persistent toast).
|
|
16
|
+
const duration = durationProp !== undefined
|
|
17
|
+
? durationProp
|
|
18
|
+
: action
|
|
19
|
+
? TOAST_ACTION_DURATION
|
|
20
|
+
: TOAST_DEFAULT_DURATION;
|
|
14
21
|
// NOTE: placement is not supported - must be configured in Toaster.tsx createToaster()
|
|
15
22
|
const styles = {
|
|
16
23
|
...toastStyles[status],
|
|
@@ -33,6 +40,7 @@ const useToast = () => {
|
|
|
33
40
|
meta: {
|
|
34
41
|
// Pass custom data through meta
|
|
35
42
|
styles, // for custom toast style
|
|
43
|
+
action, // ReactNode label, so it travels in meta rather than `action`
|
|
36
44
|
onClose: () => toaster.dismiss(toastId), // Custom close handler
|
|
37
45
|
},
|
|
38
46
|
onStatusChange: (details) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.mjs","sources":["../../../src/components/Toast/useToast.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"useToast.mjs","sources":["../../../src/components/Toast/useToast.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAcA,MAAM,UAAU,GAAG,CAAC;AAEpB;;;AAGG;AACI,MAAM,QAAQ,GAAG,MAAK;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,CAAC,EACjB,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,WAAW,EACX,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,MAAM,EACN,GAAG,IAAI,EACS,KAAI;;;AAGpB,QAAA,MAAM,QAAQ,GACZ,YAAY,KAAK;AACf,cAAE;AACF,cAAE;AACA,kBAAE;kBACA,sBAAsB;;AAG9B,QAAA,MAAM,MAAM,GAAG;YACb,GAAG,WAAW,CAAC,MAAM,CAAC;AACtB,YAAA,GAAG,UAAU;SACd;;QAGD,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE;AAC7C,YAAA,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,OAAO;YAC5C,IAAI,aAAa,EAAE;AACjB,gBAAA,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC/B,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B;QACF;;AAGA,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,QAAQ;YACR,KAAK;YACL,WAAW;YACX,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE;;AAEJ,gBAAA,MAAM;AACN,gBAAA,MAAM;gBACN,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACxC,aAAA;AACD,YAAA,cAAc,EAAE,CAAC,OAAiC,KAAI;AACpD,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;;AAElC,oBAAA,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,CAAC,EAAE,KAAK,EAAE,KAAK,OAAO,CACvB;gBACH;YACF,CAAC;AACD,YAAA,GAAG,IAAI;AACgB,SAAA,CAAC;;AAG1B,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzD,QAAA,YAAY,CAAC,OAAO,GAAG,EAAE;AAC3B,IAAA,CAAC;AAED,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU;QACV,MAAM,EAAE,OAAO,CAAC,MAAM;AACvB,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { WorkflowProps } from './Workflow.types';
|
|
2
|
-
export declare function Workflow({ nodeTypes: nodeTypeList, graph: controlledGraph, onGraphChange, onArrange, onHistoryNavigate, defaultGraph, issues: providedIssues, readOnly, validating, showPalette, onNodeClick, onEdgeClick, onSelectionChange, onIssuesChange, footer, children, categoryTokens, hostBridge, translate: providedTranslate, minHeight, }: WorkflowProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function Workflow({ nodeTypes: nodeTypeList, graph: controlledGraph, onGraphChange, onArrange, onHistoryNavigate, defaultGraph, issues: providedIssues, readOnly, validating, showPalette, onNodeClick, onEdgeClick, onSelectionChange, onIssuesChange, renderSelectedNodeToolbar, footer, children, categoryTokens, hostBridge, translate: providedTranslate, minHeight, }: WorkflowProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=Workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../../src/components/Workflow/Workflow.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAK1B,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,MAAM,EAAE,cAAc,EACtB,QAAgB,EAChB,UAAkB,EAClB,WAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EAAE,iBAAiB,EAC5B,SAAmB,GACpB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../../src/components/Workflow/Workflow.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAK1B,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,MAAM,EAAE,cAAc,EACtB,QAAgB,EAChB,UAAkB,EAClB,WAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,yBAAyB,EACzB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EAAE,iBAAiB,EAC5B,SAAmB,GACpB,EAAE,aAAa,2CAiJf"}
|
|
@@ -13,7 +13,7 @@ var Workflow_translations = require('./Workflow.translations.json.js');
|
|
|
13
13
|
var WorkflowContext = require('./WorkflowContext/WorkflowContext.js');
|
|
14
14
|
|
|
15
15
|
const EMPTY_ISSUES = [];
|
|
16
|
-
function Workflow({ nodeTypes: nodeTypeList, graph: controlledGraph, onGraphChange, onArrange, onHistoryNavigate, defaultGraph, issues: providedIssues, readOnly = false, validating = false, showPalette = true, onNodeClick, onEdgeClick, onSelectionChange, onIssuesChange, footer, children, categoryTokens, hostBridge, translate: providedTranslate, minHeight = '500px', }) {
|
|
16
|
+
function Workflow({ nodeTypes: nodeTypeList, graph: controlledGraph, onGraphChange, onArrange, onHistoryNavigate, defaultGraph, issues: providedIssues, readOnly = false, validating = false, showPalette = true, onNodeClick, onEdgeClick, onSelectionChange, onIssuesChange, renderSelectedNodeToolbar, footer, children, categoryTokens, hostBridge, translate: providedTranslate, minHeight = '500px', }) {
|
|
17
17
|
const isControlled = controlledGraph !== undefined;
|
|
18
18
|
// Chrome copy is host-injected so the core carries no app i18n dependency.
|
|
19
19
|
// The host translator also resolves the node-type `descriptionKey`s it
|
|
@@ -102,7 +102,7 @@ function Workflow({ nodeTypes: nodeTypeList, graph: controlledGraph, onGraphChan
|
|
|
102
102
|
React.useEffect(() => {
|
|
103
103
|
observeGraph?.(graph);
|
|
104
104
|
}, [graph, observeGraph]);
|
|
105
|
-
return (jsxRuntime.jsx(WorkflowContext.WorkflowProvider, { graph: graph, dispatch: dispatch, undo: undo, redo: redo, canUndo: canUndo, canRedo: canRedo, nodeTypes: registry, translate: translate, issues: issues, onArrange: onArrange, readOnly: readOnly, onSelectionChange: onSelectionChange, validating: validating, categoryTokens: categoryTokens, hostBridge: hostBridge, children: jsxRuntime.jsxs(react.Box, { display: "flex", flexDirection: "column", height: "100%", width: "100%", minHeight: minHeight, children: [jsxRuntime.jsx(Canvas.Canvas, { showPalette: showPalette && !readOnly, onNodeClick: onNodeClick, onEdgeClick: onEdgeClick, children: children }), footer ? (jsxRuntime.jsx(react.Box, { borderTop: "1px solid", borderColor: "slate.200", bg: "bg.surface", px: 4, py: 2, children: footer })) : null] }) }));
|
|
105
|
+
return (jsxRuntime.jsx(WorkflowContext.WorkflowProvider, { graph: graph, dispatch: dispatch, undo: undo, redo: redo, canUndo: canUndo, canRedo: canRedo, nodeTypes: registry, translate: translate, issues: issues, onArrange: onArrange, readOnly: readOnly, onSelectionChange: onSelectionChange, validating: validating, categoryTokens: categoryTokens, hostBridge: hostBridge, children: jsxRuntime.jsxs(react.Box, { display: "flex", flexDirection: "column", height: "100%", width: "100%", minHeight: minHeight, children: [jsxRuntime.jsx(Canvas.Canvas, { showPalette: showPalette && !readOnly, onNodeClick: onNodeClick, onEdgeClick: onEdgeClick, renderSelectedNodeToolbar: renderSelectedNodeToolbar, children: children }), footer ? (jsxRuntime.jsx(react.Box, { borderTop: "1px solid", borderColor: "slate.200", bg: "bg.surface", px: 4, py: 2, children: footer })) : null] }) }));
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
exports.Workflow = Workflow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","sources":["../../../src/components/Workflow/Workflow.tsx"],"sourcesContent":[null],"names":["useTranslate","WorkflowTranslations","useReducer","historyReducer","emptyGraph","initHistory","useRef","useCallback","useEffect","useMemo","useWorkflowGraphObserver","_jsx","WorkflowProvider","_jsxs","Box","Canvas"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Workflow.js","sources":["../../../src/components/Workflow/Workflow.tsx"],"sourcesContent":[null],"names":["useTranslate","WorkflowTranslations","useReducer","historyReducer","emptyGraph","initHistory","useRef","useCallback","useEffect","useMemo","useWorkflowGraphObserver","_jsx","WorkflowProvider","_jsxs","Box","Canvas"],"mappings":"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"}
|