@mirohq/design-system-callout 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.js +188 -0
- package/dist/main.js.map +1 -0
- package/dist/module.js +180 -0
- package/dist/module.js.map +1 -0
- package/dist/types.d.ts +78 -0
- package/package.json +40 -0
package/dist/main.js
ADDED
@@ -0,0 +1,188 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
+
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
6
|
+
var React = require('react');
|
7
|
+
var designSystemPrimitive = require('@mirohq/design-system-primitive');
|
8
|
+
var designSystemStitches = require('@mirohq/design-system-stitches');
|
9
|
+
var designSystemIcons = require('@mirohq/design-system-icons');
|
10
|
+
var designSystemTypography = require('@mirohq/design-system-typography');
|
11
|
+
var designSystemIconButton = require('@mirohq/design-system-icon-button');
|
12
|
+
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
14
|
+
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
16
|
+
|
17
|
+
const StyledCallout = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
18
|
+
columnGap: "$150",
|
19
|
+
rowGap: "$150",
|
20
|
+
padding: "$200",
|
21
|
+
borderWidth: "$sm",
|
22
|
+
borderStyle: "solid",
|
23
|
+
borderRadius: "$75",
|
24
|
+
display: "grid",
|
25
|
+
justifyContent: "center",
|
26
|
+
gridTemplateColumns: "auto 1fr $8",
|
27
|
+
gridTemplateAreas: "'icon content close'\n 'icon actions close'",
|
28
|
+
variants: {
|
29
|
+
variant: {
|
30
|
+
information: {
|
31
|
+
backgroundColor: "$background-primary-subtle",
|
32
|
+
borderColor: "$border-primary-subtle"
|
33
|
+
},
|
34
|
+
warning: {
|
35
|
+
backgroundColor: "$background-warning-subtle",
|
36
|
+
borderColor: "$border-warning-subtle"
|
37
|
+
},
|
38
|
+
danger: {
|
39
|
+
backgroundColor: "$background-danger-subtle",
|
40
|
+
borderColor: "$border-danger-subtle"
|
41
|
+
},
|
42
|
+
success: {
|
43
|
+
backgroundColor: "$background-success-subtle",
|
44
|
+
borderColor: "$border-success-subtle"
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
});
|
49
|
+
|
50
|
+
const Content = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
51
|
+
display: "grid",
|
52
|
+
gap: "$25",
|
53
|
+
maxWidth: "48em",
|
54
|
+
gridArea: "content",
|
55
|
+
gridTemplateRows: "auto 1fr",
|
56
|
+
gridTemplateAreas: "'title'\n 'description'"
|
57
|
+
});
|
58
|
+
Content.displayName = "Callout.Content";
|
59
|
+
|
60
|
+
const Description = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
61
|
+
gridArea: "description",
|
62
|
+
color: "$text-neutrals-subtle",
|
63
|
+
fontSize: "$175",
|
64
|
+
lineHeight: "$400"
|
65
|
+
});
|
66
|
+
Description.displayName = "Callout.Description";
|
67
|
+
|
68
|
+
const CalloutContext = React.createContext({});
|
69
|
+
const CalloutProvider = ({
|
70
|
+
children,
|
71
|
+
...restProps
|
72
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
73
|
+
CalloutContext.Provider,
|
74
|
+
{
|
75
|
+
value: {
|
76
|
+
...restProps
|
77
|
+
},
|
78
|
+
children
|
79
|
+
}
|
80
|
+
);
|
81
|
+
const useCalloutContext = () => React.useContext(CalloutContext);
|
82
|
+
|
83
|
+
const StyledIconSlot = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
84
|
+
variants: {
|
85
|
+
variant: {
|
86
|
+
information: {
|
87
|
+
color: "$icon-primary"
|
88
|
+
},
|
89
|
+
warning: {
|
90
|
+
color: "$icon-warning"
|
91
|
+
},
|
92
|
+
danger: {
|
93
|
+
color: "$icon-danger"
|
94
|
+
},
|
95
|
+
success: {
|
96
|
+
color: "$icon-success"
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
});
|
101
|
+
|
102
|
+
const iconVariant = {
|
103
|
+
success: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconCheckMark, {}),
|
104
|
+
warning: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconExclamationPointCircle, {}),
|
105
|
+
danger: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconExclamationPointCircle, {}),
|
106
|
+
information: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconInformationMarkCircle, {}),
|
107
|
+
default: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconCheckMark, {})
|
108
|
+
};
|
109
|
+
const IconSlot = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => {
|
110
|
+
var _a;
|
111
|
+
const { variant } = useCalloutContext();
|
112
|
+
let formattedChildren = children;
|
113
|
+
if (React__default["default"].Children.count(children) < 1) {
|
114
|
+
formattedChildren = (_a = iconVariant[variant]) != null ? _a : iconVariant.default;
|
115
|
+
}
|
116
|
+
return /* @__PURE__ */ jsxRuntime.jsx(StyledIconSlot, { ...restProps, ref: forwardRef, variant, children: formattedChildren });
|
117
|
+
});
|
118
|
+
|
119
|
+
const Title = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(designSystemTypography.Heading, { ...props, ref: forwardRef, level: 4 }));
|
120
|
+
|
121
|
+
const Actions = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
122
|
+
gridArea: "actions",
|
123
|
+
display: "flex",
|
124
|
+
gap: "$100"
|
125
|
+
});
|
126
|
+
Actions.displayName = "Callout.Actions";
|
127
|
+
|
128
|
+
const DismissButton = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
129
|
+
designSystemIconButton.IconButton,
|
130
|
+
{
|
131
|
+
css: { gridArea: "close" },
|
132
|
+
variant: "ghost",
|
133
|
+
size: "medium",
|
134
|
+
"data-testid": "dismiss-button",
|
135
|
+
...props,
|
136
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconCross, {})
|
137
|
+
}
|
138
|
+
);
|
139
|
+
|
140
|
+
const Callout = React__default["default"].forwardRef(
|
141
|
+
({
|
142
|
+
dismissed,
|
143
|
+
dismissible = true,
|
144
|
+
onDismiss,
|
145
|
+
dismissLabel,
|
146
|
+
children,
|
147
|
+
variant,
|
148
|
+
...props
|
149
|
+
}, forwardRef) => {
|
150
|
+
const [internalDismissed, setInternalDismissed] = React.useState(
|
151
|
+
dismissed != null ? dismissed : false
|
152
|
+
);
|
153
|
+
if (dismissed != null ? dismissed : internalDismissed) {
|
154
|
+
return null;
|
155
|
+
}
|
156
|
+
const handleDismissed = () => {
|
157
|
+
setInternalDismissed(true);
|
158
|
+
onDismiss == null ? void 0 : onDismiss();
|
159
|
+
};
|
160
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CalloutProvider, { variant, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
161
|
+
StyledCallout,
|
162
|
+
{
|
163
|
+
...props,
|
164
|
+
ref: forwardRef,
|
165
|
+
variant,
|
166
|
+
role: "alert",
|
167
|
+
children: [
|
168
|
+
children,
|
169
|
+
dismissible && onDismiss != null && (dismissLabel == null ? void 0 : dismissLabel.length) > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
170
|
+
DismissButton,
|
171
|
+
{
|
172
|
+
"aria-label": dismissLabel,
|
173
|
+
onPress: handleDismissed
|
174
|
+
}
|
175
|
+
)
|
176
|
+
]
|
177
|
+
}
|
178
|
+
) });
|
179
|
+
}
|
180
|
+
);
|
181
|
+
Callout.Content = Content;
|
182
|
+
Callout.Description = Description;
|
183
|
+
Callout.IconSlot = IconSlot;
|
184
|
+
Callout.Title = Title;
|
185
|
+
Callout.Actions = Actions;
|
186
|
+
|
187
|
+
exports.Callout = Callout;
|
188
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/callout.styled.tsx","../src/partials/content.tsx","../src/partials/description.tsx","../src/hooks/use-callout-context.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/title.tsx","../src/partials/actions.tsx","../src/partials/dismiss-button.tsx","../src/callout.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledCallout = styled(Primitive.div, {\n columnGap: '$150',\n rowGap: '$150',\n padding: '$200',\n borderWidth: '$sm',\n borderStyle: 'solid',\n borderRadius: '$75',\n display: 'grid',\n justifyContent: 'center',\n gridTemplateColumns: 'auto 1fr $8',\n gridTemplateAreas: `'icon content close'\n 'icon actions close'`,\n variants: {\n variant: {\n information: {\n backgroundColor: '$background-primary-subtle',\n borderColor: '$border-primary-subtle',\n },\n warning: {\n backgroundColor: '$background-warning-subtle',\n borderColor: '$border-warning-subtle',\n },\n danger: {\n backgroundColor: '$background-danger-subtle',\n borderColor: '$border-danger-subtle',\n },\n success: {\n backgroundColor: '$background-success-subtle',\n borderColor: '$border-success-subtle',\n },\n },\n },\n})\n\nexport type StyledCalloutProps = ComponentPropsWithRef<typeof StyledCallout>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Content = styled(Primitive.div, {\n display: 'grid',\n gap: '$25',\n maxWidth: '48em',\n gridArea: 'content',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'title'\n 'description'`,\n})\n\nContent.displayName = 'Callout.Content'\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Description = styled(Primitive.div, {\n gridArea: 'description',\n color: '$text-neutrals-subtle',\n fontSize: '$175',\n lineHeight: '$400',\n})\n\nDescription.displayName = 'Callout.Description'\n","import { createContext, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { StyledCalloutProps } from '../callout.styled'\n\ninterface CalloutProps {\n variant?: StyledCalloutProps['variant']\n}\n\ninterface CalloutContextProps extends CalloutProps {}\n\nexport type CalloutProviderProps = CalloutContextProps\n\nconst CalloutContext = createContext<CalloutContextProps>({} as any)\n\nexport const CalloutProvider = ({\n children,\n ...restProps\n}: PropsWithChildren<CalloutProviderProps>): JSX.Element => (\n <CalloutContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </CalloutContext.Provider>\n)\n\nexport const useCalloutContext = (): CalloutContextProps =>\n useContext(CalloutContext)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledIconSlot = styled(Primitive.div, {\n variants: {\n variant: {\n information: {\n color: '$icon-primary',\n },\n warning: {\n color: '$icon-warning',\n },\n danger: {\n color: '$icon-danger',\n },\n success: {\n color: '$icon-success',\n },\n },\n },\n})\n","import React from 'react'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport {\n IconCheckMark,\n IconExclamationPointCircle,\n IconInformationMarkCircle,\n} from '@mirohq/design-system-icons'\n\nimport { useCalloutContext } from '../hooks/use-callout-context'\nimport { StyledIconSlot } from './icon-slot.styled'\n\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children?: React.ReactNode\n}\n\nconst iconVariant = {\n success: <IconCheckMark />,\n warning: <IconExclamationPointCircle />,\n danger: <IconExclamationPointCircle />,\n information: <IconInformationMarkCircle />,\n default: <IconCheckMark />,\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { variant } = useCalloutContext()\n\n let formattedChildren = children\n if (React.Children.count(children) < 1) {\n formattedChildren =\n iconVariant[variant as keyof typeof iconVariant] ?? iconVariant.default\n }\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} variant={variant}>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Heading } from '@mirohq/design-system-typography'\nimport type { HeadingProps } from '@mirohq/design-system-typography'\n\nexport interface GroupLabelProps extends Omit<HeadingProps, 'level'> {}\n\nexport const Title = React.forwardRef<\n ElementRef<typeof Heading>,\n GroupLabelProps\n>((props, forwardRef) => <Heading {...props} ref={forwardRef} level={4} />)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Actions = styled(Primitive.div, {\n gridArea: 'actions',\n display: 'flex',\n gap: '$100',\n})\n\nActions.displayName = 'Callout.Actions'\n","import { IconButton } from '@mirohq/design-system-icon-button'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconCross } from '@mirohq/design-system-icons'\n\nexport const DismissButton: React.FC<IconButtonProps> = props => (\n <IconButton\n css={{ gridArea: 'close' }}\n variant='ghost'\n size='medium'\n data-testid='dismiss-button'\n {...props}\n >\n <IconCross />\n </IconButton>\n)\n","import React, { useState } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport { StyledCallout } from './callout.styled'\nimport type { StyledCalloutProps } from './callout.styled'\nimport { Content } from './partials/content'\nimport { Description } from './partials/description'\nimport { IconSlot } from './partials/icon-slot'\nimport { Title } from './partials/title'\nimport { Actions } from './partials/actions'\nimport { DismissButton } from './partials/dismiss-button'\nimport { CalloutProvider } from './hooks/use-callout-context'\n\ninterface DismissibleProps {\n /**\n * Whether or not the component is dismissed (hidden)\n */\n dismissed?: boolean\n\n /**\n * Callback invoked once dismiss button is clicked\n */\n onDismiss?: () => void\n\n /**\n * aria-label for the dismiss button\n */\n dismissLabel: string\n}\n\nexport type CalloutProps = (StyledCalloutProps & {\n /**\n * Change the component style.\n */\n variant: StyledCalloutProps['variant']\n\n /**\n * Whether or not the component should display dismiss button\n * @default true\n */\n dismissible?: boolean\n}) &\n (\n | DismissibleProps // uncontrolled\n | Required<DismissibleProps> // controlled\n | ({ dismissible?: false } & { [K in keyof DismissibleProps]?: never })\n )\n\nexport const Callout = React.forwardRef<\n ElementRef<typeof StyledCallout>,\n CalloutProps\n>(\n (\n {\n dismissed,\n dismissible = true,\n onDismiss,\n dismissLabel,\n children,\n variant,\n ...props\n },\n forwardRef\n ) => {\n const [internalDismissed, setInternalDismissed] = useState<boolean>(\n dismissed ?? false\n )\n\n if (dismissed ?? internalDismissed) {\n return null\n }\n\n const handleDismissed = (): void => {\n setInternalDismissed(true)\n onDismiss?.()\n }\n\n return (\n <CalloutProvider variant={variant}>\n <StyledCallout\n {...props}\n ref={forwardRef}\n variant={variant}\n role='alert'\n >\n {children}\n {dismissible && onDismiss != null && dismissLabel?.length > 0 && (\n <DismissButton\n aria-label={dismissLabel}\n onPress={handleDismissed}\n />\n )}\n </StyledCallout>\n </CalloutProvider>\n )\n }\n) as ForwardRefExoticComponent<CalloutProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Description: typeof Description\n IconSlot: typeof IconSlot\n Title: typeof Title\n Actions: typeof Actions\n}\n\nCallout.Content = Content\nCallout.Description = Description\nCallout.IconSlot = IconSlot\nCallout.Title = Title\nCallout.Actions = Actions\n"],"names":["styled","Primitive","createContext","jsx","useContext","IconCheckMark","IconExclamationPointCircle","IconInformationMarkCircle","React","Heading","IconButton","IconCross","useState","jsxs"],"mappings":"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"}
|
package/dist/module.js
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
2
|
+
import React, { createContext, useContext, useState } from 'react';
|
3
|
+
import { Primitive } from '@mirohq/design-system-primitive';
|
4
|
+
import { styled } from '@mirohq/design-system-stitches';
|
5
|
+
import { IconCheckMark, IconExclamationPointCircle, IconInformationMarkCircle, IconCross } from '@mirohq/design-system-icons';
|
6
|
+
import { Heading } from '@mirohq/design-system-typography';
|
7
|
+
import { IconButton } from '@mirohq/design-system-icon-button';
|
8
|
+
|
9
|
+
const StyledCallout = styled(Primitive.div, {
|
10
|
+
columnGap: "$150",
|
11
|
+
rowGap: "$150",
|
12
|
+
padding: "$200",
|
13
|
+
borderWidth: "$sm",
|
14
|
+
borderStyle: "solid",
|
15
|
+
borderRadius: "$75",
|
16
|
+
display: "grid",
|
17
|
+
justifyContent: "center",
|
18
|
+
gridTemplateColumns: "auto 1fr $8",
|
19
|
+
gridTemplateAreas: "'icon content close'\n 'icon actions close'",
|
20
|
+
variants: {
|
21
|
+
variant: {
|
22
|
+
information: {
|
23
|
+
backgroundColor: "$background-primary-subtle",
|
24
|
+
borderColor: "$border-primary-subtle"
|
25
|
+
},
|
26
|
+
warning: {
|
27
|
+
backgroundColor: "$background-warning-subtle",
|
28
|
+
borderColor: "$border-warning-subtle"
|
29
|
+
},
|
30
|
+
danger: {
|
31
|
+
backgroundColor: "$background-danger-subtle",
|
32
|
+
borderColor: "$border-danger-subtle"
|
33
|
+
},
|
34
|
+
success: {
|
35
|
+
backgroundColor: "$background-success-subtle",
|
36
|
+
borderColor: "$border-success-subtle"
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
});
|
41
|
+
|
42
|
+
const Content = styled(Primitive.div, {
|
43
|
+
display: "grid",
|
44
|
+
gap: "$25",
|
45
|
+
maxWidth: "48em",
|
46
|
+
gridArea: "content",
|
47
|
+
gridTemplateRows: "auto 1fr",
|
48
|
+
gridTemplateAreas: "'title'\n 'description'"
|
49
|
+
});
|
50
|
+
Content.displayName = "Callout.Content";
|
51
|
+
|
52
|
+
const Description = styled(Primitive.div, {
|
53
|
+
gridArea: "description",
|
54
|
+
color: "$text-neutrals-subtle",
|
55
|
+
fontSize: "$175",
|
56
|
+
lineHeight: "$400"
|
57
|
+
});
|
58
|
+
Description.displayName = "Callout.Description";
|
59
|
+
|
60
|
+
const CalloutContext = createContext({});
|
61
|
+
const CalloutProvider = ({
|
62
|
+
children,
|
63
|
+
...restProps
|
64
|
+
}) => /* @__PURE__ */ jsx(
|
65
|
+
CalloutContext.Provider,
|
66
|
+
{
|
67
|
+
value: {
|
68
|
+
...restProps
|
69
|
+
},
|
70
|
+
children
|
71
|
+
}
|
72
|
+
);
|
73
|
+
const useCalloutContext = () => useContext(CalloutContext);
|
74
|
+
|
75
|
+
const StyledIconSlot = styled(Primitive.div, {
|
76
|
+
variants: {
|
77
|
+
variant: {
|
78
|
+
information: {
|
79
|
+
color: "$icon-primary"
|
80
|
+
},
|
81
|
+
warning: {
|
82
|
+
color: "$icon-warning"
|
83
|
+
},
|
84
|
+
danger: {
|
85
|
+
color: "$icon-danger"
|
86
|
+
},
|
87
|
+
success: {
|
88
|
+
color: "$icon-success"
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
});
|
93
|
+
|
94
|
+
const iconVariant = {
|
95
|
+
success: /* @__PURE__ */ jsx(IconCheckMark, {}),
|
96
|
+
warning: /* @__PURE__ */ jsx(IconExclamationPointCircle, {}),
|
97
|
+
danger: /* @__PURE__ */ jsx(IconExclamationPointCircle, {}),
|
98
|
+
information: /* @__PURE__ */ jsx(IconInformationMarkCircle, {}),
|
99
|
+
default: /* @__PURE__ */ jsx(IconCheckMark, {})
|
100
|
+
};
|
101
|
+
const IconSlot = React.forwardRef(({ children, ...restProps }, forwardRef) => {
|
102
|
+
var _a;
|
103
|
+
const { variant } = useCalloutContext();
|
104
|
+
let formattedChildren = children;
|
105
|
+
if (React.Children.count(children) < 1) {
|
106
|
+
formattedChildren = (_a = iconVariant[variant]) != null ? _a : iconVariant.default;
|
107
|
+
}
|
108
|
+
return /* @__PURE__ */ jsx(StyledIconSlot, { ...restProps, ref: forwardRef, variant, children: formattedChildren });
|
109
|
+
});
|
110
|
+
|
111
|
+
const Title = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsx(Heading, { ...props, ref: forwardRef, level: 4 }));
|
112
|
+
|
113
|
+
const Actions = styled(Primitive.div, {
|
114
|
+
gridArea: "actions",
|
115
|
+
display: "flex",
|
116
|
+
gap: "$100"
|
117
|
+
});
|
118
|
+
Actions.displayName = "Callout.Actions";
|
119
|
+
|
120
|
+
const DismissButton = (props) => /* @__PURE__ */ jsx(
|
121
|
+
IconButton,
|
122
|
+
{
|
123
|
+
css: { gridArea: "close" },
|
124
|
+
variant: "ghost",
|
125
|
+
size: "medium",
|
126
|
+
"data-testid": "dismiss-button",
|
127
|
+
...props,
|
128
|
+
children: /* @__PURE__ */ jsx(IconCross, {})
|
129
|
+
}
|
130
|
+
);
|
131
|
+
|
132
|
+
const Callout = React.forwardRef(
|
133
|
+
({
|
134
|
+
dismissed,
|
135
|
+
dismissible = true,
|
136
|
+
onDismiss,
|
137
|
+
dismissLabel,
|
138
|
+
children,
|
139
|
+
variant,
|
140
|
+
...props
|
141
|
+
}, forwardRef) => {
|
142
|
+
const [internalDismissed, setInternalDismissed] = useState(
|
143
|
+
dismissed != null ? dismissed : false
|
144
|
+
);
|
145
|
+
if (dismissed != null ? dismissed : internalDismissed) {
|
146
|
+
return null;
|
147
|
+
}
|
148
|
+
const handleDismissed = () => {
|
149
|
+
setInternalDismissed(true);
|
150
|
+
onDismiss == null ? void 0 : onDismiss();
|
151
|
+
};
|
152
|
+
return /* @__PURE__ */ jsx(CalloutProvider, { variant, children: /* @__PURE__ */ jsxs(
|
153
|
+
StyledCallout,
|
154
|
+
{
|
155
|
+
...props,
|
156
|
+
ref: forwardRef,
|
157
|
+
variant,
|
158
|
+
role: "alert",
|
159
|
+
children: [
|
160
|
+
children,
|
161
|
+
dismissible && onDismiss != null && (dismissLabel == null ? void 0 : dismissLabel.length) > 0 && /* @__PURE__ */ jsx(
|
162
|
+
DismissButton,
|
163
|
+
{
|
164
|
+
"aria-label": dismissLabel,
|
165
|
+
onPress: handleDismissed
|
166
|
+
}
|
167
|
+
)
|
168
|
+
]
|
169
|
+
}
|
170
|
+
) });
|
171
|
+
}
|
172
|
+
);
|
173
|
+
Callout.Content = Content;
|
174
|
+
Callout.Description = Description;
|
175
|
+
Callout.IconSlot = IconSlot;
|
176
|
+
Callout.Title = Title;
|
177
|
+
Callout.Actions = Actions;
|
178
|
+
|
179
|
+
export { Callout };
|
180
|
+
//# sourceMappingURL=module.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/callout.styled.tsx","../src/partials/content.tsx","../src/partials/description.tsx","../src/hooks/use-callout-context.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/title.tsx","../src/partials/actions.tsx","../src/partials/dismiss-button.tsx","../src/callout.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledCallout = styled(Primitive.div, {\n columnGap: '$150',\n rowGap: '$150',\n padding: '$200',\n borderWidth: '$sm',\n borderStyle: 'solid',\n borderRadius: '$75',\n display: 'grid',\n justifyContent: 'center',\n gridTemplateColumns: 'auto 1fr $8',\n gridTemplateAreas: `'icon content close'\n 'icon actions close'`,\n variants: {\n variant: {\n information: {\n backgroundColor: '$background-primary-subtle',\n borderColor: '$border-primary-subtle',\n },\n warning: {\n backgroundColor: '$background-warning-subtle',\n borderColor: '$border-warning-subtle',\n },\n danger: {\n backgroundColor: '$background-danger-subtle',\n borderColor: '$border-danger-subtle',\n },\n success: {\n backgroundColor: '$background-success-subtle',\n borderColor: '$border-success-subtle',\n },\n },\n },\n})\n\nexport type StyledCalloutProps = ComponentPropsWithRef<typeof StyledCallout>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Content = styled(Primitive.div, {\n display: 'grid',\n gap: '$25',\n maxWidth: '48em',\n gridArea: 'content',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'title'\n 'description'`,\n})\n\nContent.displayName = 'Callout.Content'\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Description = styled(Primitive.div, {\n gridArea: 'description',\n color: '$text-neutrals-subtle',\n fontSize: '$175',\n lineHeight: '$400',\n})\n\nDescription.displayName = 'Callout.Description'\n","import { createContext, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { StyledCalloutProps } from '../callout.styled'\n\ninterface CalloutProps {\n variant?: StyledCalloutProps['variant']\n}\n\ninterface CalloutContextProps extends CalloutProps {}\n\nexport type CalloutProviderProps = CalloutContextProps\n\nconst CalloutContext = createContext<CalloutContextProps>({} as any)\n\nexport const CalloutProvider = ({\n children,\n ...restProps\n}: PropsWithChildren<CalloutProviderProps>): JSX.Element => (\n <CalloutContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </CalloutContext.Provider>\n)\n\nexport const useCalloutContext = (): CalloutContextProps =>\n useContext(CalloutContext)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledIconSlot = styled(Primitive.div, {\n variants: {\n variant: {\n information: {\n color: '$icon-primary',\n },\n warning: {\n color: '$icon-warning',\n },\n danger: {\n color: '$icon-danger',\n },\n success: {\n color: '$icon-success',\n },\n },\n },\n})\n","import React from 'react'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport {\n IconCheckMark,\n IconExclamationPointCircle,\n IconInformationMarkCircle,\n} from '@mirohq/design-system-icons'\n\nimport { useCalloutContext } from '../hooks/use-callout-context'\nimport { StyledIconSlot } from './icon-slot.styled'\n\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children?: React.ReactNode\n}\n\nconst iconVariant = {\n success: <IconCheckMark />,\n warning: <IconExclamationPointCircle />,\n danger: <IconExclamationPointCircle />,\n information: <IconInformationMarkCircle />,\n default: <IconCheckMark />,\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { variant } = useCalloutContext()\n\n let formattedChildren = children\n if (React.Children.count(children) < 1) {\n formattedChildren =\n iconVariant[variant as keyof typeof iconVariant] ?? iconVariant.default\n }\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} variant={variant}>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Heading } from '@mirohq/design-system-typography'\nimport type { HeadingProps } from '@mirohq/design-system-typography'\n\nexport interface GroupLabelProps extends Omit<HeadingProps, 'level'> {}\n\nexport const Title = React.forwardRef<\n ElementRef<typeof Heading>,\n GroupLabelProps\n>((props, forwardRef) => <Heading {...props} ref={forwardRef} level={4} />)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const Actions = styled(Primitive.div, {\n gridArea: 'actions',\n display: 'flex',\n gap: '$100',\n})\n\nActions.displayName = 'Callout.Actions'\n","import { IconButton } from '@mirohq/design-system-icon-button'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconCross } from '@mirohq/design-system-icons'\n\nexport const DismissButton: React.FC<IconButtonProps> = props => (\n <IconButton\n css={{ gridArea: 'close' }}\n variant='ghost'\n size='medium'\n data-testid='dismiss-button'\n {...props}\n >\n <IconCross />\n </IconButton>\n)\n","import React, { useState } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport { StyledCallout } from './callout.styled'\nimport type { StyledCalloutProps } from './callout.styled'\nimport { Content } from './partials/content'\nimport { Description } from './partials/description'\nimport { IconSlot } from './partials/icon-slot'\nimport { Title } from './partials/title'\nimport { Actions } from './partials/actions'\nimport { DismissButton } from './partials/dismiss-button'\nimport { CalloutProvider } from './hooks/use-callout-context'\n\ninterface DismissibleProps {\n /**\n * Whether or not the component is dismissed (hidden)\n */\n dismissed?: boolean\n\n /**\n * Callback invoked once dismiss button is clicked\n */\n onDismiss?: () => void\n\n /**\n * aria-label for the dismiss button\n */\n dismissLabel: string\n}\n\nexport type CalloutProps = (StyledCalloutProps & {\n /**\n * Change the component style.\n */\n variant: StyledCalloutProps['variant']\n\n /**\n * Whether or not the component should display dismiss button\n * @default true\n */\n dismissible?: boolean\n}) &\n (\n | DismissibleProps // uncontrolled\n | Required<DismissibleProps> // controlled\n | ({ dismissible?: false } & { [K in keyof DismissibleProps]?: never })\n )\n\nexport const Callout = React.forwardRef<\n ElementRef<typeof StyledCallout>,\n CalloutProps\n>(\n (\n {\n dismissed,\n dismissible = true,\n onDismiss,\n dismissLabel,\n children,\n variant,\n ...props\n },\n forwardRef\n ) => {\n const [internalDismissed, setInternalDismissed] = useState<boolean>(\n dismissed ?? false\n )\n\n if (dismissed ?? internalDismissed) {\n return null\n }\n\n const handleDismissed = (): void => {\n setInternalDismissed(true)\n onDismiss?.()\n }\n\n return (\n <CalloutProvider variant={variant}>\n <StyledCallout\n {...props}\n ref={forwardRef}\n variant={variant}\n role='alert'\n >\n {children}\n {dismissible && onDismiss != null && dismissLabel?.length > 0 && (\n <DismissButton\n aria-label={dismissLabel}\n onPress={handleDismissed}\n />\n )}\n </StyledCallout>\n </CalloutProvider>\n )\n }\n) as ForwardRefExoticComponent<CalloutProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Description: typeof Description\n IconSlot: typeof IconSlot\n Title: typeof Title\n Actions: typeof Actions\n}\n\nCallout.Content = Content\nCallout.Description = Description\nCallout.IconSlot = IconSlot\nCallout.Title = Title\nCallout.Actions = Actions\n"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
import * as react from 'react';
|
2
|
+
import react__default, { ComponentPropsWithRef } from 'react';
|
3
|
+
import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
|
4
|
+
import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
|
5
|
+
import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
|
6
|
+
import { HeadingProps } from '@mirohq/design-system-typography';
|
7
|
+
|
8
|
+
declare const StyledCallout: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, "variant"> & _stitches_react_types_styled_component.TransformProps<{
|
9
|
+
variant?: "information" | "warning" | "danger" | "success" | undefined;
|
10
|
+
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {
|
11
|
+
variant?: "information" | "warning" | "danger" | "success" | undefined;
|
12
|
+
}, {}>;
|
13
|
+
declare type StyledCalloutProps = ComponentPropsWithRef<typeof StyledCallout>;
|
14
|
+
|
15
|
+
declare const Content: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
|
16
|
+
|
17
|
+
declare const Description: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
|
18
|
+
|
19
|
+
declare const StyledIconSlot: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, "variant"> & _stitches_react_types_styled_component.TransformProps<{
|
20
|
+
variant?: "information" | "warning" | "danger" | "success" | undefined;
|
21
|
+
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {
|
22
|
+
variant?: "information" | "warning" | "danger" | "success" | undefined;
|
23
|
+
}, {}>;
|
24
|
+
|
25
|
+
declare type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>;
|
26
|
+
interface IconSlotProps extends StyledIconSlotProps {
|
27
|
+
/**
|
28
|
+
* The icon.
|
29
|
+
*/
|
30
|
+
children?: react__default.ReactNode;
|
31
|
+
}
|
32
|
+
declare const IconSlot: react__default.ForwardRefExoticComponent<Omit<IconSlotProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
|
33
|
+
|
34
|
+
interface GroupLabelProps extends Omit<HeadingProps, 'level'> {
|
35
|
+
}
|
36
|
+
declare const Title: react__default.ForwardRefExoticComponent<Omit<GroupLabelProps, "ref"> & react__default.RefAttributes<HTMLHeadingElement>>;
|
37
|
+
|
38
|
+
declare const Actions: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
|
39
|
+
|
40
|
+
interface DismissibleProps {
|
41
|
+
/**
|
42
|
+
* Whether or not the component is dismissed (hidden)
|
43
|
+
*/
|
44
|
+
dismissed?: boolean;
|
45
|
+
/**
|
46
|
+
* Callback invoked once dismiss button is clicked
|
47
|
+
*/
|
48
|
+
onDismiss?: () => void;
|
49
|
+
/**
|
50
|
+
* aria-label for the dismiss button
|
51
|
+
*/
|
52
|
+
dismissLabel: string;
|
53
|
+
}
|
54
|
+
declare type CalloutProps = (StyledCalloutProps & {
|
55
|
+
/**
|
56
|
+
* Change the component style.
|
57
|
+
*/
|
58
|
+
variant: StyledCalloutProps['variant'];
|
59
|
+
/**
|
60
|
+
* Whether or not the component should display dismiss button
|
61
|
+
* @default true
|
62
|
+
*/
|
63
|
+
dismissible?: boolean;
|
64
|
+
}) & (DismissibleProps | Required<DismissibleProps> | ({
|
65
|
+
dismissible?: false;
|
66
|
+
} & {
|
67
|
+
[K in keyof DismissibleProps]?: never;
|
68
|
+
}));
|
69
|
+
declare const Callout: react__default.ForwardRefExoticComponent<CalloutProps> & Partials;
|
70
|
+
interface Partials {
|
71
|
+
Content: typeof Content;
|
72
|
+
Description: typeof Description;
|
73
|
+
IconSlot: typeof IconSlot;
|
74
|
+
Title: typeof Title;
|
75
|
+
Actions: typeof Actions;
|
76
|
+
}
|
77
|
+
|
78
|
+
export { Callout, CalloutProps };
|
package/package.json
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"name": "@mirohq/design-system-callout",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"description": "",
|
5
|
+
"author": "Miro",
|
6
|
+
"source": "src/index.ts",
|
7
|
+
"main": "dist/main.js",
|
8
|
+
"module": "dist/module.js",
|
9
|
+
"types": "dist/types.d.ts",
|
10
|
+
"sideEffects": false,
|
11
|
+
"exports": {
|
12
|
+
".": {
|
13
|
+
"require": "./dist/main.js",
|
14
|
+
"import": "./dist/module.js",
|
15
|
+
"types": "./dist/types.d.ts"
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"files": [
|
19
|
+
"dist"
|
20
|
+
],
|
21
|
+
"publishConfig": {
|
22
|
+
"access": "public"
|
23
|
+
},
|
24
|
+
"peerDependencies": {
|
25
|
+
"@stitches/react": "^1.2.8",
|
26
|
+
"react": "^16.14 || ^17 || ^18"
|
27
|
+
},
|
28
|
+
"dependencies": {
|
29
|
+
"@mirohq/design-system-icon-button": "^3.2.0",
|
30
|
+
"@mirohq/design-system-primitive": "^1.1.2",
|
31
|
+
"@mirohq/design-system-stitches": "^2.6.25",
|
32
|
+
"@mirohq/design-system-icons": "^0.57.0",
|
33
|
+
"@mirohq/design-system-typography": "^0.6.3"
|
34
|
+
},
|
35
|
+
"scripts": {
|
36
|
+
"build": "rollup -c ../../../rollup.config.js",
|
37
|
+
"clean": "rm -rf dist",
|
38
|
+
"prebuild": "pnpm clean"
|
39
|
+
}
|
40
|
+
}
|