@dotss/ui 1.2.2 → 1.3.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.
Files changed (34) hide show
  1. package/Accordion/Accordion.cjs +1 -1
  2. package/Accordion/Accordion.es.js +1 -1
  3. package/CircularProgressIndicator/CircularProgressIndicator.cjs +7 -6
  4. package/CircularProgressIndicator/CircularProgressIndicator.es.js +19 -17
  5. package/Collapse/Collapse.cjs +1 -0
  6. package/Collapse/Collapse.d.ts +7 -0
  7. package/Collapse/Collapse.es.js +28 -0
  8. package/Collapse/Collapse.stories.d.ts +27 -0
  9. package/Collapse/index.cjs +1 -0
  10. package/Collapse/index.d.ts +4 -0
  11. package/Collapse/index.es.js +4 -0
  12. package/hooks/index.cjs +1 -1
  13. package/hooks/index.d.ts +5 -0
  14. package/hooks/index.es.js +9 -3
  15. package/hooks/interactions/useCollapse/useCollapse.cjs +1 -0
  16. package/hooks/interactions/useCollapse/useCollapse.d.ts +22 -0
  17. package/hooks/interactions/useCollapse/useCollapse.es.js +51 -0
  18. package/hooks/useFocusBoundary/useFocusBoundary.d.ts +1 -1
  19. package/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +1 -0
  20. package/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +4 -0
  21. package/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.es.js +6 -0
  22. package/hooks/usePrefersReducedMotion/usePrefersReducedMotion.cjs +1 -0
  23. package/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +3 -0
  24. package/hooks/usePrefersReducedMotion/usePrefersReducedMotion.es.js +15 -0
  25. package/index.cjs +1 -1
  26. package/index.d.ts +1 -0
  27. package/index.es.js +14 -12
  28. package/package.json +1 -1
  29. package/utils/isPrefersReducedMotion/isPrefersReducedMotion.cjs +1 -0
  30. package/utils/isPrefersReducedMotion/isPrefersReducedMotion.d.ts +1 -0
  31. package/utils/isPrefersReducedMotion/isPrefersReducedMotion.es.js +6 -0
  32. package/utils/isServer/isServer.cjs +1 -0
  33. package/utils/isServer/isServer.d.ts +1 -0
  34. package/utils/isServer/isServer.es.js +6 -0
@@ -37,4 +37,4 @@
37
37
  overflow: hidden;
38
38
  `,J=s.default.div`
39
39
  padding: ${({theme:{spacing:e}})=>`0 ${e.content(4)}px ${e.content(4)}px ${e.content(4)}px`};
40
- `,K=l.forwardRef(function({children:n,expand:t=!1,title:I,endAdornment:E,onChange:g,disabled:u=!1,inlineCSS:b,fullWidth:p=!1,headerProps:d,headerButtonProps:f,panelProps:m,...H},R){const _=l.useId(),q=l.useId(),y=(f==null?void 0:f.id)||_,$=(m==null?void 0:m.id)||q,[c,j]=l.useState(t),[h,x]=l.useState(t?"auto":"0px"),i=l.useRef(null),C=r=>{u||(typeof g=="function"?g(r):j(a=>!a))};return l.useEffect(()=>{j(t)},[t]),l.useEffect(()=>{var S,v;let r;const a=A.default(((S=i.current)==null?void 0:S.scrollHeight)||0),T=!c&&h==="auto",k=!c&&h!=="auto";return(v=i.current)!=null&&v.parentElement&&(c?(i.current.parentElement.style.height=a,r=setTimeout(()=>{var w;x("auto"),(w=i.current)!=null&&w.parentElement&&(i.current.parentElement.style.height="auto")},200)):T?(i.current.parentElement.style.height=a,x(a)):k&&(i.current.parentElement.style.height="0px",x("0px"))),()=>{r&&clearTimeout(r)}},[c,h]),o.jsxs(N,{ref:R,disabled:u,fullWidth:p,...H,css:b,children:[o.jsx(O,{as:(d==null?void 0:d.tag)||"h3",onClick:C,disabled:u,...d,children:o.jsxs(V,{id:y,"aria-disabled":u,"aria-expanded":c,"aria-controls":$,fullWidth:p,...f,children:[I,o.jsx(F,{expand:c,children:E||o.jsx(z.default,{name:"ChevronDownLine",size:"xSmall"})})]})}),o.jsx(G,{children:o.jsx(J,{role:"region",id:$,"aria-labelledby":y,ref:i,...m,children:n})})]})});exports.default=K;
40
+ `,K=l.forwardRef(function({children:n,expand:t=!1,title:I,endAdornment:E,onChange:g,disabled:u=!1,inlineCSS:b,fullWidth:y=!1,headerProps:d,headerButtonProps:f,panelProps:m,...H},R){const _=l.useId(),q=l.useId(),p=(f==null?void 0:f.id)||_,$=(m==null?void 0:m.id)||q,[c,j]=l.useState(t),[h,x]=l.useState(t?"auto":"0px"),i=l.useRef(null),C=r=>{u||(typeof g=="function"?g(r):j(a=>!a))};return l.useEffect(()=>{j(t)},[t]),l.useEffect(()=>{var S,v;let r;const a=A.default(((S=i.current)==null?void 0:S.scrollHeight)||0),T=!c&&h==="auto",k=!c&&h!=="auto";return(v=i.current)!=null&&v.parentElement&&(c?(i.current.parentElement.style.height=a,r=setTimeout(()=>{var w;x("auto"),(w=i.current)!=null&&w.parentElement&&(i.current.parentElement.style.height="auto")},200)):T?(i.current.parentElement.style.height=a,x(a)):k&&(i.current.parentElement.style.height="0px",x("0px"))),()=>{r&&clearTimeout(r)}},[c,h]),o.jsxs(N,{ref:R,disabled:u,fullWidth:y,...H,css:b,children:[o.jsx(O,{as:(d==null?void 0:d.tag)||"h3",onClick:C,disabled:u,...d,children:o.jsxs(V,{id:p,"aria-disabled":u,"aria-expanded":c,"aria-controls":$,fullWidth:y,...f,children:[I,o.jsx(F,{expand:c,children:E||o.jsx(z.default,{name:"ChevronDownLine",size:"xSmall"})})]})}),o.jsx(G,{style:{height:h},children:o.jsx(J,{role:"region",id:$,"aria-labelledby":p,ref:i,...m,children:n})})]})});exports.default=K;
@@ -118,7 +118,7 @@ const J = c.div`
118
118
  )
119
119
  }
120
120
  ),
121
- /* @__PURE__ */ a(U, { children: /* @__PURE__ */ a(
121
+ /* @__PURE__ */ a(U, { style: { height: m }, children: /* @__PURE__ */ a(
122
122
  W,
123
123
  {
124
124
  role: "region",
@@ -1,18 +1,19 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("@emotion/react/jsx-runtime"),h=require("react"),g=require("@emotion/react"),m=require("@emotion/styled"),y=e=>e&&e.__esModule?e:{default:e},i=y(m),k=g.keyframes`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("@emotion/react/jsx-runtime"),m=require("react"),g=require("@emotion/react"),k=require("@emotion/styled"),y=e=>e&&e.__esModule?e:{default:e},i=y(k),x=g.keyframes`
2
2
  100% {
3
3
  transform: rotate(270deg);
4
4
  }
5
- `,x=i.default.svg`
5
+ `,$=i.default.svg`
6
6
  ${({size:e})=>e==="large"?{width:120,height:120}:{width:40,height:40}};
7
7
 
8
8
  transform: rotate(-90deg);
9
9
 
10
- ${({loop:e})=>e?{animation:`${k} 1s infinite`}:{}};
11
- `,$=i.default.circle`
10
+ ${({loop:e})=>e?{animation:`${x} 1s infinite`}:{}};
11
+ `,_=i.default.circle`
12
12
  ${({size:e})=>e==="large"?{cx:60,cy:60,strokeWidth:16}:{cx:20,cy:20,strokeWidth:4}};
13
13
  stroke: ${({theme:{palette:{grey:e}}})=>e[10]};
14
- `,_=i.default.circle`
14
+ `,b=i.default.circle`
15
15
  transition: stroke-dashoffset ${({transitionDuration:e})=>e}ms linear 0s;
16
16
  ${({size:e})=>e==="large"?{cx:60,cy:60,strokeWidth:16}:{cx:20,cy:20,strokeWidth:4}};
17
17
  stroke: ${({theme:{palette:{brand:e}}})=>e.primary.main};
18
- `,b=h.forwardRef(function({size:r="small",value:c=0,transitionDuration:n=500,inlineCSS:d,loop:t,...a},u){const s=r==="large"?52:18,l=2*Math.PI*s,f=l*(1-(t?20:c)/100);return o.jsxs(x,{ref:u,viewBox:r==="large"?"0 0 120 120":"0 0 40 40",fill:"none",size:r,loop:t,role:"progressbar","aria-valuenow":t?void 0:c,"aria-label":a["aria-label"]?a["aria-label"]:"로딩 중",...a,css:d,children:[o.jsx($,{size:r,r:s}),o.jsx(_,{size:r,transitionDuration:n,r:s,strokeLinecap:"round",strokeDashoffset:f,strokeDasharray:l})]})});exports.default=b;
18
+ will-change: stroke-dashoffset;
19
+ `,w=m.forwardRef(function({size:r="small",value:c=0,transitionDuration:n=500,inlineCSS:d,loop:t,...a},u){const s=r==="large"?52:18,l=2*Math.PI*s,f=Math.min(100,Math.max(0,t?20:c)),h=l*(1-f/100);return o.jsxs($,{ref:u,viewBox:r==="large"?"0 0 120 120":"0 0 40 40",fill:"none",size:r,loop:t,role:"progressbar","aria-valuenow":t?void 0:c,"aria-label":a["aria-label"]?a["aria-label"]:"로딩 중",...a,css:d,children:[o.jsx(_,{size:r,r:s}),o.jsx(b,{className:"progress-indicator",size:r,transitionDuration:n,r:s,strokeLinecap:"round",strokeDashoffset:h,strokeDasharray:l})]})});exports.default=w;
@@ -1,12 +1,12 @@
1
- import { jsxs as h, jsx as n } from "@emotion/react/jsx-runtime";
2
- import { forwardRef as g } from "react";
3
- import { keyframes as k } from "@emotion/react";
1
+ import { jsxs as g, jsx as n } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef as k } from "react";
3
+ import { keyframes as u } from "@emotion/react";
4
4
  import s from "@emotion/styled";
5
- const y = k`
5
+ const y = u`
6
6
  100% {
7
7
  transform: rotate(270deg);
8
8
  }
9
- `, u = s.svg`
9
+ `, x = s.svg`
10
10
  ${({ size: r }) => r === "large" ? {
11
11
  width: 120,
12
12
  height: 120
@@ -20,7 +20,7 @@ const y = k`
20
20
  ${({ loop: r }) => r ? {
21
21
  animation: `${y} 1s infinite`
22
22
  } : {}};
23
- `, x = s.circle`
23
+ `, $ = s.circle`
24
24
  ${({ size: r }) => r === "large" ? {
25
25
  cx: 60,
26
26
  cy: 60,
@@ -35,7 +35,7 @@ const y = k`
35
35
  palette: { grey: r }
36
36
  }
37
37
  }) => r[10]};
38
- `, $ = s.circle`
38
+ `, p = s.circle`
39
39
  transition: stroke-dashoffset ${({ transitionDuration: r }) => r}ms linear 0s;
40
40
  ${({ size: r }) => r === "large" ? {
41
41
  cx: 60,
@@ -51,13 +51,14 @@ const y = k`
51
51
  palette: { brand: r }
52
52
  }
53
53
  }) => r.primary.main};
54
- `, b = g(
55
- function({ size: e = "small", value: i = 0, transitionDuration: l = 500, inlineCSS: d, loop: t, ...a }, f) {
56
- const o = e === "large" ? 52 : 18, c = 2 * Math.PI * o, m = c * (1 - (t ? 20 : i) / 100);
57
- return /* @__PURE__ */ h(
58
- u,
54
+ will-change: stroke-dashoffset;
55
+ `, W = k(
56
+ function({ size: e = "small", value: i = 0, transitionDuration: l = 500, inlineCSS: d, loop: t, ...a }, m) {
57
+ const o = e === "large" ? 52 : 18, c = 2 * Math.PI * o, f = Math.min(100, Math.max(0, t ? 20 : i)), h = c * (1 - f / 100);
58
+ return /* @__PURE__ */ g(
59
+ x,
59
60
  {
60
- ref: f,
61
+ ref: m,
61
62
  viewBox: e === "large" ? "0 0 120 120" : "0 0 40 40",
62
63
  fill: "none",
63
64
  size: e,
@@ -68,15 +69,16 @@ const y = k`
68
69
  ...a,
69
70
  css: d,
70
71
  children: [
71
- /* @__PURE__ */ n(x, { size: e, r: o }),
72
+ /* @__PURE__ */ n($, { size: e, r: o }),
72
73
  /* @__PURE__ */ n(
73
- $,
74
+ p,
74
75
  {
76
+ className: "progress-indicator",
75
77
  size: e,
76
78
  transitionDuration: l,
77
79
  r: o,
78
80
  strokeLinecap: "round",
79
- strokeDashoffset: m,
81
+ strokeDashoffset: h,
80
82
  strokeDasharray: c
81
83
  }
82
84
  )
@@ -86,5 +88,5 @@ const y = k`
86
88
  }
87
89
  );
88
90
  export {
89
- b as default
91
+ W as default
90
92
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("@emotion/react/jsx-runtime"),t=require("react"),q=require("../Box/Box.cjs"),x=require("../hooks/interactions/useCollapse/useCollapse.cjs"),R=t.forwardRef(function({children:r,isCollapsed:s=!0,duration:u=200,delay:l=0,easing:o,onTransitionStart:a,onTransitionEnd:n,...i},c){t.useImperativeHandle(c,()=>e.current);const{targetRef:e,style:f,ariaProps:d}=x.default({isCollapsed:s,duration:u,delay:l,easing:o,onTransitionStart:a,onTransitionEnd:n});return p.jsx(q.default,{ref:e,style:{flexShrink:0,...f},...d,...i,children:r})});exports.default=R;
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { UseCollapseProps } from '../hooks/interactions/useCollapse/useCollapse';
3
+ import { GeneralComponentProps } from '../typings/component';
4
+
5
+ export type CollapseProps = Omit<GeneralComponentProps<HTMLAttributes<HTMLDivElement>>, 'onTransitionStart' | 'onTransitionEnd'> & UseCollapseProps;
6
+ declare const Collapse: import('react').ForwardRefExoticComponent<Omit<GeneralComponentProps<HTMLAttributes<HTMLDivElement>>, "onTransitionEnd" | "onTransitionStart"> & UseCollapseProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ export default Collapse;
@@ -0,0 +1,28 @@
1
+ import { jsx as u } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef as c, useImperativeHandle as x } from "react";
3
+ import d from "../Box/Box.es.js";
4
+ import C from "../hooks/interactions/useCollapse/useCollapse.es.js";
5
+ const k = c(function({
6
+ children: e,
7
+ isCollapsed: o = !0,
8
+ duration: t = 200,
9
+ delay: s = 0,
10
+ easing: a,
11
+ onTransitionStart: f,
12
+ onTransitionEnd: l,
13
+ ...p
14
+ }, m) {
15
+ x(m, () => r.current);
16
+ const { targetRef: r, style: i, ariaProps: n } = C({
17
+ isCollapsed: o,
18
+ duration: t,
19
+ delay: s,
20
+ easing: a,
21
+ onTransitionStart: f,
22
+ onTransitionEnd: l
23
+ });
24
+ return /* @__PURE__ */ u(d, { ref: r, style: { flexShrink: 0, ...i }, ...n, ...p, children: e });
25
+ });
26
+ export {
27
+ k as default
28
+ };
@@ -0,0 +1,27 @@
1
+ import { StoryObj } from '@storybook/react';
2
+
3
+ declare const meta: {
4
+ title: string;
5
+ component: import('react').ForwardRefExoticComponent<Omit<import('../../typings/component').GeneralComponentProps<import('react').HTMLAttributes<HTMLDivElement>>, "onTransitionEnd" | "onTransitionStart"> & import('../../hooks').UseCollapseProps & import('react').RefAttributes<HTMLDivElement>>;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ isCollapsed: {
12
+ control: "boolean";
13
+ };
14
+ duration: {
15
+ control: {
16
+ type: "number";
17
+ min: number;
18
+ max: number;
19
+ step: number;
20
+ };
21
+ };
22
+ };
23
+ };
24
+ export default meta;
25
+ type Story = StoryObj<typeof meta>;
26
+ export declare const Default: Story;
27
+ export declare const Custom: Story;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Collapse.cjs");exports.default=e.default;
@@ -0,0 +1,4 @@
1
+ import { default as Collapse } from './Collapse';
2
+
3
+ export type { CollapseProps } from './Collapse';
4
+ export default Collapse;
@@ -0,0 +1,4 @@
1
+ import a from "./Collapse.es.js";
2
+ export {
3
+ a as default
4
+ };
package/hooks/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useCheckHoverPossible/useCheckHoverPossible.cjs"),u=require("./useCheckKeyboardMode/useCheckKeyboardMode.cjs"),s=require("./useCheckHasFocus/useCheckHasFocus.cjs"),o=require("./useFocusBoundary/useFocusBoundary.cjs");exports.useCheckHoverPossible=e.default;exports.useCheckKeyboardMode=u.default;exports.useCheckHasFocus=s.default;exports.useFocusBoundary=o.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useCheckHoverPossible/useCheckHoverPossible.cjs"),u=require("./useCheckKeyboardMode/useCheckKeyboardMode.cjs"),s=require("./useCheckHasFocus/useCheckHasFocus.cjs"),o=require("./useFocusBoundary/useFocusBoundary.cjs"),r=require("./interactions/useCollapse/useCollapse.cjs"),t=require("./useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),c=require("./usePrefersReducedMotion/usePrefersReducedMotion.cjs");exports.useCheckHoverPossible=e.default;exports.useCheckKeyboardMode=u.default;exports.useCheckHasFocus=s.default;exports.useFocusBoundary=o.default;exports.useCollapse=r.default;exports.useIsomorphicLayoutEffect=t.default;exports.usePrefersReducedMotion=c.default;
package/hooks/index.d.ts CHANGED
@@ -2,3 +2,8 @@ export { default as useCheckHoverPossible } from './useCheckHoverPossible/useChe
2
2
  export { default as useCheckKeyboardMode } from './useCheckKeyboardMode/useCheckKeyboardMode';
3
3
  export { default as useCheckHasFocus } from './useCheckHasFocus/useCheckHasFocus';
4
4
  export { default as useFocusBoundary } from './useFocusBoundary/useFocusBoundary';
5
+ export { default as useCollapse } from './interactions/useCollapse/useCollapse';
6
+ export { default as useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';
7
+ export { default as usePrefersReducedMotion } from './usePrefersReducedMotion/usePrefersReducedMotion';
8
+ export type { UseFocusBoundaryProps } from './useFocusBoundary/useFocusBoundary';
9
+ export type { UseCollapseProps } from './interactions/useCollapse/useCollapse';
package/hooks/index.es.js CHANGED
@@ -1,10 +1,16 @@
1
1
  import { default as s } from "./useCheckHoverPossible/useCheckHoverPossible.es.js";
2
- import { default as r } from "./useCheckKeyboardMode/useCheckKeyboardMode.es.js";
2
+ import { default as a } from "./useCheckKeyboardMode/useCheckKeyboardMode.es.js";
3
3
  import { default as f } from "./useCheckHasFocus/useCheckHasFocus.es.js";
4
4
  import { default as d } from "./useFocusBoundary/useFocusBoundary.es.js";
5
+ import { default as p } from "./interactions/useCollapse/useCollapse.es.js";
6
+ import { default as m } from "./useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.es.js";
7
+ import { default as h } from "./usePrefersReducedMotion/usePrefersReducedMotion.es.js";
5
8
  export {
6
9
  f as useCheckHasFocus,
7
10
  s as useCheckHoverPossible,
8
- r as useCheckKeyboardMode,
9
- d as useFocusBoundary
11
+ a as useCheckKeyboardMode,
12
+ p as useCollapse,
13
+ d as useFocusBoundary,
14
+ m as useIsomorphicLayoutEffect,
15
+ h as usePrefersReducedMotion
10
16
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react"),v=require("../../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),y=require("../../usePrefersReducedMotion/usePrefersReducedMotion.cjs");function P({isCollapsed:t=!0,duration:s=200,delay:f=0,easing:o="ease-in-out",onTransitionStart:i,onTransitionEnd:l}={}){const{prefersReducedMotion:x}=y.default(),h=r.useRef(null),e=r.useRef(null),u=r.useRef(i),c=r.useRef(l),a=r.useRef(!0);u.current=i,c.current=l;const[g,H]=r.useState(t?"0px":"auto");return v.default(()=>{var d;if(a.current){a.current=!1;return}const n=h.current;if(!n)return;e.current&&(e.current.cancel(),e.current=null);const R=n.scrollHeight,M=t?[{height:`${R}px`},{height:"0px"}]:[{height:"0px"},{height:`${R}px`}],q=t?"0px":"auto";return(d=u.current)==null||d.call(u),e.current=n.animate(M,{duration:x?0:s,easing:o,delay:f,fill:"forwards"}),e.current.onfinish=()=>{var m,p;(m=e.current)==null||m.commitStyles(),H(q),(p=c.current)==null||p.call(c),e.current=null},()=>{e.current&&(e.current.cancel(),e.current=null)}},[t,s,f,o]),{targetRef:h,isCollapsed:t,height:g,style:{height:g,overflow:"hidden"},ariaProps:{"aria-hidden":t}}}exports.default=P;
@@ -0,0 +1,22 @@
1
+ import { CSSValue } from '../../../typings/utility';
2
+
3
+ export interface UseCollapseProps {
4
+ isCollapsed?: boolean;
5
+ duration?: number;
6
+ delay?: number;
7
+ easing?: string;
8
+ onTransitionStart?: () => void;
9
+ onTransitionEnd?: () => void;
10
+ }
11
+ export default function useCollapse({ isCollapsed, duration, delay, easing, onTransitionStart, onTransitionEnd }?: UseCollapseProps): {
12
+ targetRef: import('react').RefObject<HTMLDivElement>;
13
+ isCollapsed: boolean;
14
+ height: CSSValue;
15
+ style: {
16
+ height: CSSValue;
17
+ overflow: string;
18
+ };
19
+ ariaProps: {
20
+ 'aria-hidden': boolean;
21
+ };
22
+ };
@@ -0,0 +1,51 @@
1
+ import { useRef as r, useState as M } from "react";
2
+ import P from "../../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.es.js";
3
+ import $ from "../../usePrefersReducedMotion/usePrefersReducedMotion.es.js";
4
+ function L({
5
+ isCollapsed: t = !0,
6
+ duration: o = 200,
7
+ delay: f = 0,
8
+ easing: i = "ease-in-out",
9
+ onTransitionStart: s,
10
+ onTransitionEnd: h
11
+ } = {}) {
12
+ const { prefersReducedMotion: H } = $(), l = r(null), e = r(null), u = r(s), c = r(h), m = r(!0);
13
+ u.current = s, c.current = h;
14
+ const [p, d] = M(t ? "0px" : "auto");
15
+ return P(() => {
16
+ var g;
17
+ if (m.current) {
18
+ m.current = !1;
19
+ return;
20
+ }
21
+ const n = l.current;
22
+ if (!n) return;
23
+ e.current && (e.current.cancel(), e.current = null);
24
+ const a = n.scrollHeight, w = t ? [{ height: `${a}px` }, { height: "0px" }] : [{ height: "0px" }, { height: `${a}px` }], y = t ? "0px" : "auto";
25
+ return (g = u.current) == null || g.call(u), e.current = n.animate(w, {
26
+ duration: H ? 0 : o,
27
+ easing: i,
28
+ delay: f,
29
+ fill: "forwards"
30
+ }), e.current.onfinish = () => {
31
+ var x, R;
32
+ (x = e.current) == null || x.commitStyles(), d(y), (R = c.current) == null || R.call(c), e.current = null;
33
+ }, () => {
34
+ e.current && (e.current.cancel(), e.current = null);
35
+ };
36
+ }, [t, o, f, i]), {
37
+ targetRef: l,
38
+ isCollapsed: t,
39
+ height: p,
40
+ style: {
41
+ height: p,
42
+ overflow: "hidden"
43
+ },
44
+ ariaProps: {
45
+ "aria-hidden": t
46
+ }
47
+ };
48
+ }
49
+ export {
50
+ L as default
51
+ };
@@ -1,6 +1,6 @@
1
1
  import { RefObject } from 'react';
2
2
 
3
- interface UseFocusBoundaryProps {
3
+ export interface UseFocusBoundaryProps {
4
4
  ref: RefObject<HTMLElement>;
5
5
  active?: boolean;
6
6
  disabled?: boolean;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react"),t=require("../../utils/isServer/isServer.cjs"),u=t.default()?e.useEffect:e.useLayoutEffect;exports.default=u;
@@ -0,0 +1,4 @@
1
+ import { useEffect } from 'react';
2
+
3
+ declare const useIsomorphicLayoutEffect: typeof useEffect;
4
+ export default useIsomorphicLayoutEffect;
@@ -0,0 +1,6 @@
1
+ import { useLayoutEffect as e, useEffect as o } from "react";
2
+ import t from "../../utils/isServer/isServer.es.js";
3
+ const s = t() ? o : e;
4
+ export {
5
+ s as default
6
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react"),o=require("../../utils/isPrefersReducedMotion/isPrefersReducedMotion.cjs");function c(){const[n,r]=d.useState(()=>o.default());return d.useEffect(()=>{if(typeof window>"u"||!(window!=null&&window.matchMedia))return;const e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=u=>r(u.matches);return e.addEventListener("change",t),()=>{e.removeEventListener("change",t)}},[]),{prefersReducedMotion:n}}exports.default=c;
@@ -0,0 +1,3 @@
1
+ export default function usePrefersReducedMotion(): {
2
+ prefersReducedMotion: boolean;
3
+ };
@@ -0,0 +1,15 @@
1
+ import { useState as o, useEffect as i } from "react";
2
+ import c from "../../utils/isPrefersReducedMotion/isPrefersReducedMotion.es.js";
3
+ function a() {
4
+ const [d, n] = o(() => c());
5
+ return i(() => {
6
+ if (typeof window > "u" || !(window != null && window.matchMedia)) return;
7
+ const e = window.matchMedia("(prefers-reduced-motion: reduce)"), t = (r) => n(r.matches);
8
+ return e.addEventListener("change", t), () => {
9
+ e.removeEventListener("change", t);
10
+ };
11
+ }, []), { prefersReducedMotion: d };
12
+ }
13
+ export {
14
+ a as default
15
+ };
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Button/Button.cjs"),t=require("./Icon/Icon.cjs"),o=require("./Label/Label.cjs"),r=require("./Typography/Typography.cjs"),u=require("./Box/Box.cjs"),n=require("./Flexbox/Flexbox.cjs"),i=require("./TextField/TextField.cjs"),a=require("./TextArea/TextArea.cjs"),l=require("./IconButton/IconButton.cjs"),c=require("./PageControl/PageControl.cjs"),d=require("./Checkbox/Checkbox.cjs"),s=require("./Radio/Radio.cjs"),f=require("./Chip/Chip.cjs"),q=require("./SegmentedButton/SegmentedButton.cjs"),B=require("./SegmentedButton/SegmentedButtonBlock/SegmentedButtonBlock.cjs"),g=require("./Backdrop/Backdrop.cjs"),S=require("./Dialog/Dialog.cjs"),T=require("./Dialog/DialogTitle/DialogTitle.cjs"),k=require("./Dialog/DialogContent/DialogContent.cjs"),m=require("./Dialog/DialogAction/DialogAction.cjs"),p=require("./Dialog/DialogText/DialogText.cjs"),h=require("./Tooltip/Tooltip.cjs"),C=require("./Select/Select.cjs"),b=require("./Select/Option/Option.cjs"),x=require("./Menu/Menu.cjs"),D=require("./Menu/MenuBlock/MenuBlock.cjs");require("./Menu/MenuButton/MenuButton.cjs");const y=require("./Skeleton/Skeleton.cjs"),P=require("./Switch/Switch.cjs"),A=require("./BottomSheet/BottomSheet.cjs"),F=require("./BottomSheet/BottomSheetTitle/BottomSheetTitle.cjs"),I=require("./BottomSheet/BottomSheetContent/BottomSheetContent.cjs"),L=require("./BottomSheet/BottomSheetAction/BottomSheetAction.cjs"),v=require("./BottomSheet/BottomSheetText/BottomSheetText.cjs"),M=require("./Snackbar/Snackbar.cjs"),w=require("./ChainPicker/ChainPicker.cjs"),E=require("./DatePicker/DatePicker.cjs"),G=require("./DatePicker/EventDot/EventDot.cjs"),K=require("./DatePicker/EventDotGroup/EventDotGroup.cjs"),N=require("./FormControlText/FormControlText.cjs"),R=require("./ClickAwayListener/ClickAwayListener.cjs"),O=require("./Card/Card.cjs"),j=require("./LineProgressIndicator/LineProgressIndicator.cjs"),z=require("./CircularProgressIndicator/CircularProgressIndicator.cjs"),H=require("./NumberKeypad/NumberKeypad.cjs"),J=require("./NumberKeypad/NumberKeypadBlock/NumberKeypadBlock.cjs"),Q=require("./FocusBoundary/FocusBoundary.cjs"),U=require("./Badge/Badge.cjs"),V=require("./Tab/Tab.cjs"),W=require("./Tab/TabBlock/TabBlock.cjs"),X=require("./Slider/Slider.cjs"),Y=require("./Accordion/Accordion.cjs"),Z=require("./RadioGroup/RadioGroup.cjs");exports.Button=e.default;exports.Icon=t.default;exports.Label=o.default;exports.Typography=r.default;exports.Box=u.default;exports.Flexbox=n.default;exports.TextField=i.default;exports.TextArea=a.default;exports.IconButton=l.default;exports.PageControl=c.default;exports.Checkbox=d.default;exports.Radio=s.default;exports.Chip=f.default;exports.SegmentedButton=q.default;exports.SegmentedButtonBlock=B.default;exports.Backdrop=g.default;exports.Dialog=S.default;exports.DialogTitle=T.default;exports.DialogContent=k.default;exports.DialogAction=m.default;exports.DialogText=p.default;exports.Tooltip=h.default;exports.Select=C.default;exports.Option=b.default;exports.Menu=x.default;exports.MenuBlock=D.default;exports.Skeleton=y.default;exports.Switch=P.default;exports.BottomSheet=A.default;exports.BottomSheetTitle=F.default;exports.BottomSheetContent=I.default;exports.BottomSheetAction=L.default;exports.BottomSheetText=v.default;exports.Snackbar=M.default;exports.ChainPicker=w.default;exports.DatePicker=E.default;exports.EventDot=G.default;exports.EventDotGroup=K.default;exports.FormControlText=N.default;exports.ClickAwayListener=R.default;exports.Card=O.default;exports.LineProgressIndicator=j.default;exports.CircularProgressIndicator=z.default;exports.NumberKeypad=H.default;exports.NumberKeypadBlock=J.default;exports.FocusBoundary=Q.default;exports.Badge=U.default;exports.Tab=V.default;exports.TabBlock=W.default;exports.Slider=X.default;exports.Accordion=Y.default;exports.RadioGroup=Z.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Button/Button.cjs"),t=require("./Icon/Icon.cjs"),o=require("./Label/Label.cjs"),r=require("./Typography/Typography.cjs"),u=require("./Box/Box.cjs"),n=require("./Flexbox/Flexbox.cjs"),a=require("./TextField/TextField.cjs"),i=require("./TextArea/TextArea.cjs"),l=require("./IconButton/IconButton.cjs"),c=require("./PageControl/PageControl.cjs"),d=require("./Checkbox/Checkbox.cjs"),s=require("./Radio/Radio.cjs"),f=require("./Chip/Chip.cjs"),q=require("./SegmentedButton/SegmentedButton.cjs"),B=require("./SegmentedButton/SegmentedButtonBlock/SegmentedButtonBlock.cjs"),g=require("./Backdrop/Backdrop.cjs"),S=require("./Dialog/Dialog.cjs"),p=require("./Dialog/DialogTitle/DialogTitle.cjs"),T=require("./Dialog/DialogContent/DialogContent.cjs"),k=require("./Dialog/DialogAction/DialogAction.cjs"),C=require("./Dialog/DialogText/DialogText.cjs"),m=require("./Tooltip/Tooltip.cjs"),h=require("./Select/Select.cjs"),b=require("./Select/Option/Option.cjs"),x=require("./Menu/Menu.cjs"),D=require("./Menu/MenuBlock/MenuBlock.cjs");require("./Menu/MenuButton/MenuButton.cjs");const y=require("./Skeleton/Skeleton.cjs"),P=require("./Switch/Switch.cjs"),A=require("./BottomSheet/BottomSheet.cjs"),F=require("./BottomSheet/BottomSheetTitle/BottomSheetTitle.cjs"),I=require("./BottomSheet/BottomSheetContent/BottomSheetContent.cjs"),L=require("./BottomSheet/BottomSheetAction/BottomSheetAction.cjs"),v=require("./BottomSheet/BottomSheetText/BottomSheetText.cjs"),M=require("./Snackbar/Snackbar.cjs"),w=require("./ChainPicker/ChainPicker.cjs"),E=require("./DatePicker/DatePicker.cjs"),G=require("./DatePicker/EventDot/EventDot.cjs"),K=require("./DatePicker/EventDotGroup/EventDotGroup.cjs"),N=require("./FormControlText/FormControlText.cjs"),R=require("./ClickAwayListener/ClickAwayListener.cjs"),O=require("./Card/Card.cjs"),j=require("./LineProgressIndicator/LineProgressIndicator.cjs"),z=require("./CircularProgressIndicator/CircularProgressIndicator.cjs"),H=require("./NumberKeypad/NumberKeypad.cjs"),J=require("./NumberKeypad/NumberKeypadBlock/NumberKeypadBlock.cjs"),Q=require("./FocusBoundary/FocusBoundary.cjs"),U=require("./Badge/Badge.cjs"),V=require("./Tab/Tab.cjs"),W=require("./Tab/TabBlock/TabBlock.cjs"),X=require("./Slider/Slider.cjs"),Y=require("./Accordion/Accordion.cjs"),Z=require("./RadioGroup/RadioGroup.cjs"),_=require("./Collapse/Collapse.cjs");exports.Button=e.default;exports.Icon=t.default;exports.Label=o.default;exports.Typography=r.default;exports.Box=u.default;exports.Flexbox=n.default;exports.TextField=a.default;exports.TextArea=i.default;exports.IconButton=l.default;exports.PageControl=c.default;exports.Checkbox=d.default;exports.Radio=s.default;exports.Chip=f.default;exports.SegmentedButton=q.default;exports.SegmentedButtonBlock=B.default;exports.Backdrop=g.default;exports.Dialog=S.default;exports.DialogTitle=p.default;exports.DialogContent=T.default;exports.DialogAction=k.default;exports.DialogText=C.default;exports.Tooltip=m.default;exports.Select=h.default;exports.Option=b.default;exports.Menu=x.default;exports.MenuBlock=D.default;exports.Skeleton=y.default;exports.Switch=P.default;exports.BottomSheet=A.default;exports.BottomSheetTitle=F.default;exports.BottomSheetContent=I.default;exports.BottomSheetAction=L.default;exports.BottomSheetText=v.default;exports.Snackbar=M.default;exports.ChainPicker=w.default;exports.DatePicker=E.default;exports.EventDot=G.default;exports.EventDotGroup=K.default;exports.FormControlText=N.default;exports.ClickAwayListener=R.default;exports.Card=O.default;exports.LineProgressIndicator=j.default;exports.CircularProgressIndicator=z.default;exports.NumberKeypad=H.default;exports.NumberKeypadBlock=J.default;exports.FocusBoundary=Q.default;exports.Badge=U.default;exports.Tab=V.default;exports.TabBlock=W.default;exports.Slider=X.default;exports.Accordion=Y.default;exports.RadioGroup=Z.default;exports.Collapse=_.default;
package/index.d.ts CHANGED
@@ -37,3 +37,4 @@ export { default as Tab, TabBlock } from './Tab';
37
37
  export { default as Slider } from './Slider';
38
38
  export { default as Accordion } from './Accordion';
39
39
  export { default as RadioGroup } from './RadioGroup';
40
+ export { default as Collapse } from './Collapse';
package/index.es.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { default as a } from "./Button/Button.es.js";
2
2
  import { default as f } from "./Icon/Icon.es.js";
3
3
  import { default as d } from "./Label/Label.es.js";
4
- import { default as m } from "./Typography/Typography.es.js";
4
+ import { default as p } from "./Typography/Typography.es.js";
5
5
  import { default as x } from "./Box/Box.es.js";
6
6
  import { default as n } from "./Flexbox/Flexbox.es.js";
7
7
  import { default as c } from "./TextField/TextField.es.js";
8
8
  import { default as g } from "./TextArea/TextArea.es.js";
9
9
  import { default as k } from "./IconButton/IconButton.es.js";
10
- import { default as h } from "./PageControl/PageControl.es.js";
10
+ import { default as T } from "./PageControl/PageControl.es.js";
11
11
  import { default as b } from "./Checkbox/Checkbox.es.js";
12
12
  import { default as y } from "./Radio/Radio.es.js";
13
13
  import { default as P } from "./Chip/Chip.es.js";
@@ -25,17 +25,17 @@ import { default as X } from "./Select/Option/Option.es.js";
25
25
  import { default as Z } from "./Menu/Menu.es.js";
26
26
  import { default as $ } from "./Menu/MenuBlock/MenuBlock.es.js";
27
27
  import "./Menu/MenuButton/MenuButton.es.js";
28
- import { default as to } from "./Skeleton/Skeleton.es.js";
28
+ import { default as eo } from "./Skeleton/Skeleton.es.js";
29
29
  import { default as ao } from "./Switch/Switch.es.js";
30
30
  import { default as fo } from "./BottomSheet/BottomSheet.es.js";
31
31
  import { default as uo } from "./BottomSheet/BottomSheetTitle/BottomSheetTitle.es.js";
32
- import { default as po } from "./BottomSheet/BottomSheetContent/BottomSheetContent.es.js";
32
+ import { default as mo } from "./BottomSheet/BottomSheetContent/BottomSheetContent.es.js";
33
33
  import { default as so } from "./BottomSheet/BottomSheetAction/BottomSheetAction.es.js";
34
34
  import { default as io } from "./BottomSheet/BottomSheetText/BottomSheetText.es.js";
35
35
  import { default as Bo } from "./Snackbar/Snackbar.es.js";
36
36
  import { default as So } from "./ChainPicker/ChainPicker.es.js";
37
- import { default as To } from "./DatePicker/DatePicker.es.js";
38
- import { default as Co } from "./DatePicker/EventDot/EventDot.es.js";
37
+ import { default as Co } from "./DatePicker/DatePicker.es.js";
38
+ import { default as ho } from "./DatePicker/EventDot/EventDot.es.js";
39
39
  import { default as Do } from "./DatePicker/EventDotGroup/EventDotGroup.es.js";
40
40
  import { default as Ao } from "./FormControlText/FormControlText.es.js";
41
41
  import { default as Fo } from "./ClickAwayListener/ClickAwayListener.es.js";
@@ -51,13 +51,14 @@ import { default as Uo } from "./Tab/TabBlock/TabBlock.es.js";
51
51
  import { default as Wo } from "./Slider/Slider.es.js";
52
52
  import { default as Yo } from "./Accordion/Accordion.es.js";
53
53
  import { default as _o } from "./RadioGroup/RadioGroup.es.js";
54
+ import { default as oe } from "./Collapse/Collapse.es.js";
54
55
  export {
55
56
  Yo as Accordion,
56
57
  E as Backdrop,
57
58
  zo as Badge,
58
59
  fo as BottomSheet,
59
60
  so as BottomSheetAction,
60
- po as BottomSheetContent,
61
+ mo as BottomSheetContent,
61
62
  io as BottomSheetText,
62
63
  uo as BottomSheetTitle,
63
64
  x as Box,
@@ -68,13 +69,14 @@ export {
68
69
  P as Chip,
69
70
  Go as CircularProgressIndicator,
70
71
  Fo as ClickAwayListener,
71
- To as DatePicker,
72
+ oe as Collapse,
73
+ Co as DatePicker,
72
74
  K as Dialog,
73
75
  q as DialogAction,
74
76
  O as DialogContent,
75
77
  H as DialogText,
76
78
  N as DialogTitle,
77
- Co as EventDot,
79
+ ho as EventDot,
78
80
  Do as EventDotGroup,
79
81
  n as Flexbox,
80
82
  jo as FocusBoundary,
@@ -88,13 +90,13 @@ export {
88
90
  Mo as NumberKeypad,
89
91
  Ro as NumberKeypadBlock,
90
92
  X as Option,
91
- h as PageControl,
93
+ T as PageControl,
92
94
  y as Radio,
93
95
  _o as RadioGroup,
94
96
  I as SegmentedButton,
95
97
  v as SegmentedButtonBlock,
96
98
  V as Select,
97
- to as Skeleton,
99
+ eo as Skeleton,
98
100
  Wo as Slider,
99
101
  Bo as Snackbar,
100
102
  ao as Switch,
@@ -103,5 +105,5 @@ export {
103
105
  g as TextArea,
104
106
  c as TextField,
105
107
  Q as Tooltip,
106
- m as Typography
108
+ p as Typography
107
109
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotss/ui",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "React UI components for Dotss",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function e(){return window!=null&&window.matchMedia?window.matchMedia("(prefers-reduced-motion: reduce)").matches:!1}exports.default=e;
@@ -0,0 +1 @@
1
+ export default function isPrefersReducedMotion(): boolean;
@@ -0,0 +1,6 @@
1
+ function e() {
2
+ return window != null && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1;
3
+ }
4
+ export {
5
+ e as default
6
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function e(){return typeof document>"u"}exports.default=e;
@@ -0,0 +1 @@
1
+ export default function isServer(): boolean;
@@ -0,0 +1,6 @@
1
+ function e() {
2
+ return typeof document > "u";
3
+ }
4
+ export {
5
+ e as default
6
+ };