@artsy/palette 29.0.0 → 29.1.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/dist/elements/Popover/Popover.d.ts +1 -0
- package/dist/elements/Popover/Popover.js +4 -2
- package/dist/elements/Popover/Popover.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.d.ts +1 -0
- package/dist/elements/Tooltip/Tooltip.js +4 -2
- package/dist/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.story.js +4 -0
- package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
- package/package.json +2 -2
|
@@ -22,6 +22,7 @@ export interface PopoverActions {
|
|
|
22
22
|
}
|
|
23
23
|
export interface PopoverProps extends BoxProps {
|
|
24
24
|
children: ({ anchorRef, onVisible, onHide }: PopoverActions) => JSX.Element;
|
|
25
|
+
offset?: number;
|
|
25
26
|
onClose?: () => void;
|
|
26
27
|
placement?: Position;
|
|
27
28
|
/** Display triangular pointer back to anchor node */
|
|
@@ -27,7 +27,7 @@ var _Clickable = require("../Clickable");
|
|
|
27
27
|
|
|
28
28
|
var _Pointer = require("../Pointer");
|
|
29
29
|
|
|
30
|
-
var _excluded = ["children", "onClose", "placement", "pointer", "popover", "variant", "visible"];
|
|
30
|
+
var _excluded = ["children", "onClose", "offset", "placement", "pointer", "popover", "variant", "visible"];
|
|
31
31
|
|
|
32
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
33
|
|
|
@@ -72,6 +72,8 @@ exports.POPOVER_VARIANTS = POPOVER_VARIANTS;
|
|
|
72
72
|
var Popover = function Popover(_ref) {
|
|
73
73
|
var children = _ref.children,
|
|
74
74
|
onClose = _ref.onClose,
|
|
75
|
+
_ref$offset = _ref.offset,
|
|
76
|
+
offset = _ref$offset === void 0 ? 10 : _ref$offset,
|
|
75
77
|
_ref$placement = _ref.placement,
|
|
76
78
|
placement = _ref$placement === void 0 ? "top" : _ref$placement,
|
|
77
79
|
_ref$pointer = _ref.pointer,
|
|
@@ -127,7 +129,7 @@ var Popover = function Popover(_ref) {
|
|
|
127
129
|
|
|
128
130
|
var _usePosition = (0, _utils.usePosition)({
|
|
129
131
|
position: placement,
|
|
130
|
-
offset:
|
|
132
|
+
offset: offset,
|
|
131
133
|
active: visible
|
|
132
134
|
}),
|
|
133
135
|
anchorRef = _usePosition.anchorRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["POPOVER_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Popover","children","onClose","placement","pointer","popover","variant","visible","_visible","rest","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["POPOVER_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Popover","children","onClose","offset","placement","pointer","popover","variant","visible","_visible","rest","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","active","isFlipped","state","ref","onClickOutside","when","type","Tip","Box","DROP_SHADOW","variants","Panel","Close","Clickable"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW } from \"../../helpers\"\nimport { CloseIcon } from \"../../svgs\"\nimport { Position, useClickOutside, usePosition } from \"../../utils\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Pointer } from \"../Pointer\"\n\nexport const POPOVER_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type PopoverVariant = keyof typeof POPOVER_VARIANTS\n\nexport interface PopoverActions {\n /** Call to show popover */\n onVisible(): void\n /** Call to hide popover */\n onHide(): void\n /** Pass ref to element you want the popover to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n}\n\nexport interface PopoverProps extends BoxProps {\n children: ({ anchorRef, onVisible, onHide }: PopoverActions) => JSX.Element\n offset?: number\n onClose?: () => void\n placement?: Position\n /** Display triangular pointer back to anchor node */\n pointer?: boolean\n popover: React.ReactNode\n variant?: PopoverVariant\n /** Initial default visibility */\n visible?: boolean\n}\n\n/**\n * A `Popover` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element.\n */\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n onClose,\n offset = 10,\n placement = \"top\",\n pointer = false,\n popover,\n variant = \"defaultLight\",\n visible: _visible = false,\n ...rest\n}) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n // Yields focus back and forth between popover and anchor\n useUpdateEffect(() => {\n if (visible && tooltipRef.current) {\n tooltipRef.current.focus()\n return\n }\n\n if (!anchorRef.current) return\n anchorRef.current.focus()\n }, [visible])\n\n const onVisible = useCallback(() => {\n setVisible(true)\n }, [])\n\n const onHide = useCallback(() => {\n setVisible(false)\n }, [])\n\n const handleHide = useCallback(() => {\n onHide()\n onClose?.()\n }, [onHide, onClose])\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n handleHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [handleHide])\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible,\n })\n\n useClickOutside({\n ref: tooltipRef,\n onClickOutside: handleHide,\n when: visible,\n type: \"click\",\n })\n\n return (\n <>\n {children({ anchorRef: anchorRef as any, onVisible, onHide })}\n\n {visible && (\n <Tip\n tabIndex={0}\n ref={tooltipRef as any}\n zIndex={1}\n display=\"inline-block\"\n position=\"relative\"\n variant={variant}\n >\n {pointer && (\n <Pointer\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Close\n position=\"relative\"\n zIndex={2}\n p={1}\n onClick={handleHide}\n aria-label=\"Close\"\n >\n <CloseIcon fill=\"currentColor\" display=\"block\" />\n </Close>\n\n <Panel\n variant={variant}\n position=\"relative\"\n py={2}\n px={1}\n zIndex={1}\n {...rest}\n >\n {popover}\n </Panel>\n </Tip>\n )}\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: PopoverVariant }>`\n position: fixed;\n z-index: 1;\n text-align: left;\n transition: opacity 250ms ease-out;\n box-shadow: ${DROP_SHADOW};\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: PopoverVariant }>`\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Close = styled(Clickable)`\n float: right;\n`\n"],"file":"Popover.js"}
|
|
@@ -17,6 +17,7 @@ export interface TooltipProps extends BoxProps {
|
|
|
17
17
|
children: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
18
18
|
/** Content of tooltip */
|
|
19
19
|
content: React.ReactNode;
|
|
20
|
+
offset?: number;
|
|
20
21
|
placement?: Position;
|
|
21
22
|
pointer?: boolean;
|
|
22
23
|
variant?: TooltipVariant;
|
|
@@ -23,7 +23,7 @@ var _Pointer = require("../Pointer");
|
|
|
23
23
|
|
|
24
24
|
var _Text = require("../Text");
|
|
25
25
|
|
|
26
|
-
var _excluded = ["children", "content", "width", "placement", "pointer", "variant", "visible"];
|
|
26
|
+
var _excluded = ["children", "content", "width", "offset", "placement", "pointer", "variant", "visible"];
|
|
27
27
|
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
29
|
|
|
@@ -71,6 +71,8 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
71
71
|
content = _ref.content,
|
|
72
72
|
_ref$width = _ref.width,
|
|
73
73
|
width = _ref$width === void 0 ? 230 : _ref$width,
|
|
74
|
+
_ref$offset = _ref.offset,
|
|
75
|
+
offset = _ref$offset === void 0 ? 10 : _ref$offset,
|
|
74
76
|
_ref$placement = _ref.placement,
|
|
75
77
|
placement = _ref$placement === void 0 ? "top" : _ref$placement,
|
|
76
78
|
_ref$pointer = _ref.pointer,
|
|
@@ -101,7 +103,7 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
101
103
|
|
|
102
104
|
var _usePosition = (0, _usePosition2.usePosition)({
|
|
103
105
|
position: placement,
|
|
104
|
-
offset:
|
|
106
|
+
offset: offset,
|
|
105
107
|
active: visible !== null && visible !== void 0 ? visible : active
|
|
106
108
|
}),
|
|
107
109
|
anchorRef = _usePosition.anchorRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.tsx"],"names":["TOOLTIP_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Tooltip","children","content","width","placement","pointer","variant","visible","rest","active","setActive","handleClick","prevActive","activate","deactivate","position","
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.tsx"],"names":["TOOLTIP_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Tooltip","children","content","width","offset","placement","pointer","variant","visible","rest","active","setActive","handleClick","prevActive","activate","deactivate","position","anchorRef","tooltipRef","isFlipped","state","React","cloneElement","ref","tabIndex","onClick","compose","props","onMouseOver","onMouseOut","onFocus","onBlur","opacity","Tip","Box","DROP_SHADOW","variants","Panel","a","b","args"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW, isText } from \"../../helpers\"\nimport { Position, usePosition } from \"../../utils/usePosition\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Pointer } from \"../Pointer\"\nimport { Text } from \"../Text\"\n\nexport const TOOLTIP_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type TooltipVariant = keyof typeof TOOLTIP_VARIANTS\n\nexport interface TooltipProps extends BoxProps {\n /** Anchor element to attach to tooltip */\n children: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n /** Content of tooltip */\n content: React.ReactNode\n offset?: number\n placement?: Position\n pointer?: boolean\n variant?: TooltipVariant\n visible?: boolean\n}\n\n/**\n * A tooltip\n */\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n width = 230,\n offset = 10,\n placement = \"top\",\n pointer = false,\n variant = \"defaultLight\",\n visible,\n ...rest\n}) => {\n const [active, setActive] = useState(false)\n\n const handleClick = () => {\n setActive((prevActive) => !prevActive)\n }\n\n const activate = () => {\n setActive(true)\n }\n\n const deactivate = () => {\n setActive(false)\n }\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible ?? active,\n })\n\n return (\n <>\n {React.cloneElement(children, {\n ref: anchorRef,\n tabIndex: 0,\n onClick: compose(handleClick, children.props?.onClick),\n onMouseOver: compose(activate, children.props?.onMouseOver),\n onMouseOut: compose(deactivate, children.props?.onMouseOut),\n onFocus: compose(activate, children.props?.onFocus),\n onBlur: compose(deactivate, children.props?.onBlur),\n })}\n\n <Tip\n ref={tooltipRef as any}\n variant={variant}\n width={width}\n zIndex={1}\n style={\n // If visible is explictly set to `false` then the tooltip should be hidden\n // Otherwise it should be visible or utilize the active state.\n visible !== false\n ? {\n opacity: visible ?? active ? 1 : 0,\n }\n : { opacity: 0 }\n }\n >\n {pointer && (\n <Pointer\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Panel variant={variant} p={1} {...rest}>\n {isText(content) ? <Text variant=\"xs\">{content}</Text> : content}\n </Panel>\n </Tip>\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: TooltipVariant }>`\n position: absolute;\n z-index: 1;\n transition: opacity 250ms ease-out;\n text-align: left;\n box-shadow: ${DROP_SHADOW};\n cursor: default;\n pointer-events: none;\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: TooltipVariant }>`\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst compose = (a?: (...args: any) => any, b?: (...args: any) => any) => {\n return (...args) => {\n a?.(...args)\n b?.(...args)\n }\n}\n"],"file":"Tooltip.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.story.tsx"],"names":["CONTENT","title","Default","placement","width","visible","pointer","variant","children","textAlign","rest","_Clickable","story","parameters","chromatic","disable","Placement","Object","keys","POSITION","map","props","JSON","stringify","IconExample","lineHeight","ExternalControl","setVisible"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,OAAO,GAAG,0DAAhB;eAEe;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,IAAhC;AAAsCC,MAAAA,OAAO,EAAE;AAA/C,KAHM,EAIN;AACEC,MAAAA,OAAO,EAAE,aADX;AAEEJ,MAAAA,SAAS,EAAE,QAFb;AAGEE,MAAAA,OAAO,EAAE,IAHX;AAIEC,MAAAA,OAAO,EAAE;AAJX,KAJM,EAUN;AACED,MAAAA,OAAO,EAAE,KADX;AAEEG,MAAAA,QAAQ,eAAE;AAFZ,KAVM,EAcN;AACEH,MAAAA,OAAO,EAAE,IADX;AAEEI,MAAAA,SAAS,EAAE;AAFb,KAdM;AADV,
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.story.tsx"],"names":["CONTENT","title","Default","placement","width","visible","pointer","variant","children","textAlign","offset","rest","_Clickable","story","parameters","chromatic","disable","Placement","Object","keys","POSITION","map","props","JSON","stringify","IconExample","lineHeight","ExternalControl","setVisible"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,OAAO,GAAG,0DAAhB;eAEe;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,IAAhC;AAAsCC,MAAAA,OAAO,EAAE;AAA/C,KAHM,EAIN;AACEC,MAAAA,OAAO,EAAE,aADX;AAEEJ,MAAAA,SAAS,EAAE,QAFb;AAGEE,MAAAA,OAAO,EAAE,IAHX;AAIEC,MAAAA,OAAO,EAAE;AAJX,KAJM,EAUN;AACED,MAAAA,OAAO,EAAE,KADX;AAEEG,MAAAA,QAAQ,eAAE;AAFZ,KAVM,EAcN;AACEH,MAAAA,OAAO,EAAE,IADX;AAEEI,MAAAA,SAAS,EAAE;AAFb,KAdM,EAkBN;AACEJ,MAAAA,OAAO,EAAE,IADX;AAEEC,MAAAA,OAAO,EAAE,IAFX;AAGEI,MAAAA,MAAM,EAAE,CAAC;AAHX,KAlBM;AADV,KA0BG;AAAA,QAAGF,QAAH,QAAGA,QAAH;AAAA,QAAgBG,IAAhB;;AAAA,wBACC,6BAAC,gBAAD;AAAS,MAAA,OAAO,EAAEX;AAAlB,OAA+BW,IAA/B,gBACE,6BAAC,UAAD;AACE,MAAA,OAAO,EAAC,IADV;AAEE,MAAA,SAAS,EAAC,QAFZ;AAGE,MAAA,CAAC,EAAE,CAHL;AAIE,MAAA,EAAE,EAAC,UAJL;AAKE,MAAA,KAAK,EAAC;AALR,OAOGH,QAPH,aAOGA,QAPH,cAOGA,QAPH,GAOe,yBAPf,CADF,CADD;AAAA,GA1BH,CADF;AA0CD,CA3CM;;;AAAMN,O;;AA6CN,IAAMU,UAAU,GAAG,SAAbA,UAAa,GAAM;AAC9B,sBACE,6BAAC,uBAAD;AAA+B,IAAA,MAAM,EAAE,CAAC,EAAD;AAAvC,kBACE,6BAAC,gBAAD;AAAS,IAAA,OAAO,EAAEZ;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;;;AAAMY,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,UAAClB,SAAD;AAAA,aAAgB;AAChDA,QAAAA,SAAS,EAAEA;AADqC,OAAhB;AAAA,KAA1B;AADV,KAKG,UAACmB,KAAD,EAAW;AACV,wBACE,6BAAC,gBAAD;AACE,MAAA,OAAO,EAAEC,IAAI,CAACC,SAAL,CAAeF,KAAf,CADX;AAEE,MAAA,OAAO,EAAC,aAFV;AAGE,MAAA,OAAO,MAHT;AAIE,MAAA,OAAO;AAJT,OAKMA,KALN,gBAOE,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;AANL,OAQGC,IAAI,CAACC,SAAL,CAAeF,KAAf,CARH,CAPF,CADF;AAoBD,GA1BH,CADF;AA8BD,CA/BM;;;AAAML,S;;AAiCN,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,EAAEzB,OAAlB;AAA2B,IAAA,SAAS,EAAC;AAArC,kBAEE,6BAAC,QAAD;AAAK,IAAA,EAAE,EAAC,MAAR;AAAe,IAAA,KAAK,EAAE;AAAE0B,MAAAA,UAAU,EAAE;AAAd;AAAtB,kBACE,6BAAC,cAAD;AAAU,IAAA,EAAE,EAAE;AAAd,IADF,CAFF,CAFF,CADF;AAWD,CAZM;;;AAAMD,W;;AAcN,IAAME,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AACnC,kBAA8B,qBAAS,KAAT,CAA9B;AAAA;AAAA,MAAOtB,OAAP;AAAA,MAAgBuB,UAAhB;;AAEA,sBACE,yEACE,6BAAC,gBAAD;AACE,IAAA,OAAO,EAAE5B,OADX;AAEE,IAAA,OAAO,EAAEK,OAFX;AAGE,IAAA,OAAO,MAHT;AAIE,IAAA,OAAO,EAAC;AAJV,kBAME,6BAAC,cAAD;AACE,IAAA,OAAO,EAAC,gBADV;AAEE,IAAA,OAAO,EAAE,mBAAM;AACbuB,MAAAA,UAAU,CAAC,UAACvB,OAAD;AAAA,eAAa,CAACA,OAAd;AAAA,OAAD,CAAV;AACD;AAJH,KAMGA,OAAO,GAAG,uBAAH,GAA6B,uBANvC,CANF,CADF,CADF;AAmBD,CAtBM","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React, { useState } from \"react\"\nimport { States } from \"storybook-states\"\nimport { HelpIcon } from \"../../svgs\"\nimport { Position, POSITION } from \"../../utils/usePosition\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Clickable } from \"../Clickable\"\nimport { Text } from \"../Text\"\nimport { Tooltip, TooltipProps } from \"./Tooltip\"\n\nconst CONTENT = \"Lorem ipsum dolor sit amet consectetur adipisicing elit?\"\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, pointer: true },\n {\n variant: \"defaultDark\",\n placement: \"bottom\",\n visible: true,\n pointer: true,\n },\n {\n visible: false,\n children: <>This text has a tooltip that never displays</>,\n },\n {\n visible: true,\n textAlign: \"center\",\n },\n {\n visible: true,\n pointer: true,\n offset: -10,\n },\n ]}\n >\n {({ children, ...rest }) => (\n <Tooltip content={CONTENT} {...rest}>\n <Text\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n bg=\"black100\"\n color=\"white100\"\n >\n {children ?? \"This text has a tooltip\"}\n </Text>\n </Tooltip>\n )}\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\n content={JSON.stringify(props)}\n variant=\"defaultDark\"\n pointer\n visible\n {...props}\n >\n <Text\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black10\"\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\nexport const ExternalControl = () => {\n const [visible, setVisible] = useState(false)\n\n return (\n <>\n <Tooltip\n content={CONTENT}\n visible={visible}\n pointer\n variant=\"defaultDark\"\n >\n <Button\n variant=\"secondaryBlack\"\n onClick={() => {\n setVisible((visible) => !visible)\n }}\n >\n {visible ? \"Click to hide tooltip\" : \"Click to show tooltip\"}\n </Button>\n </Tooltip>\n </>\n )\n}\n"],"file":"Tooltip.story.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "29.
|
|
3
|
+
"version": "29.1.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -174,5 +174,5 @@
|
|
|
174
174
|
"<rootDir>/www/"
|
|
175
175
|
]
|
|
176
176
|
},
|
|
177
|
-
"gitHead": "
|
|
177
|
+
"gitHead": "e2b2cf2763516a043245f60f90906698d24a03ae"
|
|
178
178
|
}
|