@artsy/palette 18.4.2 → 18.5.0
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/CHANGELOG.md +17 -0
- package/dist/elements/Spinner/Spinner.story.d.ts +5 -0
- package/dist/elements/Spinner/Spinner.story.js +6 -1
- package/dist/elements/Spinner/Spinner.story.js.map +1 -1
- package/dist/elements/Toasts/Toast.d.ts +2 -1
- package/dist/elements/Toasts/Toast.js +10 -5
- package/dist/elements/Toasts/Toast.js.map +1 -1
- package/dist/elements/Toasts/Toast.story.js +1 -0
- package/dist/elements/Toasts/Toast.story.js.map +1 -1
- package/dist/elements/Toasts/Toasts.js +2 -3
- package/dist/elements/Toasts/Toasts.js.map +1 -1
- package/dist/elements/Toasts/Toasts.story.js +88 -7
- package/dist/elements/Toasts/Toasts.story.js.map +1 -1
- package/dist/elements/Toasts/useToasts.d.ts +13 -4
- package/dist/elements/Toasts/useToasts.js +50 -31
- package/dist/elements/Toasts/useToasts.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.story.d.ts +10 -1
- package/dist/elements/Tooltip/Tooltip.story.js +7 -0
- package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# v18.5.0 (Thu Oct 28 2021)
|
|
2
|
+
|
|
3
|
+
#### 🚀 Enhancement
|
|
4
|
+
|
|
5
|
+
- feat(toasts): supports retracting toasts [#1065](https://github.com/artsy/palette/pull/1065) ([@dzucconi](https://github.com/dzucconi))
|
|
6
|
+
|
|
7
|
+
#### 🐛 Bug Fix
|
|
8
|
+
|
|
9
|
+
- chore(chromatic): disables stories ([@dzucconi](https://github.com/dzucconi))
|
|
10
|
+
- feat(toasts): supports retracting toasts ([@dzucconi](https://github.com/dzucconi))
|
|
11
|
+
|
|
12
|
+
#### Authors: 1
|
|
13
|
+
|
|
14
|
+
- Damon ([@dzucconi](https://github.com/dzucconi))
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
1
18
|
# v18.4.2 (Mon Oct 25 2021)
|
|
2
19
|
|
|
3
20
|
#### 🐛 Bug Fix
|
|
@@ -32,6 +32,11 @@ var SpinnerWithDelayedShow = function SpinnerWithDelayedShow() {
|
|
|
32
32
|
exports.SpinnerWithDelayedShow = SpinnerWithDelayedShow;
|
|
33
33
|
SpinnerWithDelayedShow.displayName = "SpinnerWithDelayedShow";
|
|
34
34
|
SpinnerWithDelayedShow.story = {
|
|
35
|
-
name: "Spinner with delayed show"
|
|
35
|
+
name: "Spinner with delayed show",
|
|
36
|
+
parameters: {
|
|
37
|
+
chromatic: {
|
|
38
|
+
disable: true
|
|
39
|
+
}
|
|
40
|
+
}
|
|
36
41
|
};
|
|
37
42
|
//# sourceMappingURL=Spinner.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Spinner/Spinner.story.tsx"],"names":["title","DefaultSpinner","SpinnerWithDelayedShow","story","name"],"mappings":";;;;;;;AAAA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAClC,sBAAO,6BAAC,gBAAD,OAAP;AACD,CAFM;;;AAAMA,c;;AAIN,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AAC1C,sBAAO,6BAAC,gBAAD;AAAS,IAAA,KAAK,EAAE;AAAhB,IAAP;AACD,CAFM;;;AAAMA,sB;AAIbA,sBAAsB,CAACC,KAAvB,GAA+B;AAC7BC,EAAAA,IAAI,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Spinner/Spinner.story.tsx"],"names":["title","DefaultSpinner","SpinnerWithDelayedShow","story","name","parameters","chromatic","disable"],"mappings":";;;;;;;AAAA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAClC,sBAAO,6BAAC,gBAAD,OAAP;AACD,CAFM;;;AAAMA,c;;AAIN,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AAC1C,sBAAO,6BAAC,gBAAD;AAAS,IAAA,KAAK,EAAE;AAAhB,IAAP;AACD,CAFM;;;AAAMA,sB;AAIbA,sBAAsB,CAACC,KAAvB,GAA+B;AAC7BC,EAAAA,IAAI,EAAE,2BADuB;AAE7BC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAX;AAAb;AAFiB,CAA/B","sourcesContent":["import React from \"react\"\nimport { Spinner } from \"./Spinner\"\n\nexport default {\n title: \"Components/Spinner\",\n}\n\nexport const DefaultSpinner = () => {\n return <Spinner />\n}\n\nexport const SpinnerWithDelayedShow = () => {\n return <Spinner delay={1000} />\n}\n\nSpinnerWithDelayedShow.story = {\n name: \"Spinner with delayed show\",\n parameters: { chromatic: { disable: true } },\n}\n"],"file":"Spinner.story.js"}
|
|
@@ -2,13 +2,14 @@ import React from "react";
|
|
|
2
2
|
import { BoxProps } from "../Box";
|
|
3
3
|
export declare type ToastVariant = keyof typeof TOAST_VARIANTS;
|
|
4
4
|
export interface ToastProps extends BoxProps {
|
|
5
|
+
id: string;
|
|
5
6
|
action?: {
|
|
6
7
|
label: string;
|
|
7
8
|
onClick(): void;
|
|
8
9
|
};
|
|
9
10
|
description?: string;
|
|
10
11
|
message: string;
|
|
11
|
-
onClose?(): void;
|
|
12
|
+
onClose?(id: string): void;
|
|
12
13
|
variant?: ToastVariant;
|
|
13
14
|
}
|
|
14
15
|
export declare const Toast: React.FC<ToastProps>;
|
|
@@ -28,11 +28,16 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
28
28
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
29
29
|
|
|
30
30
|
var Toast = function Toast(_ref) {
|
|
31
|
-
var
|
|
31
|
+
var id = _ref.id,
|
|
32
|
+
action = _ref.action,
|
|
32
33
|
description = _ref.description,
|
|
33
34
|
message = _ref.message,
|
|
34
35
|
onClose = _ref.onClose,
|
|
35
|
-
rest = _objectWithoutProperties(_ref, ["action", "description", "message", "onClose"]);
|
|
36
|
+
rest = _objectWithoutProperties(_ref, ["id", "action", "description", "message", "onClose"]);
|
|
37
|
+
|
|
38
|
+
var handleClick = function handleClick() {
|
|
39
|
+
onClose === null || onClose === void 0 ? void 0 : onClose(id);
|
|
40
|
+
};
|
|
36
41
|
|
|
37
42
|
return /*#__PURE__*/_react.default.createElement(Container, _extends({
|
|
38
43
|
width: "100%",
|
|
@@ -42,10 +47,10 @@ var Toast = function Toast(_ref) {
|
|
|
42
47
|
color: "white100",
|
|
43
48
|
role: "button",
|
|
44
49
|
tabIndex: 0,
|
|
45
|
-
onClick:
|
|
50
|
+
onClick: handleClick,
|
|
46
51
|
onKeyPress: function onKeyPress(event) {
|
|
47
52
|
if (event.key === "Enter" || event.key === " ") {
|
|
48
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
53
|
+
onClose === null || onClose === void 0 ? void 0 : onClose(id);
|
|
49
54
|
}
|
|
50
55
|
},
|
|
51
56
|
style: {
|
|
@@ -91,7 +96,7 @@ exports.TOAST_VARIANTS = TOAST_VARIANTS;
|
|
|
91
96
|
var Container = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
92
97
|
displayName: "Toast__Container",
|
|
93
98
|
componentId: "sc-1c067m4-0"
|
|
94
|
-
})(["", ""], (0, _styledSystem.variant)({
|
|
99
|
+
})(["", " user-select:none;"], (0, _styledSystem.variant)({
|
|
95
100
|
variants: TOAST_VARIANTS
|
|
96
101
|
}));
|
|
97
102
|
//# sourceMappingURL=Toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Toasts/Toast.tsx"],"names":["Toast","action","description","message","onClose","rest","event","key","cursor","onClick","label","TOAST_VARIANTS","backgroundColor","color","alert","success","error","Container","Box","variants"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Toasts/Toast.tsx"],"names":["Toast","id","action","description","message","onClose","rest","handleClick","event","key","cursor","onClick","label","TOAST_VARIANTS","backgroundColor","color","alert","success","error","Container","Box","variants"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAgBO,IAAMA,KAA2B,GAAG,SAA9BA,KAA8B,OAOrC;AAAA,MANJC,EAMI,QANJA,EAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,WAII,QAJJA,WAII;AAAA,MAHJC,OAGI,QAHJA,OAGI;AAAA,MAFJC,OAEI,QAFJA,OAEI;AAAA,MADDC,IACC;;AACJ,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBF,IAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGJ,EAAH,CAAP;AACD,GAFD;;AAIA,sBACE,6BAAC,SAAD;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,EAAE,EAAE,CAFN;AAGE,IAAA,EAAE,EAAE,CAHN;AAIE,IAAA,EAAE,EAAC,UAJL;AAKE,IAAA,KAAK,EAAC,UALR;AAME,IAAA,IAAI,EAAC,QANP;AAOE,IAAA,QAAQ,EAAE,CAPZ;AAQE,IAAA,OAAO,EAAEM,WARX;AASE,IAAA,UAAU,EAAE,oBAACC,KAAD,EAAW;AACrB,UAAIA,KAAK,CAACC,GAAN,KAAc,OAAd,IAAyBD,KAAK,CAACC,GAAN,KAAc,GAA3C,EAAgD;AAC9CJ,QAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGJ,EAAH,CAAP;AACD;AACF,KAbH;AAcE,IAAA,KAAK,EAAE;AAAES,MAAAA,MAAM,EAAE;AAAV;AAdT,KAeMJ,IAfN,gBAiBE,6BAAC,UAAD;AAAM,IAAA,UAAU,EAAC,YAAjB;AAA8B,IAAA,cAAc,EAAC;AAA7C,kBACE,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KAAoBF,OAApB,CADF,EAGGF,MAAM,iBACL,6BAAC,oBAAD;AACE,IAAA,OAAO,EAAEA,MAAM,CAACS,OADlB;AAEE,IAAA,cAAc,EAAC,WAFjB;AAGE,IAAA,KAAK,EAAC;AAHR,kBAKE,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KAAoBT,MAAM,CAACU,KAA3B,CALF,CAJJ,CAjBF,EA+BGT,WAAW,iBAAI,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KAAoBA,WAApB,CA/BlB,CADF;AAmCD,CA/CM;;;AAAMH,K;AAiDN,IAAMa,cAAc,GAAG;AAC5BT,EAAAA,OAAO,EAAE;AACPU,IAAAA,eAAe,EAAE,UADV;AAEPC,IAAAA,KAAK,EAAE;AAFA,GADmB;AAK5BC,EAAAA,KAAK,EAAE;AACLF,IAAAA,eAAe,EAAE,SADZ;AAELC,IAAAA,KAAK,EAAE;AAFF,GALqB;AAS5BE,EAAAA,OAAO,EAAE;AACPH,IAAAA,eAAe,EAAE,UADV;AAEPC,IAAAA,KAAK,EAAE;AAFA,GATmB;AAa5BG,EAAAA,KAAK,EAAE;AACLJ,IAAAA,eAAe,EAAE,QADZ;AAELC,IAAAA,KAAK,EAAE;AAFF;AAbqB,CAAvB;;AAmBP,IAAMI,SAAS,GAAG,+BAAOC,QAAP,CAAH;AAAA;AAAA;AAAA,+BACX,2BAAQ;AAAEC,EAAAA,QAAQ,EAAER;AAAZ,CAAR,CADW,CAAf","sourcesContent":["import React from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Flex } from \"../Flex\"\nimport { Clickable } from \"../Clickable\"\nimport { Text } from \"../Text\"\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastProps extends BoxProps {\n id: string\n action?: {\n label: string\n onClick(): void\n }\n description?: string\n message: string\n onClose?(id: string): void\n variant?: ToastVariant\n}\n\nexport const Toast: React.FC<ToastProps> = ({\n id,\n action,\n description,\n message,\n onClose,\n ...rest\n}) => {\n const handleClick = () => {\n onClose?.(id)\n }\n\n return (\n <Container\n width=\"100%\"\n px={2}\n py={1}\n bg=\"black100\"\n color=\"white100\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClick}\n onKeyPress={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n onClose?.(id)\n }\n }}\n style={{ cursor: \"pointer\" }}\n {...rest}\n >\n <Flex alignItems=\"flex-start\" justifyContent=\"space-between\">\n <Text variant=\"md\">{message}</Text>\n\n {action && (\n <Clickable\n onClick={action.onClick}\n textDecoration=\"underline\"\n color=\"rgba(255, 255, 255, 0.9)\"\n >\n <Text variant=\"xs\">{action.label}</Text>\n </Clickable>\n )}\n </Flex>\n\n {description && <Text variant=\"xs\">{description}</Text>}\n </Container>\n )\n}\n\nexport const TOAST_VARIANTS = {\n message: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n alert: {\n backgroundColor: \"blue100\",\n color: \"white100\",\n },\n success: {\n backgroundColor: \"green100\",\n color: \"white100\",\n },\n error: {\n backgroundColor: \"red100\",\n color: \"white100\",\n },\n}\n\nconst Container = styled(Box)`\n ${variant({ variants: TOAST_VARIANTS })}\n user-select: none;\n`\n"],"file":"Toast.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Toasts/Toast.story.tsx"],"names":["title","Default","variant","action","label","onClick"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN;AAAEC,MAAAA,OAAO,EAAE;AAAX,KADM,EAEN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAFM,EAGN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAHM,EAIN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAJM,EAKN;AAAEC,MAAAA,MAAM,EAAE;AAAEC,QAAAA,KAAK,EAAE,MAAT;AAAiBC,QAAAA,OAAO,EAAE,0BAAO,SAAP;AAA1B;AAAV,KALM;AADV,kBASE,6BAAC,YAAD;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Toasts/Toast.story.tsx"],"names":["title","Default","variant","action","label","onClick"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN;AAAEC,MAAAA,OAAO,EAAE;AAAX,KADM,EAEN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAFM,EAGN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAHM,EAIN;AAAEA,MAAAA,OAAO,EAAE;AAAX,KAJM,EAKN;AAAEC,MAAAA,MAAM,EAAE;AAAEC,QAAAA,KAAK,EAAE,MAAT;AAAiBC,QAAAA,OAAO,EAAE,0BAAO,SAAP;AAA1B;AAAV,KALM;AADV,kBASE,6BAAC,YAAD;AACE,IAAA,EAAE,EAAC,SADL;AAEE,IAAA,OAAO,EAAC,eAFV;AAGE,IAAA,WAAW,EAAC;AAHd,IATF,CADF;AAiBD,CAlBM;;;AAAMJ,O","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Toast, ToastProps } from \"./Toast\"\n\nexport default {\n title: \"Components/Toast\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<ToastProps>>\n states={[\n { variant: \"message\" },\n { variant: \"alert\" },\n { variant: \"success\" },\n { variant: \"error\" },\n { action: { label: \"Undo\", onClick: action(\"onClick\") } },\n ]}\n >\n <Toast\n id=\"example\"\n message=\"Message Title\"\n description=\"This is placeholder text.\"\n />\n </States>\n )\n}\n"],"file":"Toast.story.js"}
|
|
@@ -41,12 +41,11 @@ var Toasts = function Toasts(_ref) {
|
|
|
41
41
|
})
|
|
42
42
|
}, takeRight(toasts, limit).map(function (_ref2) {
|
|
43
43
|
var id = _ref2.id,
|
|
44
|
-
|
|
45
|
-
rest = _objectWithoutProperties(_ref2, ["id", "close"]);
|
|
44
|
+
rest = _objectWithoutProperties(_ref2, ["id"]);
|
|
46
45
|
|
|
47
46
|
return /*#__PURE__*/_react.default.createElement(_Toast.Toast, _extends({
|
|
48
47
|
key: id,
|
|
49
|
-
|
|
48
|
+
id: id
|
|
50
49
|
}, rest));
|
|
51
50
|
}))), /*#__PURE__*/_react.default.createElement(_VisuallyHidden.VisuallyHidden, {
|
|
52
51
|
"aria-live": "assertive",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Toasts/Toasts.tsx"],"names":["Toasts","limit","rest","toasts","takeRight","map","id","
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Toasts/Toasts.tsx"],"names":["Toasts","limit","rest","toasts","takeRight","map","id","toast","i","message","description","xs","length","slice"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAMO,IAAMA,MAA6B,GAAG,SAAhCA,MAAgC,OAA4B;AAAA,wBAAzBC,KAAyB;AAAA,MAAzBA,KAAyB,2BAAjB,CAAiB;AAAA,MAAXC,IAAW;;AAAA,mBACpD,4BADoD;AAAA,MAC/DC,MAD+D,cAC/DA,MAD+D;;AAGvE,sBACE,yEACE,6BAAC,QAAD,EAASD,IAAT,eACE,6BAAC,UAAD;AAAM,IAAA,SAAS,eAAE,6BAAC,cAAD;AAAQ,MAAA,EAAE,EAAE;AAAZ;AAAjB,KACGE,SAAS,CAACD,MAAD,EAASF,KAAT,CAAT,CAAyBI,GAAzB,CAA6B;AAAA,QAAGC,EAAH,SAAGA,EAAH;AAAA,QAAUJ,IAAV;;AAAA,wBAC5B,6BAAC,YAAD;AAAO,MAAA,GAAG,EAAEI,EAAZ;AAAgB,MAAA,EAAE,EAAEA;AAApB,OAA4BJ,IAA5B,EAD4B;AAAA,GAA7B,CADH,CADF,CADF,eASE,6BAAC,8BAAD;AACE,iBAAU,WADZ;AAEE,mBAAY,MAFd;AAGE,qBAAc;AAHhB,KAKGC,MAAM,CAACE,GAAP,CAAW,UAACE,KAAD,EAAQC,CAAR,EAAc;AACxB,wBACE;AAAK,MAAA,GAAG,EAAEA;AAAV,OACGD,KAAK,CAACE,OADT,SACqBF,KAAK,CAACG,WAD3B,CADF;AAKD,GANA,CALH,CATF,CADF;AAyBD,CA5BM;;;;AA8BP,IAAMN,SAAS,GAAG,SAAZA,SAAY,CAAKO,EAAL,EAA4B;AAAA,MAAdV,KAAc,uEAAN,CAAM;;AAC5C,MAAIU,EAAE,CAACC,MAAH,GAAYX,KAAhB,EAAuB;AACrB,WAAOU,EAAP;AACD;;AAED,SAAOA,EAAE,CAACE,KAAH,CAASF,EAAE,CAACC,MAAH,GAAYX,KAArB,EAA4BU,EAAE,CAACC,MAA/B,CAAP;AACD,CAND","sourcesContent":["import React from \"react\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Join } from \"../Join\"\nimport { Spacer } from \"../Spacer\"\nimport { Toast } from \"./Toast\"\nimport { useToasts } from \"./useToasts\"\n\nexport interface ToastsProps extends BoxProps {\n limit?: number\n}\n\nexport const Toasts: React.FC<ToastsProps> = ({ limit = 5, ...rest }) => {\n const { toasts } = useToasts()\n\n return (\n <>\n <Box {...rest}>\n <Join separator={<Spacer mt={1} />}>\n {takeRight(toasts, limit).map(({ id, ...rest }) => (\n <Toast key={id} id={id} {...rest} />\n ))}\n </Join>\n </Box>\n\n <VisuallyHidden\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n aria-relevant=\"additions\"\n >\n {toasts.map((toast, i) => {\n return (\n <div key={i}>\n {toast.message} - {toast.description}\n </div>\n )\n })}\n </VisuallyHidden>\n </>\n )\n}\n\nconst takeRight = <T,>(xs: T[], limit = 1) => {\n if (xs.length < limit) {\n return xs\n }\n\n return xs.slice(xs.length - limit, xs.length)\n}\n"],"file":"Toasts.js"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.Demo = exports.default = void 0;
|
|
7
9
|
|
|
8
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
|
|
10
12
|
var _storybookStates = require("storybook-states");
|
|
11
13
|
|
|
@@ -13,13 +15,39 @@ var _Flex = require("../Flex");
|
|
|
13
15
|
|
|
14
16
|
var _Button = require("../Button");
|
|
15
17
|
|
|
18
|
+
var _Text = require("../Text");
|
|
19
|
+
|
|
16
20
|
var _Toast = require("./Toast");
|
|
17
21
|
|
|
18
22
|
var _Toasts = require("./Toasts");
|
|
19
23
|
|
|
20
24
|
var _useToasts2 = require("./useToasts");
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
var _ = require("..");
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
32
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
33
|
+
|
|
34
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
35
|
+
|
|
36
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
37
|
+
|
|
38
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
39
|
+
|
|
40
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
41
|
+
|
|
42
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
43
|
+
|
|
44
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
45
|
+
|
|
46
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
47
|
+
|
|
48
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
49
|
+
|
|
50
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
23
51
|
|
|
24
52
|
var _default = {
|
|
25
53
|
title: "Components/Toasts"
|
|
@@ -28,7 +56,13 @@ exports.default = _default;
|
|
|
28
56
|
|
|
29
57
|
var Demo = function Demo() {
|
|
30
58
|
var _useToasts = (0, _useToasts2.useToasts)(),
|
|
31
|
-
sendToast = _useToasts.sendToast
|
|
59
|
+
sendToast = _useToasts.sendToast,
|
|
60
|
+
retractToast = _useToasts.retractToast;
|
|
61
|
+
|
|
62
|
+
var _useState = (0, _react.useState)([]),
|
|
63
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
64
|
+
activeToasts = _useState2[0],
|
|
65
|
+
setActiveToasts = _useState2[1];
|
|
32
66
|
|
|
33
67
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
34
68
|
mb: 1
|
|
@@ -40,16 +74,63 @@ var Demo = function Demo() {
|
|
|
40
74
|
size: "small",
|
|
41
75
|
mr: 1,
|
|
42
76
|
onClick: function onClick() {
|
|
43
|
-
sendToast({
|
|
77
|
+
var _sendToast = sendToast({
|
|
44
78
|
variant: variant,
|
|
45
79
|
message: "".concat(captialized, " Title"),
|
|
46
|
-
description: "This is example text."
|
|
80
|
+
description: "This is example text.",
|
|
81
|
+
onClose: function onClose(closedID) {
|
|
82
|
+
setActiveToasts(function (activeToasts) {
|
|
83
|
+
return activeToasts.filter(function (id) {
|
|
84
|
+
return id !== closedID;
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}),
|
|
89
|
+
id = _sendToast.id;
|
|
90
|
+
|
|
91
|
+
setActiveToasts(function (activeToasts) {
|
|
92
|
+
return [].concat(_toConsumableArray(activeToasts), [id]);
|
|
47
93
|
});
|
|
48
94
|
}
|
|
49
95
|
}, captialized);
|
|
50
|
-
})
|
|
96
|
+
}), /*#__PURE__*/_react.default.createElement(_Button.Button, {
|
|
97
|
+
size: "small",
|
|
98
|
+
variant: "secondaryGray",
|
|
99
|
+
onClick: function onClick() {
|
|
100
|
+
var _sendToast2 = sendToast({
|
|
101
|
+
variant: "message",
|
|
102
|
+
message: "Until manually dismissed",
|
|
103
|
+
description: "This toast will hang around until it's manually dismissed.",
|
|
104
|
+
ttl: Infinity,
|
|
105
|
+
onClose: function onClose(closedID) {
|
|
106
|
+
setActiveToasts(function (activeToasts) {
|
|
107
|
+
return activeToasts.filter(function (id) {
|
|
108
|
+
return id !== closedID;
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}),
|
|
113
|
+
id = _sendToast2.id;
|
|
114
|
+
|
|
115
|
+
setActiveToasts(function (activeToasts) {
|
|
116
|
+
return [].concat(_toConsumableArray(activeToasts), [id]);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}, "Until manually dismissed")), /*#__PURE__*/_react.default.createElement(_storybookStates.States, null, /*#__PURE__*/_react.default.createElement(_Toasts.Toasts, {
|
|
51
120
|
limit: 7
|
|
52
|
-
}))
|
|
121
|
+
})), activeToasts.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_.Separator, {
|
|
122
|
+
my: 1
|
|
123
|
+
}), /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
124
|
+
variant: "xs"
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement("u", null, "Active toasts:"), activeToasts.map(function (id) {
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(_.Clickable, {
|
|
127
|
+
key: id,
|
|
128
|
+
display: "block",
|
|
129
|
+
onClick: function onClick() {
|
|
130
|
+
return retractToast(id);
|
|
131
|
+
}
|
|
132
|
+
}, "Remove ", id);
|
|
133
|
+
}))));
|
|
53
134
|
};
|
|
54
135
|
|
|
55
136
|
exports.Demo = Demo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Toasts/Toasts.story.tsx"],"names":["title","Demo","sendToast","Object","keys","TOAST_VARIANTS","map","variant","captialized","charAt","toUpperCase","slice","message","description","decorators","Story"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Toasts/Toasts.story.tsx"],"names":["title","Demo","sendToast","retractToast","activeToasts","setActiveToasts","Object","keys","TOAST_VARIANTS","map","variant","captialized","charAt","toUpperCase","slice","message","description","onClose","closedID","filter","id","ttl","Infinity","length","decorators","Story"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\"\nimport { States } from \"storybook-states\"\nimport { Flex } from \"../Flex\"\nimport { Button } from \"../Button\"\nimport { Text } from \"../Text\"\nimport { ToastVariant, TOAST_VARIANTS } from \"./Toast\"\nimport { Toasts } from \"./Toasts\"\nimport { ToastsProvider, useToasts } from \"./useToasts\"\nimport { Clickable, Separator } from \"..\"\n\nexport default {\n title: \"Components/Toasts\",\n}\n\nexport const Demo = () => {\n const { sendToast, retractToast } = useToasts()\n\n const [activeToasts, setActiveToasts] = useState<string[]>([])\n\n return (\n <>\n <Flex mb={1}>\n {(Object.keys(TOAST_VARIANTS) as ToastVariant[]).map((variant) => {\n const captialized = variant.charAt(0).toUpperCase() + variant.slice(1)\n\n return (\n <Button\n key={variant}\n variant=\"secondaryOutline\"\n size=\"small\"\n mr={1}\n onClick={() => {\n const { id } = sendToast({\n variant,\n message: `${captialized} Title`,\n description: \"This is example text.\",\n onClose: (closedID) => {\n setActiveToasts((activeToasts) => {\n return activeToasts.filter((id) => id !== closedID)\n })\n },\n })\n\n setActiveToasts((activeToasts) => [...activeToasts, id])\n }}\n >\n {captialized}\n </Button>\n )\n })}\n\n <Button\n size=\"small\"\n variant=\"secondaryGray\"\n onClick={() => {\n const { id } = sendToast({\n variant: \"message\",\n message: \"Until manually dismissed\",\n description:\n \"This toast will hang around until it's manually dismissed.\",\n ttl: Infinity,\n onClose: (closedID) => {\n setActiveToasts((activeToasts) => {\n return activeToasts.filter((id) => id !== closedID)\n })\n },\n })\n\n setActiveToasts((activeToasts) => [...activeToasts, id])\n }}\n >\n Until manually dismissed\n </Button>\n </Flex>\n\n <States>\n <Toasts limit={7} />\n </States>\n\n {activeToasts.length > 0 && (\n <>\n <Separator my={1} />\n\n <Text variant=\"xs\">\n <u>Active toasts:</u>\n\n {activeToasts.map((id) => {\n return (\n <Clickable\n key={id}\n display=\"block\"\n onClick={() => retractToast(id)}\n >\n Remove {id}\n </Clickable>\n )\n })}\n </Text>\n </>\n )}\n </>\n )\n}\n\nDemo.decorators = [\n (Story) => (\n <ToastsProvider>\n <Story />\n </ToastsProvider>\n ),\n]\n"],"file":"Toasts.story.js"}
|
|
@@ -3,21 +3,30 @@ import { ToastProps } from "./Toast";
|
|
|
3
3
|
interface Toast extends ToastProps {
|
|
4
4
|
id: string;
|
|
5
5
|
ttl: number;
|
|
6
|
-
|
|
6
|
+
onClose(id: string): void;
|
|
7
7
|
}
|
|
8
|
-
declare type Payload = Omit<Toast, "id" | "ttl" | "
|
|
8
|
+
declare type Payload = Omit<Toast, "id" | "ttl" | "onClose"> & {
|
|
9
9
|
ttl?: number;
|
|
10
|
+
onClose?(id: string): void;
|
|
10
11
|
};
|
|
11
12
|
declare type State = {
|
|
12
13
|
toasts: Toast[];
|
|
13
14
|
};
|
|
14
15
|
export declare const ToastsContext: React.Context<{
|
|
15
16
|
state: State;
|
|
16
|
-
sendToast(toast: Payload):
|
|
17
|
+
sendToast(toast: Payload): {
|
|
18
|
+
id: string;
|
|
19
|
+
handleClose: () => void;
|
|
20
|
+
};
|
|
21
|
+
retractToast(id: string): void;
|
|
17
22
|
}>;
|
|
18
23
|
export declare const ToastsProvider: React.FC;
|
|
19
24
|
export declare const useToasts: () => {
|
|
20
25
|
toasts: Toast[];
|
|
21
|
-
sendToast: (toast: Payload) =>
|
|
26
|
+
sendToast: (toast: Payload) => {
|
|
27
|
+
id: string;
|
|
28
|
+
handleClose: () => void;
|
|
29
|
+
};
|
|
30
|
+
retractToast: (id: string) => void;
|
|
22
31
|
};
|
|
23
32
|
export {};
|
|
@@ -64,7 +64,14 @@ var ToastsContext = /*#__PURE__*/(0, _react.createContext)({
|
|
|
64
64
|
state: {
|
|
65
65
|
toasts: []
|
|
66
66
|
},
|
|
67
|
-
sendToast: function sendToast() {
|
|
67
|
+
sendToast: function sendToast() {
|
|
68
|
+
return {
|
|
69
|
+
id: "",
|
|
70
|
+
handleClose: function handleClose() {// NOOP
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
retractToast: function retractToast() {// NOOP
|
|
68
75
|
}
|
|
69
76
|
});
|
|
70
77
|
exports.ToastsContext = ToastsContext;
|
|
@@ -79,54 +86,64 @@ var ToastsProvider = function ToastsProvider(_ref2) {
|
|
|
79
86
|
state = _useReducer2[0],
|
|
80
87
|
dispatch = _useReducer2[1];
|
|
81
88
|
|
|
82
|
-
var
|
|
89
|
+
var activeToasts = (0, _react.useRef)(new Map());
|
|
90
|
+
var retractToast = (0, _react.useCallback)(function (id) {
|
|
91
|
+
var _toast$onClose;
|
|
92
|
+
|
|
93
|
+
var toast = activeToasts.current.get(id);
|
|
94
|
+
if (!toast) return;
|
|
95
|
+
clearTimeout(toast.timeout);
|
|
96
|
+
activeToasts.current.delete(id);
|
|
97
|
+
dispatch({
|
|
98
|
+
type: "RETRACT",
|
|
99
|
+
payload: {
|
|
100
|
+
id: id
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
(_toast$onClose = toast.onClose) === null || _toast$onClose === void 0 ? void 0 : _toast$onClose.call(toast, id);
|
|
104
|
+
}, []);
|
|
83
105
|
var sendToast = (0, _react.useCallback)(function (_ref3) {
|
|
84
106
|
var _ref3$ttl = _ref3.ttl,
|
|
85
107
|
ttl = _ref3$ttl === void 0 ? 6000 : _ref3$ttl,
|
|
86
|
-
|
|
108
|
+
onClose = _ref3.onClose,
|
|
109
|
+
rest = _objectWithoutProperties(_ref3, ["ttl", "onClose"]);
|
|
87
110
|
|
|
88
111
|
var id = generateId();
|
|
89
112
|
|
|
90
|
-
var
|
|
91
|
-
|
|
92
|
-
timeouts.current.delete(id);
|
|
93
|
-
dispatch({
|
|
94
|
-
type: "RETRACT",
|
|
95
|
-
payload: {
|
|
96
|
-
id: id
|
|
97
|
-
}
|
|
98
|
-
});
|
|
113
|
+
var handleClose = function handleClose() {
|
|
114
|
+
retractToast(id);
|
|
99
115
|
};
|
|
100
116
|
|
|
101
117
|
dispatch({
|
|
102
118
|
type: "SEND",
|
|
103
|
-
payload: _objectSpread(_objectSpread({
|
|
104
|
-
id: id
|
|
105
|
-
}, rest), {}, {
|
|
119
|
+
payload: _objectSpread(_objectSpread({}, rest), {}, {
|
|
120
|
+
id: id,
|
|
106
121
|
ttl: ttl,
|
|
107
|
-
|
|
122
|
+
onClose: handleClose
|
|
108
123
|
})
|
|
109
124
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}, []);
|
|
125
|
+
activeToasts.current.set(id, {
|
|
126
|
+
timeout: ttl !== Infinity ? window.setTimeout(handleClose, ttl) : -1,
|
|
127
|
+
onClose: onClose
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
id: id,
|
|
131
|
+
handleClose: handleClose
|
|
132
|
+
};
|
|
133
|
+
}, [retractToast]);
|
|
120
134
|
(0, _react.useEffect)(function () {
|
|
121
|
-
var
|
|
135
|
+
var toasts = activeToasts.current;
|
|
122
136
|
return function () {
|
|
123
|
-
|
|
137
|
+
toasts.forEach(function (toast) {
|
|
138
|
+
return clearTimeout(toast.timeout);
|
|
139
|
+
});
|
|
124
140
|
};
|
|
125
141
|
}, []);
|
|
126
142
|
return /*#__PURE__*/_react.default.createElement(ToastsContext.Provider, {
|
|
127
143
|
value: {
|
|
128
144
|
state: state,
|
|
129
|
-
sendToast: sendToast
|
|
145
|
+
sendToast: sendToast,
|
|
146
|
+
retractToast: retractToast
|
|
130
147
|
}
|
|
131
148
|
}, children);
|
|
132
149
|
};
|
|
@@ -137,11 +154,13 @@ ToastsProvider.displayName = "ToastsProvider";
|
|
|
137
154
|
var useToasts = function useToasts() {
|
|
138
155
|
var _useContext = (0, _react.useContext)(ToastsContext),
|
|
139
156
|
toasts = _useContext.state.toasts,
|
|
140
|
-
sendToast = _useContext.sendToast
|
|
157
|
+
sendToast = _useContext.sendToast,
|
|
158
|
+
retractToast = _useContext.retractToast;
|
|
141
159
|
|
|
142
160
|
return {
|
|
143
161
|
toasts: toasts,
|
|
144
|
-
sendToast: sendToast
|
|
162
|
+
sendToast: sendToast,
|
|
163
|
+
retractToast: retractToast
|
|
145
164
|
};
|
|
146
165
|
};
|
|
147
166
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Toasts/useToasts.tsx"],"names":["reducer","state","action","type","toasts","payload","filter","id","ToastsContext","sendToast","ToastsProvider","children","dispatch","
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Toasts/useToasts.tsx"],"names":["reducer","state","action","type","toasts","payload","filter","id","ToastsContext","sendToast","handleClose","retractToast","ToastsProvider","children","dispatch","activeToasts","Map","toast","current","get","clearTimeout","timeout","delete","onClose","ttl","rest","generateId","set","Infinity","window","setTimeout","forEach","useToasts","Math","random","toString","slice"],"mappings":"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","sourcesContent":["import React, {\n createContext,\n useContext,\n useReducer,\n useCallback,\n useRef,\n useEffect,\n} from \"react\"\nimport { ToastProps } from \"./Toast\"\n\ninterface Toast extends ToastProps {\n id: string\n ttl: number\n onClose(id: string): void\n}\n\ntype Payload = Omit<Toast, \"id\" | \"ttl\" | \"onClose\"> & {\n ttl?: number\n onClose?(id: string): void\n}\n\ntype State = { toasts: Toast[] }\n\ntype Action =\n | { type: \"SEND\"; payload: Toast }\n | { type: \"RETRACT\"; payload: { id: string } }\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"SEND\":\n return { ...state, toasts: [...state.toasts, action.payload] }\n\n case \"RETRACT\":\n return {\n ...state,\n toasts: state.toasts.filter(({ id }) => {\n return id !== action.payload.id\n }),\n }\n }\n}\n\nexport const ToastsContext = createContext<{\n state: State\n sendToast(toast: Payload): { id: string; handleClose: () => void }\n retractToast(id: string): void\n}>({\n state: { toasts: [] },\n sendToast: () => {\n return {\n id: \"\",\n handleClose: () => {\n // NOOP\n },\n }\n },\n retractToast: () => {\n // NOOP\n },\n})\n\nexport const ToastsProvider: React.FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, { toasts: [] })\n\n const activeToasts = useRef<\n Map<\n string,\n {\n timeout: number\n onClose?: (id: string) => void\n }\n >\n >(new Map())\n\n const retractToast = useCallback((id: string) => {\n const toast = activeToasts.current.get(id)\n\n if (!toast) return\n\n clearTimeout(toast.timeout)\n\n activeToasts.current.delete(id)\n\n dispatch({ type: \"RETRACT\", payload: { id } })\n\n toast.onClose?.(id)\n }, [])\n\n const sendToast = useCallback(\n ({ ttl = 6000, onClose, ...rest }: Payload) => {\n const id = generateId()\n\n const handleClose = () => {\n retractToast(id)\n }\n\n dispatch({\n type: \"SEND\",\n payload: { ...rest, id, ttl, onClose: handleClose },\n })\n\n activeToasts.current.set(id, {\n timeout: ttl !== Infinity ? window.setTimeout(handleClose, ttl) : -1,\n onClose,\n })\n\n return { id, handleClose }\n },\n [retractToast]\n )\n\n useEffect(() => {\n const toasts = activeToasts.current\n\n return () => {\n toasts.forEach((toast) => clearTimeout(toast.timeout))\n }\n }, [])\n\n return (\n <ToastsContext.Provider value={{ state, sendToast, retractToast }}>\n {children}\n </ToastsContext.Provider>\n )\n}\n\nexport const useToasts = () => {\n const {\n state: { toasts },\n sendToast,\n retractToast,\n } = useContext(ToastsContext)\n\n return { toasts, sendToast, retractToast }\n}\n\nconst generateId = () => Math.random().toString(26).slice(2)\n"],"file":"useToasts.js"}
|
|
@@ -4,6 +4,15 @@ declare const _default: {
|
|
|
4
4
|
};
|
|
5
5
|
export default _default;
|
|
6
6
|
export declare const Default: () => JSX.Element;
|
|
7
|
-
export declare const _Clickable:
|
|
7
|
+
export declare const _Clickable: {
|
|
8
|
+
(): JSX.Element;
|
|
9
|
+
story: {
|
|
10
|
+
parameters: {
|
|
11
|
+
chromatic: {
|
|
12
|
+
disable: boolean;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
8
17
|
export declare const Placement: () => JSX.Element;
|
|
9
18
|
export declare const IconExample: () => JSX.Element;
|
|
@@ -76,6 +76,13 @@ var _Clickable = function _Clickable() {
|
|
|
76
76
|
|
|
77
77
|
exports._Clickable = _Clickable;
|
|
78
78
|
_Clickable.displayName = "_Clickable";
|
|
79
|
+
_Clickable.story = {
|
|
80
|
+
parameters: {
|
|
81
|
+
chromatic: {
|
|
82
|
+
disable: true
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
79
86
|
|
|
80
87
|
var Placement = function Placement() {
|
|
81
88
|
return /*#__PURE__*/_react.default.createElement(_storybookStates.States, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.story.tsx"],"names":["CONTENT","title","Default","placement","width","visible","_Clickable","Placement","Object","keys","POSITION","map","props","JSON","stringify","IconExample","lineHeight"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,OAAO,GACX,2OADF;eAGe;AACbC,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN;AAAEC,MAAAA,SAAS,EAAE;AAAb,KADM,EAEN;AAAEA,MAAAA,SAAS,EAAE,QAAb;AAAuBC,MAAAA,KAAK,EAAE;AAA9B,KAFM,EAGN;AAAED,MAAAA,SAAS,EAAE,QAAb;AAAuBE,MAAAA,OAAO,EAAE;AAAhC,KAHM;AADV,kBAOE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEL;AAAlB,kBACE,6BAAC,UAAD;AACE,IAAA,OAAO,EAAC,IADV;AAEE,IAAA,SAAS,EAAC,QAFZ;AAGE,IAAA,CAAC,EAAE,CAHL;AAIE,IAAA,EAAE,EAAC,UAJL;AAKE,IAAA,KAAK,EAAC;AALR,+BADF,CAPF,CADF;AAqBD,CAtBM;;;AAAME,O;;AAwBN,IAAMI,UAAU,GAAG,SAAbA,UAAa,GAAM;AAC9B,sBACE,6BAAC,uBAAD;AAA+B,IAAA,MAAM,EAAE,CAAC,EAAD;AAAvC,kBACE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEN;AAAlB,kBACE,6BAAC,qBAAD;AAAW,IAAA,OAAO,EAAE,0BAAO,SAAP;AAApB,kBACE,6BAAC,UAAD;AACE,IAAA,OAAO,EAAC,IADV;AAEE,IAAA,SAAS,EAAC,QAFZ;AAGE,IAAA,CAAC,EAAE,CAHL;AAIE,IAAA,EAAE,EAAC,UAJL;AAKE,IAAA,KAAK,EAAC;AALR,gDADF,CADF,CADF,CADF;AAiBD,CAlBM;;;AAAMM,U;;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.story.tsx"],"names":["CONTENT","title","Default","placement","width","visible","_Clickable","story","parameters","chromatic","disable","Placement","Object","keys","POSITION","map","props","JSON","stringify","IconExample","lineHeight"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,OAAO,GACX,2OADF;eAGe;AACbC,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN;AAAEC,MAAAA,SAAS,EAAE;AAAb,KADM,EAEN;AAAEA,MAAAA,SAAS,EAAE,QAAb;AAAuBC,MAAAA,KAAK,EAAE;AAA9B,KAFM,EAGN;AAAED,MAAAA,SAAS,EAAE,QAAb;AAAuBE,MAAAA,OAAO,EAAE;AAAhC,KAHM;AADV,kBAOE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEL;AAAlB,kBACE,6BAAC,UAAD;AACE,IAAA,OAAO,EAAC,IADV;AAEE,IAAA,SAAS,EAAC,QAFZ;AAGE,IAAA,CAAC,EAAE,CAHL;AAIE,IAAA,EAAE,EAAC,UAJL;AAKE,IAAA,KAAK,EAAC;AALR,+BADF,CAPF,CADF;AAqBD,CAtBM;;;AAAME,O;;AAwBN,IAAMI,UAAU,GAAG,SAAbA,UAAa,GAAM;AAC9B,sBACE,6BAAC,uBAAD;AAA+B,IAAA,MAAM,EAAE,CAAC,EAAD;AAAvC,kBACE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEN;AAAlB,kBACE,6BAAC,qBAAD;AAAW,IAAA,OAAO,EAAE,0BAAO,SAAP;AAApB,kBACE,6BAAC,UAAD;AACE,IAAA,OAAO,EAAC,IADV;AAEE,IAAA,SAAS,EAAC,QAFZ;AAGE,IAAA,CAAC,EAAE,CAHL;AAIE,IAAA,EAAE,EAAC,UAJL;AAKE,IAAA,KAAK,EAAC;AALR,gDADF,CADF,CADF,CADF;AAiBD,CAlBM;;;AAAMM,U;AAoBbA,UAAU,CAACC,KAAX,GAAmB;AACjBC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAX;AAAb;AADK,CAAnB;;AAIO,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAM;AAC7B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAEC,MAAM,CAACC,IAAP,CAAYC,qBAAZ,EAAsBC,GAAtB,CAA0B,UAACZ,SAAD;AAAA,aAAgB;AAChDA,QAAAA,SAAS,EAAEA;AADqC,OAAhB;AAAA,KAA1B;AADV,KAKG,UAACa,KAAD,EAAW;AACV,wBACE,6BAAC,gBAAD;AAAS,MAAA,OAAO,EAAEC,IAAI,CAACC,SAAL,CAAeF,KAAf,CAAlB;AAAyC,MAAA,OAAO;AAAhD,OAAqDA,KAArD,gBACE,6BAAC,UAAD;AACE,MAAA,OAAO,EAAC,IADV;AAEE,MAAA,SAAS,EAAC,QAFZ;AAGE,MAAA,CAAC,EAAE,CAHL;AAIE,MAAA,QAAQ,EAAC,KAJX;AAKE,MAAA,EAAE,EAAC,MALL;AAME,MAAA,EAAE,EAAC,UANL;AAOE,MAAA,KAAK,EAAC;AAPR,OASGC,IAAI,CAACC,SAAL,CAAeF,KAAf,CATH,CADF,CADF;AAeD,GArBH,CADF;AAyBD,CA1BM;;;AAAML,S;;AA4BN,IAAMQ,WAAW,GAAG,SAAdA,WAAc,GAAM;AAC/B,sBACE,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC,IAAd;AAAmB,IAAA,OAAO,EAAC,MAA3B;AAAkC,IAAA,UAAU,EAAC,QAA7C;AAAsD,IAAA,UAAU,EAAE;AAAlE,0DACoD,GADpD,eAEE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEnB,OAAlB;AAA2B,IAAA,SAAS,EAAC;AAArC,kBAEE,6BAAC,QAAD;AAAK,IAAA,EAAE,EAAC,MAAR;AAAe,IAAA,KAAK,EAAE;AAAEoB,MAAAA,UAAU,EAAE;AAAd;AAAtB,kBACE,6BAAC,cAAD;AAAU,IAAA,EAAE,EAAE;AAAd,IADF,CAFF,CAFF,CADF;AAWD,CAZM;;;AAAMD,W","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { HelpIcon } from \"../../svgs\"\nimport { Position, POSITION } from \"../../utils/usePosition\"\nimport { Box } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Text } from \"../Text\"\nimport { Tooltip, TooltipProps } from \"./Tooltip\"\n\nconst CONTENT =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Omnis odio laudantium sint possimus debitis commodi iusto odit, sunt facilis consequuntur, hic rem doloremque illum provident temporibus atque. Ducimus, commodi necessitatibus?\"\n\nexport default {\n title: \"Components/Tooltip\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<TooltipProps>>\n states={[\n { placement: \"top-start\" },\n { placement: \"bottom\", width: 600 },\n { placement: \"bottom\", visible: true },\n ]}\n >\n <Tooltip content={CONTENT}>\n <Text\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n bg=\"black100\"\n color=\"white100\"\n >\n This text has a tooltip\n </Text>\n </Tooltip>\n </States>\n )\n}\n\nexport const _Clickable = () => {\n return (\n <States<Partial<TooltipProps>> states={[{}]}>\n <Tooltip content={CONTENT}>\n <Clickable onClick={action(\"onClick\")}>\n <Text\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n bg=\"black100\"\n color=\"white100\"\n >\n This text has a tooltip and is clickable\n </Text>\n </Clickable>\n </Tooltip>\n </States>\n )\n}\n\n_Clickable.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const Placement = () => {\n return (\n <States<Partial<TooltipProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n {(props) => {\n return (\n <Tooltip content={JSON.stringify(props)} visible {...props}>\n <Text\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black100\"\n color=\"white100\"\n >\n {JSON.stringify(props)}\n </Text>\n </Tooltip>\n )\n }}\n </States>\n )\n}\n\nexport const IconExample = () => {\n return (\n <Text variant=\"xs\" display=\"flex\" alignItems=\"center\" lineHeight={1}>\n Hover (or focus) the icon to display the tooltip.{\" \"}\n <Tooltip content={CONTENT} placement=\"bottom\">\n {/* Icons don't forwardRefs so we have to wrap in a span */}\n <Box as=\"span\" style={{ lineHeight: 0 }}>\n <HelpIcon ml={0.5} />\n </Box>\n </Tooltip>\n </Text>\n )\n}\n"],"file":"Tooltip.story.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.5.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -175,5 +175,5 @@
|
|
|
175
175
|
"<rootDir>/www/"
|
|
176
176
|
]
|
|
177
177
|
},
|
|
178
|
-
"gitHead": "
|
|
178
|
+
"gitHead": "bfee1e6d498a377a8fc4d5f0ffc6d3a4dac5ae7a"
|
|
179
179
|
}
|