@maxio-com/react-ui-components 1.0.3 → 1.1.1
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 +2 -2
- package/typings/index.d.ts +4 -3
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useRef as t,useEffect as
|
|
1
|
+
import e,{useRef as t,useEffect as o,useState as a,useCallback as i,useMemo as r,useId as n}from"react";import l from"classnames";import{AnimatePresence as s,motion as c}from"framer-motion";import{useClick as m,useHover as d,useFocus as g,useDismiss as p,useFloating as f,offset as h,useInteractions as u,useRole as v,FloatingPortal as x}from"@floating-ui/react-dom-interactions";const E=({children:t,arrowPosition:o,size:a="regular",maxWidth:i=160})=>e.createElement("div",{"data-testid":"tooltip",className:l("maxio-tooltip",`maxio-tooltip--${a}`,{[`maxio-tooltip--arrow-${o}`]:o})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:i}},t)),b={click:m,hover:d,focus:g,dismiss:p},y=(e,t)=>t.map((t=>b[t](e))),_=({children:a,usePortal:i=!1,isActive:r=!1,placement:n="top",interactions:m=["hover"],role:d="tooltip",renderOverlay:g,floatingElementOffset:p,motionSettings:E={},autoHideMs:b,onOverlayUpdate:_,className:N})=>{const{getReferenceProps:P,getFloatingProps:k,refs:{floating:O,reference:w},floatingElementCSSPosition:C}=(({placement:e="top",isActive:a=!1,interactions:i=["hover"],floatingElementOffset:r=0,onOverlayUpdate:n,autoHideMs:l})=>{const s=t(null),{strategy:c,x:m,y:d,context:g,floating:p,reference:x}=f({placement:e,open:a,onOpenChange:e=>n(e),middleware:[h(r)]}),{getReferenceProps:E,getFloatingProps:b}=u([...y(g,i),v(g,{role:"tooltip"})]);return o((()=>{s.current&&clearTimeout(s.current),a&&l&&(s.current=setTimeout((()=>n(!1)),l))}),[a,l]),{isActive:a,refs:{floating:p,reference:x},floatingElementCSSPosition:{position:c,top:null!=d?d:0,left:null!=m?m:0},getReferenceProps:E,getFloatingProps:b}})({role:d,isActive:r,onOverlayUpdate:_,autoHideMs:b,floatingElementOffset:p,interactions:m,placement:n}),W=e.createElement(s,null,r&&e.createElement(c.div,{ref:O,style:C,...E,...k()},g()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:w,className:l("maxio-inline-flex",N),...P(),"data-testid":"overlay-trigger"},a),i?e.createElement(x,{id:"maxio-ui-portal"},W):W)},N={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"},P=({children:t,interactions:o=["hover"],placement:n="right",maxWidth:l=160,size:s="regular",renderContent:c,autoHideMs:m,isVisible:d,usePortal:g,className:p,onVisibilityUpdate:f})=>{const[h,u]=a(!1),v=void 0!==d,x=i((e=>{v||u(e),f&&f(e)}),[d]),b=r((()=>(e=>{const t=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",o=`translate${t}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:o},animate:{opacity:1,visibility:"visible",transform:`translate${t}(0px)`},exit:{opacity:0,visibility:"hidden",transform:o},transition:{ease:[.4,0,.5,1],duration:.2}}})(n)),[n]);return e.createElement(_,{role:"tooltip",className:p,floatingElementOffset:5,motionSettings:b,isActive:v?d:h,onOverlayUpdate:x,autoHideMs:m,usePortal:g,placement:n,interactions:o,renderOverlay:()=>e.createElement(E,{size:s,arrowPosition:N[n],maxWidth:l},c())},t)},k=({defaultChecked:t,checked:o,onChange:a,disabled:r,valueDescription:s,valueDescriptionPosition:c,className:m,name:d,id:g})=>{const p=n(),f="boolean"==typeof t,h=g||p,u="left"===c?"row":"row-reverse",v=s&&c,x=i((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const t=e.currentTarget.checked;f&&(e.currentTarget.checked=!t),a&&a(!t,e)}}),[f,a]);return e.createElement("div",{className:l("maxio-toggle",m,{"maxio-toggle--disabled":r}),style:{display:"inline-flex",flexDirection:u},"data-testid":"toggle-container"},v?e.createElement("label",{className:"maxio-toggle__label",htmlFor:h},s):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:t,checked:o,onChange:e=>{a&&a(e.target.checked,e)},onKeyDown:x,disabled:r,"aria-label":v?void 0:s,className:"maxio-toggle__checkbox",id:h,name:d}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":o},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))};export{k as Toggle,P as TooltipTrigger};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("classnames"),
|
|
1
|
+
"use strict";var e=require("react"),t=require("classnames"),o=require("framer-motion"),a=require("@floating-ui/react-dom-interactions");const i=({children:o,arrowPosition:a,size:i="regular",maxWidth:r=160})=>e.createElement("div",{"data-testid":"tooltip",className:t("maxio-tooltip",`maxio-tooltip--${i}`,{[`maxio-tooltip--arrow-${a}`]:a})},e.createElement("div",{className:"maxio-tooltip__content",style:{maxWidth:r}},o)),r={click:a.useClick,hover:a.useHover,focus:a.useFocus,dismiss:a.useDismiss},l=(e,t)=>t.map((t=>r[t](e))),n=({children:i,usePortal:r=!1,isActive:n=!1,placement:s="top",interactions:c=["hover"],role:m="tooltip",renderOverlay:d,floatingElementOffset:g,motionSettings:p={},autoHideMs:f,onOverlayUpdate:u,className:h})=>{const{getReferenceProps:v,getFloatingProps:x,refs:{floating:b,reference:E},floatingElementCSSPosition:y}=(({placement:t="top",isActive:o=!1,interactions:i=["hover"],floatingElementOffset:r=0,onOverlayUpdate:n,autoHideMs:s})=>{const c=e.useRef(null),{strategy:m,x:d,y:g,context:p,floating:f,reference:u}=a.useFloating({placement:t,open:o,onOpenChange:e=>n(e),middleware:[a.offset(r)]}),{getReferenceProps:h,getFloatingProps:v}=a.useInteractions([...l(p,i),a.useRole(p,{role:"tooltip"})]);return e.useEffect((()=>{c.current&&clearTimeout(c.current),o&&s&&(c.current=setTimeout((()=>n(!1)),s))}),[o,s]),{isActive:o,refs:{floating:f,reference:u},floatingElementCSSPosition:{position:m,top:null!=g?g:0,left:null!=d?d:0},getReferenceProps:h,getFloatingProps:v}})({role:m,isActive:n,onOverlayUpdate:u,autoHideMs:f,floatingElementOffset:g,interactions:c,placement:s}),_=e.createElement(o.AnimatePresence,null,n&&e.createElement(o.motion.div,{ref:b,style:y,...p,...x()},d()));return e.createElement(e.Fragment,null,e.createElement("div",{ref:E,className:t("maxio-inline-flex",h),...v(),"data-testid":"overlay-trigger"},i),r?e.createElement(a.FloatingPortal,{id:"maxio-ui-portal"},_):_)},s={top:"bottom",right:"left",bottom:"top",left:"right","top-start":"bottom-left","top-end":"bottom-right","right-start":"left-top","right-end":"left-bottom","bottom-start":"top-left","bottom-end":"top-right","left-start":"right-top","left-end":"right-bottom"};exports.Toggle=({defaultChecked:o,checked:a,onChange:i,disabled:r,valueDescription:l,valueDescriptionPosition:n,className:s,name:c,id:m})=>{const d=e.useId(),g="boolean"==typeof o,p=m||d,f="left"===n?"row":"row-reverse",u=l&&n,h=e.useCallback((e=>{if("Enter"===e.code||"Space"===e.code){e.preventDefault();const t=e.currentTarget.checked;g&&(e.currentTarget.checked=!t),i&&i(!t,e)}}),[g,i]);return e.createElement("div",{className:t("maxio-toggle",s,{"maxio-toggle--disabled":r}),style:{display:"inline-flex",flexDirection:f},"data-testid":"toggle-container"},u?e.createElement("label",{className:"maxio-toggle__label",htmlFor:p},l):null,e.createElement("div",{className:"maxio-toggle__container"},e.createElement("input",{type:"checkbox",defaultChecked:o,checked:a,onChange:e=>{i&&i(e.target.checked,e)},onKeyDown:h,disabled:r,"aria-label":u?void 0:l,className:"maxio-toggle__checkbox",id:p,name:c}),e.createElement("div",{className:"maxio-toggle__track",role:"switch","aria-checked":a},e.createElement("div",{className:"maxio-toggle__handle"}),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-on"})),e.createElement("span",{className:"maxio-toggle__icon"},e.createElement("i",{className:"maxio-toggle__icon-off"})))))},exports.TooltipTrigger=({children:t,interactions:o=["hover"],placement:a="right",maxWidth:r=160,size:l="regular",renderContent:c,autoHideMs:m,isVisible:d,usePortal:g,className:p,onVisibilityUpdate:f})=>{const[u,h]=e.useState(!1),v=void 0!==d,x=e.useCallback((e=>{v||h(e),f&&f(e)}),[d]),b=e.useMemo((()=>(e=>{const t=e.startsWith("top")||e.startsWith("bottom")?"Y":"X",o=`translate${t}(${e.startsWith("bottom")||e.startsWith("right")?"-":""}10px)`;return{initial:{opacity:0,visibility:"hidden",transform:o},animate:{opacity:1,visibility:"visible",transform:`translate${t}(0px)`},exit:{opacity:0,visibility:"hidden",transform:o},transition:{ease:[.4,0,.5,1],duration:.2}}})(a)),[a]);return e.createElement(n,{role:"tooltip",className:p,floatingElementOffset:5,motionSettings:b,isActive:v?d:u,onOverlayUpdate:x,autoHideMs:m,usePortal:g,placement:a,interactions:o,renderOverlay:()=>e.createElement(i,{size:l,arrowPosition:s[a],maxWidth:r},c())},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": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "React UI components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"classnames": "^2.3.2",
|
|
48
48
|
"framer-motion": "^7.6.4"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "688cc56590f25f09adec7bbac5c3e49e1e81019a"
|
|
51
51
|
}
|
package/typings/index.d.ts
CHANGED
|
@@ -37,12 +37,13 @@ declare type Props = {
|
|
|
37
37
|
isVisible?: boolean;
|
|
38
38
|
onVisibilityUpdate?: (isVisible: boolean) => void;
|
|
39
39
|
renderContent: () => React.ReactNode;
|
|
40
|
-
} & Pick<OverlayTriggerProps, 'placement' | 'interactions' | 'usePortal' | 'autoHideMs' | 'className'> & Pick<TooltipProps, 'size' | '
|
|
40
|
+
} & Pick<OverlayTriggerProps, 'placement' | 'interactions' | 'usePortal' | 'autoHideMs' | 'className'> & Pick<TooltipProps, 'size' | 'maxWidth'>;
|
|
41
41
|
declare const TooltipTrigger: FC<Props>;
|
|
42
42
|
//# sourceMappingURL=TooltipTrigger.d.ts.map
|
|
43
43
|
|
|
44
44
|
declare type ToggleProps = {
|
|
45
|
-
checked
|
|
45
|
+
checked?: boolean;
|
|
46
|
+
defaultChecked?: boolean;
|
|
46
47
|
onChange?: (value: boolean, event?: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>) => void;
|
|
47
48
|
disabled?: boolean;
|
|
48
49
|
name?: string;
|
|
@@ -51,6 +52,6 @@ declare type ToggleProps = {
|
|
|
51
52
|
className?: string;
|
|
52
53
|
id?: string;
|
|
53
54
|
};
|
|
54
|
-
declare const Toggle: ({ checked, onChange, disabled, valueDescription, valueDescriptionPosition, className, name, id, }: ToggleProps) => JSX.Element;
|
|
55
|
+
declare const Toggle: ({ defaultChecked, checked, onChange, disabled, valueDescription, valueDescriptionPosition, className, name, id, }: ToggleProps) => JSX.Element;
|
|
55
56
|
|
|
56
57
|
export { Toggle, TooltipTrigger };
|