@dotss/ui 1.7.2 → 1.9.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/Button/Button.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("@emotion/react/jsx-runtime"),M=require("react"),j=require("../Box/Box.cjs"),N=require("../CircularProgressIndicator/CircularProgressIndicator.cjs"),E=require("../hooks/useCheckHoverPossible/useCheckHoverPossible.cjs"),T=require("../utils/getIconLabel/getIconLabel.cjs"),F=require("@emotion/styled"),s=require("../utils/getContrastingTextColor/getContrastingTextColor.cjs"),V=l=>l&&l.__esModule?l:{default:l},G=V(F),J=G.default.button`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("@emotion/react/jsx-runtime"),M=require("react"),j=require("../Box/Box.cjs"),E=require("../CircularProgressIndicator/CircularProgressIndicator.cjs"),T=require("../hooks/useCheckHoverPossible/useCheckHoverPossible.cjs"),F=require("../utils/getIconLabel/getIconLabel.cjs"),V=require("@emotion/styled"),a=require("../utils/getContrastingTextColor/getContrastingTextColor.cjs"),D=p=>p&&p.__esModule?p:{default:p},G=D(V),J=G.default.button`
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
@@ -7,19 +7,21 @@
7
7
  color: inherit;
8
8
  }
9
9
 
10
- ${({theme:{palette:{brand:l,grey:e}},variant:t,color:u})=>{let p={backgroundColor:l.primary.main,color:s.default(l.primary.main,[e.white,e[100]])};return t==="filled"&&u==="secondary"&&(p={backgroundColor:l.secondary,color:s.default(l.secondary,[e.white,e[100]])}),t==="filled"&&u==="tertiary"&&(p={backgroundColor:l.tertiary,color:s.default(l.tertiary,[e.white,e[100]])}),t==="outlined"&&(p={borderColor:e[50],backgroundColor:e.white,color:s.default(e.white,[e.white,e[100]])}),t==="text"&&u==="primary"&&(p={backgroundColor:"transparent",color:s.default("transparent",[e.white,e[100]])}),t==="text"&&u==="secondary"&&(p={backgroundColor:"transparent",color:e[70]}),p}};
10
+ ${({theme:{palette:{brand:p,grey:e}},variant:t,color:u})=>{let l={backgroundColor:p.primary.main,color:a.default(p.primary.main,[e.white,e[100]])};return t==="filled"&&u==="secondary"&&(l={backgroundColor:p.secondary,color:a.default(p.secondary,[e.white,e[100]])}),t==="filled"&&u==="tertiary"&&(l={backgroundColor:p.tertiary,color:a.default(p.tertiary,[e.white,e[100]])}),t==="outlined"&&(l={borderColor:e[50],backgroundColor:e.white,color:a.default(e.white,[e.white,e[100]])}),t==="text"&&u==="primary"&&(l={backgroundColor:"transparent",color:a.default("transparent",[e.white,e[100]])}),t==="text"&&u==="secondary"&&(l={backgroundColor:"transparent",color:e[70]}),l}};
11
11
 
12
- ${({theme:{spacing:l,typography:e},variant:t,size:u,startAdornment:p,endAdornment:o,iconOnly:f})=>{let r={gap:l.content(1),padding:10,borderRadius:8,fontSize:e.b4M.size,fontWeight:e.b4M.weight,lineHeight:e.b4M.lineHeight,letterSpacing:e.b4M.letterSpacing,"& svg":{width:20,height:20}};if(u==="2xLarge"){const{h0B:i}=e;let x="26px 24px";p&&(x=t==="text"?"26px 16px 26px 12px":"26px 36px 26px 24px"),o&&(x=t==="text"?"26px 12px 26px 16px":"26px 24px 26px 36px"),p&&o&&(x=t==="text"?"26px 12px":"26px 24px"),f&&(x="26px 25px"),r={gap:l.content(3),maxHeight:100,padding:x,borderRadius:20,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:48,height:48}}}if(u==="xLarge"){const{h4B:i}=e;let x="16px 12px";p&&(x=t==="text"?"16px 8px 16px 4px":"16px 16px 16px 12px"),o&&(x=t==="text"?"16px 4px 16px 8px":"16px 12px 16px 16px"),p&&o&&(x=t==="text"?"16px 4px":"16px 12px"),f&&(x="16px 15px"),r={gap:l.content(2),maxHeight:56,padding:x,borderRadius:12,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:24,height:24}}}if(u==="large"){const{b2M:i}=e;let x="12px 8px";p&&(x=t==="text"?"12px 8px 12px 4px":"12px 12px 12px 8px"),o&&(x=t==="text"?"12px 4px 12px 8px":"12px 8px 12px 12px"),p&&o&&(x=t==="text"?"12px 4px":"12px 8px"),f&&(x="12px 11px"),r={gap:6,maxHeight:48,padding:x,borderRadius:10,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:24,height:24}}}if(u==="medium"){const{b4M:i}=e;let x="10px 8px";p&&(x=t==="text"?"10px 8px 10px 4px":"10px 10px 10px 8px"),o&&(x=t==="text"?"10px 4px 10px 8px":"10px 8px 10px 10px"),p&&o&&(x=t==="text"?"10px 4px":"10px 8px"),f&&(x="10px 9px"),r={gap:l.content(1),maxHeight:40,padding:x,borderRadius:8,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:20,height:20}}}if(u==="small"){const{c3M:i}=e;let x="8px 6px";p&&(x=t==="text"?"8px 8px 8px 4px":"8px 8px 8px 6px"),o&&(x=t==="text"?"8px 4px 8px 8px":"8px 6px 8px 8px"),p&&o&&(x=t==="text"?"8px 6px":"8px 4px"),f&&(x="8px 7px"),r={gap:l.content(1),maxHeight:32,padding:x,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}}if(u==="xSmall"){const{c3M:i}=e;let x="4px 6px";p&&(x=t==="text"?"4px 8px 4px 4px":"4px 8px 4px 6px"),o&&(x=t==="text"?"4px 4px 4px 8px":"4px 6px 4px 8px"),p&&o&&(x=t==="text"?"4px":"4px 6px"),f&&(x="4px 3px"),f?r={gap:l.content(1),maxHeight:24,width:24,height:24,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}:r={gap:l.content(1),maxHeight:24,padding:x,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}}return t==="text"&&u==="xLarge"&&(r={...r,borderWidth:1.5}),r}};
12
+ ${({theme:{spacing:p,typography:e},variant:t,size:u,startAdornment:l,endAdornment:o,iconOnly:f})=>{let r={gap:p.content(1),padding:10,borderRadius:8,fontSize:e.b4M.size,fontWeight:e.b4M.weight,lineHeight:e.b4M.lineHeight,letterSpacing:e.b4M.letterSpacing,"& svg":{width:20,height:20}};if(u==="2xLarge"){const{h0B:i}=e;let x="26px 24px";l&&(x=t==="text"?"26px 16px 26px 12px":"26px 36px 26px 24px"),o&&(x=t==="text"?"26px 12px 26px 16px":"26px 24px 26px 36px"),l&&o&&(x=t==="text"?"26px 12px":"26px 24px"),f&&(x="26px 25px"),r={gap:p.content(3),maxHeight:100,padding:x,borderRadius:20,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:48,height:48}}}if(u==="xLarge"){const{h4B:i}=e;let x="16px 12px";l&&(x=t==="text"?"16px 8px 16px 4px":"16px 16px 16px 12px"),o&&(x=t==="text"?"16px 4px 16px 8px":"16px 12px 16px 16px"),l&&o&&(x=t==="text"?"16px 4px":"16px 12px"),f&&(x="16px 15px"),r={gap:p.content(2),maxHeight:56,padding:x,borderRadius:12,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:24,height:24}}}if(u==="large"){const{b2M:i}=e;let x="12px 8px";l&&(x=t==="text"?"12px 8px 12px 4px":"12px 12px 12px 8px"),o&&(x=t==="text"?"12px 4px 12px 8px":"12px 8px 12px 12px"),l&&o&&(x=t==="text"?"12px 4px":"12px 8px"),f&&(x="12px 11px"),r={gap:6,maxHeight:48,padding:x,borderRadius:10,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:24,height:24}}}if(u==="medium"){const{b4M:i}=e;let x="10px 8px";l&&(x=t==="text"?"10px 8px 10px 4px":"10px 10px 10px 8px"),o&&(x=t==="text"?"10px 4px 10px 8px":"10px 8px 10px 10px"),l&&o&&(x=t==="text"?"10px 4px":"10px 8px"),f&&(x="10px 9px"),r={gap:p.content(1),maxHeight:40,padding:x,borderRadius:8,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:20,height:20}}}if(u==="small"){const{c3M:i}=e;let x="8px 6px";l&&(x=t==="text"?"8px 8px 8px 4px":"8px 8px 8px 6px"),o&&(x=t==="text"?"8px 4px 8px 8px":"8px 6px 8px 8px"),l&&o&&(x=t==="text"?"8px 6px":"8px 4px"),f&&(x="8px 7px"),r={gap:p.content(1),maxHeight:32,padding:x,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}}if(u==="xSmall"){const{c3M:i}=e;let x="4px 6px";l&&(x=t==="text"?"4px 8px 4px 4px":"4px 8px 4px 6px"),o&&(x=t==="text"?"4px 4px 4px 8px":"4px 6px 4px 8px"),l&&o&&(x=t==="text"?"4px":"4px 6px"),f&&(x="4px 3px"),f?r={gap:p.content(1),maxHeight:24,width:24,height:24,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}:r={gap:p.content(1),maxHeight:24,padding:x,borderRadius:6,fontSize:i.size,fontWeight:i.weight,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,"& svg":{width:16,height:16}}}return t==="text"&&u==="xLarge"&&(r={...r,borderWidth:1.5}),r}};
13
13
 
14
- ${({rounded:l})=>l?{}:{borderRadius:"unset"}}
14
+ ${({rounded:p})=>p?{}:{borderRadius:"unset"}}
15
15
 
16
- ${({theme:{palette:{brand:l,grey:e}},variant:t,color:u,isHoverPossible:p})=>{let o={'&:active:not([aria-disabled="true"])':{backgroundColor:l.primary.press},...p?{'&:hover:not([aria-disabled="true"])':{backgroundColor:l.primary.press}}:{}};return t==="filled"&&u==="secondary"&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[100]},...p?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[100]}}:{}}),t==="filled"&&u==="tertiary"&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[70]},...p?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[70]}}:{}}),(t==="outlined"||t==="text")&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[10]},...p?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[10]}}:{}}),o}}
16
+ ${({underlined:p})=>p?{textDecoration:"underline"}:{}}
17
+
18
+ ${({theme:{palette:{brand:p,grey:e}},variant:t,color:u,isHoverPossible:l})=>{let o={'&:active:not([aria-disabled="true"])':{backgroundColor:p.primary.press},...l?{'&:hover:not([aria-disabled="true"])':{backgroundColor:p.primary.press}}:{}};return t==="filled"&&u==="secondary"&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[100]},...l?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[100]}}:{}}),t==="filled"&&u==="tertiary"&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[70]},...l?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[70]}}:{}}),(t==="outlined"||t==="text")&&(o={'&:active:not([aria-disabled="true"])':{backgroundColor:e[10]},...l?{'&:hover:not([aria-disabled="true"])':{backgroundColor:e[10]}}:{}}),o}}
17
19
 
18
20
  &[aria-disabled="true"], &[aria-busy="true"] {
19
21
  cursor: not-allowed;
20
22
 
21
- ${({theme:{palette:{brand:l,grey:e}},variant:t,color:u})=>{let p={backgroundColor:l.primary.disable,color:s.default(l.primary.disable,[e[30],e.white])};return t==="filled"&&u==="secondary"&&(p={backgroundColor:e[10],color:s.default(e[10],[e[30],e.white])}),t==="outlined"&&(p={borderColor:e[30],backgroundColor:e[10],color:s.default(e[30],[e[30],e.white])}),t==="text"&&(p={color:s.default(e[30],[e[30],e.white])}),p}};
23
+ ${({theme:{palette:{brand:p,grey:e}},variant:t,color:u})=>{let l={backgroundColor:p.primary.disable,color:a.default(p.primary.disable,[e[30],e.white])};return t==="filled"&&u==="secondary"&&(l={backgroundColor:e[10],color:a.default(e[10],[e[30],e.white])}),t==="outlined"&&(l={borderColor:e[30],backgroundColor:e[10],color:a.default(e[30],[e[30],e.white])}),t==="text"&&(l={color:a.default(e[30],[e[30],e.white])}),l}};
22
24
  }
23
25
 
24
- ${({fullWidth:l})=>l?{width:"100%"}:null};
25
- `,P=M.forwardRef(function({tag:e="button",children:t,variant:u="filled",size:p="medium",color:o="primary",startAdornment:f,endAdornment:r,iconOnly:i,fullWidth:x,inlineCSS:z,rounded:W=!0,disabled:w,onClick:S,onKeyDown:H,loading:c,loadingPosition:R,loadingIndicator:h,...C},q){const{isHoverPossible:m}=E.default(),_=()=>{if(!i)return;if(C["aria-label"])return C["aria-label"];const d=f||r||t;if(M.isValidElement(d))return T.default(d.props.name)},$=d=>{w||c||S==null||S(d)},B=d=>{w||c||H==null||H(d)},L=!!c,k=h?a.jsx(a.Fragment,{children:h}):a.jsx(N.default,{loop:!0});let g=f,b=i?null:t,n=r;return L&&(R?R==="start"?(g=a.jsx(j.default,{children:k}),n=h?null:r,b=i||h?null:t):(g=h?null:f,n=a.jsx(j.default,{children:k}),b=i||h?null:t):(g=null,n=null,b=i?null:k)),a.jsxs(J,{as:e,ref:q,type:e==="button"?"button":void 0,variant:u,size:p,color:o,fullWidth:x,rounded:W,startAdornment:f,endAdornment:r,iconOnly:i,isHoverPossible:m,"aria-disabled":w||c,"aria-busy":c,"aria-label":_(),onClick:$,onKeyDown:B,...C,css:z,children:[g,b,n,c&&a.jsx(j.default,{visuallyHidden:!0,role:"status","aria-live":"polite","aria-atomic":"true",children:typeof t=="string"?`${t} 중`:"로딩 중"})]})});exports.default=P;
26
+ ${({fullWidth:p})=>p?{width:"100%"}:null};
27
+ `,P=M.forwardRef(function({tag:e="button",children:t,variant:u="filled",size:l="medium",color:o="primary",startAdornment:f,endAdornment:r,iconOnly:i,fullWidth:x,inlineCSS:z,rounded:W=!0,underlined:q=!1,disabled:w,onClick:S,onKeyDown:H,loading:c,loadingPosition:R,loadingIndicator:h,...C},$){const{isHoverPossible:m}=T.default(),_=()=>{if(!i)return;if(C["aria-label"])return C["aria-label"];const d=f||r||t;if(M.isValidElement(d))return F.default(d.props.name)},B=d=>{w||c||S==null||S(d)},L=d=>{w||c||H==null||H(d)},N=!!c,k=h?s.jsx(s.Fragment,{children:h}):s.jsx(E.default,{loop:!0});let g=f,b=i?null:t,n=r;return N&&(R?R==="start"?(g=s.jsx(j.default,{children:k}),n=h?null:r,b=i||h?null:t):(g=h?null:f,n=s.jsx(j.default,{children:k}),b=i||h?null:t):(g=null,n=null,b=i?null:k)),s.jsxs(J,{as:e,ref:$,type:e==="button"?"button":void 0,variant:u,size:l,color:o,fullWidth:x,rounded:W,underlined:q,startAdornment:f,endAdornment:r,iconOnly:i,isHoverPossible:m,"aria-disabled":w||c,"aria-busy":c,"aria-label":_(),onClick:B,onKeyDown:L,...C,css:z,children:[g,b,n,c&&s.jsx(j.default,{visuallyHidden:!0,role:"status","aria-live":"polite","aria-atomic":"true",children:typeof t=="string"?`${t} 중`:"로딩 중"})]})});exports.default=P;
@@ -11,6 +11,7 @@ export type ButtonProps<T extends ElementType = 'button'> = PolymorphicComponent
11
11
  iconOnly?: boolean;
12
12
  fullWidth?: boolean;
13
13
  rounded?: boolean;
14
+ underlined?: boolean;
14
15
  loading?: boolean;
15
16
  loadingPosition?: 'start' | 'end';
16
17
  loadingIndicator?: ReactNode;
@@ -1,12 +1,12 @@
1
- import { jsxs as E, jsx as g, Fragment as F } from "@emotion/react/jsx-runtime";
2
- import { forwardRef as T, isValidElement as V } from "react";
1
+ import { jsxs as F, jsx as g, Fragment as T } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef as V, isValidElement as q } from "react";
3
3
  import k from "../Box/Box.es.js";
4
- import q from "../CircularProgressIndicator/CircularProgressIndicator.es.js";
5
- import G from "../hooks/useCheckHoverPossible/useCheckHoverPossible.es.js";
6
- import J from "../utils/getIconLabel/getIconLabel.es.js";
7
- import Q from "@emotion/styled";
4
+ import G from "../CircularProgressIndicator/CircularProgressIndicator.es.js";
5
+ import J from "../hooks/useCheckHoverPossible/useCheckHoverPossible.es.js";
6
+ import Q from "../utils/getIconLabel/getIconLabel.es.js";
7
+ import U from "@emotion/styled";
8
8
  import h from "../utils/getContrastingTextColor/getContrastingTextColor.es.js";
9
- const U = Q.button`
9
+ const X = U.button`
10
10
  display: inline-flex;
11
11
  align-items: center;
12
12
  justify-content: center;
@@ -198,6 +198,10 @@ const U = Q.button`
198
198
  borderRadius: "unset"
199
199
  }}
200
200
 
201
+ ${({ underlined: l }) => l ? {
202
+ textDecoration: "underline"
203
+ } : {}}
204
+
201
205
  ${({
202
206
  theme: {
203
207
  palette: { brand: l, grey: e }
@@ -252,7 +256,7 @@ const U = Q.button`
252
256
  ${({ fullWidth: l }) => l ? {
253
257
  width: "100%"
254
258
  } : null};
255
- `, v = T(function({
259
+ `, O = V(function({
256
260
  tag: e = "button",
257
261
  children: t,
258
262
  variant: o = "filled",
@@ -264,6 +268,7 @@ const U = Q.button`
264
268
  fullWidth: x,
265
269
  inlineCSS: R,
266
270
  rounded: W = !0,
271
+ underlined: M = !1,
267
272
  disabled: w,
268
273
  onClick: S,
269
274
  onKeyDown: H,
@@ -271,39 +276,40 @@ const U = Q.button`
271
276
  loadingPosition: z,
272
277
  loadingIndicator: c,
273
278
  ...m
274
- }, M) {
275
- const { isHoverPossible: j } = G(), $ = () => {
279
+ }, $) {
280
+ const { isHoverPossible: j } = J(), B = () => {
276
281
  if (!i) return;
277
282
  if (m["aria-label"]) return m["aria-label"];
278
283
  const a = u || f || t;
279
- if (V(a))
280
- return J(a.props.name);
281
- }, B = (a) => {
282
- w || s || S == null || S(a);
284
+ if (q(a))
285
+ return Q(a.props.name);
283
286
  }, L = (a) => {
287
+ w || s || S == null || S(a);
288
+ }, N = (a) => {
284
289
  w || s || H == null || H(a);
285
- }, N = !!s, C = c ? /* @__PURE__ */ g(F, { children: c }) : /* @__PURE__ */ g(q, { loop: !0 });
290
+ }, E = !!s, C = c ? /* @__PURE__ */ g(T, { children: c }) : /* @__PURE__ */ g(G, { loop: !0 });
286
291
  let d = u, b = i ? null : t, n = f;
287
- return N && (z ? z === "start" ? (d = /* @__PURE__ */ g(k, { children: C }), n = c ? null : f, b = i || c ? null : t) : (d = c ? null : u, n = /* @__PURE__ */ g(k, { children: C }), b = i || c ? null : t) : (d = null, n = null, b = i ? null : C)), /* @__PURE__ */ E(
288
- U,
292
+ return E && (z ? z === "start" ? (d = /* @__PURE__ */ g(k, { children: C }), n = c ? null : f, b = i || c ? null : t) : (d = c ? null : u, n = /* @__PURE__ */ g(k, { children: C }), b = i || c ? null : t) : (d = null, n = null, b = i ? null : C)), /* @__PURE__ */ F(
293
+ X,
289
294
  {
290
295
  as: e,
291
- ref: M,
296
+ ref: $,
292
297
  type: e === "button" ? "button" : void 0,
293
298
  variant: o,
294
299
  size: p,
295
300
  color: r,
296
301
  fullWidth: x,
297
302
  rounded: W,
303
+ underlined: M,
298
304
  startAdornment: u,
299
305
  endAdornment: f,
300
306
  iconOnly: i,
301
307
  isHoverPossible: j,
302
308
  "aria-disabled": w || s,
303
309
  "aria-busy": s,
304
- "aria-label": $(),
305
- onClick: B,
306
- onKeyDown: L,
310
+ "aria-label": B(),
311
+ onClick: L,
312
+ onKeyDown: N,
307
313
  ...m,
308
314
  css: R,
309
315
  children: [
@@ -317,5 +323,5 @@ const U = Q.button`
317
323
  );
318
324
  });
319
325
  export {
320
- v as default
326
+ O as default
321
327
  };
@@ -30,6 +30,7 @@ type Story = StoryObj<typeof meta>;
30
30
  export declare const Filled: Story;
31
31
  export declare const Outlined: Story;
32
32
  export declare const Text: Story;
33
+ export declare const Underlined: Story;
33
34
  export declare const FullWidth: Story;
34
35
  export declare const StartAdornment: Story;
35
36
  export declare const EndAdornment: Story;
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @dotss/ui
2
2
 
3
+ ## 1.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d15467e: feat(ui): Highlight 컴포넌트 추가
8
+
9
+ ## 1.8.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 5dc7122: feat(ui): Button.underlined 추가
14
+
3
15
  ## 1.7.2
4
16
 
5
17
  ### Patch Changes
@@ -0,0 +1,27 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("@emotion/react/jsx-runtime"),r=require("react"),N=require("react-dom"),V=require("../hooks/useScrollLock/useScrollLock.cjs"),A=require("../hooks/useScrollLock/useScrollLock.utils.cjs"),B=require("@emotion/styled"),T=require("./Highlight.utils.cjs"),K=t=>t&&t.__esModule?t:{default:t},f=K(B),U=f.default.div`
2
+ display: inline-block;
3
+ max-width: 100%;
4
+ `,W=f.default.div`
5
+ position: fixed;
6
+ inset: 0;
7
+ z-index: 100000;
8
+ pointer-events: none;
9
+ opacity: ${({open:t})=>t?1:0};
10
+ transition: opacity ${({transitionDuration:t})=>t}ms;
11
+ `,y=f.default.div`
12
+ position: fixed;
13
+ pointer-events: auto;
14
+ background-color: transparent;
15
+ `,J=f.default.div`
16
+ position: fixed;
17
+ pointer-events: none;
18
+ box-shadow: 0 0 0 9999px
19
+ ${({theme:{palette:{etc:t}}})=>t.dimmed01};
20
+ border-radius: ${({borderRadius:t})=>Number.isInteger(t)?`${t}px`:t};
21
+ `,Q=f.default.div`
22
+ position: fixed;
23
+ z-index: 100001;
24
+ pointer-events: auto;
25
+ width: max-content;
26
+ max-width: min(100vw - 32px, 360px);
27
+ `,X=r.forwardRef(function({children:_,open:u=!1,onClose:i,transitionDuration:x=200,transitionDelay:b=0,padding:l=0,borderRadius:L=0,disablePortal:P=!1,closeOnTargetInteract:q=!0,overlay:k,overlayPlacement:I="bottom-center",overlayOffset:O,scrollIntoView:H=!0,inlineCSS:z,onClick:v,...M},d){const[j,E]=r.useState(!1),[h,R]=r.useState(!1),[c,$]=r.useState(T.DEFAULT_HIGHLIGHT_POSITION),g=r.useRef(null),o=r.useRef(null),a=r.useRef(null);V.default({enabled:h,targetRef:g});const m=T.getDimPanelStyles(c),p=r.useCallback(()=>{const e=g.current;if(!e)return;const s=e.getBoundingClientRect();$({top:s.top-l,left:s.left-l,width:s.width+l*2,height:s.height+l*2})},[l]),D=e=>{v==null||v(e),u&&q&&(i==null||i())},F=e=>{e.stopPropagation(),i==null||i()},G=e=>{g.current=e,typeof d=="function"?d(e):d&&(d.current=e)};r.useEffect(()=>{let e=!1;return u?(async()=>{a.current&&clearTimeout(a.current);const S=g.current;S&&await A.ensureElementInView(S,H),!e&&(p(),R(!0),o.current=setTimeout(()=>{e||E(!0)},b))})():(o.current&&clearTimeout(o.current),E(!1),a.current=setTimeout(()=>{e||R(!1)},x)),()=>{e=!0}},[u,b,x,p,H]),r.useEffect(()=>{if(!h)return;const e=()=>{p()};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[h,p]),r.useEffect(()=>{const e=s=>{s.key==="Escape"&&u&&(i==null||i())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[u,i]),r.useEffect(()=>()=>{o.current&&clearTimeout(o.current),a.current&&clearTimeout(a.current)},[]);const w=h?n.jsxs(W,{open:j,transitionDuration:x,"aria-hidden":!j,children:[n.jsx(y,{style:m.top,onClick:i}),n.jsx(y,{style:m.left,onClick:i}),n.jsx(y,{style:m.right,onClick:i}),n.jsx(y,{style:m.bottom,onClick:i}),n.jsx(J,{borderRadius:L,style:{top:c.top,left:c.left,width:c.width,height:c.height}}),k?n.jsx(Q,{style:T.getOverlayStyle(c,I,O),onClick:F,children:k}):null]}):null;return n.jsxs(n.Fragment,{children:[n.jsx(U,{ref:G,onClick:D,...M,css:z,children:_}),w?P?w:N.createPortal(w,document.body):null]})});exports.default=X;
@@ -0,0 +1,24 @@
1
+ import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
2
+ import { GeneralComponentProps } from '../typings/component';
3
+
4
+ export type HighlightPlacement = 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-top' | 'left-middle' | 'left-bottom' | 'top-left' | 'top-center' | 'top-right' | 'right-top' | 'right-middle' | 'right-bottom';
5
+ export interface HighlightOffset {
6
+ x?: number;
7
+ y?: number;
8
+ }
9
+ export interface HighlightProps extends GeneralComponentProps<HTMLAttributes<HTMLDivElement>> {
10
+ open?: boolean;
11
+ onClose?: () => void;
12
+ transitionDuration?: number;
13
+ transitionDelay?: number;
14
+ padding?: number;
15
+ borderRadius?: CSSProperties['borderRadius'];
16
+ disablePortal?: boolean;
17
+ closeOnTargetInteract?: boolean;
18
+ overlay?: ReactNode;
19
+ overlayPlacement?: HighlightPlacement;
20
+ overlayOffset?: HighlightOffset;
21
+ scrollIntoView?: boolean | ScrollIntoViewOptions;
22
+ }
23
+ declare const Highlight: import('react').ForwardRefExoticComponent<HighlightProps & import('react').RefAttributes<HTMLDivElement>>;
24
+ export default Highlight;
@@ -0,0 +1,139 @@
1
+ import { jsxs as S, jsx as n, Fragment as K } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef as U, useState as T, useRef as k, useCallback as W, useEffect as g } from "react";
3
+ import { createPortal as q } from "react-dom";
4
+ import D from "../hooks/useScrollLock/useScrollLock.es.js";
5
+ import { ensureElementInView as J } from "../hooks/useScrollLock/useScrollLock.utils.es.js";
6
+ import a from "@emotion/styled";
7
+ import { DEFAULT_HIGHLIGHT_POSITION as Q, getDimPanelStyles as X, getOverlayStyle as Y } from "./Highlight.utils.es.js";
8
+ const Z = a.div`
9
+ display: inline-block;
10
+ max-width: 100%;
11
+ `, C = a.div`
12
+ position: fixed;
13
+ inset: 0;
14
+ z-index: 100000;
15
+ pointer-events: none;
16
+ opacity: ${({ open: i }) => i ? 1 : 0};
17
+ transition: opacity ${({ transitionDuration: i }) => i}ms;
18
+ `, y = a.div`
19
+ position: fixed;
20
+ pointer-events: auto;
21
+ background-color: transparent;
22
+ `, tt = a.div`
23
+ position: fixed;
24
+ pointer-events: none;
25
+ box-shadow: 0 0 0 9999px
26
+ ${({
27
+ theme: {
28
+ palette: { etc: i }
29
+ }
30
+ }) => i.dimmed01};
31
+ border-radius: ${({ borderRadius: i }) => Number.isInteger(i) ? `${i}px` : i};
32
+ `, et = a.div`
33
+ position: fixed;
34
+ z-index: 100001;
35
+ pointer-events: auto;
36
+ width: max-content;
37
+ max-width: min(100vw - 32px, 360px);
38
+ `, ut = U(function({
39
+ children: z,
40
+ open: s = !1,
41
+ onClose: e,
42
+ transitionDuration: v = 200,
43
+ transitionDelay: H = 0,
44
+ padding: o = 0,
45
+ borderRadius: O = 0,
46
+ disablePortal: $ = !1,
47
+ closeOnTargetInteract: j = !0,
48
+ overlay: b,
49
+ overlayPlacement: F = "bottom-center",
50
+ overlayOffset: G,
51
+ scrollIntoView: E = !0,
52
+ inlineCSS: M,
53
+ onClick: w,
54
+ ...N
55
+ }, f) {
56
+ const [L, P] = T(!1), [h, I] = T(!1), [c, V] = T(
57
+ Q
58
+ ), d = k(null), l = k(null), u = k(null);
59
+ D({ enabled: h, targetRef: d });
60
+ const m = X(c), p = W(() => {
61
+ const t = d.current;
62
+ if (!t) return;
63
+ const r = t.getBoundingClientRect();
64
+ V({
65
+ top: r.top - o,
66
+ left: r.left - o,
67
+ width: r.width + o * 2,
68
+ height: r.height + o * 2
69
+ });
70
+ }, [o]), _ = (t) => {
71
+ w == null || w(t), s && j && (e == null || e());
72
+ }, A = (t) => {
73
+ t.stopPropagation(), e == null || e();
74
+ }, B = (t) => {
75
+ d.current = t, typeof f == "function" ? f(t) : f && (f.current = t);
76
+ };
77
+ g(() => {
78
+ let t = !1;
79
+ return s ? (async () => {
80
+ u.current && clearTimeout(u.current);
81
+ const R = d.current;
82
+ R && await J(R, E), !t && (p(), I(!0), l.current = setTimeout(() => {
83
+ t || P(!0);
84
+ }, H));
85
+ })() : (l.current && clearTimeout(l.current), P(!1), u.current = setTimeout(() => {
86
+ t || I(!1);
87
+ }, v)), () => {
88
+ t = !0;
89
+ };
90
+ }, [s, H, v, p, E]), g(() => {
91
+ if (!h) return;
92
+ const t = () => {
93
+ p();
94
+ };
95
+ return window.addEventListener("resize", t), () => {
96
+ window.removeEventListener("resize", t);
97
+ };
98
+ }, [h, p]), g(() => {
99
+ const t = (r) => {
100
+ r.key === "Escape" && s && (e == null || e());
101
+ };
102
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
103
+ }, [s, e]), g(() => () => {
104
+ l.current && clearTimeout(l.current), u.current && clearTimeout(u.current);
105
+ }, []);
106
+ const x = h ? /* @__PURE__ */ S(C, { open: L, transitionDuration: v, "aria-hidden": !L, children: [
107
+ /* @__PURE__ */ n(y, { style: m.top, onClick: e }),
108
+ /* @__PURE__ */ n(y, { style: m.left, onClick: e }),
109
+ /* @__PURE__ */ n(y, { style: m.right, onClick: e }),
110
+ /* @__PURE__ */ n(y, { style: m.bottom, onClick: e }),
111
+ /* @__PURE__ */ n(
112
+ tt,
113
+ {
114
+ borderRadius: O,
115
+ style: {
116
+ top: c.top,
117
+ left: c.left,
118
+ width: c.width,
119
+ height: c.height
120
+ }
121
+ }
122
+ ),
123
+ b ? /* @__PURE__ */ n(
124
+ et,
125
+ {
126
+ style: Y(c, F, G),
127
+ onClick: A,
128
+ children: b
129
+ }
130
+ ) : null
131
+ ] }) : null;
132
+ return /* @__PURE__ */ S(K, { children: [
133
+ /* @__PURE__ */ n(Z, { ref: B, onClick: _, ...N, css: M, children: z }),
134
+ x ? $ ? x : q(x, document.body) : null
135
+ ] });
136
+ });
137
+ export {
138
+ ut as default
139
+ };
@@ -0,0 +1,26 @@
1
+ import { StoryObj } from '@storybook/react';
2
+
3
+ declare const meta: {
4
+ title: string;
5
+ component: import('react').ForwardRefExoticComponent<import('./Highlight').HighlightProps & import('react').RefAttributes<HTMLDivElement>>;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ argTypes: {
10
+ overlayPlacement: {
11
+ options: string[];
12
+ control: {
13
+ type: "select";
14
+ };
15
+ };
16
+ };
17
+ tags: string[];
18
+ };
19
+ export default meta;
20
+ type Story = StoryObj<typeof meta>;
21
+ export declare const Default: Story;
22
+ export declare const WithOverlay: Story;
23
+ export declare const WithTransitionDelay: Story;
24
+ export declare const OffscreenTarget: Story;
25
+ export declare const Nested: Story;
26
+ export declare const SequentialTour: Story;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=12,c={top:0,left:0,width:0,height:0},m=i=>{const{top:f,left:a,width:e,height:t}=i;return{top:{top:0,left:0,width:"100%",height:Math.max(f,0)},left:{top:f,left:0,width:Math.max(a,0),height:t},right:{top:f,left:a+e,right:0,height:t},bottom:{top:f+t,left:0,width:"100%",bottom:0}}};function p(i,f,a){const e=(a==null?void 0:a.x)??0,t=(a==null?void 0:a.y)??0,{top:o,left:n,width:l,height:s}=i;switch(f){case"top-left":return{top:o-r+t,left:n+e,transform:"translateY(-100%)"};case"top-center":return{top:o-r+t,left:n+l/2+e,transform:"translate(-50%, -100%)"};case"top-right":return{top:o-r+t,left:n+l+e,transform:"translate(-100%, -100%)"};case"bottom-left":return{top:o+s+r+t,left:n+e};case"bottom-center":return{top:o+s+r+t,left:n+l/2+e,transform:"translateX(-50%)"};case"bottom-right":return{top:o+s+r+t,left:n+l+e,transform:"translateX(-100%)"};case"left-top":return{top:o+t,left:n-r+e,transform:"translateX(-100%)"};case"left-middle":return{top:o+s/2+t,left:n-r+e,transform:"translate(-100%, -50%)"};case"left-bottom":return{top:o+s+t,left:n-r+e,transform:"translate(-100%, -100%)"};case"right-top":return{top:o+t,left:n+l+r+e};case"right-middle":return{top:o+s/2+t,left:n+l+r+e,transform:"translateY(-50%)"};case"right-bottom":return{top:o+s+t,left:n+l+r+e,transform:"translateY(-100%)"};default:return{top:o+s+r+t,left:n+l/2+e,transform:"translateX(-50%)"}}}exports.DEFAULT_HIGHLIGHT_POSITION=c;exports.OVERLAY_GAP=r;exports.getDimPanelStyles=m;exports.getOverlayStyle=p;
@@ -0,0 +1,18 @@
1
+ import { CSSProperties } from 'react';
2
+ import { HighlightOffset, HighlightPlacement } from './Highlight';
3
+
4
+ export interface HighlightPosition {
5
+ top: number;
6
+ left: number;
7
+ width: number;
8
+ height: number;
9
+ }
10
+ export declare const OVERLAY_GAP = 12;
11
+ export declare const DEFAULT_HIGHLIGHT_POSITION: HighlightPosition;
12
+ export declare const getDimPanelStyles: (highlightPosition: HighlightPosition) => {
13
+ top: CSSProperties;
14
+ left: CSSProperties;
15
+ right: CSSProperties;
16
+ bottom: CSSProperties;
17
+ };
18
+ export declare function getOverlayStyle(highlightPosition: HighlightPosition, overlayPlacement: HighlightPlacement, overlayOffset?: HighlightOffset): CSSProperties;
@@ -0,0 +1,121 @@
1
+ const f = 12, p = {
2
+ top: 0,
3
+ left: 0,
4
+ width: 0,
5
+ height: 0
6
+ }, h = (A) => {
7
+ const { top: l, left: n, width: e, height: t } = A;
8
+ return {
9
+ top: {
10
+ top: 0,
11
+ left: 0,
12
+ width: "100%",
13
+ height: Math.max(l, 0)
14
+ },
15
+ left: {
16
+ top: l,
17
+ left: 0,
18
+ width: Math.max(n, 0),
19
+ height: t
20
+ },
21
+ right: {
22
+ top: l,
23
+ left: n + e,
24
+ right: 0,
25
+ height: t
26
+ },
27
+ bottom: {
28
+ top: l + t,
29
+ left: 0,
30
+ width: "100%",
31
+ bottom: 0
32
+ }
33
+ };
34
+ };
35
+ function c(A, l, n) {
36
+ const e = (n == null ? void 0 : n.x) ?? 0, t = (n == null ? void 0 : n.y) ?? 0, { top: r, left: o, width: a, height: s } = A;
37
+ switch (l) {
38
+ case "top-left":
39
+ return {
40
+ top: r - 12 + t,
41
+ left: o + e,
42
+ transform: "translateY(-100%)"
43
+ };
44
+ case "top-center":
45
+ return {
46
+ top: r - 12 + t,
47
+ left: o + a / 2 + e,
48
+ transform: "translate(-50%, -100%)"
49
+ };
50
+ case "top-right":
51
+ return {
52
+ top: r - 12 + t,
53
+ left: o + a + e,
54
+ transform: "translate(-100%, -100%)"
55
+ };
56
+ case "bottom-left":
57
+ return {
58
+ top: r + s + 12 + t,
59
+ left: o + e
60
+ };
61
+ case "bottom-center":
62
+ return {
63
+ top: r + s + 12 + t,
64
+ left: o + a / 2 + e,
65
+ transform: "translateX(-50%)"
66
+ };
67
+ case "bottom-right":
68
+ return {
69
+ top: r + s + 12 + t,
70
+ left: o + a + e,
71
+ transform: "translateX(-100%)"
72
+ };
73
+ case "left-top":
74
+ return {
75
+ top: r + t,
76
+ left: o - 12 + e,
77
+ transform: "translateX(-100%)"
78
+ };
79
+ case "left-middle":
80
+ return {
81
+ top: r + s / 2 + t,
82
+ left: o - 12 + e,
83
+ transform: "translate(-100%, -50%)"
84
+ };
85
+ case "left-bottom":
86
+ return {
87
+ top: r + s + t,
88
+ left: o - 12 + e,
89
+ transform: "translate(-100%, -100%)"
90
+ };
91
+ case "right-top":
92
+ return {
93
+ top: r + t,
94
+ left: o + a + 12 + e
95
+ };
96
+ case "right-middle":
97
+ return {
98
+ top: r + s / 2 + t,
99
+ left: o + a + 12 + e,
100
+ transform: "translateY(-50%)"
101
+ };
102
+ case "right-bottom":
103
+ return {
104
+ top: r + s + t,
105
+ left: o + a + 12 + e,
106
+ transform: "translateY(-100%)"
107
+ };
108
+ default:
109
+ return {
110
+ top: r + s + 12 + t,
111
+ left: o + a / 2 + e,
112
+ transform: "translateX(-50%)"
113
+ };
114
+ }
115
+ }
116
+ export {
117
+ p as DEFAULT_HIGHLIGHT_POSITION,
118
+ f as OVERLAY_GAP,
119
+ h as getDimPanelStyles,
120
+ c as getOverlayStyle
121
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Highlight.cjs");exports.default=e.default;
@@ -0,0 +1,4 @@
1
+ import { default as Highlight } from './Highlight';
2
+
3
+ export type { HighlightOffset, HighlightPlacement, HighlightProps } from './Highlight';
4
+ export default Highlight;
@@ -0,0 +1,4 @@
1
+ import i from "./Highlight.es.js";
2
+ export {
3
+ i as default
4
+ };
package/Icon/Icon.cjs CHANGED
@@ -1,5 +1,7 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("@emotion/react/jsx-runtime"),t=require("react"),S=require("../resources/tictoccroc/icons/index.ts-B8qwAe9y.cjs"),b=require("@emotion/styled"),h=require("../utils/getPaletteColor/getPaletteColor.cjs"),I=r=>r&&r.__esModule?r:{default:r},w=I(b),$=r=>w.default(r)`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("@emotion/react/jsx-runtime"),t=require("react"),y=require("../resources/tictoccroc/icons/index.ts-B8qwAe9y.cjs"),S=require("@emotion/styled"),b=require("../utils/getPaletteColor/getPaletteColor.cjs"),I=r=>r&&r.__esModule?r:{default:r},w=I(S),$=r=>w.default(r)`
2
+ flex-shrink: 0;
3
+
2
4
  ${({size:o,width:s,height:a})=>{let n={width:s,height:a};switch(o){case"large":n={width:32,height:32};break;case"medium":n={width:24,height:24};break;case"small":n={width:20,height:20};break;case"xSmall":n={width:16,height:16};break}return n}};
3
5
 
4
- color: ${({theme:o,color:s="grey.100"})=>h.default(s,{theme:o})};
5
- `,q=t.forwardRef(function({id:o,name:s,width:a=24,height:n=24,size:i,color:p="grey.100",inlineCSS:d,...f},m){const _=$(k=>t.Children.map(S.SvgIcons[s](),c=>t.isValidElement(c)?t.cloneElement(c,{focusable:!1,"aria-hidden":!0,...c.props,...k,children:t.Children.map(c.props.children,e=>{var u;if(!t.isValidElement(e))return null;if(e.type==="mask"){const l=`${e.props.id}-${o||0}`;return t.cloneElement(e,{...e.props,id:l})}return e.type==="path"&&!!e.props.mask?t.cloneElement(e,{...e.props,mask:`${(u=e.props.mask)==null?void 0:u.replace(/\)$/,`-${o||0})`)}`}):e})}):null));return y.jsx(_,{ref:m,width:a,height:n,size:i,color:p,...f,css:d})});exports.default=q;
6
+ color: ${({theme:o,color:s="grey.100"})=>b.default(s,{theme:o})};
7
+ `,q=t.forwardRef(function({id:o,name:s,width:a=24,height:n=24,size:i,color:p="grey.100",inlineCSS:d,...f},m){const k=$(_=>t.Children.map(y.SvgIcons[s](),c=>t.isValidElement(c)?t.cloneElement(c,{focusable:!1,"aria-hidden":!0,...c.props,..._,children:t.Children.map(c.props.children,e=>{var l;if(!t.isValidElement(e))return null;if(e.type==="mask"){const u=`${e.props.id}-${o||0}`;return t.cloneElement(e,{...e.props,id:u})}return e.type==="path"&&!!e.props.mask?t.cloneElement(e,{...e.props,mask:`${(l=e.props.mask)==null?void 0:l.replace(/\)$/,`-${o||0})`)}`}):e})}):null));return h.jsx(k,{ref:m,width:a,height:n,size:i,color:p,...f,css:d})});exports.default=q;
package/Icon/Icon.es.js CHANGED
@@ -4,6 +4,8 @@ import { S as $ } from "../resources/tictoccroc/icons/index.ts-B4Sh1uNq.js";
4
4
  import b from "@emotion/styled";
5
5
  import x from "../utils/getPaletteColor/getPaletteColor.es.js";
6
6
  const g = (p) => b(p)`
7
+ flex-shrink: 0;
8
+
7
9
  ${({ size: t, width: o, height: a }) => {
8
10
  let r = {
9
11
  width: o,
@@ -41,12 +43,12 @@ const g = (p) => b(p)`
41
43
  color: ${({ theme: t, color: o = "grey.100" }) => x(o, {
42
44
  theme: t
43
45
  })};
44
- `, V = y(function({ id: t, name: o, width: a = 24, height: r = 24, size: u, color: l = "grey.100", inlineCSS: k, ...I }, S) {
45
- const d = g((h) => f.map($[o](), (n) => i(n) ? s(n, {
46
+ `, V = y(function({ id: t, name: o, width: a = 24, height: r = 24, size: l, color: u = "grey.100", inlineCSS: k, ...h }, I) {
47
+ const S = g((d) => f.map($[o](), (n) => i(n) ? s(n, {
46
48
  focusable: !1,
47
49
  "aria-hidden": !0,
48
50
  ...n.props,
49
- ...h,
51
+ ...d,
50
52
  children: f.map(n.props.children, (e) => {
51
53
  var c;
52
54
  if (!i(e))
@@ -65,14 +67,14 @@ const g = (p) => b(p)`
65
67
  })
66
68
  }) : null));
67
69
  return /* @__PURE__ */ w(
68
- d,
70
+ S,
69
71
  {
70
- ref: S,
72
+ ref: I,
71
73
  width: a,
72
74
  height: r,
73
- size: u,
74
- color: l,
75
- ...I,
75
+ size: l,
76
+ color: u,
77
+ ...h,
76
78
  css: k
77
79
  }
78
80
  );
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"),r=require("./interactions/useCollapse/useCollapse.cjs"),t=require("./useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),c=require("./usePrefersReducedMotion/usePrefersReducedMotion.cjs"),a=require("./useForm/useForm.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;exports.useForm=a.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useCheckHoverPossible/useCheckHoverPossible.cjs"),u=require("./useCheckKeyboardMode/useCheckKeyboardMode.cjs"),o=require("./useCheckHasFocus/useCheckHasFocus.cjs"),s=require("./useFocusBoundary/useFocusBoundary.cjs"),r=require("./interactions/useCollapse/useCollapse.cjs"),c=require("./useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),t=require("./usePrefersReducedMotion/usePrefersReducedMotion.cjs"),l=require("./useForm/useForm.cjs"),a=require("./useScrollLock/useScrollLock.cjs");exports.useCheckHoverPossible=e.default;exports.useCheckKeyboardMode=u.default;exports.useCheckHasFocus=o.default;exports.useFocusBoundary=s.default;exports.useCollapse=r.default;exports.useIsomorphicLayoutEffect=c.default;exports.usePrefersReducedMotion=t.default;exports.useForm=l.default;exports.useScrollLock=a.default;
package/hooks/index.d.ts CHANGED
@@ -6,7 +6,9 @@ export { default as useCollapse } from './interactions/useCollapse/useCollapse';
6
6
  export { default as useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';
7
7
  export { default as usePrefersReducedMotion } from './usePrefersReducedMotion/usePrefersReducedMotion';
8
8
  export { default as useForm } from './useForm/useForm';
9
+ export { default as useScrollLock } from './useScrollLock/useScrollLock';
9
10
  export type { UseFocusBoundaryProps } from './useFocusBoundary/useFocusBoundary';
10
11
  export type { UseCheckHasFocusProps } from './useCheckHasFocus/useCheckHasFocus';
11
12
  export type { UseCollapseProps } from './interactions/useCollapse/useCollapse';
12
13
  export type { FieldErrors, FormContext, FormFieldHelper, OnSubmitFn, SubmitFn, ValidateFn, UseFormProps, UseFormReturn } from './useForm/useForm';
14
+ export type { UseScrollLockProps } from './useScrollLock/useScrollLock';
package/hooks/index.es.js CHANGED
@@ -1,18 +1,20 @@
1
- import { default as s } from "./useCheckHoverPossible/useCheckHoverPossible.es.js";
1
+ import { default as r } from "./useCheckHoverPossible/useCheckHoverPossible.es.js";
2
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
5
  import { default as m } from "./interactions/useCollapse/useCollapse.es.js";
6
6
  import { default as c } from "./useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.es.js";
7
7
  import { default as h } from "./usePrefersReducedMotion/usePrefersReducedMotion.es.js";
8
- import { default as i } from "./useForm/useForm.es.js";
8
+ import { default as C } from "./useForm/useForm.es.js";
9
+ import { default as y } from "./useScrollLock/useScrollLock.es.js";
9
10
  export {
10
11
  f as useCheckHasFocus,
11
- s as useCheckHoverPossible,
12
+ r as useCheckHoverPossible,
12
13
  a as useCheckKeyboardMode,
13
14
  m as useCollapse,
14
15
  d as useFocusBoundary,
15
- i as useForm,
16
+ C as useForm,
16
17
  c as useIsomorphicLayoutEffect,
17
- h as usePrefersReducedMotion
18
+ h as usePrefersReducedMotion,
19
+ y as useScrollLock
18
20
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react"),s=require("../../utils/isServer/isServer.cjs"),o=require("./useScrollLock.utils.cjs");function t({enabled:r=!1,targetRef:e}={}){c.useEffect(()=>{if(!r||s.default())return;const u=o.getScrollLockTargets((e==null?void 0:e.current)??null),l=o.lockOverflow(u);return()=>{o.unlockOverflow(u,l)}},[r,e])}exports.default=t;
@@ -0,0 +1,7 @@
1
+ import { RefObject } from 'react';
2
+
3
+ export interface UseScrollLockProps {
4
+ enabled?: boolean;
5
+ targetRef?: RefObject<Element | null>;
6
+ }
7
+ export default function useScrollLock({ enabled, targetRef }?: UseScrollLockProps): void;
@@ -0,0 +1,15 @@
1
+ import { useEffect as s } from "react";
2
+ import u from "../../utils/isServer/isServer.es.js";
3
+ import { getScrollLockTargets as n, lockOverflow as i, unlockOverflow as f } from "./useScrollLock.utils.es.js";
4
+ function p({ enabled: r = !1, targetRef: o } = {}) {
5
+ s(() => {
6
+ if (!r || u()) return;
7
+ const c = n((o == null ? void 0 : o.current) ?? null), l = i(c);
8
+ return () => {
9
+ f(c, l);
10
+ };
11
+ }, [r, o]);
12
+ }
13
+ export {
14
+ p as default
15
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=500,s={behavior:"smooth",block:"center",inline:"nearest"};function h(e){return/(auto|scroll|overlay)/.test(e)}function E(e){const t=getComputedStyle(e);return[t.overflow,t.overflowX,t.overflowY,e.style.overflow,e.style.overflowX,e.style.overflowY].some(h)}function l(e){const t=[];let o=e.parentElement;for(;o;)E(o)&&t.push(o),o=o.parentElement;return t}function g(e){if(!e)return[document.body];const t=[...l(e)];return!t.includes(document.body)&&!t.includes(document.documentElement)&&t.push(document.body),t}function f(e,t){return t.top>=e.top&&t.left>=e.left&&t.bottom<=e.bottom&&t.right<=e.right}function v(e){const t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)return!0;const o={top:0,left:0,bottom:window.innerHeight||document.documentElement.clientHeight,right:window.innerWidth||document.documentElement.clientWidth};return f(o,t)?l(e).every(n=>f(n.getBoundingClientRect(),t)):!1}function d(e){return e===!1?null:e===!0?{...s}:{...s,...e}}function a(e=[],t=w){return new Promise(o=>{let n=!1;const r=[...new Set([...e,window])],c=()=>{n||(n=!0,r.forEach(i=>{i.removeEventListener("scrollend",u)}),window.clearTimeout(m),o())},u=()=>{c()};r.forEach(i=>{i.addEventListener("scrollend",u)});const m=setTimeout(c,t)})}async function O(e,t){const o=d(t);!o||v(e)||(e.scrollIntoView(o),o.behavior==="smooth"?await a(l(e)):await new Promise(n=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>n())})}))}function S(e){return e.map(t=>{const o={overflow:t.style.overflow,overflowX:t.style.overflowX,overflowY:t.style.overflowY};return t.style.overflow="hidden",o})}function y(e,t){e.forEach((o,n)=>{const r=t[n];r&&(o.style.overflow=r.overflow,o.style.overflowX=r.overflowX,o.style.overflowY=r.overflowY)})}exports.DEFAULT_SCROLL_INTO_VIEW_OPTIONS=s;exports.SCROLL_END_FALLBACK_MS=w;exports.ensureElementInView=O;exports.getOverflowAncestors=l;exports.getScrollIntoViewOptions=d;exports.getScrollLockTargets=g;exports.isElementInViewport=v;exports.lockOverflow=S;exports.unlockOverflow=y;exports.waitForScrollEnd=a;
@@ -0,0 +1,16 @@
1
+ export declare const SCROLL_END_FALLBACK_MS = 500;
2
+ export declare const DEFAULT_SCROLL_INTO_VIEW_OPTIONS: ScrollIntoViewOptions;
3
+ interface OverflowInlineStyle {
4
+ overflow: string;
5
+ overflowX: string;
6
+ overflowY: string;
7
+ }
8
+ export declare function getOverflowAncestors(element: Element): HTMLElement[];
9
+ export declare function getScrollLockTargets(element: Element | null): HTMLElement[];
10
+ export declare function isElementInViewport(element: Element): boolean;
11
+ export declare function getScrollIntoViewOptions(scrollIntoView: boolean | ScrollIntoViewOptions): ScrollIntoViewOptions | null;
12
+ export declare function waitForScrollEnd(targets?: EventTarget[], timeout?: number): Promise<void>;
13
+ export declare function ensureElementInView(element: HTMLElement, scrollIntoView: boolean | ScrollIntoViewOptions): Promise<void>;
14
+ export declare function lockOverflow(elements: HTMLElement[]): OverflowInlineStyle[];
15
+ export declare function unlockOverflow(elements: HTMLElement[], previous: OverflowInlineStyle[]): void;
16
+ export {};
@@ -0,0 +1,102 @@
1
+ const y = 500, u = {
2
+ behavior: "smooth",
3
+ block: "center",
4
+ inline: "nearest"
5
+ };
6
+ function d(e) {
7
+ return /(auto|scroll|overlay)/.test(e);
8
+ }
9
+ function v(e) {
10
+ const t = getComputedStyle(e);
11
+ return [
12
+ t.overflow,
13
+ t.overflowX,
14
+ t.overflowY,
15
+ e.style.overflow,
16
+ e.style.overflowX,
17
+ e.style.overflowY
18
+ ].some(d);
19
+ }
20
+ function i(e) {
21
+ const t = [];
22
+ let o = e.parentElement;
23
+ for (; o; )
24
+ v(o) && t.push(o), o = o.parentElement;
25
+ return t;
26
+ }
27
+ function E(e) {
28
+ if (!e) return [document.body];
29
+ const t = [...i(e)];
30
+ return !t.includes(document.body) && !t.includes(document.documentElement) && t.push(document.body), t;
31
+ }
32
+ function f(e, t) {
33
+ return t.top >= e.top && t.left >= e.left && t.bottom <= e.bottom && t.right <= e.right;
34
+ }
35
+ function a(e) {
36
+ const t = e.getBoundingClientRect();
37
+ if (t.width <= 0 || t.height <= 0) return !0;
38
+ const o = {
39
+ top: 0,
40
+ left: 0,
41
+ bottom: window.innerHeight || document.documentElement.clientHeight,
42
+ right: window.innerWidth || document.documentElement.clientWidth
43
+ };
44
+ return f(o, t) ? i(e).every(
45
+ (n) => f(n.getBoundingClientRect(), t)
46
+ ) : !1;
47
+ }
48
+ function m(e) {
49
+ return e === !1 ? null : e === !0 ? { ...u } : { ...u, ...e };
50
+ }
51
+ function h(e = [], t = 500) {
52
+ return new Promise((o) => {
53
+ let n = !1;
54
+ const r = [.../* @__PURE__ */ new Set([...e, window])], s = () => {
55
+ n || (n = !0, r.forEach((l) => {
56
+ l.removeEventListener("scrollend", c);
57
+ }), window.clearTimeout(w), o());
58
+ }, c = () => {
59
+ s();
60
+ };
61
+ r.forEach((l) => {
62
+ l.addEventListener("scrollend", c);
63
+ });
64
+ const w = setTimeout(s, t);
65
+ });
66
+ }
67
+ async function g(e, t) {
68
+ const o = m(t);
69
+ !o || a(e) || (e.scrollIntoView(o), o.behavior === "smooth" ? await h(i(e)) : await new Promise((n) => {
70
+ requestAnimationFrame(() => {
71
+ requestAnimationFrame(() => n());
72
+ });
73
+ }));
74
+ }
75
+ function p(e) {
76
+ return e.map((t) => {
77
+ const o = {
78
+ overflow: t.style.overflow,
79
+ overflowX: t.style.overflowX,
80
+ overflowY: t.style.overflowY
81
+ };
82
+ return t.style.overflow = "hidden", o;
83
+ });
84
+ }
85
+ function L(e, t) {
86
+ e.forEach((o, n) => {
87
+ const r = t[n];
88
+ r && (o.style.overflow = r.overflow, o.style.overflowX = r.overflowX, o.style.overflowY = r.overflowY);
89
+ });
90
+ }
91
+ export {
92
+ u as DEFAULT_SCROLL_INTO_VIEW_OPTIONS,
93
+ y as SCROLL_END_FALLBACK_MS,
94
+ g as ensureElementInView,
95
+ i as getOverflowAncestors,
96
+ m as getScrollIntoViewOptions,
97
+ E as getScrollLockTargets,
98
+ a as isElementInViewport,
99
+ p as lockOverflow,
100
+ L as unlockOverflow,
101
+ h as waitForScrollEnd
102
+ };
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"),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"),m=require("./Dialog/DialogContent/DialogContent.cjs"),T=require("./Dialog/DialogAction/DialogAction.cjs"),k=require("./Dialog/DialogText/DialogText.cjs"),C=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"),A=require("./Switch/Switch.cjs"),P=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"),$=require("./Autocomplete/Autocomplete.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=m.default;exports.DialogAction=T.default;exports.DialogText=k.default;exports.Tooltip=C.default;exports.Select=h.default;exports.Option=b.default;exports.Menu=x.default;exports.MenuBlock=D.default;exports.Skeleton=y.default;exports.Switch=A.default;exports.BottomSheet=P.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;exports.Autocomplete=$.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"),i=require("./Flexbox/Flexbox.cjs"),n=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"),p=require("./Dialog/DialogTitle/DialogTitle.cjs"),h=require("./Dialog/DialogContent/DialogContent.cjs"),m=require("./Dialog/DialogAction/DialogAction.cjs"),T=require("./Dialog/DialogText/DialogText.cjs"),k=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"),A=require("./Switch/Switch.cjs"),P=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("./Highlight/Highlight.cjs"),H=require("./Card/Card.cjs"),j=require("./LineProgressIndicator/LineProgressIndicator.cjs"),z=require("./CircularProgressIndicator/CircularProgressIndicator.cjs"),J=require("./NumberKeypad/NumberKeypad.cjs"),Q=require("./NumberKeypad/NumberKeypadBlock/NumberKeypadBlock.cjs"),U=require("./FocusBoundary/FocusBoundary.cjs"),V=require("./Badge/Badge.cjs"),W=require("./Tab/Tab.cjs"),X=require("./Tab/TabBlock/TabBlock.cjs"),Y=require("./Slider/Slider.cjs"),Z=require("./Accordion/Accordion.cjs"),_=require("./RadioGroup/RadioGroup.cjs"),$=require("./Collapse/Collapse.cjs"),ee=require("./Autocomplete/Autocomplete.cjs");exports.Button=e.default;exports.Icon=t.default;exports.Label=o.default;exports.Typography=r.default;exports.Box=u.default;exports.Flexbox=i.default;exports.TextField=n.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=p.default;exports.DialogContent=h.default;exports.DialogAction=m.default;exports.DialogText=T.default;exports.Tooltip=k.default;exports.Select=C.default;exports.Option=b.default;exports.Menu=x.default;exports.MenuBlock=D.default;exports.Skeleton=y.default;exports.Switch=A.default;exports.BottomSheet=P.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.Highlight=O.default;exports.Card=H.default;exports.LineProgressIndicator=j.default;exports.CircularProgressIndicator=z.default;exports.NumberKeypad=J.default;exports.NumberKeypadBlock=Q.default;exports.FocusBoundary=U.default;exports.Badge=V.default;exports.Tab=W.default;exports.TabBlock=X.default;exports.Slider=Y.default;exports.Accordion=Z.default;exports.RadioGroup=_.default;exports.Collapse=$.default;exports.Autocomplete=ee.default;
package/index.d.ts CHANGED
@@ -52,6 +52,8 @@ export { default as FormControlText } from './FormControlText';
52
52
  export type { FormControlTextProps } from './FormControlText';
53
53
  export { default as ClickAwayListener } from './ClickAwayListener';
54
54
  export type { ClickAwayListenerProps } from './ClickAwayListener';
55
+ export { default as Highlight } from './Highlight';
56
+ export type { HighlightOffset, HighlightPlacement, HighlightProps } from './Highlight';
55
57
  export { default as Card } from './Card';
56
58
  export type { CardProps } from './Card';
57
59
  export { default as LineProgressIndicator } from './LineProgressIndicator';
package/index.es.js CHANGED
@@ -3,11 +3,11 @@ import { default as f } from "./Icon/Icon.es.js";
3
3
  import { default as d } from "./Label/Label.es.js";
4
4
  import { default as p } from "./Typography/Typography.es.js";
5
5
  import { default as x } from "./Box/Box.es.js";
6
- import { default as n } from "./Flexbox/Flexbox.es.js";
6
+ import { default as i } 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
- import { default as k } from "./IconButton/IconButton.es.js";
10
- import { default as T } from "./PageControl/PageControl.es.js";
9
+ import { default as S } from "./IconButton/IconButton.es.js";
10
+ import { default as C } 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";
@@ -16,94 +16,96 @@ import { default as v } from "./SegmentedButton/SegmentedButtonBlock/SegmentedBu
16
16
  import { default as E } from "./Backdrop/Backdrop.es.js";
17
17
  import { default as K } from "./Dialog/Dialog.es.js";
18
18
  import { default as N } from "./Dialog/DialogTitle/DialogTitle.es.js";
19
- import { default as O } from "./Dialog/DialogContent/DialogContent.es.js";
20
- import { default as q } from "./Dialog/DialogAction/DialogAction.es.js";
21
- import { default as H } from "./Dialog/DialogText/DialogText.es.js";
19
+ import { default as H } from "./Dialog/DialogContent/DialogContent.es.js";
20
+ import { default as j } from "./Dialog/DialogAction/DialogAction.es.js";
21
+ import { default as z } from "./Dialog/DialogText/DialogText.es.js";
22
22
  import { default as Q } from "./Tooltip/Tooltip.es.js";
23
23
  import { default as V } from "./Select/Select.es.js";
24
24
  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 eo } from "./Skeleton/Skeleton.es.js";
28
+ import { default as to } 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
32
  import { default as mo } from "./BottomSheet/BottomSheetContent/BottomSheetContent.es.js";
33
33
  import { default as so } from "./BottomSheet/BottomSheetAction/BottomSheetAction.es.js";
34
- import { default as io } from "./BottomSheet/BottomSheetText/BottomSheetText.es.js";
34
+ import { default as no } from "./BottomSheet/BottomSheetText/BottomSheetText.es.js";
35
35
  import { default as Bo } from "./Snackbar/Snackbar.es.js";
36
- import { default as So } from "./ChainPicker/ChainPicker.es.js";
37
- import { default as Co } from "./DatePicker/DatePicker.es.js";
38
- import { default as ho } from "./DatePicker/EventDot/EventDot.es.js";
36
+ import { default as ho } from "./ChainPicker/ChainPicker.es.js";
37
+ import { default as ko } from "./DatePicker/DatePicker.es.js";
38
+ import { default as To } 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";
42
- import { default as Lo } from "./Card/Card.es.js";
43
- import { default as wo } from "./LineProgressIndicator/LineProgressIndicator.es.js";
44
- import { default as Go } from "./CircularProgressIndicator/CircularProgressIndicator.es.js";
45
- import { default as Mo } from "./NumberKeypad/NumberKeypad.es.js";
46
- import { default as Ro } from "./NumberKeypad/NumberKeypadBlock/NumberKeypadBlock.es.js";
47
- import { default as jo } from "./FocusBoundary/FocusBoundary.es.js";
48
- import { default as zo } from "./Badge/Badge.es.js";
49
- import { default as Jo } from "./Tab/Tab.es.js";
50
- import { default as Uo } from "./Tab/TabBlock/TabBlock.es.js";
51
- import { default as Wo } from "./Slider/Slider.es.js";
52
- import { default as Yo } from "./Accordion/Accordion.es.js";
53
- import { default as _o } from "./RadioGroup/RadioGroup.es.js";
54
- import { default as oe } from "./Collapse/Collapse.es.js";
55
- import { default as te } from "./Autocomplete/Autocomplete.es.js";
42
+ import { default as Lo } from "./Highlight/Highlight.es.js";
43
+ import { default as wo } from "./Card/Card.es.js";
44
+ import { default as Go } from "./LineProgressIndicator/LineProgressIndicator.es.js";
45
+ import { default as Mo } from "./CircularProgressIndicator/CircularProgressIndicator.es.js";
46
+ import { default as Ro } from "./NumberKeypad/NumberKeypad.es.js";
47
+ import { default as Oo } from "./NumberKeypad/NumberKeypadBlock/NumberKeypadBlock.es.js";
48
+ import { default as qo } from "./FocusBoundary/FocusBoundary.es.js";
49
+ import { default as Jo } from "./Badge/Badge.es.js";
50
+ import { default as Uo } from "./Tab/Tab.es.js";
51
+ import { default as Wo } from "./Tab/TabBlock/TabBlock.es.js";
52
+ import { default as Yo } from "./Slider/Slider.es.js";
53
+ import { default as _o } from "./Accordion/Accordion.es.js";
54
+ import { default as ot } from "./RadioGroup/RadioGroup.es.js";
55
+ import { default as et } from "./Collapse/Collapse.es.js";
56
+ import { default as rt } from "./Autocomplete/Autocomplete.es.js";
56
57
  export {
57
- Yo as Accordion,
58
- te as Autocomplete,
58
+ _o as Accordion,
59
+ rt as Autocomplete,
59
60
  E as Backdrop,
60
- zo as Badge,
61
+ Jo as Badge,
61
62
  fo as BottomSheet,
62
63
  so as BottomSheetAction,
63
64
  mo as BottomSheetContent,
64
- io as BottomSheetText,
65
+ no as BottomSheetText,
65
66
  uo as BottomSheetTitle,
66
67
  x as Box,
67
68
  a as Button,
68
- Lo as Card,
69
- So as ChainPicker,
69
+ wo as Card,
70
+ ho as ChainPicker,
70
71
  b as Checkbox,
71
72
  P as Chip,
72
- Go as CircularProgressIndicator,
73
+ Mo as CircularProgressIndicator,
73
74
  Fo as ClickAwayListener,
74
- oe as Collapse,
75
- Co as DatePicker,
75
+ et as Collapse,
76
+ ko as DatePicker,
76
77
  K as Dialog,
77
- q as DialogAction,
78
- O as DialogContent,
79
- H as DialogText,
78
+ j as DialogAction,
79
+ H as DialogContent,
80
+ z as DialogText,
80
81
  N as DialogTitle,
81
- ho as EventDot,
82
+ To as EventDot,
82
83
  Do as EventDotGroup,
83
- n as Flexbox,
84
- jo as FocusBoundary,
84
+ i as Flexbox,
85
+ qo as FocusBoundary,
85
86
  Ao as FormControlText,
87
+ Lo as Highlight,
86
88
  f as Icon,
87
- k as IconButton,
89
+ S as IconButton,
88
90
  d as Label,
89
- wo as LineProgressIndicator,
91
+ Go as LineProgressIndicator,
90
92
  Z as Menu,
91
93
  $ as MenuBlock,
92
- Mo as NumberKeypad,
93
- Ro as NumberKeypadBlock,
94
+ Ro as NumberKeypad,
95
+ Oo as NumberKeypadBlock,
94
96
  X as Option,
95
- T as PageControl,
97
+ C as PageControl,
96
98
  y as Radio,
97
- _o as RadioGroup,
99
+ ot as RadioGroup,
98
100
  I as SegmentedButton,
99
101
  v as SegmentedButtonBlock,
100
102
  V as Select,
101
- eo as Skeleton,
102
- Wo as Slider,
103
+ to as Skeleton,
104
+ Yo as Slider,
103
105
  Bo as Snackbar,
104
106
  ao as Switch,
105
- Jo as Tab,
106
- Uo as TabBlock,
107
+ Uo as Tab,
108
+ Wo as TabBlock,
107
109
  g as TextArea,
108
110
  c as TextField,
109
111
  Q as Tooltip,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotss/ui",
3
- "version": "1.7.2",
3
+ "version": "1.9.0",
4
4
  "description": "React UI components for Dotss",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",