@maxio-com/react-ui-components 0.0.4 → 0.0.6-alpha.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/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +8 -2
- package/typings/index.d.ts +42 -4
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";const
|
|
1
|
+
import e,{useRef as t,useEffect as o,useState as i,useCallback as n}from"react";import r from"classnames";import{AnimatePresence as a,motion as l}from"framer-motion";import{useClick as s,useHover as c,useFocus as m,useDismiss as p,useFloating as f,offset as d,useInteractions as g,useRole as u,FloatingPortal as v}from"@floating-ui/react-dom-interactions";const y=({children:t,arrowPosition:o,size:i="regular",maxWidth:n=160})=>e.createElement("div",{"data-testid":"tooltip",className:r("maxio-tooltip",`maxio-tooltip--${i}`,{[`maxio-tooltip--arrow-${o}`]:o})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:n}},t)),E={click:s,hover:c,focus:m,dismiss:p},x=(e,t)=>t.map((t=>E[t](e))),h=({children:i,usePortal:n=!1,isActive:r=!1,placement:s="top",interactions:c=["hover"],role:m="tooltip",renderOverlay:p,floatingElementOffset:y,motionSettings:E={},autoHideMs:h,onOverlayUpdate:P})=>{const{getReferenceProps:O,getFloatingProps:S,refs:{floating:w,reference:A},floatingElementCSSPosition:H}=(({placement:e="top",isActive:i=!1,interactions:n=["hover"],floatingElementOffset:r=0,onOverlayUpdate:a,autoHideMs:l})=>{const s=t(null),{strategy:c,x:m,y:p,context:v,floating:y,reference:E}=f({placement:e,open:i,onOpenChange:e=>a(e),middleware:[d(r)]}),{getReferenceProps:h,getFloatingProps:P}=g([...x(v,n),u(v,{role:"tooltip"})]);return o((()=>{s.current&&clearTimeout(s.current),i&&l&&(s.current=setTimeout((()=>a(!1)),l))}),[i,l]),{isActive:i,refs:{floating:y,reference:E},floatingElementCSSPosition:{position:c,top:null!=p?p:0,left:null!=m?m:0},getReferenceProps:h,getFloatingProps:P}})({role:m,isActive:r,onOverlayUpdate:P,autoHideMs:h,floatingElementOffset:y,interactions:c,placement:s}),M=e.createElement(a,null,r&&e.createElement(l.div,{ref:w,style:H,...E,...S()},p()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:A,style:{display:"inline-flex"},...O()},i),n?e.createElement(v,{id:"maxio-ui-portal"},M):M)},P={initial:{opacity:0,transform:"scale3d(.2,.2,1)"},animate:{opacity:1,transform:"scale3d(1,1,1)"},exit:{opacity:0,transform:"scale3d(.2,.2,1)"},transition:{ease:[.4,0,.2,1],duration:.3}},O=({children:t,interactions:o=["hover"],placement:r="right",arrowPosition:a=null,maxWidth:l=160,size:s="regular",renderContent:c,autoHideMs:m,isVisible:p,onVisibilityUpdate:f})=>{const[d,g]=i(!1),u=void 0!==p,v=n((e=>{u||g(e),f&&f(e)}),[p]);return e.createElement(h,{role:"tooltip",floatingElementOffset:5,motionSettings:P,isActive:u?p:d,onOverlayUpdate:v,autoHideMs:m,placement:r,interactions:o,renderOverlay:()=>e.createElement(y,{size:s,arrowPosition:a,maxWidth:l},c())},t)};export{O as TooltipTrigger};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react");
|
|
1
|
+
"use strict";var e=require("react"),t=require("classnames"),i=require("framer-motion"),o=require("@floating-ui/react-dom-interactions");const n=({children:i,arrowPosition:o,size:n="regular",maxWidth:r=160})=>e.createElement("div",{"data-testid":"tooltip",className:t("maxio-tooltip",`maxio-tooltip--${n}`,{[`maxio-tooltip--arrow-${o}`]:o})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:r}},i)),r={click:o.useClick,hover:o.useHover,focus:o.useFocus,dismiss:o.useDismiss},a=(e,t)=>t.map((t=>r[t](e))),l=({children:t,usePortal:n=!1,isActive:r=!1,placement:l="top",interactions:s=["hover"],role:c="tooltip",renderOverlay:m,floatingElementOffset:u,motionSettings:f={},autoHideMs:p,onOverlayUpdate:d})=>{const{getReferenceProps:g,getFloatingProps:v,refs:{floating:y,reference:E},floatingElementCSSPosition:x}=(({placement:t="top",isActive:i=!1,interactions:n=["hover"],floatingElementOffset:r=0,onOverlayUpdate:l,autoHideMs:s})=>{const c=e.useRef(null),{strategy:m,x:u,y:f,context:p,floating:d,reference:g}=o.useFloating({placement:t,open:i,onOpenChange:e=>l(e),middleware:[o.offset(r)]}),{getReferenceProps:v,getFloatingProps:y}=o.useInteractions([...a(p,n),o.useRole(p,{role:"tooltip"})]);return e.useEffect((()=>{c.current&&clearTimeout(c.current),i&&s&&(c.current=setTimeout((()=>l(!1)),s))}),[i,s]),{isActive:i,refs:{floating:d,reference:g},floatingElementCSSPosition:{position:m,top:null!=f?f:0,left:null!=u?u:0},getReferenceProps:v,getFloatingProps:y}})({role:c,isActive:r,onOverlayUpdate:d,autoHideMs:p,floatingElementOffset:u,interactions:s,placement:l}),P=e.createElement(i.AnimatePresence,null,r&&e.createElement(i.motion.div,{ref:y,style:x,...f,...v()},m()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:E,style:{display:"inline-flex"},...g()},t),n?e.createElement(o.FloatingPortal,{id:"maxio-ui-portal"},P):P)},s={initial:{opacity:0,transform:"scale3d(.2,.2,1)"},animate:{opacity:1,transform:"scale3d(1,1,1)"},exit:{opacity:0,transform:"scale3d(.2,.2,1)"},transition:{ease:[.4,0,.2,1],duration:.3}};exports.TooltipTrigger=({children:t,interactions:i=["hover"],placement:o="right",arrowPosition:r=null,maxWidth:a=160,size:c="regular",renderContent:m,autoHideMs:u,isVisible:f,onVisibilityUpdate:p})=>{const[d,g]=e.useState(!1),v=void 0!==f,y=e.useCallback((e=>{v||g(e),p&&p(e)}),[f]);return e.createElement(l,{role:"tooltip",floatingElementOffset:5,motionSettings:s,isActive:v?f:d,onOverlayUpdate:y,autoHideMs:u,placement:o,interactions:i,renderOverlay:()=>e.createElement(n,{size:c,arrowPosition:r,maxWidth:a},m())},t)};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maxio-com/react-ui-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6-alpha.0",
|
|
4
4
|
"description": "React ui components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -40,5 +40,11 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@floating-ui/react-dom": "^1.0.0",
|
|
45
|
+
"@floating-ui/react-dom-interactions": "^0.10.3",
|
|
46
|
+
"classnames": "^2.3.2",
|
|
47
|
+
"framer-motion": "^7.6.4"
|
|
48
|
+
},
|
|
49
|
+
"gitHead": "20f28466add6b5f459c313c9631afc2840d607f8"
|
|
44
50
|
}
|
package/typings/index.d.ts
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=SideNav.d.ts.map
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
import { AnimationProps } from 'framer-motion';
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
declare type ArrowPosition = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'left-top' | 'left-bottom' | 'right' | 'right-top' | 'right-bottom';
|
|
5
|
+
|
|
6
|
+
declare type TooltipProps = {
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
size?: 'regular' | 'small';
|
|
9
|
+
arrowPosition?: ArrowPosition;
|
|
10
|
+
maxWidth?: number | 'none';
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare type Alignment = 'start' | 'end';
|
|
14
|
+
declare type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
15
|
+
declare type AlignedPlacement = `${Side}-${Alignment}`;
|
|
16
|
+
declare type Placement = Side | AlignedPlacement;
|
|
17
|
+
declare type Interactions = 'click' | 'hover' | 'focus' | 'dismiss';
|
|
18
|
+
declare type OverlayAriaRole = 'tooltip' | 'dialog' | 'alertdialog' | 'menu' | 'listbox' | 'grid' | 'tree';
|
|
19
|
+
|
|
20
|
+
declare type OverlayTriggerProps = {
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
placement?: Placement;
|
|
23
|
+
usePortal?: boolean;
|
|
24
|
+
interactions?: Interactions[];
|
|
25
|
+
renderOverlay: () => React.ReactNode;
|
|
26
|
+
role?: OverlayAriaRole;
|
|
27
|
+
floatingElementOffset?: number;
|
|
28
|
+
isActive?: boolean;
|
|
29
|
+
onOverlayUpdate: (isActive: boolean) => void;
|
|
30
|
+
motionSettings?: AnimationProps;
|
|
31
|
+
autoHideMs?: number;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
declare type Props = {
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
isVisible?: boolean;
|
|
37
|
+
onVisibilityUpdate?: (isVisible: boolean) => void;
|
|
38
|
+
renderContent: () => React.ReactNode;
|
|
39
|
+
} & Pick<OverlayTriggerProps, 'placement' | 'interactions' | 'usePortal' | 'autoHideMs'> & Pick<TooltipProps, 'size' | 'arrowPosition' | 'maxWidth'>;
|
|
40
|
+
declare const TooltipTrigger: FC<Props>;
|
|
41
|
+
//# sourceMappingURL=TooltipTrigger.d.ts.map
|
|
42
|
+
|
|
43
|
+
export { TooltipTrigger };
|