@jenesei-software/jenesei-kit-react 1.3.13 → 1.3.14
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/build/build-info.txt +3 -3
- package/build/{component-DdJt3LEF.cjs → component-B9dFCQcm.cjs} +2 -2
- package/build/{component-DdJt3LEF.cjs.map → component-B9dFCQcm.cjs.map} +1 -1
- package/build/{component-GtWqnaqk.js → component-BFOHa1GY.js} +35 -17
- package/build/component-BFOHa1GY.js.map +1 -0
- package/build/{component-DnJo66DS.cjs → component-BLWcOf3A.cjs} +2 -2
- package/build/{component-DnJo66DS.cjs.map → component-BLWcOf3A.cjs.map} +1 -1
- package/build/component-BkYIZFlr.cjs +245 -0
- package/build/component-BkYIZFlr.cjs.map +1 -0
- package/build/{component-feWPgACX.js → component-CFKFLOAw.js} +2 -2
- package/build/{component-feWPgACX.js.map → component-CFKFLOAw.js.map} +1 -1
- package/build/{component-P-3bwi3_.js → component-CPzlyKwR.js} +3 -3
- package/build/{component-P-3bwi3_.js.map → component-CPzlyKwR.js.map} +1 -1
- package/build/{component-CN6att4f.js → component-CeuA5Ry0.js} +2 -2
- package/build/{component-CN6att4f.js.map → component-CeuA5Ry0.js.map} +1 -1
- package/build/{component-cRmWWDr_.cjs → component-DkEqMT7w.cjs} +2 -2
- package/build/{component-cRmWWDr_.cjs.map → component-DkEqMT7w.cjs.map} +1 -1
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +1 -1
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +1 -1
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +1 -1
- package/build/component-image-button.cjs.js +1 -1
- package/build/component-image-button.es.js +1 -1
- package/build/component-image-select.cjs.js +1 -1
- package/build/component-image-select.es.js +1 -1
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.es.js +1 -1
- package/build/component-map.cjs.js +1 -1
- package/build/component-map.es.js +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +1 -1
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +1 -1
- package/build/{component.components-C-EEYFsd.js → component.components-B2-Gqe0K.js} +2 -2
- package/build/{component.components-C-EEYFsd.js.map → component.components-B2-Gqe0K.js.map} +1 -1
- package/build/{component.components-CC3IeZon.cjs → component.components-JtwTIPAB.cjs} +2 -2
- package/build/{component.components-CC3IeZon.cjs.map → component.components-JtwTIPAB.cjs.map} +1 -1
- package/build/{component.constants-34RZJIiQ.js → component.constants-CpnBclql.js} +2 -2
- package/build/{component.constants-34RZJIiQ.js.map → component.constants-CpnBclql.js.map} +1 -1
- package/build/{component.constants-COLayaiY.js → component.constants-DJzogH6s.js} +3 -3
- package/build/{component.constants-COLayaiY.js.map → component.constants-DJzogH6s.js.map} +1 -1
- package/build/{component.constants-eYn_2hvO.cjs → component.constants-DoZ61vWX.cjs} +2 -2
- package/build/{component.constants-eYn_2hvO.cjs.map → component.constants-DoZ61vWX.cjs.map} +1 -1
- package/build/{component.constants-D6AJ1xmO.cjs → component.constants-DxcsPL8D.cjs} +2 -2
- package/build/{component.constants-D6AJ1xmO.cjs.map → component.constants-DxcsPL8D.cjs.map} +1 -1
- package/build/{component.styles-PNgt36ZD.cjs → component.styles-CEDSDKXy.cjs} +2 -2
- package/build/{component.styles-PNgt36ZD.cjs.map → component.styles-CEDSDKXy.cjs.map} +1 -1
- package/build/{component.styles-DbWj2stq.cjs → component.styles-COwP0J6t.cjs} +2 -2
- package/build/{component.styles-DbWj2stq.cjs.map → component.styles-COwP0J6t.cjs.map} +1 -1
- package/build/{component.styles-DTnknwt_.js → component.styles-CxPmtiIy.js} +2 -2
- package/build/{component.styles-DTnknwt_.js.map → component.styles-CxPmtiIy.js.map} +1 -1
- package/build/{component.styles-mcm1LgEr.js → component.styles-Czdj4SAF.js} +3 -3
- package/build/{component.styles-mcm1LgEr.js.map → component.styles-Czdj4SAF.js.map} +1 -1
- package/build/{component.styles-Bb7_KygZ.cjs → component.styles-DhXp_cmE.cjs} +2 -2
- package/build/{component.styles-Bb7_KygZ.cjs.map → component.styles-DhXp_cmE.cjs.map} +1 -1
- package/build/{component.styles-DWS6xT-y.js → component.styles-Dz33wmri.js} +2 -2
- package/build/{component.styles-DWS6xT-y.js.map → component.styles-Dz33wmri.js.map} +1 -1
- package/build/{component.styles-Ba1VTyjn.js → component.styles-an3dM3la.js} +4 -4
- package/build/{component.styles-Ba1VTyjn.js.map → component.styles-an3dM3la.js.map} +1 -1
- package/build/{component.styles-DhBoJzIN.cjs → component.styles-dFnW-DgR.cjs} +2 -2
- package/build/{component.styles-DhBoJzIN.cjs.map → component.styles-dFnW-DgR.cjs.map} +1 -1
- package/build/{component.types-BhmQrqBu.js → component.types-B2YOqKzt.js} +4 -4
- package/build/{component.types-BhmQrqBu.js.map → component.types-B2YOqKzt.js.map} +1 -1
- package/build/{component.types-CfR3RBsV.cjs → component.types-DaiIANRt.cjs} +2 -2
- package/build/{component.types-CfR3RBsV.cjs.map → component.types-DaiIANRt.cjs.map} +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +1 -1
- package/build/{context.constants-DOMoMUoD.js → context.constants-C4xdihsb.js} +2 -2
- package/build/{context.constants-DOMoMUoD.js.map → context.constants-C4xdihsb.js.map} +1 -1
- package/build/{context.constants-cm50ZUiS.cjs → context.constants-D0P7bVk9.cjs} +2 -2
- package/build/{context.constants-cm50ZUiS.cjs.map → context.constants-D0P7bVk9.cjs.map} +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.es.js +13 -13
- package/build/{use-_V1SKE0-.js → use-CuHzkWqv.js} +3 -3
- package/build/{use-_V1SKE0-.js.map → use-CuHzkWqv.js.map} +1 -1
- package/build/{use-ClugPshj.cjs → use-DWNgOa9w.cjs} +2 -2
- package/build/{use-ClugPshj.cjs.map → use-DWNgOa9w.cjs.map} +1 -1
- package/package.json +1 -1
- package/build/component-BVnHSTJd.cjs +0 -245
- package/build/component-BVnHSTJd.cjs.map +0 -1
- package/build/component-GtWqnaqk.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.hooks-BIsapq-0.cjs"),i=require("@tanstack/react-router"),n=require("react"),s=require("styled-components"),r=require("./theme.global-CcoD5bPP.cjs"),o=require("./floating-ui.react--v70Xky9.cjs"),a=require("framer-motion"),l=require("react-dom"),c=require("./style-Df37KnoJ.cjs"),f=require("./style-fRZ6xrVp.cjs"),h=require("./component-GKvpOWlO.cjs"),d=s.keyframes`
|
|
2
|
-
0% {
|
|
3
|
-
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
4
|
-
}
|
|
5
|
-
50% {
|
|
6
|
-
text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.5);
|
|
7
|
-
}
|
|
8
|
-
100% {
|
|
9
|
-
text-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
10
|
-
}
|
|
11
|
-
`;function m(e){return s.css`
|
|
12
|
-
${e.shadow&&"shadowPulse"===e.shadow&&s.css`
|
|
13
|
-
animation: ${d} 2s infinite;
|
|
14
|
-
`};
|
|
15
|
-
${e.letterSpacing&&s.css`
|
|
16
|
-
letter-spacing: ${e.letterSpacing};
|
|
17
|
-
`};
|
|
18
|
-
${e.flex&&s.css`
|
|
19
|
-
flex: ${e.flex};
|
|
20
|
-
`};
|
|
21
|
-
${e.cursor&&s.css`
|
|
22
|
-
cursor: ${e.cursor};
|
|
23
|
-
`};
|
|
24
|
-
${e.overflow&&s.css`
|
|
25
|
-
overflow: ${e.overflow};
|
|
26
|
-
`};
|
|
27
|
-
${void 0!==e.line?1===e.line?s.css`
|
|
28
|
-
text-overflow: ellipsis;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
white-space: nowrap;
|
|
31
|
-
width: -webkit-fill-available;
|
|
32
|
-
max-width: fit-content;
|
|
33
|
-
`:s.css`
|
|
34
|
-
word-break: break-word;
|
|
35
|
-
white-space: normal;
|
|
36
|
-
text-overflow: ellipsis;
|
|
37
|
-
display: -webkit-box;
|
|
38
|
-
overflow: hidden;
|
|
39
|
-
-webkit-box-orient: vertical;
|
|
40
|
-
-webkit-line-clamp: ${e.line};
|
|
41
|
-
width: fit-content;
|
|
42
|
-
overflow-wrap: anywhere;
|
|
43
|
-
`:s.css``};
|
|
44
|
-
${e.family&&s.css`
|
|
45
|
-
font-family: ${e.family};
|
|
46
|
-
`};
|
|
47
|
-
${e.weight&&s.css`
|
|
48
|
-
font-weight: ${e.weight};
|
|
49
|
-
`};
|
|
50
|
-
${e.height&&s.css`
|
|
51
|
-
line-height: ${e.height}px;
|
|
52
|
-
`};
|
|
53
|
-
${e.color&&s.css`
|
|
54
|
-
color: ${r.JeneseiPalette[e.color]};
|
|
55
|
-
`};
|
|
56
|
-
${e.align&&s.css`
|
|
57
|
-
text-align: ${e.align};
|
|
58
|
-
`};
|
|
59
|
-
${e.wrap&&s.css`
|
|
60
|
-
text-wrap: ${e.wrap};
|
|
61
|
-
`};
|
|
62
|
-
${e.decoration&&s.css`
|
|
63
|
-
text-decoration: ${e.decoration};
|
|
64
|
-
`};
|
|
65
|
-
${e.transform&&s.css`
|
|
66
|
-
text-transform: ${e.transform};
|
|
67
|
-
`};
|
|
68
|
-
${e.isHoverUnderlining&&s.css`
|
|
69
|
-
&:hover {
|
|
70
|
-
text-decoration: underline;
|
|
71
|
-
}
|
|
72
|
-
`};
|
|
73
|
-
${e.isNoUserSelect&&s.css`
|
|
74
|
-
user-select: none;
|
|
75
|
-
-webkit-user-select: none;
|
|
76
|
-
-moz-user-select: none;
|
|
77
|
-
-ms-user-select: none;
|
|
78
|
-
`};
|
|
79
|
-
${"size"in e&&e.size&&s.css`
|
|
80
|
-
font-size: ${e.size}px;
|
|
81
|
-
`};
|
|
82
|
-
${"variant"in e&&e.variant?"h1"===e.variant?s.css`
|
|
83
|
-
font-size: ${e=>e.theme.font.sizeHeading.h1*e.theme.font.sizeDefault.default}px;
|
|
84
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
85
|
-
margin: 0;
|
|
86
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
87
|
-
font-size: ${e=>e.theme.font.sizeHeading.h1*e.theme.font.sizeDefault.tablet}px;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
91
|
-
font-size: ${e=>e.theme.font.sizeHeading.h1*e.theme.font.sizeDefault.mobile}px;
|
|
92
|
-
}
|
|
93
|
-
`:"h2"===e.variant?s.css`
|
|
94
|
-
font-size: ${e=>e.theme.font.sizeHeading.h2*e.theme.font.sizeDefault.default}px;
|
|
95
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
96
|
-
margin: 0;
|
|
97
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
98
|
-
font-size: ${e=>e.theme.font.sizeHeading.h2*e.theme.font.sizeDefault.tablet}px;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
102
|
-
font-size: ${e=>e.theme.font.sizeHeading.h2*e.theme.font.sizeDefault.mobile}px;
|
|
103
|
-
}
|
|
104
|
-
`:"h3"===e.variant?s.css`
|
|
105
|
-
font-size: ${e=>e.theme.font.sizeHeading.h3*e.theme.font.sizeDefault.default}px;
|
|
106
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
107
|
-
margin: 0;
|
|
108
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
109
|
-
font-size: ${e=>e.theme.font.sizeHeading.h3*e.theme.font.sizeDefault.tablet}px;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
113
|
-
font-size: ${e=>e.theme.font.sizeHeading.h3*e.theme.font.sizeDefault.mobile}px;
|
|
114
|
-
}
|
|
115
|
-
`:"h4"===e.variant?s.css`
|
|
116
|
-
font-size: ${e=>e.theme.font.sizeHeading.h4*e.theme.font.sizeDefault.default}px;
|
|
117
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
118
|
-
margin: 0;
|
|
119
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
120
|
-
font-size: ${e=>e.theme.font.sizeHeading.h4*e.theme.font.sizeDefault.tablet}px;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
124
|
-
font-size: ${e=>e.theme.font.sizeHeading.h4*e.theme.font.sizeDefault.mobile}px;
|
|
125
|
-
}
|
|
126
|
-
`:"h5"===e.variant?s.css`
|
|
127
|
-
font-size: ${e=>e.theme.font.sizeHeading.h5*e.theme.font.sizeDefault.default}px;
|
|
128
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
129
|
-
margin: 0;
|
|
130
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
131
|
-
font-size: ${e=>e.theme.font.sizeHeading.h5*e.theme.font.sizeDefault.tablet}px;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
135
|
-
font-size: ${e=>e.theme.font.sizeHeading.h5*e.theme.font.sizeDefault.mobile}px;
|
|
136
|
-
}
|
|
137
|
-
`:"h6"===e.variant?s.css`
|
|
138
|
-
font-size: ${e=>e.theme.font.sizeHeading.h6*e.theme.font.sizeDefault.default}px;
|
|
139
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
140
|
-
margin: 0;
|
|
141
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
142
|
-
font-size: ${e=>e.theme.font.sizeHeading.h6*e.theme.font.sizeDefault.tablet}px;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
146
|
-
font-size: ${e=>e.theme.font.sizeHeading.h6*e.theme.font.sizeDefault.mobile}px;
|
|
147
|
-
}
|
|
148
|
-
`:"h7"===e.variant?s.css`
|
|
149
|
-
font-size: ${e=>e.theme.font.sizeHeading.h7*e.theme.font.sizeDefault.default}px;
|
|
150
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
151
|
-
margin: 0;
|
|
152
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
153
|
-
font-size: ${e=>e.theme.font.sizeHeading.h7*e.theme.font.sizeDefault.tablet}px;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
157
|
-
font-size: ${e=>e.theme.font.sizeHeading.h7*e.theme.font.sizeDefault.mobile}px;
|
|
158
|
-
}
|
|
159
|
-
`:"h8"===e.variant?s.css`
|
|
160
|
-
font-size: ${e=>e.theme.font.sizeHeading.h8*e.theme.font.sizeDefault.default}px;
|
|
161
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
162
|
-
margin: 0;
|
|
163
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
164
|
-
font-size: ${e=>e.theme.font.sizeHeading.h8*e.theme.font.sizeDefault.tablet}px;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
168
|
-
font-size: ${e=>e.theme.font.sizeHeading.h8*e.theme.font.sizeDefault.mobile}px;
|
|
169
|
-
}
|
|
170
|
-
`:"h9"===e.variant?s.css`
|
|
171
|
-
font-size: ${e=>e.theme.font.sizeHeading.h9*e.theme.font.sizeDefault.default}px;
|
|
172
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
173
|
-
margin: 0;
|
|
174
|
-
@media (max-width: ${e=>e.theme.screens.tablet.width}px) {
|
|
175
|
-
font-size: ${e=>e.theme.font.sizeHeading.h9*e.theme.font.sizeDefault.tablet}px;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
@media (max-width: ${e=>e.theme.screens.mobile.width}px) {
|
|
179
|
-
font-size: ${e=>e.theme.font.sizeHeading.h9*e.theme.font.sizeDefault.mobile}px;
|
|
180
|
-
}
|
|
181
|
-
`:null:null};
|
|
182
|
-
`}const u=s.css`
|
|
183
|
-
${e=>{const t=e.$sxTypography;return t?m(t.default):null}}
|
|
184
|
-
|
|
185
|
-
${e=>{const t=e.$sxTypography;return t?Object.entries(t).filter(([e])=>"default"!==e).map(([t,i])=>{var n;const r=null==(n=e.theme.screens[t])?void 0:n.width;return r?s.css`
|
|
186
|
-
@media (max-width: ${r}px) {
|
|
187
|
-
${m(i)}
|
|
188
|
-
}
|
|
189
|
-
`:null}):null}}
|
|
190
|
-
`,x=s.css`
|
|
191
|
-
font-style: normal;
|
|
192
|
-
position: relative;
|
|
193
|
-
overflow: visible;
|
|
194
|
-
text-overflow: ellipsis;
|
|
195
|
-
overflow-wrap: anywhere;
|
|
196
|
-
line-height: ${e=>e.theme.font.lineHeight};
|
|
197
|
-
${u};
|
|
198
|
-
${f.addSX}
|
|
199
|
-
`,p=s.span`
|
|
200
|
-
${x}
|
|
201
|
-
${c.addOutline}
|
|
202
|
-
`,g=t=>{var i,n,o,c;const f=s.useTheme();return l.createPortal(e.jsxRuntimeExports.jsx(a.AnimatePresence,{children:t.isOpen&&e.jsxRuntimeExports.jsx("div",{tabIndex:-1,ref:t.ref,style:{position:"absolute",top:0,left:0,...t.floatingStyles,transform:t.floatingStyles.transform,zIndex:9999},children:e.jsxRuntimeExports.jsx(v,{tabIndex:-1,$isShowAlwaysOutline:t.isShowAlwaysOutline,$genre:t.genre??"black",$font:{size:(null==(i=t.font)?void 0:i.size)??r.KEY_SIZE_DATA[t.size??"medium"].font,weight:(null==(n=t.font)?void 0:n.weight)??700,family:(null==(o=t.font)?void 0:o.family)??f.font.family,height:null==(c=t.font)?void 0:c.height},className:t.className,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.2},$sx:t.sx,$size:t.size,$sxTypography:t.sxTypography,$maxHeight:t.maxHeight,$maxWidth:t.maxWidth,children:t.children})})}),document.body)},$=e=>{const{onFocus:t,onBlur:i,onBlurReference:s}=e,[r,a]=n.useState(!1),[l,c]=n.useState(void 0),[f,h]=n.useState(!1),{refs:d,floatingStyles:m,update:u,placement:x}=o.useFloating({open:r,placement:e.placement,middleware:[o.offset(e.offset??8),o.flip(),o.shift()],whileElementsMounted:o.autoUpdate}),p=n.useRef(null),g=n.useRef(null),$=n.useMemo(()=>e.hoverOffset??e.offset??E,[e.hoverOffset,e.offset]),w=n.useMemo(()=>e.hoverCloseDelay??y,[e.hoverCloseDelay]);n.useEffect(()=>{if(e.isDisabled)return;const t=d.reference.current;if(t){if(("click"===e.mode||"clickOpen"===e.mode)&&t instanceof HTMLElement){const i=()=>{"click"===e.mode?a(e=>!e):"clickOpen"===e.mode&&a(!0)};return t.addEventListener("click",i),()=>{t.removeEventListener("click",i)}}if("hover"===e.mode&&t instanceof HTMLElement){const e=()=>{a(!0)},i=()=>{g.current&&clearTimeout(g.current),g.current=setTimeout(()=>a(!1),w)};return t.addEventListener("mouseenter",e),t.addEventListener("mouseleave",i),()=>{t.removeEventListener("mouseenter",e),t.removeEventListener("mouseleave",i),g.current&&clearTimeout(g.current)}}}},[e.mode,d.reference,w,e.isDisabled]),n.useEffect(()=>{if(!r||!d.reference.current||!d.floating.current||e.isDisabled)return;const t=o.autoUpdate(d.reference.current,d.floating.current,u);return()=>t()},[r,d.reference,d.floating,u,e.isDisabled]),n.useEffect(()=>{if(r&&d.reference.current&&d.floating.current&&!e.isDisabled)return e.isClickOutside&&(p.current=t=>{const i=d.reference.current,n=d.floating.current,s=e.refsExcludeClickOutside||[];i instanceof HTMLElement&&n instanceof HTMLElement&&!i.contains(t.target)&&!n.contains(t.target)&&!s.some(e=>{var i;return"object"==typeof e&&null!==e&&"current"in e&&(null==(i=e.current)?void 0:i.contains(t.target))})&&a(!1)},document.addEventListener("mousedown",p.current)),()=>{p.current&&(document.removeEventListener("mousedown",p.current),p.current=null),g.current&&clearTimeout(g.current)}},[r,d.reference,d.floating,e.isClickOutside,e.isDisabled,e.refsExcludeClickOutside]),n.useEffect(()=>{if(!r||!e.isFloatingHover||!d.reference.current||!d.floating.current||e.isDisabled)return;const t=d.reference.current,i=d.floating.current,n=e=>{const n=e.clientX,s=e.clientY,r=t.getBoundingClientRect(),o=i.getBoundingClientRect(),l=n>=r.left-$&&n<=r.right+$&&s>=r.top-$&&s<=r.bottom+$,c=n>=o.left-$&&n<=o.right+$&&s>=o.top-$&&s<=o.bottom+$;l||c?g.current&&(clearTimeout(g.current),g.current=null):(g.current&&clearTimeout(g.current),g.current=setTimeout(()=>a(!1),w))};return document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n),g.current&&clearTimeout(g.current)}},[r,e.isFloatingHover,d.reference,d.floating,$,w,e.isDisabled]),n.useLayoutEffect(()=>{if(!e.isWidthAsContent||!d.reference.current)return;const t=d.reference.current.getBoundingClientRect();c(t.width)},[e.isWidthAsContent,d.reference]);const z=n.useCallback(()=>{e.isDisabled||a(!0)},[e.isDisabled]),b=n.useCallback(()=>{e.isDisabled||a(!1)},[e.isDisabled]),v=n.useCallback(()=>{e.isDisabled||a(e=>!e)},[e.isDisabled]),H=n.useMemo(()=>({...m,minWidth:e.isWidthAsContent&&l?`${l}px`:void 0,maxWidth:e.isWidthAsContent&&l?`${l}px`:void 0}),[m,e.isWidthAsContent,l]);n.useEffect(()=>{r&&(null==t||t(),h(!0))},[r,t]),n.useEffect(()=>{!r&&f&&(null==i||i())},[r,f,i]),n.useEffect(()=>{if(!r||e.isDisabled)return;const t=t=>{const i=d.reference.current,n=d.floating.current,s=e.refsExcludeClickOutside||[];i instanceof HTMLElement&&i.contains(t.target)||n instanceof HTMLElement&&n.contains(t.target)||s.some(e=>!!(e&&"current"in e&&e.current&&e.current instanceof HTMLElement)&&e.current.contains(t.target))||a(!1)};return document.addEventListener("focusin",t),()=>{document.removeEventListener("focusin",t)}},[r,d.reference,d.floating,e.refsExcludeClickOutside,e.isDisabled]),n.useEffect(()=>{if(!d.reference.current||e.isDisabled||!s)return;const t=d.reference.current,i=e.refsExcludeBlur||[],n=e=>{t instanceof HTMLElement&&!t.contains(e.relatedTarget)&&!i.some(t=>{if(t&&"current"in t&&t.current&&t.current instanceof HTMLElement)return t.current.contains(e.relatedTarget)})&&s()};return t instanceof HTMLElement&&t.addEventListener("blur",n,!0),()=>{t instanceof HTMLElement&&t.removeEventListener("blur",n,!0)}},[d.reference,e.isDisabled,s,e.refsExcludeBlur]);return{getIsInside:n.useCallback(t=>{if(!t)return!1;const i=d.reference.current,n=d.floating.current,s=e.refsExcludeBlur||[];return i instanceof HTMLElement&&i.contains(t)||n instanceof HTMLElement&&n.contains(t)||s.some(e=>!!(e&&"current"in e&&e.current&&e.current instanceof HTMLElement)&&e.current.contains(t))},[d.reference,d.floating,e.refsExcludeBlur]),isOpen:r,setIsOpen:a,open:z,close:b,toggle:v,refReference:d.setReference,refFloating:d.setFloating,floatingStyles:H,placement:x}},w=s.css`
|
|
203
|
-
${e=>s.css`
|
|
204
|
-
background: ${e.theme.colors.button[e.$genre].background.rest};
|
|
205
|
-
border-color: ${e.theme.colors.button[e.$genre].border.rest};
|
|
206
|
-
color: ${e.theme.colors.button[e.$genre].color.rest};
|
|
207
|
-
/* box-shadow: ${e.theme.effects.button}; */
|
|
208
|
-
`};
|
|
209
|
-
`,z=s.css`
|
|
210
|
-
${e=>b({...r.KEY_SIZE_DATA[e.$size??"medium"]})};
|
|
211
|
-
`,b=e=>s.css`
|
|
212
|
-
display: flex;
|
|
213
|
-
border-radius: ${e.radius}px;
|
|
214
|
-
padding: ${e.padding}px;
|
|
215
|
-
gap: ${e.padding-2}px;
|
|
216
|
-
`,v=s(a.motion.div)`
|
|
217
|
-
max-width: ${e=>e.$maxWidth||"100%"};
|
|
218
|
-
max-height: ${e=>e.$maxHeight||"100%"};
|
|
219
|
-
overflow: auto;
|
|
220
|
-
flex-direction: column;
|
|
221
|
-
${c.addFont};
|
|
222
|
-
${z};
|
|
223
|
-
${c.addAlwaysOutline};
|
|
224
|
-
${u};
|
|
225
|
-
${w};
|
|
226
|
-
${f.addSX};
|
|
227
|
-
`,E=8,y=100,H=s(h.Stack)`
|
|
228
|
-
display: flex;
|
|
229
|
-
width: fit-content;
|
|
230
|
-
height: fit-content;
|
|
231
|
-
`,D=s.css`
|
|
232
|
-
${e=>T({...r.KEY_SIZE_DATA[e.size??"medium"]})};
|
|
233
|
-
`,T=e=>s.css`
|
|
234
|
-
gap: 0px;
|
|
235
|
-
padding: ${e.padding}px ${e.padding}px 0px ${e.padding}px;
|
|
236
|
-
:after {
|
|
237
|
-
content: '';
|
|
238
|
-
display: block;
|
|
239
|
-
height: ${e.padding}px;
|
|
240
|
-
width: 100%;
|
|
241
|
-
}
|
|
242
|
-
`,j=s(g)`
|
|
243
|
-
${D};
|
|
244
|
-
`,L=n.memo(t=>t.isDisabled?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:t.children}):e.jsxRuntimeExports.jsx(k,{...t})),k=t=>{const{isOpen:i,refReference:n,refFloating:s,floatingStyles:r}=$({placement:t.placement??O,offset:t.offset??C,mode:t.mode??"hover",isClickOutside:t.isClickOutside??!0,isFloatingHover:t.isFloatingHover??!0,isWidthAsContent:t.isWidthAsContent??!1,hoverCloseDelay:t.hoverCloseDelay??void 0,hoverOffset:t.hoverOffset??void 0});return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(H,{sx:t.sx,ref:n,children:t.children}),e.jsxRuntimeExports.jsx(j,{size:t.size,isOpen:i,genre:t.genre,floatingStyles:r,ref:s,maxHeight:t.maxHeight,maxWidth:t.maxWidth,children:e.jsxRuntimeExports.jsx(R,{sx:t.sxTypography??{default:{size:14}},children:t.content})})]})};L.displayName="Tooltip";const O="bottom-start",C=8,S=i=>{const{screenActual:s}=t.useScreenWidth(),r=n.useMemo(()=>({$sxTypography:i.sx,style:i.style,className:i.className,$sx:i.sxStandard,$isDisabledOutline:i.isDisabledOutline,$isOutlineBoxShadow:i.isOutlineBoxShadow,$isReadOnly:i.isReadOnly,onClick:i.onClick?i.onClick:()=>{}}),[i.sx,i.style,i.className,i.sxStandard,i.onClick,i.isDisabledOutline,i.isOutlineBoxShadow,i.isReadOnly]),o=n.useMemo(()=>{var e,t;return(null==(e=i.sx)?void 0:e[s])??(null==(t=i.sx)?void 0:t.default)},[i.sx,s]);return o&&"variant"in o?"h7"===o.variant||"h8"===o.variant||"h9"===o.variant?e.jsxRuntimeExports.jsx(p,{ref:i.ref,as:i.isAnchor?"a":i.isParagraph?"p":(i.isSpan,"span"),href:i.href,...r,children:i.children}):e.jsxRuntimeExports.jsx(p,{ref:i.ref,as:i.isAnchor?"a":i.isParagraph?"p":i.isSpan?"span":o.variant,href:i.href,...r,children:i.children}):e.jsxRuntimeExports.jsx(p,{ref:i.ref,as:i.isAnchor?"a":i.isParagraph?"p":(i.isSpan,"span"),href:i.href,...r,children:i.children})},R=t=>e.jsxRuntimeExports.jsx(S,{...t}),A=t=>e.jsxRuntimeExports.jsx(S,{isAnchor:!0,...t,ref:t.ref,href:t.href}),M=i.createLink(A),F=n.memo(t=>{const[i,s]=n.useState(!1),r=n.useRef(null);return n.useEffect(()=>{const e=()=>{r.current&&s(r.current.scrollWidth>r.current.clientWidth)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[t.children]),e.jsxRuntimeExports.jsx(L,{isDisabled:!i,content:t.children,...t.tooltip,children:e.jsxRuntimeExports.jsx(S,{ref:r,...t.typography,style:{position:"relative"},children:t.children})})});F.displayName="TypographyTooltip",S.displayName="TypographyWithRef",A.displayName="TypographySizeIsAnchor",exports.DEFAULT_TOOLTIP_OFFSET_FALLBACK=C,exports.DEFAULT_TOOLTIP_PLACEMENT_FALLBACK=O,exports.Popover=g,exports.Title=p,exports.Tooltip=L,exports.TooltipBox=j,exports.TooltipContainer=H,exports.TooltipContent=k,exports.Typography=R,exports.TypographyLink=M,exports.TypographyTooltip=F,exports.addSXTypography=u,exports.addTooltipBoxSize=D,exports.addTooltipBoxSizeConstructor=T,exports.usePopover=$;
|
|
245
|
-
//# sourceMappingURL=component-BVnHSTJd.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-BVnHSTJd.cjs","sources":["../src/components/typography/component.styles.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","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 styled, { css } from 'styled-components';\n\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\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 { FC, Ref, memo } from 'react';\n\nimport { Typography } from '@local/components/typography';\n\nimport {\n DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n TooltipBox,\n TooltipContainer,\n TooltipProps,\n} from '.';\nimport { usePopover } from '../popover';\n\nexport const Tooltip: FC<TooltipProps> = memo((props) => {\n if (props.isDisabled) return <>{props.children}</>;\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';\n\nimport { createLink, LinkProps } from '@tanstack/react-router';\nimport { memo, useEffect, useMemo, useRef, useState } 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 [isOverflowing, setIsOverflowing] = useState(false);\n const contentRef = useRef<HTMLDivElement>(null);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const checkOverflow = () => {\n if (contentRef.current) {\n setIsOverflowing(contentRef.current.scrollWidth > contentRef.current.clientWidth);\n }\n };\n checkOverflow();\n window.addEventListener('resize', checkOverflow);\n return () => window.removeEventListener('resize', checkOverflow);\n }, [props.children]);\n\n return (\n <Tooltip isDisabled={!isOverflowing} content={props.children} {...props.tooltip}>\n <TypographyWithRef ref={contentRef} {...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":["shadowPulse","keyframes","toStyledCSS","value","css","shadow","letterSpacing","flex","cursor","overflow","line","family","weight","height","color","JeneseiPalette","align","wrap","decoration","transform","isHoverUnderlining","isNoUserSelect","size","variant","props","theme","font","sizeHeading","h1","sizeDefault","default","lineHeight","screens","tablet","width","mobile","h2","h3","h4","h5","h6","h7","h8","h9","addSXTypography","rawSX","$sxTypography","Object","entries","filter","key","map","deviceKey","screenWidth","_a","TypographyCSS","addSXStandard","Title","styled","span","addOutline","Popover","useTheme","ReactDOM","createPortal","jsx","AnimatePresence","children","isOpen","tabIndex","ref","style","position","top","left","floatingStyles","zIndex","PopoverWrapper","$isShowAlwaysOutline","isShowAlwaysOutline","$genre","genre","$font","KEY_SIZE_DATA","_b","_c","_d","className","initial","opacity","scale","animate","exit","transition","duration","$sx","sx","$size","sxTypography","$maxHeight","maxHeight","$maxWidth","maxWidth","document","body","usePopover","onFocus","onBlur","onBlurReference","setIsOpen","useState","minWidth","setMinWidth","wasEverOpen","setWasEverOpen","refs","update","placement","actualPlacement","useFloating","open","middleware","offset","flip","shift","whileElementsMounted","autoUpdate","clickOutsideHandler","useRef","hoverCloseTimeout","hoverOffset","useMemo","DEFAULT_POPOVER_OFFSET","hoverCloseDelay","DEFAULT_POPOVER_CLOSE_DELAY","useEffect","isDisabled","refEl","reference","current","mode","HTMLElement","handleClick","prev","addEventListener","removeEventListener","handleMouseEnter","handleMouseLeave","clearTimeout","setTimeout","floating","cleanup","isClickOutside","e","floatingEl","otherRefs","refsExcludeClickOutside","contains","target","some","isFloatingHover","handleMouseMove","mouseX","clientX","mouseY","clientY","refRect","getBoundingClientRect","floatingRect","isInsideRef","right","bottom","isInsideFloating","useLayoutEffect","isWidthAsContent","rect","useCallback","close","toggle","combinedStyles","handleFocusIn","refsExcludeBlur","handleBlur","relatedTarget","getIsInside","refReference","setReference","refFloating","setFloating","addPopoverGenre","colors","button","background","rest","border","effects","addPopoverSize","addPopoverSizeConstructor","radius","padding","motion","div","addFont","addAlwaysOutline","addSX","TooltipContainer","Stack","addTooltipBoxSize","addTooltipBoxSizeConstructor","TooltipBox","Tooltip","memo","Fragment","TooltipContent","DEFAULT_TOOLTIP_PLACEMENT_FALLBACK","DEFAULT_TOOLTIP_OFFSET_FALLBACK","jsxs","Typography","content","displayName","TypographyWithRef","screenActual","useScreenWidth","cssProps","sxStandard","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$isReadOnly","isReadOnly","onClick","screenSX","as","isAnchor","isParagraph","isSpan","href","TypographySizeIsAnchor","TypographyLink","createLink","TypographyTooltip","isOverflowing","setIsOverflowing","contentRef","checkOverflow","scrollWidth","clientWidth","window","tooltip","typography"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-GtWqnaqk.js","sources":["../src/components/typography/component.styles.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","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 styled, { css } from 'styled-components';\n\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\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 { FC, Ref, memo } from 'react';\n\nimport { Typography } from '@local/components/typography';\n\nimport {\n DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n TooltipBox,\n TooltipContainer,\n TooltipProps,\n} from '.';\nimport { usePopover } from '../popover';\n\nexport const Tooltip: FC<TooltipProps> = memo((props) => {\n if (props.isDisabled) return <>{props.children}</>;\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';\n\nimport { createLink, LinkProps } from '@tanstack/react-router';\nimport { memo, useEffect, useMemo, useRef, useState } 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 [isOverflowing, setIsOverflowing] = useState(false);\n const contentRef = useRef<HTMLDivElement>(null);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const checkOverflow = () => {\n if (contentRef.current) {\n setIsOverflowing(contentRef.current.scrollWidth > contentRef.current.clientWidth);\n }\n };\n checkOverflow();\n window.addEventListener('resize', checkOverflow);\n return () => window.removeEventListener('resize', checkOverflow);\n }, [props.children]);\n\n return (\n <Tooltip isDisabled={!isOverflowing} content={props.children} {...props.tooltip}>\n <TypographyWithRef ref={contentRef} {...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","Fragment","jsxs"],"mappings":";;;;;;;;;;;;AAQA,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYpB,SAAS,YAAY,OAA2B;AAC9C,SAAO;AAAA,MAEH,MAAM,UACN,MAAM,WAAW,iBACjB;AAAA,mBACa,WAAW;AAAA,KAE1B;AAAA,MAEE,MAAM,iBACN;AAAA,wBACkB,MAAM,aAAa;AAAA,KAEvC;AAAA,MAEE,MAAM,QACN;AAAA,cACQ,MAAM,IAAI;AAAA,KAEpB;AAAA,MAEE,MAAM,UACN;AAAA,gBACU,MAAM,MAAM;AAAA,KAExB;AAAA,MAEE,MAAM,YACN;AAAA,kBACY,MAAM,QAAQ;AAAA,KAE5B;AAAA,MAEE,MAAM,SAAS,SACX,MAAM,SAAS,IACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAOsB,MAAM,IAAI;AAAA;AAAA;AAAA,cAIlC,KACN;AAAA,MAEE,MAAM,UACN;AAAA,qBACe,MAAM,MAAM;AAAA,KAE7B;AAAA,MAEE,MAAM,UACN;AAAA,qBACe,MAAM,MAAM;AAAA,KAE7B;AAAA,MAEE,MAAM,UACN;AAAA,qBACe,MAAM,MAAM;AAAA,KAE7B;AAAA,MAEE,MAAM,SACN;AAAA,eACS,eAAe,MAAM,KAAK,CAAC;AAAA,KAEtC;AAAA,MAEE,MAAM,SACN;AAAA,oBACc,MAAM,KAAK;AAAA,KAE3B;AAAA,MAEE,MAAM,QACN;AAAA,mBACa,MAAM,IAAI;AAAA,KAEzB;AAAA,MAEE,MAAM,cACN;AAAA,yBACmB,MAAM,UAAU;AAAA,KAErC;AAAA,MAEE,MAAM,aACN;AAAA,wBACkB,MAAM,SAAS;AAAA,KAEnC;AAAA,MAEE,MAAM,sBACN;AAAA;AAAA;AAAA;AAAA,KAKF;AAAA,MAEE,MAAM,kBACN;AAAA;AAAA;AAAA;AAAA;AAAA,KAMF;AAAA,MAEE,UAAU,SACV,MAAM,QACN;AAAA,mBACa,MAAM,IAAI;AAAA,KAEzB;AAAA,MAEE,aAAa,SAAS,MAAM,UACxB,MAAM,YAAY,OAChB;AAAA,yBACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,2BAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,iCAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,2BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,iCAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,2BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,cAG/F,MAAM,YAAY,OAChB;AAAA,2BACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,6BAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,mCAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,6BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,mCAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,6BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,gBAG/F,MAAM,YAAY,OAChB;AAAA,6BACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,+BAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,qCAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,+BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,qCAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,+BACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,kBAG/F,MAAM,YAAY,OAChB;AAAA,+BACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,iCAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,uCAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,iCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,uCAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,iCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,oBAG/F,MAAM,YAAY,OAChB;AAAA,iCACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,mCAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,yCAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,mCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,yCAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,mCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,sBAG/F,MAAM,YAAY,OAChB;AAAA,mCACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,qCAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,2CAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,qCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,2CAG1E,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,qCACjD,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,wBAG/F,MAAM,YAAY,OAChB;AAAA,qCACa,CAAC,UAAU,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,uCAC/E,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,6CAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,uCACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,6CAGpD,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,uCACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,0BAGzE,MAAM,YAAY,OAChB;AAAA,uCACa,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,yCACzD,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,+CAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,yCACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,+CAGpD,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,yCACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,4BAGzE,MAAM,YAAY,OAChB;AAAA,yCACa,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO;AAAA,2CACzD,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA;AAAA,iDAEhC,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,2CACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA;AAAA,iDAGpD,CAAC,UAAU,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,2CACjD,CAAC,UACZ,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM;AAAA;AAAA,8BAGzE,OAClB,IACN;AAAA;AAEJ;AAEO,MAAM,kBAAkB;AAAA,IAC3B,CAAC,UAAU;AACX,QAAM,QAAQ,MAAM;AACpB,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,YAAY,MAAM,OAAO;AAClC,CAAC;AAAA;AAAA,IAEC,CAAC,UAAU;AACX,QAAM,QAAQ,MAAM;AACpB,MAAI,CAAC,MAAO,QAAO;AAEnB,SAAO,OAAO,QAAQ,KAAK,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,SAAS,EACnC,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM;;AAC3B,UAAM,eAAc,WAAM,MAAM,QAAQ,SAA6C,MAAjE,mBAAoE;AACxF,QAAI,CAAC,YAAa,QAAO;AACzB,WAAO;AAAA,+BACgB,WAAW;AAAA,cAC5B,YAAY,KAAK,CAAC;AAAA;AAAA;AAAA,EAAA,CAGzB;AACL,CAAC;AAAA;AAGH,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAML,CAAC,UAAU,MAAM,MAAM,KAAK,UAAU;AAAA,IACnD,eAAe;AAAA,IACfA,KAAa;AAAA;AAGV,MAAM,QAAQ,OAAO;AAAA,IACxB,aAAa;AAAA,IACb,UAAU;AAAA;ACrTP,MAAM,UAA4B,CAAC,UAAU;;AAClD,QAAM,QAAQ,SAAA;AACd,SAAOC,kBAAS;AAAA,IACdC,kCAAAA,IAAC,iBAAA,EACE,UAAA,MAAM,UACLA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,KAAK,MAAM;AAAA,QACX,OAAO;AAAA,UACL,UAAU;AAAA,UACV,KAAK;AAAA,UACL,MAAM;AAAA,UACN,GAAG,MAAM;AAAA,UACT,WAAW,MAAM,eAAe;AAAA,UAChC,QAAQ;AAAA,QAAA;AAAA,QAGV,UAAAA,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,UAAU;AAAA,YACV,sBAAsB,MAAM;AAAA,YAC5B,QAAQ,MAAM,SAAS;AAAA,YACvB,OAAO;AAAA,cACL,QAAM,WAAM,SAAN,mBAAY,SAAQ,cAAc,MAAM,QAAQ,QAAQ,EAAE;AAAA,cAChE,UAAQ,WAAM,SAAN,mBAAY,WAAU;AAAA,cAC9B,UAAQ,WAAM,SAAN,mBAAY,WAAU,MAAM,KAAK;AAAA,cACzC,SAAQ,WAAM,SAAN,mBAAY;AAAA,YAAA;AAAA,YAEtB,WAAW,MAAM;AAAA,YACjB,SAAS,EAAE,SAAS,GAAG,OAAO,KAAA;AAAA,YAC9B,SAAS,EAAE,SAAS,GAAG,OAAO,EAAA;AAAA,YAC9B,MAAM,EAAE,SAAS,GAAG,OAAO,KAAA;AAAA,YAC3B,YAAY,EAAE,UAAU,IAAA;AAAA,YACxB,KAAK,MAAM;AAAA,YACX,OAAO,MAAM;AAAA,YACb,eAAe,MAAM;AAAA,YACrB,YAAY,MAAM;AAAA,YAClB,WAAW,MAAM;AAAA,YAEhB,UAAA,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACT;AAAA,IAAA,GAGN;AAAA,IACA,SAAS;AAAA,EAAA;AAEb;AAEO,MAAM,aAAa,CAAC,UAA2B;AACpD,QAAM,EAAE,SAAS,QAAQ,gBAAA,IAAoB;AAG7C,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,QAAM,CAAC,UAAU,WAAW,IAAI,SAA6B,MAAS;AAEtE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAGpD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EAAA,IACT,YAAY;AAAA,IACd,MAAM;AAAA,IACN,WAAW,MAAM;AAAA,IACjB,YAAY,CAAC,OAAO,MAAM,UAAU,CAAC,GAAG,QAAQ,OAAO;AAAA,IACvD,sBAAsB;AAAA,EAAA,CACvB;AAGD,QAAM,sBAAsB,OAAyC,IAAI;AAEzE,QAAM,oBAAoB,OAA6C,IAAI;AAG3E,QAAM,cAAc;AAAA,IAClB,MAAM,MAAM,eAAe,MAAM,UAAU;AAAA,IAC3C,CAAC,MAAM,aAAa,MAAM,MAAM;AAAA,EAAA;AAGlC,QAAM,kBAAkB,QAAQ,MAAM,MAAM,mBAAmB,6BAA6B,CAAC,MAAM,eAAe,CAAC;AAOnH,YAAU,MAAM;AACd,QAAI,MAAM,WAAY;AACtB,UAAM,QAAQ,KAAK,UAAU;AAC7B,QAAI,CAAC,MAAO;AAGZ,SAAK,MAAM,SAAS,WAAW,MAAM,SAAS,gBAAgB,iBAAiB,aAAa;AAC1F,YAAM,cAAc,MAAM;AACxB,YAAI,MAAM,SAAS,SAAS;AAC1B,oBAAU,CAAC,SAAS,CAAC,IAAI;AAAA,QAAA,WAChB,MAAM,SAAS,aAAa;AACrC,oBAAU,IAAI;AAAA,QAAA;AAAA,MAChB;AAGF,YAAM,iBAAiB,SAAS,WAAW;AAC3C,aAAO,MAAM;AACX,cAAM,oBAAoB,SAAS,WAAW;AAAA,MAAA;AAAA,IAChD,WAGS,MAAM,SAAS,WAAW,iBAAiB,aAAa;AACjE,YAAM,mBAAmB,MAAM;AAC7B,kBAAU,IAAI;AAAA,MAAA;AAEhB,YAAM,mBAAmB,MAAM;AAC7B,YAAI,kBAAkB,QAAS,cAAa,kBAAkB,OAAO;AACrE,0BAAkB,UAAU,WAAW,MAAM,UAAU,KAAK,GAAG,eAAe;AAAA,MAAA;AAGhF,YAAM,iBAAiB,cAAc,gBAAgB;AACrD,YAAM,iBAAiB,cAAc,gBAAgB;AACrD,aAAO,MAAM;AACX,cAAM,oBAAoB,cAAc,gBAAgB;AACxD,cAAM,oBAAoB,cAAc,gBAAgB;AACxD,YAAI,kBAAkB,QAAS,cAAa,kBAAkB,OAAO;AAAA,MAAA;AAAA,IACvE;AAAA,EACF,GACC,CAAC,MAAM,MAAM,KAAK,WAAW,iBAAiB,MAAM,UAAU,CAAC;AAGlE,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,CAAC,KAAK,UAAU,WAAW,CAAC,KAAK,SAAS,WAAW,MAAM,WAAY;AAEtF,UAAM,UAAU,WAAW,KAAK,UAAU,SAAS,KAAK,SAAS,SAAS,MAAM;AAEhF,WAAO,MAAM,QAAA;AAAA,EAAQ,GACpB,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,QAAQ,MAAM,UAAU,CAAC;AAKpE,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,CAAC,KAAK,UAAU,WAAW,CAAC,KAAK,SAAS,WAAW,MAAM,WAAY;AAEtF,QAAI,MAAM,gBAAgB;AACxB,0BAAoB,UAAU,CAAC,MAAkB;AAC/C,cAAM,QAAQ,KAAK,UAAU;AAC7B,cAAM,aAAa,KAAK,SAAS;AACjC,cAAM,YAAY,MAAM,2BAA2B,CAAA;AAGnD,YACE,iBAAiB,eACjB,sBAAsB,eACtB,CAAC,MAAM,SAAS,EAAE,MAAc,KAChC,CAAC,WAAW,SAAS,EAAE,MAAc,KACrC,CAAC,UAAU,KAAK,CAAC,QAAQ;;AACvB,cAAI,OAAO,QAAQ,YAAY,QAAQ,QAAQ,aAAa,KAAK;AAC/D,oBAAQ,SAAI,YAAJ,mBAAoC,SAAS,EAAE;AAAA,UAAc;AAEvE,iBAAO;AAAA,QAAA,CACR,GACD;AACA,oBAAU,KAAK;AAAA,QAAA;AAAA,MACjB;AAGF,eAAS,iBAAiB,aAAa,oBAAoB,OAAO;AAAA,IAAA;AAGpE,WAAO,MAAM;AACX,UAAI,oBAAoB,SAAS;AAC/B,iBAAS,oBAAoB,aAAa,oBAAoB,OAAO;AACrE,4BAAoB,UAAU;AAAA,MAAA;AAEhC,UAAI,kBAAkB,SAAS;AAC7B,qBAAa,kBAAkB,OAAO;AAAA,MAAA;AAAA,IACxC;AAAA,EACF,GACC,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,MAAM,gBAAgB,MAAM,YAAY,MAAM,uBAAuB,CAAC;AAMjH,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,CAAC,MAAM,mBAAmB,CAAC,KAAK,UAAU,WAAW,CAAC,KAAK,SAAS,WAAW,MAAM;AAClG;AAEF,UAAM,QAAQ,KAAK,UAAU;AAC7B,UAAM,aAAa,KAAK,SAAS;AAEjC,UAAM,kBAAkB,CAAC,MAAkB;AACzC,YAAM,SAAS,EAAE;AACjB,YAAM,SAAS,EAAE;AAEjB,YAAM,UAAU,MAAM,sBAAA;AACtB,YAAM,eAAe,WAAW,sBAAA;AAGhC,YAAM,cACJ,UAAU,QAAQ,OAAO,eACzB,UAAU,QAAQ,QAAQ,eAC1B,UAAU,QAAQ,MAAM,eACxB,UAAU,QAAQ,SAAS;AAE7B,YAAM,mBACJ,UAAU,aAAa,OAAO,eAC9B,UAAU,aAAa,QAAQ,eAC/B,UAAU,aAAa,MAAM,eAC7B,UAAU,aAAa,SAAS;AAElC,UAAI,eAAe,kBAAkB;AAEnC,YAAI,kBAAkB,SAAS;AAC7B,uBAAa,kBAAkB,OAAO;AACtC,4BAAkB,UAAU;AAAA,QAAA;AAAA,MAC9B,OACK;AAEL,YAAI,kBAAkB,QAAS,cAAa,kBAAkB,OAAO;AACrE,0BAAkB,UAAU,WAAW,MAAM,UAAU,KAAK,GAAG,eAAe;AAAA,MAAA;AAAA,IAChF;AAGF,aAAS,iBAAiB,aAAa,eAAe;AAEtD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,eAAe;AACzD,UAAI,kBAAkB,SAAS;AAC7B,qBAAa,kBAAkB,OAAO;AAAA,MAAA;AAAA,IACxC;AAAA,EACF,GACC,CAAC,QAAQ,MAAM,iBAAiB,KAAK,WAAW,KAAK,UAAU,aAAa,iBAAiB,MAAM,UAAU,CAAC;AAKjH,kBAAgB,MAAM;AACpB,QAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,UAAU,QAAS;AACxD,UAAM,OAAO,KAAK,UAAU,QAAQ,sBAAA;AACpC,gBAAY,KAAK,KAAK;AAAA,EAAA,GACrB,CAAC,MAAM,kBAAkB,KAAK,SAAS,CAAC;AAG3C,QAAM,OAAO,YAAY,MAAM;AAC7B,QAAI,MAAM,WAAY;AACtB,cAAU,IAAI;AAAA,EAAA,GACb,CAAC,MAAM,UAAU,CAAC;AACrB,QAAM,QAAQ,YAAY,MAAM;AAC9B,QAAI,MAAM,WAAY;AACtB,cAAU,KAAK;AAAA,EAAA,GACd,CAAC,MAAM,UAAU,CAAC;AACrB,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,MAAM,WAAY;AACtB,cAAU,CAAC,SAAS,CAAC,IAAI;AAAA,EAAA,GACxB,CAAC,MAAM,UAAU,CAAC;AAGrB,QAAM,iBAAiB,QAAQ,MAAM;AACnC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,MAAM,oBAAoB,WAAW,GAAG,QAAQ,OAAO;AAAA,MACjE,UAAU,MAAM,oBAAoB,WAAW,GAAG,QAAQ,OAAO;AAAA,IAAA;AAAA,EACnE,GACC,CAAC,gBAAgB,MAAM,kBAAkB,QAAQ,CAAC;AAMrD,YAAU,MAAM;AACd,QAAI,QAAQ;AACV;AACA,qBAAe,IAAI;AAAA,IAAA;AAAA,EACrB,GACC,CAAC,QAAQ,OAAO,CAAC;AAKpB,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,aAAa;AAC1B;AAAA,IAAS;AAAA,EACX,GACC,CAAC,QAAQ,aAAa,MAAM,CAAC;AAMhC,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,MAAM,WAAY;AAEjC,UAAM,gBAAgB,CAAC,MAAkB;AACvC,YAAM,QAAQ,KAAK,UAAU;AAC7B,YAAM,aAAa,KAAK,SAAS;AACjC,YAAM,YAAY,MAAM,2BAA2B,CAAA;AAEnD,YAAM,WACH,iBAAiB,eAAe,MAAM,SAAS,EAAE,MAAc,KAC/D,sBAAsB,eAAe,WAAW,SAAS,EAAE,MAAc,KAC1E,UAAU,KAAK,CAAC,QAAQ;AACtB,YAAI,OAAO,aAAa,OAAO,IAAI,WAAW,IAAI,mBAAmB,aAAa;AAChF,iBAAO,IAAI,QAAQ,SAAS,EAAE,MAAc;AAAA,QAAA;AAE9C,eAAO;AAAA,MAAA,CACR;AAEH,UAAI,CAAC,UAAU;AACb,kBAAU,KAAK;AAAA,MAAA;AAAA,IACjB;AAGF,aAAS,iBAAiB,WAAW,aAAa;AAElD,WAAO,MAAM;AACX,eAAS,oBAAoB,WAAW,aAAa;AAAA,IAAA;AAAA,EACvD,GACC,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,MAAM,yBAAyB,MAAM,UAAU,CAAC;AAM3F,YAAU,MAAM;AACd,QAAI,CAAC,KAAK,UAAU,WAAW,MAAM,cAAc,CAAC,gBAAiB;AAErE,UAAM,QAAQ,KAAK,UAAU;AAC7B,UAAM,YAAY,MAAM,mBAAmB,CAAA;AAE3C,UAAM,aAAa,CAAC,MAAkB;AACpC,UACE,iBAAiB,eACjB,CAAC,MAAM,SAAS,EAAE,aAAqB,KACvC,CAAC,UAAU,KAAK,CAAC,QAAQ;AACvB,YAAI,OAAO,aAAa,OAAO,IAAI,WAAW,IAAI,mBAAmB;AACnE,iBAAO,IAAI,QAAQ,SAAS,EAAE,aAAqB;AAAA,MAAA,CACtD,GACD;AACA,wBAAA;AAAA,MAAgB;AAAA,IAClB;AAGF,QAAI,iBAAiB,YAAa,OAAM,iBAAiB,QAAQ,YAAY,IAAI;AAEjF,WAAO,MAAM;AACX,UAAI,iBAAiB,YAAa,OAAM,oBAAoB,QAAQ,YAAY,IAAI;AAAA,IAAA;AAAA,EACtF,GACC,CAAC,KAAK,WAAW,MAAM,YAAY,iBAAiB,MAAM,eAAe,CAAC;AAK7E,QAAM,cAAc;AAAA,IAClB,CAAC,WAAwB;AACvB,UAAI,CAAC,OAAQ,QAAO;AAEpB,YAAM,QAAQ,KAAK,UAAU;AAC7B,YAAM,aAAa,KAAK,SAAS;AACjC,YAAM,YAAY,MAAM,mBAAmB,CAAA;AAE3C,aACG,iBAAiB,eAAe,MAAM,SAAS,MAAM,KACrD,sBAAsB,eAAe,WAAW,SAAS,MAAM,KAChE,UAAU,KAAK,CAAC,QAAQ;AACtB,YAAI,OAAO,aAAa,OAAO,IAAI,WAAW,IAAI,mBAAmB,aAAa;AAChF,iBAAO,IAAI,QAAQ,SAAS,MAAM;AAAA,QAAA;AAEpC,eAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAGL,CAAC,KAAK,WAAW,KAAK,UAAU,MAAM,eAAe;AAAA,EAAA;AAGvD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,KAAK;AAAA,IACnB,aAAa,KAAK;AAAA,IAClB,gBAAgB;AAAA,IAChB,WAAW;AAAA,EAAA;AAEf;AClYA,MAAM,kBAAkB;AAAA,IACpB,CAAC,UAAU;AAAA,kBACG,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,WAAW,IAAI;AAAA,oBACrD,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,OAAO,IAAI;AAAA,aAC1D,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,MAAM,IAAI;AAAA,qBAC1C,MAAM,MAAM,QAAQ,MAAM;AAAA,GAC5C;AAAA;AAII,MAAM,iBAAiB;AAAA,IAC1B,CAAC,UACD,0BAA0B;AAAA,EACxB,GAAG,cAAc,MAAM,SAAS,QAAQ;AAC1C,CAAC,CAAC;AAAA;AAEC,MAAM,4BAA4B,CAAC,UAAqC;AAAA;AAAA,mBAE5D,MAAM,MAAM;AAAA,aAClB,MAAM,OAAO;AAAA,SACjB,MAAM,UAAU,CAAC;AAAA;AAInB,MAAM,iBAAiB,OAAO,OAAO,GAAG;AAAA,eAChC,CAAC,UAAU,MAAM,aAAa,MAAM;AAAA,gBACnC,CAAC,UAAU,MAAM,cAAc,MAAM;AAAA;AAAA;AAAA,IAGjD,OAAO;AAAA,IACP,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,KAAK;AAAA;AC7CF,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;ACMpC,MAAM,mBAAmB,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAMrC,MAAM,oBAAoB;AAAA,IAC7B,CAAC,UACD,6BAA6B;AAAA,EAC3B,GAAG,cAAc,MAAM,QAAQ,QAAQ;AACzC,CAAC,CAAC;AAAA;AAEC,MAAM,+BAA+B,CAAC,UAAqC;AAAA;AAAA,aAErE,MAAM,OAAO,MAAM,MAAM,OAAO,UAAU,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,cAItD,MAAM,OAAO;AAAA;AAAA;AAAA;AAMpB,MAAM,aAAa,OAAO,OAAO;AAAA,IACpC,iBAAiB;AAAA;ACnBd,MAAM,UAA4B,KAAK,CAAC,UAAU;AACvD,MAAI,MAAM,WAAY,QAAOA,kCAAAA,IAAAC,kBAAAA,UAAA,EAAG,gBAAM,UAAS;AAE/C,SAAOD,sCAAC,gBAAA,EAAgB,GAAG,MAAA,CAAO;AACpC,CAAC;AAEM,MAAM,iBAAmC,CAAC,UAAU;AACzD,QAAM,EAAE,QAAQ,cAAc,aAAa,eAAA,IAAmB,WAAW;AAAA,IACvE,WAAW,MAAM,aAAa;AAAA,IAC9B,QAAQ,MAAM,UAAU;AAAA,IACxB,MAAM,MAAM,QAAQ;AAAA,IACpB,gBAAgB,MAAM,kBAAkB;AAAA,IACxC,iBAAiB,MAAM,mBAAmB;AAAA,IAC1C,kBAAkB,MAAM,oBAAoB;AAAA,IAC5C,iBAAiB,MAAM,mBAAmB;AAAA,IAC1C,aAAa,MAAM,eAAe;AAAA,EAAA,CACnC;AACD,SACEE,kCAAAA,KAAAD,4BAAA,EACE,UAAA;AAAA,IAAAD,kCAAAA,IAAC,oBAAiB,IAAI,MAAM,IAAI,KAAK,cAClC,gBAAM,SAAA,CACT;AAAA,IACAA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,MAAM;AAAA,QACZ;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA,KAAK;AAAA,QACL,WAAW,MAAM;AAAA,QACjB,UAAU,MAAM;AAAA,QAEhB,UAAAA,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IACE,MAAM,gBAAgB;AAAA,cACpB,SAAS;AAAA,gBACP,MAAM;AAAA,cAAA;AAAA,YACR;AAAA,YAIH,UAAA,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACT;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAEA,QAAQ,cAAc;AC1Df,MAAM,qCAAgD;AACtD,MAAM,kCAA0C;ACKvD,MAAM,oBAAoB,CAAC,UAA2B;AACpD,QAAM,EAAE,aAAA,IAAiB,eAAA;AACzB,QAAM,WAA0F;AAAA,IAC9F,OAAO;AAAA,MACL,eAAe,MAAM;AAAA,MACrB,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,KAAK,MAAM;AAAA,MACX,oBAAoB,MAAM;AAAA,MAC1B,qBAAqB,MAAM;AAAA,MAC3B,aAAa,MAAM;AAAA,MACnB,SAAS,MAAM,UAAU,MAAM,UAAU,MAAM;AAAA,MAAA;AAAA,IAAC;AAAA,IAElD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACR;AAGF,QAAM,WAAW,QAAQ,MAAA;;AAAM,wBAAM,OAAN,mBAAW,oBAAiB,WAAM,OAAN,mBAAU;AAAA,KAAS,CAAC,MAAM,IAAI,YAAY,CAAC;AAEtG,MAAI,YAAY,aAAa,UAAU;AACrC,QAAI,SAAS,YAAY,QAAQ,SAAS,YAAY,QAAQ,SAAS,YAAY,MAAM;AACvF,aACEA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UAEC,KAAK,MAAM;AAAA,UACX,IAAI,MAAM,WAAW,MAAM,MAAM,cAAc,MAAM,MAAM,SAAS,SAAS;AAAA,UAC7E,MAAM,MAAM;AAAA,UACX,GAAG;AAAA,UAEH,UAAA,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACT,OAEG;AACL,aACEA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UAEC,KAAK,MAAM;AAAA,UACX,IAAI,MAAM,WAAW,MAAM,MAAM,cAAc,MAAM,MAAM,SAAS,SAAS,SAAS;AAAA,UACtF,MAAM,MAAM;AAAA,UACX,GAAG;AAAA,UAEH,UAAA,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAEJ;AAGF,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MAEC,KAAK,MAAM;AAAA,MACX,IAAI,MAAM,WAAW,MAAM,MAAM,cAAc,MAAM,MAAM,SAAS,SAAS;AAAA,MAC7E,MAAM,MAAM;AAAA,MACX,GAAG;AAAA,MAEH,UAAA,MAAM;AAAA,IAAA;AAAA,EAAA;AAGb;AAEO,MAAM,aAAa,CAAC,UAA2B;AACpD,SAAOA,sCAAC,mBAAA,EAAmB,GAAG,MAAA,CAAO;AACvC;AAEA,MAAM,yBAAyB,CAAC,UAAuC;AACrE,SAAOA,kCAAAA,IAAC,mBAAA,EAAkB,UAAQ,MAAE,GAAG,OAAO,KAAK,MAAM,KAAK,MAAM,MAAM,KAAA,CAAM;AAClF;AAEO,MAAM,iBAAiB,WAAW,sBAAsB;AAExD,MAAM,oBAAoB,KAAK,CAAC,UAAkC;AACvE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,aAAa,OAAuB,IAAI;AAG9C,YAAU,MAAM;AACd,UAAM,gBAAgB,MAAM;AAC1B,UAAI,WAAW,SAAS;AACtB,yBAAiB,WAAW,QAAQ,cAAc,WAAW,QAAQ,WAAW;AAAA,MAAA;AAAA,IAClF;AAEF,kBAAA;AACA,WAAO,iBAAiB,UAAU,aAAa;AAC/C,WAAO,MAAM,OAAO,oBAAoB,UAAU,aAAa;AAAA,EAAA,GAC9D,CAAC,MAAM,QAAQ,CAAC;AAEnB,SACEA,kCAAAA,IAAC,SAAA,EAAQ,YAAY,CAAC,eAAe,SAAS,MAAM,UAAW,GAAG,MAAM,SACtE,UAAAA,kCAAAA,IAAC,qBAAkB,KAAK,YAAa,GAAG,MAAM,YAAY,OAAO,EAAE,UAAU,WAAA,GAC1E,UAAA,MAAM,SAAA,CACT,EAAA,CACF;AAEJ,CAAC;AAED,kBAAkB,cAAc;AAChC,kBAAkB,cAAc;AAChC,uBAAuB,cAAc;"}
|