@jenesei-software/jenesei-kit-react 1.3.13 → 1.3.15

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 (106) hide show
  1. package/build/{area-sDVSuS3G.js → area-BDMDiVi1.js} +4 -3
  2. package/build/area-BDMDiVi1.js.map +1 -0
  3. package/build/area-DphBWq86.cjs +40 -0
  4. package/build/area-DphBWq86.cjs.map +1 -0
  5. package/build/area-skeleton.cjs.js +1 -1
  6. package/build/area-skeleton.es.js +1 -1
  7. package/build/build-info.txt +3 -3
  8. package/build/{component-DdJt3LEF.cjs → component-B9dFCQcm.cjs} +2 -2
  9. package/build/{component-DdJt3LEF.cjs.map → component-B9dFCQcm.cjs.map} +1 -1
  10. package/build/{component-GtWqnaqk.js → component-BFOHa1GY.js} +35 -17
  11. package/build/component-BFOHa1GY.js.map +1 -0
  12. package/build/{component-DnJo66DS.cjs → component-BLWcOf3A.cjs} +2 -2
  13. package/build/{component-DnJo66DS.cjs.map → component-BLWcOf3A.cjs.map} +1 -1
  14. package/build/component-BkYIZFlr.cjs +245 -0
  15. package/build/component-BkYIZFlr.cjs.map +1 -0
  16. package/build/{component-feWPgACX.js → component-CFKFLOAw.js} +2 -2
  17. package/build/{component-feWPgACX.js.map → component-CFKFLOAw.js.map} +1 -1
  18. package/build/{component-P-3bwi3_.js → component-CPzlyKwR.js} +3 -3
  19. package/build/{component-P-3bwi3_.js.map → component-CPzlyKwR.js.map} +1 -1
  20. package/build/{component-CN6att4f.js → component-CeuA5Ry0.js} +2 -2
  21. package/build/{component-CN6att4f.js.map → component-CeuA5Ry0.js.map} +1 -1
  22. package/build/{component-cRmWWDr_.cjs → component-DkEqMT7w.cjs} +2 -2
  23. package/build/{component-cRmWWDr_.cjs.map → component-DkEqMT7w.cjs.map} +1 -1
  24. package/build/component-button-group.cjs.js +1 -1
  25. package/build/component-button-group.es.js +1 -1
  26. package/build/component-button.cjs.js +1 -1
  27. package/build/component-button.es.js +1 -1
  28. package/build/component-checkbox-group.cjs.js +1 -1
  29. package/build/component-checkbox-group.es.js +1 -1
  30. package/build/component-checkbox.cjs.js +1 -1
  31. package/build/component-checkbox.es.js +1 -1
  32. package/build/component-date-picker.cjs.js +1 -1
  33. package/build/component-date-picker.es.js +1 -1
  34. package/build/component-image-button.cjs.js +1 -1
  35. package/build/component-image-button.es.js +1 -1
  36. package/build/component-image-select.cjs.js +1 -1
  37. package/build/component-image-select.es.js +1 -1
  38. package/build/component-image-slider.cjs.js +1 -1
  39. package/build/component-image-slider.es.js +1 -1
  40. package/build/component-image.cjs.js +1 -1
  41. package/build/component-image.es.js +1 -1
  42. package/build/component-map.cjs.js +1 -1
  43. package/build/component-map.es.js +1 -1
  44. package/build/component-pagination.cjs.js +1 -1
  45. package/build/component-pagination.es.js +1 -1
  46. package/build/component-select.cjs.js +1 -1
  47. package/build/component-select.es.js +1 -1
  48. package/build/component-tooltip.cjs.js +1 -1
  49. package/build/component-tooltip.es.js +1 -1
  50. package/build/component-typography.cjs.js +1 -1
  51. package/build/component-typography.es.js +1 -1
  52. package/build/{component.components-C-EEYFsd.js → component.components-B2-Gqe0K.js} +2 -2
  53. package/build/{component.components-C-EEYFsd.js.map → component.components-B2-Gqe0K.js.map} +1 -1
  54. package/build/{component.components-CC3IeZon.cjs → component.components-JtwTIPAB.cjs} +2 -2
  55. package/build/{component.components-CC3IeZon.cjs.map → component.components-JtwTIPAB.cjs.map} +1 -1
  56. package/build/{component.constants-34RZJIiQ.js → component.constants-CpnBclql.js} +2 -2
  57. package/build/{component.constants-34RZJIiQ.js.map → component.constants-CpnBclql.js.map} +1 -1
  58. package/build/{component.constants-COLayaiY.js → component.constants-Cwl6tQFq.js} +4 -4
  59. package/build/{component.constants-COLayaiY.js.map → component.constants-Cwl6tQFq.js.map} +1 -1
  60. package/build/{component.constants-eYn_2hvO.cjs → component.constants-D15Kt1bW.cjs} +2 -2
  61. package/build/{component.constants-eYn_2hvO.cjs.map → component.constants-D15Kt1bW.cjs.map} +1 -1
  62. package/build/{component.constants-D6AJ1xmO.cjs → component.constants-DxcsPL8D.cjs} +2 -2
  63. package/build/{component.constants-D6AJ1xmO.cjs.map → component.constants-DxcsPL8D.cjs.map} +1 -1
  64. package/build/{component.styles-DhBoJzIN.cjs → component.styles-B4ZjkzIF.cjs} +2 -2
  65. package/build/{component.styles-DhBoJzIN.cjs.map → component.styles-B4ZjkzIF.cjs.map} +1 -1
  66. package/build/{component.styles-Ba1VTyjn.js → component.styles-B9jJFDUk.js} +5 -5
  67. package/build/{component.styles-Ba1VTyjn.js.map → component.styles-B9jJFDUk.js.map} +1 -1
  68. package/build/{component.styles-BYVYSgCZ.js → component.styles-C4Bz4OTl.js} +2 -2
  69. package/build/{component.styles-BYVYSgCZ.js.map → component.styles-C4Bz4OTl.js.map} +1 -1
  70. package/build/{component.styles-PNgt36ZD.cjs → component.styles-CEDSDKXy.cjs} +2 -2
  71. package/build/{component.styles-PNgt36ZD.cjs.map → component.styles-CEDSDKXy.cjs.map} +1 -1
  72. package/build/{component.styles-DbWj2stq.cjs → component.styles-COwP0J6t.cjs} +2 -2
  73. package/build/{component.styles-DbWj2stq.cjs.map → component.styles-COwP0J6t.cjs.map} +1 -1
  74. package/build/{component.styles-CAN6t4un.cjs → component.styles-CUCjXD3k.cjs} +2 -2
  75. package/build/{component.styles-CAN6t4un.cjs.map → component.styles-CUCjXD3k.cjs.map} +1 -1
  76. package/build/{component.styles-DTnknwt_.js → component.styles-CxPmtiIy.js} +2 -2
  77. package/build/{component.styles-DTnknwt_.js.map → component.styles-CxPmtiIy.js.map} +1 -1
  78. package/build/{component.styles-mcm1LgEr.js → component.styles-Czdj4SAF.js} +3 -3
  79. package/build/{component.styles-mcm1LgEr.js.map → component.styles-Czdj4SAF.js.map} +1 -1
  80. package/build/{component.styles-Bb7_KygZ.cjs → component.styles-DhXp_cmE.cjs} +2 -2
  81. package/build/{component.styles-Bb7_KygZ.cjs.map → component.styles-DhXp_cmE.cjs.map} +1 -1
  82. package/build/{component.styles-DWS6xT-y.js → component.styles-Dz33wmri.js} +2 -2
  83. package/build/{component.styles-DWS6xT-y.js.map → component.styles-Dz33wmri.js.map} +1 -1
  84. package/build/{component.types-BhmQrqBu.js → component.types-B2YOqKzt.js} +4 -4
  85. package/build/{component.types-BhmQrqBu.js.map → component.types-B2YOqKzt.js.map} +1 -1
  86. package/build/{component.types-CfR3RBsV.cjs → component.types-DaiIANRt.cjs} +2 -2
  87. package/build/{component.types-CfR3RBsV.cjs.map → component.types-DaiIANRt.cjs.map} +1 -1
  88. package/build/context-sonner.cjs.js +1 -1
  89. package/build/context-sonner.es.js +1 -1
  90. package/build/{context.constants-DOMoMUoD.js → context.constants-C4xdihsb.js} +2 -2
  91. package/build/{context.constants-DOMoMUoD.js.map → context.constants-C4xdihsb.js.map} +1 -1
  92. package/build/{context.constants-cm50ZUiS.cjs → context.constants-D0P7bVk9.cjs} +2 -2
  93. package/build/{context.constants-cm50ZUiS.cjs.map → context.constants-D0P7bVk9.cjs.map} +1 -1
  94. package/build/index.cjs.js +1 -1
  95. package/build/index.es.js +15 -15
  96. package/build/{use-_V1SKE0-.js → use-CuHzkWqv.js} +3 -3
  97. package/build/{use-_V1SKE0-.js.map → use-CuHzkWqv.js.map} +1 -1
  98. package/build/{use-ClugPshj.cjs → use-DWNgOa9w.cjs} +2 -2
  99. package/build/{use-ClugPshj.cjs.map → use-DWNgOa9w.cjs.map} +1 -1
  100. package/package.json +1 -1
  101. package/build/area-DRsIULcw.cjs +0 -38
  102. package/build/area-DRsIULcw.cjs.map +0 -1
  103. package/build/area-sDVSuS3G.js.map +0 -1
  104. package/build/component-BVnHSTJd.cjs +0 -245
  105. package/build/component-BVnHSTJd.cjs.map +0 -1
  106. package/build/component-GtWqnaqk.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
2
  import { useState, useEffect } from "react";
3
3
  import { b as Stack } from "./component-mzzOCXSx.js";
4
- import { b as addTransition } from "./style-RL73t3JD.js";
5
4
  import styled, { keyframes, css } from "styled-components";
6
5
  const shimmer = keyframes`
7
6
  0% {
@@ -38,7 +37,9 @@ const StyledSkeleton = styled(Stack)`
38
37
  `}
39
38
  & > * {
40
39
  opacity: ${(props) => !props.$visible ? 0 : 1};
41
- ${addTransition};
40
+ transition:
41
+ outline 0s,
42
+ opacity ${(props) => props.theme.transition.default};
42
43
  }
43
44
  `;
44
45
  const Skeleton = (props) => {
@@ -64,4 +65,4 @@ export {
64
65
  StyledSkeleton as S,
65
66
  Skeleton as a
66
67
  };
67
- //# sourceMappingURL=area-sDVSuS3G.js.map
68
+ //# sourceMappingURL=area-BDMDiVi1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-BDMDiVi1.js","sources":["../src/areas/skeleton/area.styles.tsx","../src/areas/skeleton/area.tsx"],"sourcesContent":["import { Stack } from '@local/components/stack';\n\nimport styled, { css, keyframes } from 'styled-components';\n\nimport { StyledSkeletonProps } from '.';\n\n// const shimmer = keyframes`\n// 0% {\n// background-position: -468px 0;\n// }\n// 100% {\n// background-position: 468px 0;\n// }\n// `;\n\nconst shimmer = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`;\n\nexport const StyledSkeleton = styled(Stack)<StyledSkeletonProps>`\n background: transparent;\n\n ${(props) => css`\n ${\n !props.$visible &&\n css`\n ${\n props.$type === 'secondary'\n ? css`\n background: linear-gradient(\n 90deg,\n #f6f7f8 25%,\n #edeef1 50%,\n #f6f7f8 75%\n );\n `\n : css`\n background: linear-gradient(\n 90deg,\n #edeef1 25%,\n #f6f7f8 50%,\n #edeef1 75%\n ); \n `\n };\n background-size: 200% 100%;\n animation: ${shimmer} 1.5s infinite linear;\n\n `\n };\n `}\n & > * {\n opacity: ${(props) => (!props.$visible ? 0 : 1)};\n transition:\n outline 0s,\n opacity ${(props) => props.theme.transition.default};\n }\n`;\n","import { FC, useEffect, useState } from 'react';\n\nimport { SkeletonProps, StyledSkeleton } from '.';\n\nexport const Skeleton: FC<SkeletonProps> = (props) => {\n const [visible, setVisible] = useState(props.defaultVisible ?? false);\n\n useEffect(() => {\n if ('time' in props) {\n const timer = setTimeout(() => {\n setVisible(true);\n }, props.time);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [props]);\n\n useEffect(() => {\n if ('visible' in props) {\n setVisible(!props.visible);\n }\n }, [props]);\n\n return (\n <StyledSkeleton {...props} $visible={visible} $type={props.type}>\n {props.children}\n </StyledSkeleton>\n );\n};\n"],"names":["jsx"],"mappings":";;;;AAeA,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAST,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA;AAAA,IAGtC,CAAC,UAAU;AAAA,MAET,CAAC,MAAM,YACP;AAAA,QAEE,MAAM,UAAU,cACZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQN;AAAA;AAAA,mBAEa,OAAO;AAAA;AAAA,KAGtB;AAAA,GACD;AAAA;AAAA,eAEY,CAAC,UAAW,CAAC,MAAM,WAAW,IAAI,CAAE;AAAA;AAAA;AAAA,gBAGnC,CAAC,UAAU,MAAM,MAAM,WAAW,OAAO;AAAA;AAAA;ACxDlD,MAAM,WAA8B,CAAC,UAAU;AACpD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM,kBAAkB,KAAK;AAEpE,YAAU,MAAM;AACd,QAAI,UAAU,OAAO;AACnB,YAAM,QAAQ,WAAW,MAAM;AAC7B,mBAAW,IAAI;AAAA,MAAA,GACd,MAAM,IAAI;AAEb,aAAO,MAAM;AACX,qBAAa,KAAK;AAAA,MAAA;AAAA,IACpB;AAAA,EACF,GACC,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,QAAI,aAAa,OAAO;AACtB,iBAAW,CAAC,MAAM,OAAO;AAAA,IAAA;AAAA,EAC3B,GACC,CAAC,KAAK,CAAC;AAEV,SACEA,kCAAAA,IAAC,gBAAA,EAAgB,GAAG,OAAO,UAAU,SAAS,OAAO,MAAM,MACxD,UAAA,MAAM,SAAA,CACT;AAEJ;"}
@@ -0,0 +1,40 @@
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("react"),i=require("./component-GKvpOWlO.cjs"),s=require("styled-components"),n=s.keyframes`
2
+ 0% {
3
+ background-position: 100%;
4
+ }
5
+ 100% {
6
+ background-position: -100%;
7
+ }
8
+ `,r=s(i.Stack)`
9
+ background: transparent;
10
+
11
+ ${e=>s.css`
12
+ ${!e.$visible&&s.css`
13
+ ${"secondary"===e.$type?s.css`
14
+ background: linear-gradient(
15
+ 90deg,
16
+ #f6f7f8 25%,
17
+ #edeef1 50%,
18
+ #f6f7f8 75%
19
+ );
20
+ `:s.css`
21
+ background: linear-gradient(
22
+ 90deg,
23
+ #edeef1 25%,
24
+ #f6f7f8 50%,
25
+ #edeef1 75%
26
+ );
27
+ `};
28
+ background-size: 200% 100%;
29
+ animation: ${n} 1.5s infinite linear;
30
+
31
+ `};
32
+ `}
33
+ & > * {
34
+ opacity: ${e=>e.$visible?1:0};
35
+ transition:
36
+ outline 0s,
37
+ opacity ${e=>e.theme.transition.default};
38
+ }
39
+ `;exports.Skeleton=i=>{const[s,n]=t.useState(i.defaultVisible??!1);return t.useEffect(()=>{if("time"in i){const e=setTimeout(()=>{n(!0)},i.time);return()=>{clearTimeout(e)}}},[i]),t.useEffect(()=>{"visible"in i&&n(!i.visible)},[i]),e.jsxRuntimeExports.jsx(r,{...i,$visible:s,$type:i.type,children:i.children})},exports.StyledSkeleton=r;
40
+ //# sourceMappingURL=area-DphBWq86.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-DphBWq86.cjs","sources":["../src/areas/skeleton/area.styles.tsx","../src/areas/skeleton/area.tsx"],"sourcesContent":["import { Stack } from '@local/components/stack';\n\nimport styled, { css, keyframes } from 'styled-components';\n\nimport { StyledSkeletonProps } from '.';\n\n// const shimmer = keyframes`\n// 0% {\n// background-position: -468px 0;\n// }\n// 100% {\n// background-position: 468px 0;\n// }\n// `;\n\nconst shimmer = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`;\n\nexport const StyledSkeleton = styled(Stack)<StyledSkeletonProps>`\n background: transparent;\n\n ${(props) => css`\n ${\n !props.$visible &&\n css`\n ${\n props.$type === 'secondary'\n ? css`\n background: linear-gradient(\n 90deg,\n #f6f7f8 25%,\n #edeef1 50%,\n #f6f7f8 75%\n );\n `\n : css`\n background: linear-gradient(\n 90deg,\n #edeef1 25%,\n #f6f7f8 50%,\n #edeef1 75%\n ); \n `\n };\n background-size: 200% 100%;\n animation: ${shimmer} 1.5s infinite linear;\n\n `\n };\n `}\n & > * {\n opacity: ${(props) => (!props.$visible ? 0 : 1)};\n transition:\n outline 0s,\n opacity ${(props) => props.theme.transition.default};\n }\n`;\n","import { FC, useEffect, useState } from 'react';\n\nimport { SkeletonProps, StyledSkeleton } from '.';\n\nexport const Skeleton: FC<SkeletonProps> = (props) => {\n const [visible, setVisible] = useState(props.defaultVisible ?? false);\n\n useEffect(() => {\n if ('time' in props) {\n const timer = setTimeout(() => {\n setVisible(true);\n }, props.time);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [props]);\n\n useEffect(() => {\n if ('visible' in props) {\n setVisible(!props.visible);\n }\n }, [props]);\n\n return (\n <StyledSkeleton {...props} $visible={visible} $type={props.type}>\n {props.children}\n </StyledSkeleton>\n );\n};\n"],"names":["shimmer","keyframes","StyledSkeleton","styled","Stack","props","css","$visible","$type","theme","transition","default","visible","setVisible","useState","defaultVisible","useEffect","timer","setTimeout","time","clearTimeout","jsx","type","children"],"mappings":"mJAeMA,EAAUC,EAAAA,SAAAA;;;;;;;EASHC,EAAiBC,EAAOC,QAAK;;;IAGrCC,GAAUC,EAAAA,GAAAA;OAERD,EAAME,UACPD,EAAAA,GAAAA;QAEkB,cAAhBD,EAAMG,MACFF,EAAAA,GAAAA;;;;;;;YAQAA,EAAAA,GAAAA;;;;;;;;;mBAUON;;;;;eAMHK,GAAYA,EAAME,SAAe,EAAJ;;;gBAG5BF,GAAUA,EAAMI,MAAMC,WAAWC;;mBCxDNN,IAC1C,MAAOO,EAASC,GAAcC,EAAAA,SAAST,EAAMU,iBAAkB,GAoB/D,OAlBAC,EAAAA,UAAU,KACR,GAAI,SAAUX,EAAO,CACnB,MAAMY,EAAQC,WAAW,KACvBL,GAAW,IACVR,EAAMc,MAET,MAAO,KACLC,aAAaH,GACf,GAED,CAACZ,IAEJW,EAAAA,UAAU,KACJ,YAAaX,GACfQ,GAAYR,EAAMO,UAEnB,CAACP,IAGFgB,EAAAA,kBAAAA,IAACnB,EAAA,IAAmBG,EAAOE,SAAUK,EAASJ,MAAOH,EAAMiB,KACxDC,SAAAlB,EAAMkB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./area-DRsIULcw.cjs");exports.Skeleton=e.Skeleton,exports.StyledSkeleton=e.StyledSkeleton;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./area-DphBWq86.cjs");exports.Skeleton=e.Skeleton,exports.StyledSkeleton=e.StyledSkeleton;
2
2
  //# sourceMappingURL=area-skeleton.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { a, S } from "./area-sDVSuS3G.js";
1
+ import { a, S } from "./area-BDMDiVi1.js";
2
2
  export {
3
3
  a as Skeleton,
4
4
  S as StyledSkeleton
@@ -1,3 +1,3 @@
1
- version: 1.3.13
2
- commit: 91d7c64
3
- date: 2025-08-29T02:45:21Z
1
+ version: 1.3.15
2
+ commit: 4370e39
3
+ date: 2025-08-29T09:34:37Z
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("react"),n=require("./consts.cjs.js"),s=require("./use-ClugPshj.cjs"),r=require("./component-DnJo66DS.cjs");exports.ImageButton=l=>{const o=t.useRef(null),u=t.useCallback(()=>{var e;null==(e=o.current)||e.click()},[]),{handleAddFiles:i}=s.useImageCrop({onSave:l.onSave,locale:l.locale,dialog:l.dialog,imageSettings:l.imageSettings,refInput:o});return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(r.Button,{...l.button,onClick:e=>{var t,n;null==(n=(t=l.button).onClick)||n.call(t,e),u()},children:l.button.children||l.locale.buttonAdd}),e.jsxRuntimeExports.jsx("input",{ref:o,type:"file",accept:n.ImageSupportedFormatsForInput,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&i(e.target.files)}})]})};
2
- //# sourceMappingURL=component-DdJt3LEF.cjs.map
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("react"),n=require("./consts.cjs.js"),s=require("./use-DWNgOa9w.cjs"),r=require("./component-BLWcOf3A.cjs");exports.ImageButton=l=>{const o=t.useRef(null),u=t.useCallback(()=>{var e;null==(e=o.current)||e.click()},[]),{handleAddFiles:i}=s.useImageCrop({onSave:l.onSave,locale:l.locale,dialog:l.dialog,imageSettings:l.imageSettings,refInput:o});return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(r.Button,{...l.button,onClick:e=>{var t,n;null==(n=(t=l.button).onClick)||n.call(t,e),u()},children:l.button.children||l.locale.buttonAdd}),e.jsxRuntimeExports.jsx("input",{ref:o,type:"file",accept:n.ImageSupportedFormatsForInput,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&i(e.target.files)}})]})};
2
+ //# sourceMappingURL=component-B9dFCQcm.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-DdJt3LEF.cjs","sources":["../src/components/image-button/component.tsx"],"sourcesContent":["import { FC, useCallback, useRef } from 'react';\n\nimport { ImageSupportedFormatsForInput } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\n\nimport { ImageButtonProps } from '.';\nimport { Button } from '../button';\n\nexport const ImageButton: FC<ImageButtonProps> = (props) => {\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const handleOpenFileDialog = useCallback(() => {\n refInput.current?.click();\n }, []);\n\n const { handleAddFiles } = useImageCrop({\n onSave: props.onSave,\n locale: props.locale,\n dialog: props.dialog,\n imageSettings: props.imageSettings,\n refInput: refInput,\n });\n\n return (\n <>\n <Button\n {...props.button}\n onClick={(e) => {\n props.button.onClick?.(e);\n handleOpenFileDialog();\n }}\n >\n {props.button.children || props.locale.buttonAdd}\n </Button>\n <input\n ref={refInput}\n type='file'\n accept={ImageSupportedFormatsForInput}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFiles(e.target.files);\n }}\n />\n </>\n );\n};\n"],"names":["props","refInput","useRef","handleOpenFileDialog","useCallback","_a","current","click","handleAddFiles","useImageCrop","onSave","locale","dialog","imageSettings","jsxs","Fragment","children","jsx","Button","button","onClick","e","_b","call","buttonAdd","ref","type","accept","ImageSupportedFormatsForInput","multiple","style","display","onChange","target","files"],"mappings":"qMAQkDA,IAChD,MAAMC,EAAWC,EAAAA,OAAgC,MAE3CC,EAAuBC,EAAAA,YAAY,WACvC,OAAAC,EAAAJ,EAASK,UAATD,EAAkBE,SACjB,KAEGC,eAAEA,GAAmBC,eAAa,CACtCC,OAAQV,EAAMU,OACdC,OAAQX,EAAMW,OACdC,OAAQZ,EAAMY,OACdC,cAAeb,EAAMa,cACrBZ,aAGF,SACEa,kBAAAA,KAAAC,6BAAA,CACEC,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,OAAA,IACKlB,EAAMmB,OACVC,QAAUC,YACR,OAAAC,GAAAjB,EAAAL,EAAMmB,QAAOC,UAAbE,EAAAC,KAAAlB,EAAuBgB,GACvBlB,KAGDa,SAAAhB,EAAMmB,OAAOH,UAAYhB,EAAMW,OAAOa,cAEzCP,kBAAAA,IAAC,QAAA,CACCQ,IAAKxB,EACLyB,KAAK,OACLC,OAAQC,EAAAA,8BACRC,UAAQ,EACRC,MAAO,CAAEC,QAAS,QAClBC,SAAWX,IACLA,EAAEY,OAAOC,OAAO1B,EAAea,EAAEY,OAAOC"}
1
+ {"version":3,"file":"component-B9dFCQcm.cjs","sources":["../src/components/image-button/component.tsx"],"sourcesContent":["import { FC, useCallback, useRef } from 'react';\n\nimport { ImageSupportedFormatsForInput } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\n\nimport { ImageButtonProps } from '.';\nimport { Button } from '../button';\n\nexport const ImageButton: FC<ImageButtonProps> = (props) => {\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const handleOpenFileDialog = useCallback(() => {\n refInput.current?.click();\n }, []);\n\n const { handleAddFiles } = useImageCrop({\n onSave: props.onSave,\n locale: props.locale,\n dialog: props.dialog,\n imageSettings: props.imageSettings,\n refInput: refInput,\n });\n\n return (\n <>\n <Button\n {...props.button}\n onClick={(e) => {\n props.button.onClick?.(e);\n handleOpenFileDialog();\n }}\n >\n {props.button.children || props.locale.buttonAdd}\n </Button>\n <input\n ref={refInput}\n type='file'\n accept={ImageSupportedFormatsForInput}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFiles(e.target.files);\n }}\n />\n </>\n );\n};\n"],"names":["props","refInput","useRef","handleOpenFileDialog","useCallback","_a","current","click","handleAddFiles","useImageCrop","onSave","locale","dialog","imageSettings","jsxs","Fragment","children","jsx","Button","button","onClick","e","_b","call","buttonAdd","ref","type","accept","ImageSupportedFormatsForInput","multiple","style","display","onChange","target","files"],"mappings":"qMAQkDA,IAChD,MAAMC,EAAWC,EAAAA,OAAgC,MAE3CC,EAAuBC,EAAAA,YAAY,WACvC,OAAAC,EAAAJ,EAASK,UAATD,EAAkBE,SACjB,KAEGC,eAAEA,GAAmBC,eAAa,CACtCC,OAAQV,EAAMU,OACdC,OAAQX,EAAMW,OACdC,OAAQZ,EAAMY,OACdC,cAAeb,EAAMa,cACrBZ,aAGF,SACEa,kBAAAA,KAAAC,6BAAA,CACEC,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,OAAA,IACKlB,EAAMmB,OACVC,QAAUC,YACR,OAAAC,GAAAjB,EAAAL,EAAMmB,QAAOC,UAAbE,EAAAC,KAAAlB,EAAuBgB,GACvBlB,KAGDa,SAAAhB,EAAMmB,OAAOH,UAAYhB,EAAMW,OAAOa,cAEzCP,kBAAAA,IAAC,QAAA,CACCQ,IAAKxB,EACLyB,KAAK,OACLC,OAAQC,EAAAA,8BACRC,UAAQ,EACRC,MAAO,CAAEC,QAAS,QAClBC,SAAWX,IACLA,EAAEY,OAAOC,OAAO1B,EAAea,EAAEY,OAAOC"}
@@ -1,9 +1,10 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
2
  import { u as useScreenWidth } from "./context.hooks-BmwyZ1p3.js";
3
+ import { useMemo, useState, useRef, useEffect, useLayoutEffect, useCallback, memo } from "react";
4
+ import { u as useDeepCompareMemoize } from "./use-DT0XgvJT.js";
3
5
  import { createLink } from "@tanstack/react-router";
4
- import { useState, useRef, useMemo, useEffect, useLayoutEffect, useCallback, memo } from "react";
5
- import styled, { keyframes, css, useTheme } from "styled-components";
6
6
  import { J as JeneseiPalette, K as KEY_SIZE_DATA } from "./theme.global-BgERDJ4e.js";
7
+ import styled, { keyframes, css, useTheme } from "styled-components";
7
8
  import { a as useFloating, b as autoUpdate, o as offset, f as flip, s as shift } from "./floating-ui.react-Byi6bLb1.js";
8
9
  import { AnimatePresence, motion } from "framer-motion";
9
10
  import ReactDOM__default from "react-dom";
@@ -231,6 +232,31 @@ const Title = styled.span`
231
232
  ${TypographyCSS}
232
233
  ${addOutline}
233
234
  `;
235
+ function useOverflowing(props) {
236
+ const isCheckSize = useMemo(() => (props == null ? void 0 : props.isCheckSize) ?? true, [props == null ? void 0 : props.isCheckSize]);
237
+ const isParentMode = useMemo(() => (props == null ? void 0 : props.mode) === "parent", [props == null ? void 0 : props.mode]);
238
+ const [isOverflowing, setIsOverflowing] = useState(
239
+ (props == null ? void 0 : props.isOverflowing) !== void 0 ? props == null ? void 0 : props.isOverflowing : false
240
+ );
241
+ const ref = useRef(null);
242
+ const dependencies = useDeepCompareMemoize(props == null ? void 0 : props.dependencies);
243
+ useEffect(() => {
244
+ if (!isCheckSize) return;
245
+ const checkOverflow = () => {
246
+ const el = ref.current;
247
+ if (!el) return;
248
+ const scrollWidth = el.scrollWidth;
249
+ const scrollHeight = el.scrollHeight;
250
+ const clientWidth = isParentMode && el.parentElement ? el.parentElement.clientWidth : el.clientWidth;
251
+ const clientHeight = isParentMode && el.parentElement ? el.parentElement.clientHeight : el.clientHeight;
252
+ setIsOverflowing(scrollWidth > clientWidth || scrollHeight > clientHeight);
253
+ };
254
+ checkOverflow();
255
+ window.addEventListener("resize", checkOverflow);
256
+ return () => window.removeEventListener("resize", checkOverflow);
257
+ }, [dependencies, isCheckSize, isParentMode]);
258
+ return { isDisabled: !isOverflowing, ref, isOverflowing };
259
+ }
234
260
  const Popover = (props) => {
235
261
  var _a, _b, _c, _d;
236
262
  const theme = useTheme();
@@ -556,7 +582,7 @@ const TooltipBox = styled(Popover)`
556
582
  ${addTooltipBoxSize};
557
583
  `;
558
584
  const Tooltip = memo((props) => {
559
- if (props.isDisabled) return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: props.children });
585
+ if (props.isDisabled) return /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContainer, { sx: props.sx, children: props.children });
560
586
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { ...props });
561
587
  });
562
588
  const TooltipContent = (props) => {
@@ -673,19 +699,11 @@ const TypographySizeIsAnchor = (props) => {
673
699
  };
674
700
  const TypographyLink = createLink(TypographySizeIsAnchor);
675
701
  const TypographyTooltip = memo((props) => {
676
- const [isOverflowing, setIsOverflowing] = useState(false);
677
- const contentRef = useRef(null);
678
- useEffect(() => {
679
- const checkOverflow = () => {
680
- if (contentRef.current) {
681
- setIsOverflowing(contentRef.current.scrollWidth > contentRef.current.clientWidth);
682
- }
683
- };
684
- checkOverflow();
685
- window.addEventListener("resize", checkOverflow);
686
- return () => window.removeEventListener("resize", checkOverflow);
687
- }, [props.children]);
688
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { isDisabled: !isOverflowing, content: props.children, ...props.tooltip, children: /* @__PURE__ */ jsxRuntimeExports.jsx(TypographyWithRef, { ref: contentRef, ...props.typography, style: { position: "relative" }, children: props.children }) });
702
+ const { isDisabled, ref } = useOverflowing({
703
+ isCheckSize: props.tooltip.isDisabled !== void 0 ? !props.tooltip.isDisabled : true,
704
+ dependencies: [props.children]
705
+ });
706
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { isDisabled, content: props.children, ...props.tooltip, children: /* @__PURE__ */ jsxRuntimeExports.jsx(TypographyWithRef, { ref, ...props.typography, style: { position: "relative" }, children: props.children }) });
689
707
  });
690
708
  TypographyTooltip.displayName = "TypographyTooltip";
691
709
  TypographyWithRef.displayName = "TypographyWithRef";
@@ -707,4 +725,4 @@ export {
707
725
  TypographyTooltip as k,
708
726
  usePopover as u
709
727
  };
710
- //# sourceMappingURL=component-GtWqnaqk.js.map
728
+ //# sourceMappingURL=component-BFOHa1GY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-BFOHa1GY.js","sources":["../src/components/typography/component.styles.ts","../src/hooks/use-overflowing/use.ts","../src/components/popover/component.tsx","../src/components/popover/component.styles.ts","../src/components/popover/component.constants.tsx","../src/components/tooltip/component.styles.ts","../src/components/tooltip/component.tsx","../src/components/tooltip/component.constants.ts","../src/components/typography/component.tsx"],"sourcesContent":["import { addOutline } from '@local/styles/add';\nimport { addSX as addSXStandard } from '@local/styles/sx';\nimport { JeneseiPalette } from '@local/theme/theme';\n\nimport styled, { css, keyframes } from 'styled-components';\n\nimport { addSXTypographyStyleProps, TypographyAllProps, TypographyCSSProps } from '.';\n\nconst shadowPulse = keyframes`\n 0% {\n text-shadow: 0 0 0 rgba(0, 0, 0, 0);\n }\n 50% {\n text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.5);\n }\n 100% {\n text-shadow: 0 0 0 rgba(0, 0, 0, 0);\n }\n`;\n\nfunction toStyledCSS(value: TypographyAllProps) {\n return css`\n ${\n value.shadow &&\n value.shadow === 'shadowPulse' &&\n css`\n animation: ${shadowPulse} 2s infinite;\n `\n };\n ${\n value.letterSpacing &&\n css`\n letter-spacing: ${value.letterSpacing};\n `\n };\n ${\n value.flex &&\n css`\n flex: ${value.flex};\n `\n };\n ${\n value.cursor &&\n css`\n cursor: ${value.cursor};\n `\n };\n ${\n value.overflow &&\n css`\n overflow: ${value.overflow};\n `\n };\n ${\n value.line !== undefined\n ? value.line === 1\n ? css`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: -webkit-fill-available;\n max-width: fit-content;\n `\n : css`\n word-break: break-word;\n white-space: normal;\n text-overflow: ellipsis;\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: ${value.line};\n width: fit-content;\n overflow-wrap: anywhere;\n `\n : css``\n };\n ${\n value.family &&\n css`\n font-family: ${value.family};\n `\n };\n ${\n value.weight &&\n css`\n font-weight: ${value.weight};\n `\n };\n ${\n value.height &&\n css`\n line-height: ${value.height}px;\n `\n };\n ${\n value.color &&\n css`\n color: ${JeneseiPalette[value.color]};\n `\n };\n ${\n value.align &&\n css`\n text-align: ${value.align};\n `\n };\n ${\n value.wrap &&\n css`\n text-wrap: ${value.wrap};\n `\n };\n ${\n value.decoration &&\n css`\n text-decoration: ${value.decoration};\n `\n };\n ${\n value.transform &&\n css`\n text-transform: ${value.transform};\n `\n };\n ${\n value.isHoverUnderlining &&\n css`\n &:hover {\n text-decoration: underline;\n }\n `\n };\n ${\n value.isNoUserSelect &&\n css`\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n `\n };\n ${\n 'size' in value &&\n value.size &&\n css`\n font-size: ${value.size}px;\n `\n };\n ${\n 'variant' in value && value.variant\n ? value.variant === 'h1'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h2'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h3'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h4'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h5'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h6'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h7'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h8'\n ? css`\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h9'\n ? css`\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : null\n : null\n };\n `;\n}\n\nexport const addSXTypography = css<addSXTypographyStyleProps>`\n ${(props) => {\n const rawSX = props.$sxTypography;\n if (!rawSX) return null;\n return toStyledCSS(rawSX.default);\n }}\n\n ${(props) => {\n const rawSX = props.$sxTypography;\n if (!rawSX) return null;\n\n return Object.entries(rawSX)\n .filter(([key]) => key !== 'default')\n .map(([deviceKey, value]) => {\n const screenWidth = props.theme.screens[deviceKey as keyof typeof props.theme.screens]?.width;\n if (!screenWidth) return null;\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledCSS(value)}\n }\n `;\n });\n }}\n`;\n\nconst TypographyCSS = css<TypographyCSSProps>`\n font-style: normal;\n position: relative;\n overflow: visible;\n text-overflow: ellipsis;\n overflow-wrap: anywhere;\n line-height: ${(props) => props.theme.font.lineHeight};\n ${addSXTypography};\n ${addSXStandard}\n`;\n\nexport const Title = styled.span<TypographyCSSProps>`\n ${TypographyCSS}\n ${addOutline}\n`;\n","\n\nimport { RefObject, useEffect, useMemo, useRef, useState } from 'react';\n\n\nimport { useDeepCompareMemoize } from '../use-deep-compare-memoize';\nimport { useTooltipProps } from '.';\n\n/**\n * Хук для отслеживания переполнения содержимого в элементе (или его родителе).\n * Возвращает ref для привязки к DOM-элементу, флаг переполнения и флаг isDisabled.\n * @param props - опциональные параметры для управления поведением проверки переполнения\n */\nexport function useOverflowing<T extends HTMLElement>(\n props?: useTooltipProps,\n): {\n isDisabled: boolean; // true, если нет переполнения\n isOverflowing: boolean; // true, если содержимое выходит за пределы контейнера\n ref: RefObject<HTMLElement | null>; // ref для отслеживания DOM-элемента\n} {\n // Нужно ли проверять размеры (по умолчанию true)\n const isCheckSize = useMemo(() => props?.isCheckSize ?? true, [props?.isCheckSize]);\n // Проверять ли переполнение относительно родителя (mode === 'parent')\n const isParentMode = useMemo(() => props?.mode === 'parent', [props?.mode]);\n\n // Состояние переполнения (может быть принудительно задано через props)\n const [isOverflowing, setIsOverflowing] = useState(\n props?.isOverflowing !== undefined ? props?.isOverflowing : false\n );\n // ref для отслеживания элемента\n const ref = useRef<T | null>(null);\n // Мемоизированные зависимости для эффекта (глубокое сравнение)\n const dependencies = useDeepCompareMemoize(props?.dependencies);\n\n useEffect(() => {\n // Если не нужно проверять размеры — выходим\n if (!isCheckSize) return;\n\n // Функция проверки переполнения\n const checkOverflow = () => {\n const el = ref.current;\n if (!el) return;\n\n // Получаем размеры содержимого и контейнера\n const scrollWidth = el.scrollWidth;\n const scrollHeight = el.scrollHeight;\n\n // Если parentMode — сравниваем с родителем, иначе с самим элементом\n const clientWidth = isParentMode && el.parentElement ? el.parentElement.clientWidth : el.clientWidth;\n const clientHeight = isParentMode && el.parentElement ? el.parentElement.clientHeight : el.clientHeight;\n\n // Считаем переполнение по ширине или высоте\n setIsOverflowing(scrollWidth > clientWidth || scrollHeight > clientHeight);\n };\n\n // Проверяем при монтировании и при изменении зависимостей\n checkOverflow();\n // Проверяем при изменении размера окна\n window.addEventListener('resize', checkOverflow);\n // Очищаем обработчик при размонтировании\n return () => window.removeEventListener('resize', checkOverflow);\n }, [dependencies, isCheckSize, isParentMode]);\n\n // isDisabled: true, если нет переполнения (можно использовать для отключения тултипа)\n return { isDisabled: !isOverflowing, ref: ref, isOverflowing };\n}\n","import { KEY_SIZE_DATA } from '@local/theme';\n\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';\nimport { AnimatePresence } from 'framer-motion';\nimport { FC, Ref, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { useTheme } from 'styled-components';\n\nimport { DEFAULT_POPOVER_CLOSE_DELAY, DEFAULT_POPOVER_OFFSET, PopoverProps, PopoverWrapper, UsePopoverProps } from '.';\n\nexport const Popover: FC<PopoverProps> = (props) => {\n const theme = useTheme();\n return ReactDOM.createPortal(\n <AnimatePresence>\n {props.isOpen && (\n <div\n tabIndex={-1}\n ref={props.ref as Ref<HTMLDivElement | null>}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n ...props.floatingStyles,\n transform: props.floatingStyles.transform,\n zIndex: 9999,\n }}\n >\n <PopoverWrapper\n tabIndex={-1}\n $isShowAlwaysOutline={props.isShowAlwaysOutline}\n $genre={props.genre ?? 'black'}\n $font={{\n size: props.font?.size ?? KEY_SIZE_DATA[props.size ?? 'medium'].font,\n weight: props.font?.weight ?? 700,\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height,\n }}\n className={props.className}\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ duration: 0.2 }}\n $sx={props.sx}\n $size={props.size}\n $sxTypography={props.sxTypography}\n $maxHeight={props.maxHeight}\n $maxWidth={props.maxWidth}\n >\n {props.children}\n </PopoverWrapper>\n </div>\n )}\n </AnimatePresence>,\n document.body,\n );\n};\n\nexport const usePopover = (props: UsePopoverProps) => {\n const { onFocus, onBlur, onBlurReference } = props;\n\n // Состояние открытия поповера\n const [isOpen, setIsOpen] = useState(false);\n // Минимальная ширина поповера (нужна, если хотим, чтобы ширина совпадала с референсом)\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n // Флаг, был ли поповер когда-либо открыт (чтобы onBlur не вызывался при первом рендере)\n const [wasEverOpen, setWasEverOpen] = useState(false);\n\n // Позиционирование через floating-ui\n const {\n refs,\n floatingStyles,\n update,\n placement: actualPlacement,\n } = useFloating({\n open: isOpen,\n placement: props.placement,\n middleware: [offset(props.offset ?? 8), flip(), shift()],\n whileElementsMounted: autoUpdate,\n });\n\n // Сохраняем обработчик клика вне поповера (чтобы можно было удалить при cleanup)\n const clickOutsideHandler = useRef<((e: MouseEvent) => void) | null>(null);\n // Таймаут для закрытия при hover-режиме\n const hoverCloseTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Отступ для hover-зоны (чтобы не закрывался мгновенно при небольших движениях мыши)\n const hoverOffset = useMemo(\n () => props.hoverOffset ?? props.offset ?? DEFAULT_POPOVER_OFFSET,\n [props.hoverOffset, props.offset],\n );\n // Задержка перед закрытием при hover\n const hoverCloseDelay = useMemo(() => props.hoverCloseDelay ?? DEFAULT_POPOVER_CLOSE_DELAY, [props.hoverCloseDelay]);\n\n /**\n * Навешиваем обработчики на reference-элемент в зависимости от режима:\n * - click / clickOpen → открытие/переключение по клику\n * - hover → открытие/закрытие при наведении\n */\n useEffect(() => {\n if (props.isDisabled) return;\n const refEl = refs.reference.current;\n if (!refEl) return;\n\n // Режим клика\n if ((props.mode === 'click' || props.mode === 'clickOpen') && refEl instanceof HTMLElement) {\n const handleClick = () => {\n if (props.mode === 'click') {\n setIsOpen((prev) => !prev);\n } else if (props.mode === 'clickOpen') {\n setIsOpen(true);\n }\n };\n\n refEl.addEventListener('click', handleClick);\n return () => {\n refEl.removeEventListener('click', handleClick);\n };\n\n // Режим ховера\n } else if (props.mode === 'hover' && refEl instanceof HTMLElement) {\n const handleMouseEnter = () => {\n setIsOpen(true);\n };\n const handleMouseLeave = () => {\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = setTimeout(() => setIsOpen(false), hoverCloseDelay);\n };\n\n refEl.addEventListener('mouseenter', handleMouseEnter);\n refEl.addEventListener('mouseleave', handleMouseLeave);\n return () => {\n refEl.removeEventListener('mouseenter', handleMouseEnter);\n refEl.removeEventListener('mouseleave', handleMouseLeave);\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n };\n }\n }, [props.mode, refs.reference, hoverCloseDelay, props.isDisabled]);\n\n // Автоматическое обновление позиции, пока поповер открыт\n useEffect(() => {\n if (!isOpen || !refs.reference.current || !refs.floating.current || props.isDisabled) return;\n\n const cleanup = autoUpdate(refs.reference.current, refs.floating.current, update);\n\n return () => cleanup();\n }, [isOpen, refs.reference, refs.floating, update, props.isDisabled]);\n\n /**\n * Логика закрытия поповера при клике вне него\n */\n useEffect(() => {\n if (!isOpen || !refs.reference.current || !refs.floating.current || props.isDisabled) return;\n\n if (props.isClickOutside) {\n clickOutsideHandler.current = (e: MouseEvent) => {\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeClickOutside || [];\n\n // Проверяем, что клик не по поповеру, не по reference и не по исключенным ref'ам\n if (\n refEl instanceof HTMLElement &&\n floatingEl instanceof HTMLElement &&\n !refEl.contains(e.target as Node) &&\n !floatingEl.contains(e.target as Node) &&\n !otherRefs.some((ref) => {\n if (typeof ref === 'object' && ref !== null && 'current' in ref) {\n return (ref.current as HTMLElement | null)?.contains(e.target as Node);\n }\n return false;\n })\n ) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', clickOutsideHandler.current);\n }\n\n return () => {\n if (clickOutsideHandler.current) {\n document.removeEventListener('mousedown', clickOutsideHandler.current);\n clickOutsideHandler.current = null;\n }\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n }\n };\n }, [isOpen, refs.reference, refs.floating, props.isClickOutside, props.isDisabled, props.refsExcludeClickOutside]);\n\n /**\n * Поддержка режима \"плавающего hover\"\n * Закрывает поповер, если мышь ушла за пределы reference+floating с отступом\n */\n useEffect(() => {\n if (!isOpen || !props.isFloatingHover || !refs.reference.current || !refs.floating.current || props.isDisabled)\n return;\n\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n\n const handleMouseMove = (e: MouseEvent) => {\n const mouseX = e.clientX;\n const mouseY = e.clientY;\n\n const refRect = refEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n\n // Находим, внутри ли курсор reference или floating с учётом отступа\n const isInsideRef =\n mouseX >= refRect.left - hoverOffset &&\n mouseX <= refRect.right + hoverOffset &&\n mouseY >= refRect.top - hoverOffset &&\n mouseY <= refRect.bottom + hoverOffset;\n\n const isInsideFloating =\n mouseX >= floatingRect.left - hoverOffset &&\n mouseX <= floatingRect.right + hoverOffset &&\n mouseY >= floatingRect.top - hoverOffset &&\n mouseY <= floatingRect.bottom + hoverOffset;\n\n if (isInsideRef || isInsideFloating) {\n // Если вернулись внутрь — отменяем закрытие\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = null;\n }\n } else {\n // Если вышли — запускаем таймер на закрытие\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = setTimeout(() => setIsOpen(false), hoverCloseDelay);\n }\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n }\n };\n }, [isOpen, props.isFloatingHover, refs.reference, refs.floating, hoverOffset, hoverCloseDelay, props.isDisabled]);\n\n /**\n * Устанавливаем минимальную ширину поповера, равную reference (если включено isWidthAsContent)\n */\n useLayoutEffect(() => {\n if (!props.isWidthAsContent || !refs.reference.current) return;\n const rect = refs.reference.current.getBoundingClientRect();\n setMinWidth(rect.width);\n }, [props.isWidthAsContent, refs.reference]);\n\n // Методы управления открытием\n const open = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen(true);\n }, [props.isDisabled]);\n const close = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen(false);\n }, [props.isDisabled]);\n const toggle = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen((prev) => !prev);\n }, [props.isDisabled]);\n\n // Объединяем стили floating-ui с дополнительными ограничениями по ширине\n const combinedStyles = useMemo(() => {\n return {\n ...floatingStyles,\n minWidth: props.isWidthAsContent && minWidth ? `${minWidth}px` : undefined,\n maxWidth: props.isWidthAsContent && minWidth ? `${minWidth}px` : undefined,\n };\n }, [floatingStyles, props.isWidthAsContent, minWidth]);\n\n /**\n * Вызываем onFocus при открытии\n * и запоминаем, что поповер хоть раз был открыт\n */\n useEffect(() => {\n if (isOpen) {\n onFocus?.();\n setWasEverOpen(true);\n }\n }, [isOpen, onFocus]);\n\n /**\n * Вызываем onBlur при первом закрытии после открытия\n */\n useEffect(() => {\n if (!isOpen && wasEverOpen) {\n onBlur?.();\n }\n }, [isOpen, wasEverOpen, onBlur]);\n\n /**\n * Закрытие при потере фокуса (focusin вне поповера + reference)\n * (но не на исключённые элементы)\n */\n useEffect(() => {\n if (!isOpen || props.isDisabled) return;\n\n const handleFocusIn = (e: FocusEvent) => {\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeClickOutside || [];\n\n const isInside =\n (refEl instanceof HTMLElement && refEl.contains(e.target as Node)) ||\n (floatingEl instanceof HTMLElement && floatingEl.contains(e.target as Node)) ||\n otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement) {\n return ref.current.contains(e.target as Node);\n }\n return false;\n });\n\n if (!isInside) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('focusin', handleFocusIn);\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n };\n }, [isOpen, refs.reference, refs.floating, props.refsExcludeClickOutside, props.isDisabled]);\n\n /**\n * Вызываем onBlurReference, если фокус ушёл с reference-элемента\n * (но не на исключённые элементы)\n */\n useEffect(() => {\n if (!refs.reference.current || props.isDisabled || !onBlurReference) return;\n\n const refEl = refs.reference.current;\n const otherRefs = props.refsExcludeBlur || [];\n\n const handleBlur = (e: FocusEvent) => {\n if (\n refEl instanceof HTMLElement &&\n !refEl.contains(e.relatedTarget as Node) &&\n !otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement)\n return ref.current.contains(e.relatedTarget as Node);\n })\n ) {\n onBlurReference();\n }\n };\n\n if (refEl instanceof HTMLElement) refEl.addEventListener('blur', handleBlur, true);\n\n return () => {\n if (refEl instanceof HTMLElement) refEl.removeEventListener('blur', handleBlur, true);\n };\n }, [refs.reference, props.isDisabled, onBlurReference, props.refsExcludeBlur]);\n\n /**\n * Функция возвращает true или false в зависимости от состояния от FocusEvent который находится внутри или снаружи\n */\n const getIsInside = useCallback(\n (target: Node | null) => {\n if (!target) return false; // если relatedTarget null, значит фокус ушёл вне окна — закрываем\n\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeBlur || [];\n\n return (\n (refEl instanceof HTMLElement && refEl.contains(target)) ||\n (floatingEl instanceof HTMLElement && floatingEl.contains(target)) ||\n otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement) {\n return ref.current.contains(target);\n }\n return false;\n })\n );\n },\n [refs.reference, refs.floating, props.refsExcludeBlur],\n );\n // Возвращаем наружу API для использования поповера\n return {\n getIsInside,\n isOpen,\n setIsOpen,\n open,\n close,\n toggle,\n refReference: refs.setReference as Ref<HTMLElement | null>,\n refFloating: refs.setFloating as Ref<HTMLElement | null>,\n floatingStyles: combinedStyles,\n placement: actualPlacement,\n };\n};\n","import { addSXTypography } from '@local/components/typography';\nimport { addAlwaysOutline, addFont } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { StyledPopoverProps } from '.';\n\n/****************************************** Popover Genre *************************************************/\nconst addPopoverGenre = css<StyledPopoverProps>`\n ${(props) => css`\n background: ${props.theme.colors.button[props.$genre].background.rest};\n border-color: ${props.theme.colors.button[props.$genre].border.rest};\n color: ${props.theme.colors.button[props.$genre].color.rest};\n /* box-shadow: ${props.theme.effects.button}; */\n `};\n`;\n\n/****************************************** Popover Size *************************************************/\nexport const addPopoverSize = css<StyledPopoverProps>`\n ${(props) =>\n addPopoverSizeConstructor({\n ...KEY_SIZE_DATA[props.$size ?? 'medium'],\n })};\n`;\nexport const addPopoverSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n display: flex;\n border-radius: ${props.radius}px;\n padding: ${props.padding}px;\n gap: ${props.padding - 2}px;\n`;\n\n/****************************************** Default *************************************************/\nexport const PopoverWrapper = styled(motion.div)<StyledPopoverProps>`\n max-width: ${(props) => props.$maxWidth || '100%'};\n max-height: ${(props) => props.$maxHeight || '100%'};\n overflow: auto;\n flex-direction: column;\n ${addFont};\n ${addPopoverSize};\n ${addAlwaysOutline};\n ${addSXTypography};\n ${addPopoverGenre};\n ${addSX};\n`;\n","export const DEFAULT_POPOVER_OFFSET = 8;\nexport const DEFAULT_POPOVER_CLOSE_DELAY = 100;\n","import { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport styled, { css } from 'styled-components';\n\nimport { Popover, PopoverProps } from '../popover';\nimport { Stack } from '../stack';\n\nexport const TooltipContainer = styled(Stack)`\n display: flex;\n width: fit-content;\n height: fit-content;\n`;\n\nexport const addTooltipBoxSize = css<PopoverProps>`\n ${(props) =>\n addTooltipBoxSizeConstructor({\n ...KEY_SIZE_DATA[props.size ?? 'medium'],\n })};\n`;\nexport const addTooltipBoxSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n gap: 0px;\n padding: ${props.padding}px ${props.padding}px 0px ${props.padding}px;\n :after {\n content: '';\n display: block;\n height: ${props.padding}px;\n width: 100%;\n }\n`;\n\n/****************************************** TooltipBox *************************************************/\nexport const TooltipBox = styled(Popover)`\n ${addTooltipBoxSize};\n`;\n","import { Typography } from '@local/components/typography';\n\nimport { FC, memo, Ref } from 'react';\n\nimport { usePopover } from '../popover';\nimport {\n DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n TooltipBox,\n TooltipContainer,\n TooltipProps,\n} from '.';\n\nexport const Tooltip: FC<TooltipProps> = memo((props) => {\n if (props.isDisabled) return <TooltipContainer sx={props.sx}>{props.children}</TooltipContainer>;\n\n return <TooltipContent {...props} />;\n});\n\nexport const TooltipContent: FC<TooltipProps> = (props) => {\n const { isOpen, refReference, refFloating, floatingStyles } = usePopover({\n placement: props.placement ?? DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n offset: props.offset ?? DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n mode: props.mode ?? 'hover',\n isClickOutside: props.isClickOutside ?? true,\n isFloatingHover: props.isFloatingHover ?? true,\n isWidthAsContent: props.isWidthAsContent ?? false,\n hoverCloseDelay: props.hoverCloseDelay ?? undefined,\n hoverOffset: props.hoverOffset ?? undefined,\n });\n return (\n <>\n <TooltipContainer sx={props.sx} ref={refReference as Ref<HTMLDivElement | null>}>\n {props.children}\n </TooltipContainer>\n <TooltipBox\n size={props.size}\n isOpen={isOpen}\n genre={props.genre}\n floatingStyles={floatingStyles}\n ref={refFloating}\n maxHeight={props.maxHeight}\n maxWidth={props.maxWidth}\n >\n <Typography\n sx={\n props.sxTypography ?? {\n default: {\n size: 14,\n },\n }\n }\n >\n {props.content}\n </Typography>\n </TooltipBox>\n </>\n );\n};\n\nTooltip.displayName = 'Tooltip';\n","import { Placement } from '@floating-ui/react';\n\nexport const DEFAULT_TOOLTIP_PLACEMENT_FALLBACK: Placement = 'bottom-start';\nexport const DEFAULT_TOOLTIP_OFFSET_FALLBACK: number = 8;\n","import { useScreenWidth } from '@local/contexts/context-screen-width';\nimport { useOverflowing } from '@local/hooks/use-overflowing';\n\nimport { createLink, LinkProps } from '@tanstack/react-router';\nimport { memo, useMemo } from 'react';\n\nimport { Tooltip } from '../tooltip';\nimport { Title, TypographyCSSProps, TypographyProps, TypographyTooltipProps } from '.';\n\nconst TypographyWithRef = (props: TypographyProps) => {\n const { screenActual } = useScreenWidth();\n const cssProps: TypographyCSSProps & Pick<TypographyProps, 'onClick' | 'className' | 'style'> = useMemo(\n () => ({\n $sxTypography: props.sx,\n style: props.style,\n className: props.className,\n $sx: props.sxStandard,\n $isDisabledOutline: props.isDisabledOutline,\n $isOutlineBoxShadow: props.isOutlineBoxShadow,\n $isReadOnly: props.isReadOnly,\n onClick: props.onClick ? props.onClick : () => {},\n }),\n [\n props.sx,\n props.style,\n props.className,\n props.sxStandard,\n props.onClick,\n props.isDisabledOutline,\n props.isOutlineBoxShadow,\n props.isReadOnly,\n ],\n );\n\n const screenSX = useMemo(() => props.sx?.[screenActual] ?? props.sx?.default, [props.sx, screenActual]);\n\n if (screenSX && 'variant' in screenSX) {\n if (screenSX.variant === 'h7' || screenSX.variant === 'h8' || screenSX.variant === 'h9') {\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : 'span'}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n } else {\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : screenSX.variant}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n }\n }\n\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : 'span'}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n};\n\nexport const Typography = (props: TypographyProps) => {\n return <TypographyWithRef {...props} />;\n};\n\nconst TypographySizeIsAnchor = (props: TypographyProps & LinkProps) => {\n return <TypographyWithRef isAnchor {...props} ref={props.ref} href={props.href} />;\n};\n\nexport const TypographyLink = createLink(TypographySizeIsAnchor);\n\nexport const TypographyTooltip = memo((props: TypographyTooltipProps) => {\n const { isDisabled, ref } = useOverflowing<HTMLDivElement>({\n isCheckSize: props.tooltip.isDisabled !== undefined ? !props.tooltip.isDisabled : true,\n dependencies: [props.children],\n });\n return (\n <Tooltip isDisabled={isDisabled} content={props.children} {...props.tooltip}>\n <TypographyWithRef ref={ref} {...props.typography} style={{ position: 'relative' }}>\n {props.children}\n </TypographyWithRef>\n </Tooltip>\n );\n});\n\nTypographyTooltip.displayName = 'TypographyTooltip';\nTypographyWithRef.displayName = 'TypographyWithRef';\nTypographySizeIsAnchor.displayName = 'TypographySizeIsAnchor';\n"],"names":["addSXStandard","ReactDOM","jsx","jsxs","Fragment"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),s=require("./component.styles-Dpg-__rn.cjs"),t=require("./component-CLqcB5mM.cjs"),o=require("./theme.global-CcoD5bPP.cjs"),n=require("./floating-ui.react--v70Xky9.cjs"),r=require("react"),d=require("styled-components"),l=require("./component-BVnHSTJd.cjs"),u=require("./style-Df37KnoJ.cjs"),c=require("./style-fRZ6xrVp.cjs"),a=require("framer-motion"),$=d.css`
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),s=require("./component.styles-Dpg-__rn.cjs"),t=require("./component-CLqcB5mM.cjs"),o=require("./theme.global-CcoD5bPP.cjs"),n=require("./floating-ui.react--v70Xky9.cjs"),r=require("react"),d=require("styled-components"),l=require("./component-BkYIZFlr.cjs"),u=require("./style-Df37KnoJ.cjs"),c=require("./style-fRZ6xrVp.cjs"),a=require("framer-motion"),$=d.css`
2
2
  ${e=>d.css`
3
3
  background: ${e.theme.colors.button[e.$genre].background.rest};
4
4
  border-color: ${e.theme.colors.button[e.$genre].border.rest};
@@ -87,4 +87,4 @@
87
87
  ${l.addSXTypography};
88
88
  ${c.addSX};
89
89
  `;exports.Button=s=>{var l,u,c,a;const $=d.useTheme(),p=r.useMemo(()=>{var t,o;return null==(o=null==(t=s.icons??[])?void 0:t.filter(e=>!e.isHidden))?void 0:o.map((t,o)=>"id"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"id",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):"logo"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"logo",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):"bustmarket"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"bustmarket",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):"checkbox"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"checkbox",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):"loading"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"loading",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):"realebail"===(null==t?void 0:t.type)?e.jsxRuntimeExports.jsx(i.Icon,{name:null==t?void 0:t.name,type:"realebail",size:(null==t?void 0:t.size)??s.size,turn:t.turn,order:t.order},`${t.type}-${t.name}-${o}`):null)},[s.icons,s.size]),h=r.useRef(null),m=n.useMergeRefs([h,s.ref]);return e.jsxRuntimeExports.jsxs(z,{$font:{size:(null==(l=s.font)?void 0:l.size)??o.KEY_SIZE_DATA[s.size].font,weight:(null==(u=s.font)?void 0:u.weight)??700,family:(null==(c=s.font)?void 0:c.family)??$.font.family,height:null==(a=s.font)?void 0:a.height},$isNotHoverEffect:s.isNotHoverEffect,whileTap:s.isWhileTapEffect?{scale:.9,transition:{duration:.01}}:{},id:s.id,tabIndex:s.tabIndex??0,$isFullSize:s.isFullSize,$genre:s.genre,$size:s.size,$isDisabled:s.isDisabled,$isDisabledOutline:s.isDisabled??s.isDisabledOutline,$isOutlineBoxShadow:s.isOutlineBoxShadow,$isReadOnly:s.isReadOnly,$isMinWidthAsContent:s.isMinWidthAsContent,$isWidthAsHeight:s.isWidthAsHeight,$isRadius:s.isRadius,$isHidden:s.isHidden,$isPlaystationEffect:s.isPlaystationEffect,$sxTypography:s.sxTypography,$isHiddenBorder:s.isHiddenBorder||s.isPlaystationEffect,disabled:s.isDisabled,type:s.type??"button",className:s.className,onClick:e=>{!s.isDisabled&&s.onClick&&s.onClick(e)},onFocus:s.onFocus,onMouseDown:s.onMouseDown,ref:m,$sx:s.sx,children:[e.jsxRuntimeExports.jsx(t.Ripple,{color:$.colors.checkbox[s.genre].color.rest,isDisabled:s.isDisabled??s.isDisabledRipple,isHidden:s.isHidden}),!s.isOnlyIcon&&e.jsxRuntimeExports.jsx("div",{style:{order:0,display:"contents"},children:s.children&&s.children}),e.jsxRuntimeExports.jsx(g,{$size:s.size,$isIconGroup:s.isIconGroup,$iconGroupOrder:"iconGroupOrder"in s?s.iconGroupOrder:void 0,children:p})]})},exports.ButtonSize=y,exports.ButtonSizeConstructor=b,exports.StyledButton=z,exports.StyledButtonIconsWrapper=g;
90
- //# sourceMappingURL=component-DnJo66DS.cjs.map
90
+ //# sourceMappingURL=component-BLWcOf3A.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-DnJo66DS.cjs","sources":["../src/components/button/component.styles.ts","../src/components/button/component.tsx"],"sourcesContent":["import { addRippleDefault } from '@local/components/ripple';\nimport { addSXTypography } from '@local/components/typography';\nimport { addFont, addOutline, addTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { StyledDollarButtonIconsWrapperProps, StyledDollarButtonProps } from '.';\n\n/****************************************** Genre *************************************************/\nconst ButtonGenre = css<StyledDollarButtonProps>`\n ${(props) => css`\n background: ${props.theme.colors.button[props.$genre].background.rest};\n border-color: ${props.theme.colors.button[props.$genre].border.rest};\n color: ${props.theme.colors.button[props.$genre].color.rest};\n &:hover {\n ${\n (!props.$isHidden || props.$isNotHoverEffect) &&\n css`\n background: ${props.theme.colors.button[props.$genre].background.hover};\n border-color: ${props.theme.colors.button[props.$genre].border.hover};\n color: ${props.theme.colors.button[props.$genre].color.hover};\n `\n }\n }\n `};\n`;\n\n/****************************************** Disabled *************************************************/\nconst ButtonDisabled = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHidden\n ? css`\n opacity: 0.5;\n background: ${props.theme.colors.button[props.$genre].background.rest} !important;\n color: ${props.theme.colors.button[props.$genre].color.rest} !important;\n `\n : css`\n opacity: 1;\n `}\n`;\n/****************************************** is HiddenBorder *************************************************/\nconst ButtonIsHiddenBorder = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHiddenBorder &&\n css`\n border: 0px transparent !important;\n `}\n`;\n/****************************************** is Radius *************************************************/\nconst ButtonIsRadius = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isRadius &&\n css`\n border-radius: 100px;\n `}\n`;\n/****************************************** is PlaystationEffect *************************************************/\nconst ButtonIsPlaystationEffect = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isPlaystationEffect &&\n css`\n box-shadow: ${props.theme.effects.button};\n `}\n`;\n/****************************************** Icons Wrapper *************************************************/\nexport const StyledButtonIconsWrapper = styled.div<StyledDollarButtonIconsWrapperProps>`\n ${(props) =>\n props.$isIconGroup\n ? css`\n display: flex;\n gap: ${KEY_SIZE_DATA[props.$size].padding - 2}px;\n align-items: center;\n order: ${props.$iconGroupOrder || 'initial'};\n `\n : css`\n display: contents;\n `}\n`;\n\n/****************************************** Size *************************************************/\nexport const ButtonSize = css<StyledDollarButtonProps>`\n ${(props) =>\n ButtonSizeConstructor({\n ...KEY_SIZE_DATA[props.$size],\n isFullSize: props.$isFullSize,\n isWidthAsHeight: props.$isWidthAsHeight,\n isMinWidthAsContent: props.$isMinWidthAsContent,\n })};\n`;\nexport const ButtonSizeConstructor = (\n props: IThemeSizePropertyDefault & {\n isFullSize?: boolean;\n isWidthAsHeight?: boolean;\n isMinWidthAsContent?: boolean;\n },\n) => css`\n height: fit-content;\n min-height: ${props.height}px;\n max-height: fit-content;\n padding: 2px ${props.padding}px;\n border-radius: ${props.radius}px;\n gap: ${props.padding - 2}px;\n ${() =>\n props.isFullSize &&\n css`\n height: 100%;\n width: 100%;\n border-radius: 0px;\n `};\n ${\n props.isWidthAsHeight &&\n css`\n width: ${props.height}px;\n min-width: ${props.height}px;\n padding: 0px;\n `\n };\n ${\n props.isMinWidthAsContent &&\n css`\n min-width: max-content;\n `\n };\n`;\n/****************************************** Border *************************************************/\nconst ButtonBorder = css`\n border: 1px solid transparent;\n`;\n\n/****************************************** Flex *************************************************/\nconst ButtonFlex = css<StyledDollarButtonProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n/****************************************** Styled *************************************************/\nexport const StyledButton = styled(motion.button)<StyledDollarButtonProps>`\n cursor: pointer;\n user-select: none;\n\n ${ButtonBorder};\n ${ButtonSize};\n ${ButtonGenre};\n ${ButtonDisabled};\n ${ButtonIsHiddenBorder};\n ${ButtonIsRadius};\n ${ButtonIsPlaystationEffect};\n ${ButtonFlex};\n ${addRippleDefault};\n ${addTransition};\n ${addFont};\n ${addOutline};\n ${addSXTypography};\n ${addSX};\n`;\n","import {\n Icon,\n TIconBustMarketNameString,\n TIconCheckboxNameString,\n TIconIdNameString,\n TIconLoadingNameString,\n TIconLogoNameString,\n TIconRealEbailNameString,\n} from '@local/components/icon';\nimport { Ripple } from '@local/components/ripple';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useMergeRefs } from '@floating-ui/react';\nimport { FC, Ref, useMemo, useRef } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ButtonProps, StyledButton, StyledButtonIconsWrapper } from '.';\n\nexport const Button: FC<ButtonProps> = (props) => {\n const theme = useTheme();\n\n const iconComponents = useMemo(\n () =>\n (props.icons ?? [])\n ?.filter((icon) => !icon.isHidden)\n ?.map((icon, index) =>\n icon?.type === 'id' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconIdNameString}\n type='id'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'logo' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconLogoNameString}\n type='logo'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'bustmarket' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconBustMarketNameString}\n type='bustmarket'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'checkbox' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconCheckboxNameString}\n type='checkbox'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'loading' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconLoadingNameString}\n type='loading'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'realebail' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconRealEbailNameString}\n type='realebail'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : null,\n ),\n [props.icons, props.size],\n );\n\n const handleClick: ButtonProps['onClick'] = (event) => {\n if (!props.isDisabled && props.onClick) {\n props.onClick(event);\n }\n };\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n return (\n <StyledButton\n $font={{\n size: props.font?.size ?? KEY_SIZE_DATA[props.size].font,\n weight: props.font?.weight ?? 700,\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height,\n }}\n $isNotHoverEffect={props.isNotHoverEffect}\n whileTap={props.isWhileTapEffect ? { scale: 0.9, transition: { duration: 0.01 } } : {}}\n id={props.id}\n tabIndex={props.tabIndex ?? 0}\n $isFullSize={props.isFullSize}\n $genre={props.genre}\n $size={props.size}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $isMinWidthAsContent={props.isMinWidthAsContent}\n $isWidthAsHeight={props.isWidthAsHeight}\n $isRadius={props.isRadius}\n $isHidden={props.isHidden}\n $isPlaystationEffect={props.isPlaystationEffect}\n $sxTypography={props.sxTypography}\n $isHiddenBorder={props.isHiddenBorder || props.isPlaystationEffect}\n disabled={props.isDisabled}\n type={props.type ?? 'button'}\n className={props.className}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n ref={ref as Ref<HTMLButtonElement>}\n $sx={props.sx}\n >\n <Ripple\n color={theme.colors.checkbox[props.genre].color.rest}\n isDisabled={props.isDisabled ?? props.isDisabledRipple}\n isHidden={props.isHidden}\n />\n\n {!props.isOnlyIcon && <div style={{ order: 0, display: 'contents' }}>{props.children && props.children}</div>}\n <StyledButtonIconsWrapper\n $size={props.size}\n $isIconGroup={props.isIconGroup}\n $iconGroupOrder={'iconGroupOrder' in props ? props.iconGroupOrder : undefined}\n >\n {iconComponents}\n </StyledButtonIconsWrapper>\n </StyledButton>\n );\n};\n"],"names":["ButtonGenre","css","props","theme","colors","button","$genre","background","rest","border","color","$isHidden","$isNotHoverEffect","hover","ButtonDisabled","ButtonIsHiddenBorder","$isHiddenBorder","ButtonIsRadius","$isRadius","ButtonIsPlaystationEffect","$isPlaystationEffect","effects","StyledButtonIconsWrapper","styled","div","$isIconGroup","KEY_SIZE_DATA","$size","padding","$iconGroupOrder","ButtonSize","ButtonSizeConstructor","isFullSize","$isFullSize","isWidthAsHeight","$isWidthAsHeight","isMinWidthAsContent","$isMinWidthAsContent","height","radius","ButtonBorder","ButtonFlex","StyledButton","motion","addRippleDefault","addTransition","addFont","addOutline","addSXTypography","addSX","useTheme","iconComponents","useMemo","_b","_a","icons","filter","icon","isHidden","map","index","type","jsx","Icon","name","size","turn","order","refDefault","useRef","ref","useMergeRefs","jsxs","$font","font","weight","family","_c","_d","isNotHoverEffect","whileTap","isWhileTapEffect","scale","transition","duration","id","tabIndex","genre","$isDisabled","isDisabled","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$isReadOnly","isReadOnly","isRadius","isPlaystationEffect","$sxTypography","sxTypography","isHiddenBorder","disabled","className","onClick","event","onFocus","onMouseDown","$sx","sx","children","Ripple","checkbox","isDisabledRipple","isOnlyIcon","style","display","isIconGroup","iconGroupOrder"],"mappings":"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"}
1
+ {"version":3,"file":"component-BLWcOf3A.cjs","sources":["../src/components/button/component.styles.ts","../src/components/button/component.tsx"],"sourcesContent":["import { addRippleDefault } from '@local/components/ripple';\nimport { addSXTypography } from '@local/components/typography';\nimport { addFont, addOutline, addTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { StyledDollarButtonIconsWrapperProps, StyledDollarButtonProps } from '.';\n\n/****************************************** Genre *************************************************/\nconst ButtonGenre = css<StyledDollarButtonProps>`\n ${(props) => css`\n background: ${props.theme.colors.button[props.$genre].background.rest};\n border-color: ${props.theme.colors.button[props.$genre].border.rest};\n color: ${props.theme.colors.button[props.$genre].color.rest};\n &:hover {\n ${\n (!props.$isHidden || props.$isNotHoverEffect) &&\n css`\n background: ${props.theme.colors.button[props.$genre].background.hover};\n border-color: ${props.theme.colors.button[props.$genre].border.hover};\n color: ${props.theme.colors.button[props.$genre].color.hover};\n `\n }\n }\n `};\n`;\n\n/****************************************** Disabled *************************************************/\nconst ButtonDisabled = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHidden\n ? css`\n opacity: 0.5;\n background: ${props.theme.colors.button[props.$genre].background.rest} !important;\n color: ${props.theme.colors.button[props.$genre].color.rest} !important;\n `\n : css`\n opacity: 1;\n `}\n`;\n/****************************************** is HiddenBorder *************************************************/\nconst ButtonIsHiddenBorder = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHiddenBorder &&\n css`\n border: 0px transparent !important;\n `}\n`;\n/****************************************** is Radius *************************************************/\nconst ButtonIsRadius = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isRadius &&\n css`\n border-radius: 100px;\n `}\n`;\n/****************************************** is PlaystationEffect *************************************************/\nconst ButtonIsPlaystationEffect = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isPlaystationEffect &&\n css`\n box-shadow: ${props.theme.effects.button};\n `}\n`;\n/****************************************** Icons Wrapper *************************************************/\nexport const StyledButtonIconsWrapper = styled.div<StyledDollarButtonIconsWrapperProps>`\n ${(props) =>\n props.$isIconGroup\n ? css`\n display: flex;\n gap: ${KEY_SIZE_DATA[props.$size].padding - 2}px;\n align-items: center;\n order: ${props.$iconGroupOrder || 'initial'};\n `\n : css`\n display: contents;\n `}\n`;\n\n/****************************************** Size *************************************************/\nexport const ButtonSize = css<StyledDollarButtonProps>`\n ${(props) =>\n ButtonSizeConstructor({\n ...KEY_SIZE_DATA[props.$size],\n isFullSize: props.$isFullSize,\n isWidthAsHeight: props.$isWidthAsHeight,\n isMinWidthAsContent: props.$isMinWidthAsContent,\n })};\n`;\nexport const ButtonSizeConstructor = (\n props: IThemeSizePropertyDefault & {\n isFullSize?: boolean;\n isWidthAsHeight?: boolean;\n isMinWidthAsContent?: boolean;\n },\n) => css`\n height: fit-content;\n min-height: ${props.height}px;\n max-height: fit-content;\n padding: 2px ${props.padding}px;\n border-radius: ${props.radius}px;\n gap: ${props.padding - 2}px;\n ${() =>\n props.isFullSize &&\n css`\n height: 100%;\n width: 100%;\n border-radius: 0px;\n `};\n ${\n props.isWidthAsHeight &&\n css`\n width: ${props.height}px;\n min-width: ${props.height}px;\n padding: 0px;\n `\n };\n ${\n props.isMinWidthAsContent &&\n css`\n min-width: max-content;\n `\n };\n`;\n/****************************************** Border *************************************************/\nconst ButtonBorder = css`\n border: 1px solid transparent;\n`;\n\n/****************************************** Flex *************************************************/\nconst ButtonFlex = css<StyledDollarButtonProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n/****************************************** Styled *************************************************/\nexport const StyledButton = styled(motion.button)<StyledDollarButtonProps>`\n cursor: pointer;\n user-select: none;\n\n ${ButtonBorder};\n ${ButtonSize};\n ${ButtonGenre};\n ${ButtonDisabled};\n ${ButtonIsHiddenBorder};\n ${ButtonIsRadius};\n ${ButtonIsPlaystationEffect};\n ${ButtonFlex};\n ${addRippleDefault};\n ${addTransition};\n ${addFont};\n ${addOutline};\n ${addSXTypography};\n ${addSX};\n`;\n","import {\n Icon,\n TIconBustMarketNameString,\n TIconCheckboxNameString,\n TIconIdNameString,\n TIconLoadingNameString,\n TIconLogoNameString,\n TIconRealEbailNameString,\n} from '@local/components/icon';\nimport { Ripple } from '@local/components/ripple';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useMergeRefs } from '@floating-ui/react';\nimport { FC, Ref, useMemo, useRef } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ButtonProps, StyledButton, StyledButtonIconsWrapper } from '.';\n\nexport const Button: FC<ButtonProps> = (props) => {\n const theme = useTheme();\n\n const iconComponents = useMemo(\n () =>\n (props.icons ?? [])\n ?.filter((icon) => !icon.isHidden)\n ?.map((icon, index) =>\n icon?.type === 'id' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconIdNameString}\n type='id'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'logo' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconLogoNameString}\n type='logo'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'bustmarket' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconBustMarketNameString}\n type='bustmarket'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'checkbox' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconCheckboxNameString}\n type='checkbox'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'loading' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconLoadingNameString}\n type='loading'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : icon?.type === 'realebail' ? (\n <Icon\n key={`${icon.type}-${icon.name}-${index}`}\n name={icon?.name as TIconRealEbailNameString}\n type='realebail'\n size={icon?.size ?? props.size}\n turn={icon.turn}\n order={icon.order}\n />\n ) : null,\n ),\n [props.icons, props.size],\n );\n\n const handleClick: ButtonProps['onClick'] = (event) => {\n if (!props.isDisabled && props.onClick) {\n props.onClick(event);\n }\n };\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n return (\n <StyledButton\n $font={{\n size: props.font?.size ?? KEY_SIZE_DATA[props.size].font,\n weight: props.font?.weight ?? 700,\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height,\n }}\n $isNotHoverEffect={props.isNotHoverEffect}\n whileTap={props.isWhileTapEffect ? { scale: 0.9, transition: { duration: 0.01 } } : {}}\n id={props.id}\n tabIndex={props.tabIndex ?? 0}\n $isFullSize={props.isFullSize}\n $genre={props.genre}\n $size={props.size}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $isMinWidthAsContent={props.isMinWidthAsContent}\n $isWidthAsHeight={props.isWidthAsHeight}\n $isRadius={props.isRadius}\n $isHidden={props.isHidden}\n $isPlaystationEffect={props.isPlaystationEffect}\n $sxTypography={props.sxTypography}\n $isHiddenBorder={props.isHiddenBorder || props.isPlaystationEffect}\n disabled={props.isDisabled}\n type={props.type ?? 'button'}\n className={props.className}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n ref={ref as Ref<HTMLButtonElement>}\n $sx={props.sx}\n >\n <Ripple\n color={theme.colors.checkbox[props.genre].color.rest}\n isDisabled={props.isDisabled ?? props.isDisabledRipple}\n isHidden={props.isHidden}\n />\n\n {!props.isOnlyIcon && <div style={{ order: 0, display: 'contents' }}>{props.children && props.children}</div>}\n <StyledButtonIconsWrapper\n $size={props.size}\n $isIconGroup={props.isIconGroup}\n $iconGroupOrder={'iconGroupOrder' in props ? props.iconGroupOrder : undefined}\n >\n {iconComponents}\n </StyledButtonIconsWrapper>\n </StyledButton>\n );\n};\n"],"names":["ButtonGenre","css","props","theme","colors","button","$genre","background","rest","border","color","$isHidden","$isNotHoverEffect","hover","ButtonDisabled","ButtonIsHiddenBorder","$isHiddenBorder","ButtonIsRadius","$isRadius","ButtonIsPlaystationEffect","$isPlaystationEffect","effects","StyledButtonIconsWrapper","styled","div","$isIconGroup","KEY_SIZE_DATA","$size","padding","$iconGroupOrder","ButtonSize","ButtonSizeConstructor","isFullSize","$isFullSize","isWidthAsHeight","$isWidthAsHeight","isMinWidthAsContent","$isMinWidthAsContent","height","radius","ButtonBorder","ButtonFlex","StyledButton","motion","addRippleDefault","addTransition","addFont","addOutline","addSXTypography","addSX","useTheme","iconComponents","useMemo","_b","_a","icons","filter","icon","isHidden","map","index","type","jsx","Icon","name","size","turn","order","refDefault","useRef","ref","useMergeRefs","jsxs","$font","font","weight","family","_c","_d","isNotHoverEffect","whileTap","isWhileTapEffect","scale","transition","duration","id","tabIndex","genre","$isDisabled","isDisabled","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$isReadOnly","isReadOnly","isRadius","isPlaystationEffect","$sxTypography","sxTypography","isHiddenBorder","disabled","className","onClick","event","onFocus","onMouseDown","$sx","sx","children","Ripple","checkbox","isDisabledRipple","isOnlyIcon","style","display","isIconGroup","iconGroupOrder"],"mappings":"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"}