@k8slens/lds-tips 0.1.4 → 0.1.5
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/lib/cjs/TipPointer/TipPointer.d.ts +6 -2
- package/lib/cjs/TipPointer/TipPointer.js +1 -1
- package/lib/cjs/Tips/Step.js +1 -1
- package/lib/cjs/Tips/Steps.d.ts +13 -1
- package/lib/es/TipPointer/TipPointer.d.ts +6 -2
- package/lib/es/TipPointer/TipPointer.js +1 -1
- package/lib/es/Tips/Step.js +1 -1
- package/lib/es/Tips/Steps.d.ts +13 -1
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HTMLAttributes } from "react";
|
|
1
|
+
import React, { HTMLAttributes } from "react";
|
|
2
2
|
import type { Step } from "../Tips/Steps";
|
|
3
3
|
interface TipPointerProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onClick" | "id" | "style" | "ref"> {
|
|
4
4
|
step: Step;
|
|
@@ -6,11 +6,15 @@ interface TipPointerProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onCli
|
|
|
6
6
|
target: HTMLElement;
|
|
7
7
|
hidden: boolean;
|
|
8
8
|
mutationsListenerElement: HTMLElement;
|
|
9
|
+
/**
|
|
10
|
+
* Optional ref to the pointer.
|
|
11
|
+
*/
|
|
12
|
+
pointerRef?: React.MutableRefObject<HTMLButtonElement | null>;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* TipPointer component
|
|
12
16
|
*
|
|
13
17
|
* Used with `Tips` component to highlight a tip target.
|
|
14
18
|
*/
|
|
15
|
-
export default function TipPointer({ step, onClick, target, hidden, mutationsListenerElement, ...props }: TipPointerProps): JSX.Element;
|
|
19
|
+
export default function TipPointer({ step, onClick, target, hidden, mutationsListenerElement, pointerRef, ...props }: TipPointerProps): JSX.Element;
|
|
16
20
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../_virtual/_tslib.js"),t=require("react"),r=require("clsx"),
|
|
1
|
+
"use strict";var e=require("../_virtual/_tslib.js"),t=require("react"),r=require("clsx"),n=require("lodash"),s=require("react-popper"),i=require("rooks"),o=require("./TipPointer.module.css.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(t),c=u(r),l={subtree:!0,childList:!0,attributes:!1,characterData:!1};module.exports=function(r){var u=r.step,f=r.onClick,p=r.target,d=r.hidden,m=r.mutationsListenerElement,_=r.pointerRef,v=e.__rest(r,["step","onClick","target","hidden","mutationsListenerElement","pointerRef"]),b=t.useRef(m),h=u.pointerOffset,q=u.placement,g=u.id,k=u.pointerStyles,C=t.useState(),y=C[0],E=C[1],j=t.useCallback((function(e){E(e),void 0!==_&&(_.current=e)}),[_]),L=t.useMemo((function(){return h?[h[1],h[0]]:[0,0]}),[h]),M=t.useState(!1),N=M[0],R=M[1],S=t.useMemo((function(){return[{name:"offset",options:{offset:L}}]}),[L]),x=s.usePopper(p,y,{placement:q,modifiers:S}),O=x.styles,P=x.attributes,w=x.update,D=n.throttle((function(){var e;null===(e=null==w?void 0:w())||void 0===e||e.catch((function(e){console.error(e)}))}),250);return t.useEffect((function(){R(!0)}),[]),i.useMutationObserver(b,D,l),a.default.createElement("button",e.__assign({},v,{ref:j,"data-show":N&&!d,id:"pointer-for-".concat(g),onClick:f,className:c.default(v.className,o.pointer,u.pointerClassName),style:e.__assign(e.__assign({},O.popper),k)},P.popper))};
|
package/lib/cjs/Tips/Step.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("rooks"),n=require("clsx"),
|
|
1
|
+
"use strict";var e=require("react"),t=require("rooks"),n=require("clsx"),a=require("../TipPointer/TipPointer.js"),i=require("../Tip/Tip.js"),l=require("./Step.module.css.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=u(e),o=u(n);module.exports=function(n){var u=n.step,s=n.target,c=n.goNext,p=n.setSkipAll,f=n.onPointerClick,d=n.onClose,m=n.onNextClick,k=n.onSkipAllClick,C=n.mutationsListenerElement,b=u.theme,E=u.targetPointer,g=u.popupPlacement,S=u.popupOffset,h=u.content,q=e.useState(!1),v=q[0],x=q[1],P=e.useRef(null),j=e.useRef(null),y=e.useCallback((function(){x(!0),f&&f(u)}),[u,f,x]),L=e.useCallback((function(){c(),x(!1),m&&m(u)}),[u,m,c]),N=e.useCallback((function(){p(),x(!1),k&&k(u)}),[u,k,p]);t.useOutsideClick(j,e.useCallback((function(e){e.target.id!=="pointer-for-".concat(u.id)&&(x(!1),v&&d&&d(u))}),[d,u,v])),t.useKey("Escape",e.useCallback((function(){x(!1),v&&d&&d(u)}),[d,u,v])),e.useEffect((function(){x(!1)}),[u]),t.useWindowEventListener("blur",e.useCallback((function(){x(!1),v&&d&&d(u)}),[d,u,v]));var R=E?P.current:s;return r.default.createElement(r.default.Fragment,null,r.default.createElement(a,{pointerRef:P,onClick:y,step:u,target:s,hidden:v,mutationsListenerElement:C,"aria-expanded":!!v,"aria-controls":u.id,"aria-label":"Show tip"}),R&&r.default.createElement(i,{id:"tip-for-".concat(u.id),popupRef:j,className:o.default(l.step,u.popupClassName),style:u.popupStyles,placement:g,offset:S,"data-show":!!v,onDoneClick:L,onSkipAllClick:N,target:R,mutationsListenerElement:C,theme:b,role:"status","aria-hidden":!v},h))};
|
package/lib/cjs/Tips/Steps.d.ts
CHANGED
|
@@ -5,8 +5,20 @@ export interface Step {
|
|
|
5
5
|
selector: string;
|
|
6
6
|
pointer?: string;
|
|
7
7
|
content: React.ReactNode;
|
|
8
|
-
placement?: TipProps["placement"];
|
|
9
8
|
theme?: TipProps["theme"];
|
|
9
|
+
/**
|
|
10
|
+
* If true, the Tip will be placed based on the pointer position.
|
|
11
|
+
* Otherwise it will be placed based on the target position (default).
|
|
12
|
+
*/
|
|
13
|
+
targetPointer?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Popper placement of the TipPointer element
|
|
16
|
+
*/
|
|
17
|
+
placement?: TipProps["placement"];
|
|
18
|
+
/**
|
|
19
|
+
* Popper placement of the Tip element
|
|
20
|
+
*/
|
|
21
|
+
popupPlacement?: TipProps["placement"];
|
|
10
22
|
popupOffset?: TipProps["offset"];
|
|
11
23
|
popupStyles?: React.CSSProperties;
|
|
12
24
|
popupClassName?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HTMLAttributes } from "react";
|
|
1
|
+
import React, { HTMLAttributes } from "react";
|
|
2
2
|
import type { Step } from "../Tips/Steps";
|
|
3
3
|
interface TipPointerProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onClick" | "id" | "style" | "ref"> {
|
|
4
4
|
step: Step;
|
|
@@ -6,11 +6,15 @@ interface TipPointerProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onCli
|
|
|
6
6
|
target: HTMLElement;
|
|
7
7
|
hidden: boolean;
|
|
8
8
|
mutationsListenerElement: HTMLElement;
|
|
9
|
+
/**
|
|
10
|
+
* Optional ref to the pointer.
|
|
11
|
+
*/
|
|
12
|
+
pointerRef?: React.MutableRefObject<HTMLButtonElement | null>;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* TipPointer component
|
|
12
16
|
*
|
|
13
17
|
* Used with `Tips` component to highlight a tip target.
|
|
14
18
|
*/
|
|
15
|
-
export default function TipPointer({ step, onClick, target, hidden, mutationsListenerElement, ...props }: TipPointerProps): JSX.Element;
|
|
19
|
+
export default function TipPointer({ step, onClick, target, hidden, mutationsListenerElement, pointerRef, ...props }: TipPointerProps): JSX.Element;
|
|
16
20
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__rest as t,__assign as e}from"../_virtual/_tslib.js";import
|
|
1
|
+
import{__rest as t,__assign as e}from"../_virtual/_tslib.js";import o,{useRef as r,useState as n,useCallback as i,useMemo as s,useEffect as a}from"react";import p from"clsx";import{throttle as c}from"lodash";import{usePopper as m}from"react-popper";import{useMutationObserver as f}from"rooks";import l from"./TipPointer.module.css.js";var u={subtree:!0,childList:!0,attributes:!1,characterData:!1};function d(d){var h=d.step,v=d.onClick,b=d.target,k=d.hidden,C=d.mutationsListenerElement,y=d.pointerRef,E=t(d,["step","onClick","target","hidden","mutationsListenerElement","pointerRef"]),L=r(C),N=h.pointerOffset,g=h.placement,j=h.id,x=h.pointerStyles,R=n(),_=R[0],w=R[1],D=i((function(t){w(t),void 0!==y&&(y.current=t)}),[y]),O=s((function(){return N?[N[1],N[0]]:[0,0]}),[N]),P=n(!1),S=P[0],T=P[1],q=s((function(){return[{name:"offset",options:{offset:O}}]}),[O]),z=m(b,_,{placement:g,modifiers:q}),A=z.styles,B=z.attributes,F=z.update,G=c((function(){var t;null===(t=null==F?void 0:F())||void 0===t||t.catch((function(t){console.error(t)}))}),250);return a((function(){T(!0)}),[]),f(L,G,u),o.createElement("button",e({},E,{ref:D,"data-show":S&&!k,id:"pointer-for-".concat(j),onClick:v,className:p(E.className,l.pointer,h.pointerClassName),style:e(e({},A.popper),x)},B.popper))}export{d as default};
|
package/lib/es/Tips/Step.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import t,{useState as e,useRef as o,useCallback as n,useEffect as i}from"react";import{useOutsideClick as r,useKey as
|
|
1
|
+
import t,{useState as e,useRef as o,useCallback as n,useEffect as i}from"react";import{useOutsideClick as r,useKey as p,useWindowEventListener as a}from"rooks";import l from"clsx";import s from"../TipPointer/TipPointer.js";import c from"../Tip/Tip.js";import m from"./Step.module.css.js";function u(u){var f=u.step,d=u.target,k=u.goNext,C=u.setSkipAll,g=u.onPointerClick,E=u.onClose,h=u.onNextClick,S=u.onSkipAllClick,x=u.mutationsListenerElement,P=f.theme,N=f.targetPointer,T=f.popupPlacement,j=f.popupOffset,A=f.content,L=e(!1),b=L[0],v=L[1],w=o(null),y=o(null),R=n((function(){v(!0),g&&g(f)}),[f,g,v]),D=n((function(){k(),v(!1),h&&h(f)}),[f,h,k]),F=n((function(){C(),v(!1),S&&S(f)}),[f,S,C]);r(y,n((function(t){t.target.id!=="pointer-for-".concat(f.id)&&(v(!1),b&&E&&E(f))}),[E,f,b])),p("Escape",n((function(){v(!1),b&&E&&E(f)}),[E,f,b])),i((function(){v(!1)}),[f]),a("blur",n((function(){v(!1),b&&E&&E(f)}),[E,f,b]));var O=N?w.current:d;return t.createElement(t.Fragment,null,t.createElement(s,{pointerRef:w,onClick:R,step:f,target:d,hidden:b,mutationsListenerElement:x,"aria-expanded":!!b,"aria-controls":f.id,"aria-label":"Show tip"}),O&&t.createElement(c,{id:"tip-for-".concat(f.id),popupRef:y,className:l(m.step,f.popupClassName),style:f.popupStyles,placement:T,offset:j,"data-show":!!b,onDoneClick:D,onSkipAllClick:F,target:O,mutationsListenerElement:x,theme:P,role:"status","aria-hidden":!b},A))}export{u as default};
|
package/lib/es/Tips/Steps.d.ts
CHANGED
|
@@ -5,8 +5,20 @@ export interface Step {
|
|
|
5
5
|
selector: string;
|
|
6
6
|
pointer?: string;
|
|
7
7
|
content: React.ReactNode;
|
|
8
|
-
placement?: TipProps["placement"];
|
|
9
8
|
theme?: TipProps["theme"];
|
|
9
|
+
/**
|
|
10
|
+
* If true, the Tip will be placed based on the pointer position.
|
|
11
|
+
* Otherwise it will be placed based on the target position (default).
|
|
12
|
+
*/
|
|
13
|
+
targetPointer?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Popper placement of the TipPointer element
|
|
16
|
+
*/
|
|
17
|
+
placement?: TipProps["placement"];
|
|
18
|
+
/**
|
|
19
|
+
* Popper placement of the Tip element
|
|
20
|
+
*/
|
|
21
|
+
popupPlacement?: TipProps["placement"];
|
|
10
22
|
popupOffset?: TipProps["offset"];
|
|
11
23
|
popupStyles?: React.CSSProperties;
|
|
12
24
|
popupClassName?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@k8slens/lds-tips",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Lens Design System – React Tips component",
|
|
5
5
|
"author": "Mirantis Inc",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"format": "eslint --fix ."
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@k8slens/lds": "^0.11.
|
|
31
|
+
"@k8slens/lds": "^0.11.4"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@k8slens/lds-icons": "^0.9.
|
|
35
|
-
"@k8slens/lds-tokens": "^0.12.
|
|
34
|
+
"@k8slens/lds-icons": "^0.9.4",
|
|
35
|
+
"@k8slens/lds-tokens": "^0.12.4",
|
|
36
36
|
"@rollup/plugin-node-resolve": "15.0.1",
|
|
37
37
|
"@storybook/react": "6.5.13",
|
|
38
38
|
"@testing-library/react": "13.4.0"
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"\\.svg": "<rootDir>/../../__mocks__/SVGStub.js"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "bc565a20b240e8b15901d783ef980965b0611d5e"
|
|
62
62
|
}
|