@jenesei-software/jenesei-kit-react 1.3.19 → 1.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/build/area-BLgNLu9A.js +19 -0
  2. package/build/area-BLgNLu9A.js.map +1 -0
  3. package/build/area-C5QUBcb-.js +26 -0
  4. package/build/area-C5QUBcb-.js.map +1 -0
  5. package/build/area-DAgP6K9K.cjs +2 -0
  6. package/build/area-DAgP6K9K.cjs.map +1 -0
  7. package/build/area-k8GR7Khj.cjs +2 -0
  8. package/build/area-k8GR7Khj.cjs.map +1 -0
  9. package/build/area-preview.cjs.js +1 -1
  10. package/build/area-preview.es.js +1 -1
  11. package/build/area-scroll.cjs.js +1 -1
  12. package/build/area-scroll.es.js +3 -2
  13. package/build/area-scroll.es.js.map +1 -1
  14. package/build/area-skeleton.cjs.js +1 -1
  15. package/build/area-skeleton.es.js +3 -2
  16. package/build/area-skeleton.es.js.map +1 -1
  17. package/build/{area-BDMDiVi1.js → area.styles-BJCDsTi3.js} +2 -24
  18. package/build/area.styles-BJCDsTi3.js.map +1 -0
  19. package/build/area.styles-CtrTLcAj.cjs +40 -0
  20. package/build/area.styles-CtrTLcAj.cjs.map +1 -0
  21. package/build/{area-CmCMHnRA.cjs → area.styles-DQBIvHdz.cjs} +3 -3
  22. package/build/area.styles-DQBIvHdz.cjs.map +1 -0
  23. package/build/{area-BWxBop5m.js → area.styles-DWqSyo49.js} +2 -17
  24. package/build/area.styles-DWqSyo49.js.map +1 -0
  25. package/build/build-info.txt +3 -3
  26. package/build/component-86oA9dYz.cjs +2 -0
  27. package/build/component-86oA9dYz.cjs.map +1 -0
  28. package/build/component-BLW4AlTi.cjs +2 -0
  29. package/build/component-BLW4AlTi.cjs.map +1 -0
  30. package/build/component-BLa80fGE.cjs +2 -0
  31. package/build/component-BLa80fGE.cjs.map +1 -0
  32. package/build/{component.styles-CwTYpBx_.js → component-BX7rFpno.js} +11 -63
  33. package/build/component-BX7rFpno.js.map +1 -0
  34. package/build/{component.styles-0apMzB81.js → component-BtgXUCiJ.js} +5 -75
  35. package/build/component-BtgXUCiJ.js.map +1 -0
  36. package/build/component-C-yqkm2n.cjs +2 -0
  37. package/build/component-C-yqkm2n.cjs.map +1 -0
  38. package/build/{component.styles-C4Bz4OTl.js → component-C56biWpi.js} +6 -16
  39. package/build/component-C56biWpi.js.map +1 -0
  40. package/build/component-CHmCK6Bc.js +10 -0
  41. package/build/component-CHmCK6Bc.js.map +1 -0
  42. package/build/component-Cp8VTqb2.js +21 -0
  43. package/build/component-Cp8VTqb2.js.map +1 -0
  44. package/build/component-Cr62wN62.js +64 -0
  45. package/build/component-Cr62wN62.js.map +1 -0
  46. package/build/component-D9Fz-_ZH.cjs +2 -0
  47. package/build/component-D9Fz-_ZH.cjs.map +1 -0
  48. package/build/{component.styles-euSUJAiA.js → component-DDVjxLvn.js} +5 -38
  49. package/build/component-DDVjxLvn.js.map +1 -0
  50. package/build/{component.styles-CHqowxsZ.js → component-DF8wYX_U.js} +3 -45
  51. package/build/component-DF8wYX_U.js.map +1 -0
  52. package/build/component-DP42Uzl2.cjs +2 -0
  53. package/build/{component-Bj7sLW9s.cjs.map → component-DP42Uzl2.cjs.map} +1 -1
  54. package/build/{component-B80It4vM.js → component-DQrnK2Bj.js} +5 -5
  55. package/build/component-DQrnK2Bj.js.map +1 -0
  56. package/build/component-DXSNBORy.cjs +2 -0
  57. package/build/component-DXSNBORy.cjs.map +1 -0
  58. package/build/component-DdSHuopV.cjs +2 -0
  59. package/build/component-DdSHuopV.cjs.map +1 -0
  60. package/build/{component.styles-KBaixm0o.js → component-DerXrx9p.js} +4 -56
  61. package/build/component-DerXrx9p.js.map +1 -0
  62. package/build/{component-CKBpm4U4.js → component-DhCe6E21.js} +2 -3
  63. package/build/{component-CKBpm4U4.js.map → component-DhCe6E21.js.map} +1 -1
  64. package/build/component-Ds6eJznV.cjs +2 -0
  65. package/build/component-Ds6eJznV.cjs.map +1 -0
  66. package/build/{component.styles-AEJ_tw7Y.js → component-DyEa0lzB.js} +4 -25
  67. package/build/component-DyEa0lzB.js.map +1 -0
  68. package/build/component-GqA6sCHI.cjs +2 -0
  69. package/build/component-GqA6sCHI.cjs.map +1 -0
  70. package/build/component-IlhRGJHX.cjs +2 -0
  71. package/build/component-IlhRGJHX.cjs.map +1 -0
  72. package/build/component-KwYlKatx.cjs +2 -0
  73. package/build/component-KwYlKatx.cjs.map +1 -0
  74. package/build/component-accordion.cjs.js +1 -1
  75. package/build/component-accordion.es.js +7 -6
  76. package/build/component-accordion.es.js.map +1 -1
  77. package/build/component-button-group.cjs.js +1 -1
  78. package/build/component-button-group.es.js +4 -3
  79. package/build/component-button-group.es.js.map +1 -1
  80. package/build/component-button.cjs.js +1 -1
  81. package/build/component-button.es.js +2 -2
  82. package/build/component-checkbox-group.cjs.js +1 -1
  83. package/build/component-checkbox-group.es.js +8 -7
  84. package/build/component-checkbox-group.es.js.map +1 -1
  85. package/build/component-checkbox.cjs.js +1 -1
  86. package/build/component-checkbox.es.js +6 -5
  87. package/build/component-checkbox.es.js.map +1 -1
  88. package/build/component-date-picker.cjs.js +1 -1
  89. package/build/component-date-picker.es.js +15 -14
  90. package/build/component-date-picker.es.js.map +1 -1
  91. package/build/component-icon.cjs.js +1 -1
  92. package/build/component-icon.es.js +5 -5
  93. package/build/component-image-button.cjs.js +1 -1
  94. package/build/component-image-button.es.js +1 -1
  95. package/build/component-image-select.cjs.js +1 -1
  96. package/build/component-image-select.es.js +8 -7
  97. package/build/component-image-select.es.js.map +1 -1
  98. package/build/component-image-slider.cjs.js +1 -1
  99. package/build/component-image-slider.es.js +5 -4
  100. package/build/component-image-slider.es.js.map +1 -1
  101. package/build/component-image.cjs.js +1 -1
  102. package/build/component-image.es.js +3 -2
  103. package/build/component-image.es.js.map +1 -1
  104. package/build/component-input-otp.cjs.js +1 -1
  105. package/build/component-input-otp.es.js +5 -4
  106. package/build/component-input-otp.es.js.map +1 -1
  107. package/build/component-input.cjs.js +1 -1
  108. package/build/component-input.es.js +15 -15
  109. package/build/component-map.cjs.js +1 -1
  110. package/build/component-map.es.js +13 -12
  111. package/build/component-map.es.js.map +1 -1
  112. package/build/component-pagination.cjs.js +1 -1
  113. package/build/component-pagination.es.js +1 -1
  114. package/build/component-range.cjs.js +1 -1
  115. package/build/component-range.es.js +5 -4
  116. package/build/component-range.es.js.map +1 -1
  117. package/build/component-select.cjs.js +1 -1
  118. package/build/component-select.es.js +18 -18
  119. package/build/component-separator.cjs.js +1 -1
  120. package/build/component-separator.es.js +3 -2
  121. package/build/component-separator.es.js.map +1 -1
  122. package/build/component-textarea.cjs.js +1 -1
  123. package/build/component-textarea.es.js +5 -5
  124. package/build/component-toggle.cjs.js +1 -1
  125. package/build/component-toggle.es.js +4 -3
  126. package/build/component-toggle.es.js.map +1 -1
  127. package/build/component-tooltip.cjs.js +1 -1
  128. package/build/component-tooltip.es.js +9 -9
  129. package/build/component-typography.cjs.js +1 -1
  130. package/build/component-typography.es.js +6 -6
  131. package/build/component.components-B6FC2-ox.cjs +2 -0
  132. package/build/component.components-B6FC2-ox.cjs.map +1 -0
  133. package/build/{component.components-C9TkSqTp.js → component.components-DlJ9rcRL.js} +8 -43
  134. package/build/component.components-DlJ9rcRL.js.map +1 -0
  135. package/build/{component.constants-C8li5_tq.js → component.constants-B-ZUZwuJ.js} +2 -2
  136. package/build/{component.constants-C8li5_tq.js.map → component.constants-B-ZUZwuJ.js.map} +1 -1
  137. package/build/component.constants-DiCmqOri.cjs +2 -0
  138. package/build/{component.constants-B-ZMDpFv.cjs.map → component.constants-DiCmqOri.cjs.map} +1 -1
  139. package/build/{component.constants-CnMky3Ym.js → component.constants-DwSQ9oe4.js} +9 -34
  140. package/build/component.constants-DwSQ9oe4.js.map +1 -0
  141. package/build/component.constants-hDTTnj7k.cjs +2 -0
  142. package/build/component.constants-hDTTnj7k.cjs.map +1 -0
  143. package/build/component.styles-CD6ZzRrk.cjs +14 -0
  144. package/build/component.styles-CD6ZzRrk.cjs.map +1 -0
  145. package/build/component.styles-CNn9SMc9.cjs +10 -0
  146. package/build/component.styles-CNn9SMc9.cjs.map +1 -0
  147. package/build/{component.styles-BnJjm_ES.js → component.styles-SZ5VuhNG.js} +2 -19
  148. package/build/component.styles-SZ5VuhNG.js.map +1 -0
  149. package/build/component.styles-eaocqYbA.js +16 -0
  150. package/build/component.styles-eaocqYbA.js.map +1 -0
  151. package/build/component.types-CYtUJDuN.cjs +2 -0
  152. package/build/component.types-CYtUJDuN.cjs.map +1 -0
  153. package/build/{component.types-BoTWSvjd.js → component.types-DFRLIpd6.js} +4 -213
  154. package/build/component.types-DFRLIpd6.js.map +1 -0
  155. package/build/consts.cjs.js +1 -1
  156. package/build/consts.cjs.js.map +1 -1
  157. package/build/consts.d.ts +18 -16
  158. package/build/consts.es.js +28 -26
  159. package/build/consts.es.js.map +1 -1
  160. package/build/{context.functions-CQ9GerPb.js → context-B1DS5U6M.js} +3 -33
  161. package/build/{context.functions-CQ9GerPb.js.map → context-B1DS5U6M.js.map} +1 -1
  162. package/build/{context.functions-BD15C8_y.js → context-BxU5kwVR.js} +3 -33
  163. package/build/context-BxU5kwVR.js.map +1 -0
  164. package/build/{context.hooks-BzMTkJNv.js → context-CU_dgoUl.js} +3 -11
  165. package/build/context-CU_dgoUl.js.map +1 -0
  166. package/build/context-Cr9zS5ai.cjs +2 -0
  167. package/build/context-Cr9zS5ai.cjs.map +1 -0
  168. package/build/context-_4lcMeym.cjs +2 -0
  169. package/build/context-_4lcMeym.cjs.map +1 -0
  170. package/build/context-app.cjs.js +1 -1
  171. package/build/context-app.es.js +18 -17
  172. package/build/context-app.es.js.map +1 -1
  173. package/build/context-cookie.cjs.js +1 -1
  174. package/build/context-cookie.es.js +2 -1
  175. package/build/context-cookie.es.js.map +1 -1
  176. package/build/context-dialog.cjs.js +1 -1
  177. package/build/context-dialog.es.js +13 -12
  178. package/build/context-dialog.es.js.map +1 -1
  179. package/build/context-geolocation.cjs.js +1 -1
  180. package/build/context-geolocation.es.js +2 -1
  181. package/build/context-geolocation.es.js.map +1 -1
  182. package/build/context-local-storage.cjs.js +1 -1
  183. package/build/context-local-storage.es.js +2 -1
  184. package/build/context-local-storage.es.js.map +1 -1
  185. package/build/context-q6vhN54o.cjs +2 -0
  186. package/build/{context.functions-ohI9H54j.cjs.map → context-q6vhN54o.cjs.map} +1 -1
  187. package/build/context-sonner.cjs.js +1 -1
  188. package/build/context-sonner.es.js +18 -17
  189. package/build/context-sonner.es.js.map +1 -1
  190. package/build/context.constants-C5Unln0I.js +8433 -0
  191. package/build/context.constants-C5Unln0I.js.map +1 -0
  192. package/build/context.constants-CRxCVRKK.cjs +32 -0
  193. package/build/context.constants-CRxCVRKK.cjs.map +1 -0
  194. package/build/{context.constants-BCpaUfFz.js → context.constants-CaDW-QGJ.js} +13 -51
  195. package/build/context.constants-CaDW-QGJ.js.map +1 -0
  196. package/build/context.constants-DSfxf3ST.cjs +1692 -0
  197. package/build/context.constants-DSfxf3ST.cjs.map +1 -0
  198. package/build/context.functions-54_96FIi.js +36 -0
  199. package/build/context.functions-54_96FIi.js.map +1 -0
  200. package/build/context.functions-Bk5xMi0w.cjs +2 -0
  201. package/build/context.functions-Bk5xMi0w.cjs.map +1 -0
  202. package/build/context.functions-BoRkDnCa.cjs +2 -0
  203. package/build/context.functions-BoRkDnCa.cjs.map +1 -0
  204. package/build/context.functions-X5gRRpKi.js +35 -0
  205. package/build/context.functions-X5gRRpKi.js.map +1 -0
  206. package/build/context.hooks-B2vWSael.js +13 -0
  207. package/build/context.hooks-B2vWSael.js.map +1 -0
  208. package/build/context.hooks-BfmhHvrX.cjs +2 -0
  209. package/build/context.hooks-BfmhHvrX.cjs.map +1 -0
  210. package/build/context.hooks-Bj9FlQEC.js +44 -0
  211. package/build/context.hooks-Bj9FlQEC.js.map +1 -0
  212. package/build/context.hooks-ByjHt-DO.cjs +2 -0
  213. package/build/context.hooks-ByjHt-DO.cjs.map +1 -0
  214. package/build/context.hooks-CKO6mDS-.js +13 -0
  215. package/build/context.hooks-CKO6mDS-.js.map +1 -0
  216. package/build/context.hooks-OTo7Znss.cjs +2 -0
  217. package/build/context.hooks-OTo7Znss.cjs.map +1 -0
  218. package/build/context.hooks-PU-CST61.cjs +2 -0
  219. package/build/context.hooks-PU-CST61.cjs.map +1 -0
  220. package/build/context.hooks-uRILnzQk.js +13 -0
  221. package/build/context.hooks-uRILnzQk.js.map +1 -0
  222. package/build/index.cjs.js +1 -1
  223. package/build/index.d.ts +19 -17
  224. package/build/index.es.js +290 -289
  225. package/build/style-error.cjs.js +1 -1
  226. package/build/style-error.es.js +4 -4
  227. package/build/style-theme.cjs.js +1 -1
  228. package/build/style-theme.es.js +13 -13
  229. package/build/types.d.ts +3 -3
  230. package/build/{use-CnGHh8iL.js → use-7TZR9yNq.js} +8 -9
  231. package/build/{use-CnGHh8iL.js.map → use-7TZR9yNq.js.map} +1 -1
  232. package/build/{use-BLwltPMc.cjs → use-DNJlP5ji.cjs} +3 -3
  233. package/build/{use-BLwltPMc.cjs.map → use-DNJlP5ji.cjs.map} +1 -1
  234. package/package.json +1 -1
  235. package/build/area-BDMDiVi1.js.map +0 -1
  236. package/build/area-BWxBop5m.js.map +0 -1
  237. package/build/area-Bopd6mWj.cjs +0 -2
  238. package/build/area-Bopd6mWj.cjs.map +0 -1
  239. package/build/area-CmCMHnRA.cjs.map +0 -1
  240. package/build/area-Cvp3eBBo.js +0 -114
  241. package/build/area-Cvp3eBBo.js.map +0 -1
  242. package/build/area-DqLK4RX5.cjs +0 -40
  243. package/build/area-DqLK4RX5.cjs.map +0 -1
  244. package/build/component-5o60aes-.cjs +0 -52
  245. package/build/component-5o60aes-.cjs.map +0 -1
  246. package/build/component-B80It4vM.js.map +0 -1
  247. package/build/component-BfppCwz9.cjs +0 -88
  248. package/build/component-BfppCwz9.cjs.map +0 -1
  249. package/build/component-Bj7sLW9s.cjs +0 -2
  250. package/build/component-BxetIWe6.cjs +0 -245
  251. package/build/component-BxetIWe6.cjs.map +0 -1
  252. package/build/component-ClnOIQaN.js +0 -66
  253. package/build/component-ClnOIQaN.js.map +0 -1
  254. package/build/component-b4tMFkpE.cjs +0 -2
  255. package/build/component-b4tMFkpE.cjs.map +0 -1
  256. package/build/component-eqTj4VVc.js +0 -728
  257. package/build/component-eqTj4VVc.js.map +0 -1
  258. package/build/component-jPLOz52P.js +0 -186
  259. package/build/component-jPLOz52P.js.map +0 -1
  260. package/build/component.components-BZX00SGG.cjs +0 -16
  261. package/build/component.components-BZX00SGG.cjs.map +0 -1
  262. package/build/component.components-C9TkSqTp.js.map +0 -1
  263. package/build/component.constants-B-ZMDpFv.cjs +0 -2
  264. package/build/component.constants-CnMky3Ym.js.map +0 -1
  265. package/build/component.constants-Dg6JcWmd.cjs +0 -22
  266. package/build/component.constants-Dg6JcWmd.cjs.map +0 -1
  267. package/build/component.styles-0apMzB81.js.map +0 -1
  268. package/build/component.styles-AEJ_tw7Y.js.map +0 -1
  269. package/build/component.styles-BO8xaSCQ.cjs +0 -65
  270. package/build/component.styles-BO8xaSCQ.cjs.map +0 -1
  271. package/build/component.styles-BVQQkX5c.cjs +0 -57
  272. package/build/component.styles-BVQQkX5c.cjs.map +0 -1
  273. package/build/component.styles-BYG4iVCR.cjs +0 -10
  274. package/build/component.styles-BYG4iVCR.cjs.map +0 -1
  275. package/build/component.styles-BZ9QLlOU.cjs +0 -39
  276. package/build/component.styles-BZ9QLlOU.cjs.map +0 -1
  277. package/build/component.styles-BnJjm_ES.js.map +0 -1
  278. package/build/component.styles-BviHtzJH.cjs +0 -22
  279. package/build/component.styles-BviHtzJH.cjs.map +0 -1
  280. package/build/component.styles-C4Bz4OTl.js.map +0 -1
  281. package/build/component.styles-C8ONgWei.cjs +0 -47
  282. package/build/component.styles-C8ONgWei.cjs.map +0 -1
  283. package/build/component.styles-CHqowxsZ.js.map +0 -1
  284. package/build/component.styles-CLn52hJD.cjs +0 -14
  285. package/build/component.styles-CLn52hJD.cjs.map +0 -1
  286. package/build/component.styles-CXyyc0xg.cjs +0 -32
  287. package/build/component.styles-CXyyc0xg.cjs.map +0 -1
  288. package/build/component.styles-CtZeOnGH.js +0 -120
  289. package/build/component.styles-CtZeOnGH.js.map +0 -1
  290. package/build/component.styles-CwTYpBx_.js.map +0 -1
  291. package/build/component.styles-CxlbZwr4.cjs +0 -225
  292. package/build/component.styles-CxlbZwr4.cjs.map +0 -1
  293. package/build/component.styles-CyCy2ymw.cjs +0 -21
  294. package/build/component.styles-CyCy2ymw.cjs.map +0 -1
  295. package/build/component.styles-DWDGLfbF.js +0 -137
  296. package/build/component.styles-DWDGLfbF.js.map +0 -1
  297. package/build/component.styles-DqJURuJl.js +0 -1370
  298. package/build/component.styles-DqJURuJl.js.map +0 -1
  299. package/build/component.styles-FMHm5NHm.cjs +0 -99
  300. package/build/component.styles-FMHm5NHm.cjs.map +0 -1
  301. package/build/component.styles-Hx-MJSWX.cjs +0 -137
  302. package/build/component.styles-Hx-MJSWX.cjs.map +0 -1
  303. package/build/component.styles-KBaixm0o.js.map +0 -1
  304. package/build/component.styles-SZTM0cRW.js +0 -1046
  305. package/build/component.styles-SZTM0cRW.js.map +0 -1
  306. package/build/component.styles-_keFf_Qj.cjs +0 -13
  307. package/build/component.styles-_keFf_Qj.cjs.map +0 -1
  308. package/build/component.styles-cMafDDpP.js +0 -233
  309. package/build/component.styles-cMafDDpP.js.map +0 -1
  310. package/build/component.styles-euSUJAiA.js.map +0 -1
  311. package/build/component.types-BoTWSvjd.js.map +0 -1
  312. package/build/component.types-WiRcl02d.cjs +0 -176
  313. package/build/component.types-WiRcl02d.cjs.map +0 -1
  314. package/build/context.constants-BCpaUfFz.js.map +0 -1
  315. package/build/context.constants-BLQ_1jZI.cjs +0 -32
  316. package/build/context.constants-BLQ_1jZI.cjs.map +0 -1
  317. package/build/context.constants-Cio0nsYA.js +0 -393
  318. package/build/context.constants-Cio0nsYA.js.map +0 -1
  319. package/build/context.constants-y9s5VGN2.cjs +0 -99
  320. package/build/context.constants-y9s5VGN2.cjs.map +0 -1
  321. package/build/context.functions-80N-5MqM.cjs +0 -2
  322. package/build/context.functions-80N-5MqM.cjs.map +0 -1
  323. package/build/context.functions-BD15C8_y.js.map +0 -1
  324. package/build/context.functions-ohI9H54j.cjs +0 -2
  325. package/build/context.hooks-BIIK-2HN.js +0 -527
  326. package/build/context.hooks-BIIK-2HN.js.map +0 -1
  327. package/build/context.hooks-BzMTkJNv.js.map +0 -1
  328. package/build/context.hooks-DNnrgKb0.cjs +0 -72
  329. package/build/context.hooks-DNnrgKb0.cjs.map +0 -1
  330. package/build/context.hooks-u408Pxw8.cjs +0 -2
  331. package/build/context.hooks-u408Pxw8.cjs.map +0 -1
  332. package/build/floating-ui.react-Byi6bLb1.js +0 -1818
  333. package/build/floating-ui.react-Byi6bLb1.js.map +0 -1
  334. package/build/floating-ui.react-DZzvtpim.cjs +0 -2
  335. package/build/floating-ui.react-DZzvtpim.cjs.map +0 -1
  336. package/build/style-BzxSHZDV.js +0 -61
  337. package/build/style-BzxSHZDV.js.map +0 -1
  338. package/build/style-D8DUzG0C.cjs +0 -32
  339. package/build/style-D8DUzG0C.cjs.map +0 -1
  340. package/build/theme.global-BzunMIsv.js +0 -1318
  341. package/build/theme.global-BzunMIsv.js.map +0 -1
  342. package/build/theme.global-D67h5YeA.cjs +0 -173
  343. package/build/theme.global-D67h5YeA.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-eqTj4VVc.js","sources":["../src/components/typography/component.styles.ts","../src/hooks/use-overflowing/use.ts","../src/components/popover/component.tsx","../src/components/popover/component.styles.ts","../src/components/popover/component.constants.tsx","../src/components/tooltip/component.styles.ts","../src/components/tooltip/component.tsx","../src/components/tooltip/component.constants.ts","../src/components/typography/component.tsx"],"sourcesContent":["import { addOutline } from '@local/styles/add';\nimport { addSX as addSXStandard } from '@local/styles/sx';\nimport { JeneseiPalette } from '@local/theme/theme';\n\nimport styled, { css, keyframes } from 'styled-components';\n\nimport { addSXTypographyStyleProps, TypographyAllProps, TypographyCSSProps } from '.';\n\nconst shadowPulse = keyframes`\n 0% {\n text-shadow: 0 0 0 rgba(0, 0, 0, 0);\n }\n 50% {\n text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.5);\n }\n 100% {\n text-shadow: 0 0 0 rgba(0, 0, 0, 0);\n }\n`;\n\nfunction toStyledCSS(value: TypographyAllProps) {\n return css`\n ${\n value.shadow &&\n value.shadow === 'shadowPulse' &&\n css`\n animation: ${shadowPulse} 2s infinite;\n `\n };\n ${\n value.letterSpacing &&\n css`\n letter-spacing: ${value.letterSpacing};\n `\n };\n ${\n value.flex &&\n css`\n flex: ${value.flex};\n `\n };\n ${\n value.cursor &&\n css`\n cursor: ${value.cursor};\n `\n };\n ${\n value.overflow &&\n css`\n overflow: ${value.overflow};\n `\n };\n ${\n value.line !== undefined\n ? value.line === 1\n ? css`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: -webkit-fill-available;\n max-width: fit-content;\n `\n : css`\n word-break: break-word;\n white-space: normal;\n text-overflow: ellipsis;\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: ${value.line};\n width: fit-content;\n overflow-wrap: anywhere;\n `\n : css``\n };\n ${\n value.family &&\n css`\n font-family: ${value.family};\n `\n };\n ${\n value.weight &&\n css`\n font-weight: ${value.weight};\n `\n };\n ${\n value.height &&\n css`\n line-height: ${value.height}px;\n `\n };\n ${\n value.color &&\n css`\n color: ${JeneseiPalette[value.color]};\n `\n };\n ${\n value.align &&\n css`\n text-align: ${value.align};\n `\n };\n ${\n value.wrap &&\n css`\n text-wrap: ${value.wrap};\n `\n };\n ${\n value.decoration &&\n css`\n text-decoration: ${value.decoration};\n `\n };\n ${\n value.transform &&\n css`\n text-transform: ${value.transform};\n `\n };\n ${\n value.isHoverUnderlining &&\n css`\n &:hover {\n text-decoration: underline;\n }\n `\n };\n ${\n value.isNoUserSelect &&\n css`\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n `\n };\n ${\n 'size' in value &&\n value.size &&\n css`\n font-size: ${value.size}px;\n `\n };\n ${\n 'variant' in value && value.variant\n ? value.variant === 'h1'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h1 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h2'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h2 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h3'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h3 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h4'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h4 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h5'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h5 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h6'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) => props.theme.font.sizeHeading.h6 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h7'\n ? css`\n font-size: ${(props) => props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h7 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h8'\n ? css`\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h8 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : value.variant === 'h9'\n ? css`\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.default}px;\n line-height: ${(props) => props.theme.font.lineHeight};\n margin: 0;\n @media (max-width: ${(props) => props.theme.screens.tablet.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.tablet}px;\n }\n\n @media (max-width: ${(props) => props.theme.screens.mobile.width}px) {\n font-size: ${(props) =>\n props.theme.font.sizeHeading.h9 * props.theme.font.sizeDefault.mobile}px;\n }\n `\n : null\n : null\n };\n `;\n}\n\nexport const addSXTypography = css<addSXTypographyStyleProps>`\n ${(props) => {\n const rawSX = props.$sxTypography;\n if (!rawSX) return null;\n return toStyledCSS(rawSX.default);\n }}\n\n ${(props) => {\n const rawSX = props.$sxTypography;\n if (!rawSX) return null;\n\n return Object.entries(rawSX)\n .filter(([key]) => key !== 'default')\n .map(([deviceKey, value]) => {\n const screenWidth = props.theme.screens[deviceKey as keyof typeof props.theme.screens]?.width;\n if (!screenWidth) return null;\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledCSS(value)}\n }\n `;\n });\n }}\n`;\n\nconst TypographyCSS = css<TypographyCSSProps>`\n font-style: normal;\n position: relative;\n overflow: visible;\n text-overflow: ellipsis;\n overflow-wrap: anywhere;\n line-height: ${(props) => props.theme.font.lineHeight};\n ${addSXTypography};\n ${addSXStandard}\n`;\n\nexport const Title = styled.span<TypographyCSSProps>`\n ${TypographyCSS}\n ${addOutline}\n`;\n","\n\nimport { RefObject, useEffect, useMemo, useRef, useState } from 'react';\n\n\nimport { useDeepCompareMemoize } from '../use-deep-compare-memoize';\nimport { useTooltipProps } from '.';\n\n/**\n * Хук для отслеживания переполнения содержимого в элементе (или его родителе).\n * Возвращает ref для привязки к DOM-элементу, флаг переполнения и флаг isDisabled.\n * @param props - опциональные параметры для управления поведением проверки переполнения\n */\nexport function useOverflowing<T extends HTMLElement>(\n props?: useTooltipProps,\n): {\n isDisabled: boolean; // true, если нет переполнения\n isOverflowing: boolean; // true, если содержимое выходит за пределы контейнера\n ref: RefObject<HTMLElement | null>; // ref для отслеживания DOM-элемента\n} {\n // Нужно ли проверять размеры (по умолчанию true)\n const isCheckSize = useMemo(() => props?.isCheckSize ?? true, [props?.isCheckSize]);\n // Проверять ли переполнение относительно родителя (mode === 'parent')\n const isParentMode = useMemo(() => props?.mode === 'parent', [props?.mode]);\n\n // Состояние переполнения (может быть принудительно задано через props)\n const [isOverflowing, setIsOverflowing] = useState(\n props?.isOverflowing !== undefined ? props?.isOverflowing : false\n );\n // ref для отслеживания элемента\n const ref = useRef<T | null>(null);\n // Мемоизированные зависимости для эффекта (глубокое сравнение)\n const dependencies = useDeepCompareMemoize(props?.dependencies);\n\n useEffect(() => {\n // Если не нужно проверять размеры — выходим\n if (!isCheckSize) return;\n\n // Функция проверки переполнения\n const checkOverflow = () => {\n const el = ref.current;\n if (!el) return;\n\n // Получаем размеры содержимого и контейнера\n const scrollWidth = el.scrollWidth;\n const scrollHeight = el.scrollHeight;\n\n // Если parentMode — сравниваем с родителем, иначе с самим элементом\n const clientWidth = isParentMode && el.parentElement ? el.parentElement.clientWidth : el.clientWidth;\n const clientHeight = isParentMode && el.parentElement ? el.parentElement.clientHeight : el.clientHeight;\n\n // Считаем переполнение по ширине или высоте\n setIsOverflowing(scrollWidth > clientWidth || scrollHeight > clientHeight);\n };\n\n // Проверяем при монтировании и при изменении зависимостей\n checkOverflow();\n // Проверяем при изменении размера окна\n window.addEventListener('resize', checkOverflow);\n // Очищаем обработчик при размонтировании\n return () => window.removeEventListener('resize', checkOverflow);\n }, [dependencies, isCheckSize, isParentMode]);\n\n // isDisabled: true, если нет переполнения (можно использовать для отключения тултипа)\n return { isDisabled: !isOverflowing, ref: ref, isOverflowing };\n}\n","import { KEY_SIZE_DATA } from '@local/theme';\n\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';\nimport { AnimatePresence } from 'framer-motion';\nimport { FC, Ref, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { useTheme } from 'styled-components';\n\nimport { DEFAULT_POPOVER_CLOSE_DELAY, DEFAULT_POPOVER_OFFSET, PopoverProps, PopoverWrapper, UsePopoverProps } from '.';\n\nexport const Popover: FC<PopoverProps> = (props) => {\n const theme = useTheme();\n return ReactDOM.createPortal(\n <AnimatePresence>\n {props.isOpen && (\n <div\n tabIndex={-1}\n ref={props.ref as Ref<HTMLDivElement | null>}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n ...props.floatingStyles,\n transform: props.floatingStyles.transform,\n zIndex: 9999,\n }}\n >\n <PopoverWrapper\n tabIndex={-1}\n $isShowAlwaysOutline={props.isShowAlwaysOutline}\n $genre={props.genre ?? 'black'}\n $font={{\n size: props.font?.size ?? KEY_SIZE_DATA[props.size ?? 'medium'].font,\n weight: props.font?.weight ?? 700,\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height,\n }}\n className={props.className}\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ duration: 0.2 }}\n $sx={props.sx}\n $size={props.size}\n $sxTypography={props.sxTypography}\n $maxHeight={props.maxHeight}\n $maxWidth={props.maxWidth}\n >\n {props.children}\n </PopoverWrapper>\n </div>\n )}\n </AnimatePresence>,\n document.body,\n );\n};\n\nexport const usePopover = (props: UsePopoverProps) => {\n const { onFocus, onBlur, onBlurReference } = props;\n\n // Состояние открытия поповера\n const [isOpen, setIsOpen] = useState(false);\n // Минимальная ширина поповера (нужна, если хотим, чтобы ширина совпадала с референсом)\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n // Флаг, был ли поповер когда-либо открыт (чтобы onBlur не вызывался при первом рендере)\n const [wasEverOpen, setWasEverOpen] = useState(false);\n\n // Позиционирование через floating-ui\n const {\n refs,\n floatingStyles,\n update,\n placement: actualPlacement,\n } = useFloating({\n open: isOpen,\n placement: props.placement,\n middleware: [offset(props.offset ?? 8), flip(), shift()],\n whileElementsMounted: autoUpdate,\n });\n\n // Сохраняем обработчик клика вне поповера (чтобы можно было удалить при cleanup)\n const clickOutsideHandler = useRef<((e: MouseEvent) => void) | null>(null);\n // Таймаут для закрытия при hover-режиме\n const hoverCloseTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Отступ для hover-зоны (чтобы не закрывался мгновенно при небольших движениях мыши)\n const hoverOffset = useMemo(\n () => props.hoverOffset ?? props.offset ?? DEFAULT_POPOVER_OFFSET,\n [props.hoverOffset, props.offset],\n );\n // Задержка перед закрытием при hover\n const hoverCloseDelay = useMemo(() => props.hoverCloseDelay ?? DEFAULT_POPOVER_CLOSE_DELAY, [props.hoverCloseDelay]);\n\n /**\n * Навешиваем обработчики на reference-элемент в зависимости от режима:\n * - click / clickOpen → открытие/переключение по клику\n * - hover → открытие/закрытие при наведении\n */\n useEffect(() => {\n if (props.isDisabled) return;\n const refEl = refs.reference.current;\n if (!refEl) return;\n\n // Режим клика\n if ((props.mode === 'click' || props.mode === 'clickOpen') && refEl instanceof HTMLElement) {\n const handleClick = () => {\n if (props.mode === 'click') {\n setIsOpen((prev) => !prev);\n } else if (props.mode === 'clickOpen') {\n setIsOpen(true);\n }\n };\n\n refEl.addEventListener('click', handleClick);\n return () => {\n refEl.removeEventListener('click', handleClick);\n };\n\n // Режим ховера\n } else if (props.mode === 'hover' && refEl instanceof HTMLElement) {\n const handleMouseEnter = () => {\n setIsOpen(true);\n };\n const handleMouseLeave = () => {\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = setTimeout(() => setIsOpen(false), hoverCloseDelay);\n };\n\n refEl.addEventListener('mouseenter', handleMouseEnter);\n refEl.addEventListener('mouseleave', handleMouseLeave);\n return () => {\n refEl.removeEventListener('mouseenter', handleMouseEnter);\n refEl.removeEventListener('mouseleave', handleMouseLeave);\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n };\n }\n }, [props.mode, refs.reference, hoverCloseDelay, props.isDisabled]);\n\n // Автоматическое обновление позиции, пока поповер открыт\n useEffect(() => {\n if (!isOpen || !refs.reference.current || !refs.floating.current || props.isDisabled) return;\n\n const cleanup = autoUpdate(refs.reference.current, refs.floating.current, update);\n\n return () => cleanup();\n }, [isOpen, refs.reference, refs.floating, update, props.isDisabled]);\n\n /**\n * Логика закрытия поповера при клике вне него\n */\n useEffect(() => {\n if (!isOpen || !refs.reference.current || !refs.floating.current || props.isDisabled) return;\n\n if (props.isClickOutside) {\n clickOutsideHandler.current = (e: MouseEvent) => {\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeClickOutside || [];\n\n // Проверяем, что клик не по поповеру, не по reference и не по исключенным ref'ам\n if (\n refEl instanceof HTMLElement &&\n floatingEl instanceof HTMLElement &&\n !refEl.contains(e.target as Node) &&\n !floatingEl.contains(e.target as Node) &&\n !otherRefs.some((ref) => {\n if (typeof ref === 'object' && ref !== null && 'current' in ref) {\n return (ref.current as HTMLElement | null)?.contains(e.target as Node);\n }\n return false;\n })\n ) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', clickOutsideHandler.current);\n }\n\n return () => {\n if (clickOutsideHandler.current) {\n document.removeEventListener('mousedown', clickOutsideHandler.current);\n clickOutsideHandler.current = null;\n }\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n }\n };\n }, [isOpen, refs.reference, refs.floating, props.isClickOutside, props.isDisabled, props.refsExcludeClickOutside]);\n\n /**\n * Поддержка режима \"плавающего hover\"\n * Закрывает поповер, если мышь ушла за пределы reference+floating с отступом\n */\n useEffect(() => {\n if (!isOpen || !props.isFloatingHover || !refs.reference.current || !refs.floating.current || props.isDisabled)\n return;\n\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n\n const handleMouseMove = (e: MouseEvent) => {\n const mouseX = e.clientX;\n const mouseY = e.clientY;\n\n const refRect = refEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n\n // Находим, внутри ли курсор reference или floating с учётом отступа\n const isInsideRef =\n mouseX >= refRect.left - hoverOffset &&\n mouseX <= refRect.right + hoverOffset &&\n mouseY >= refRect.top - hoverOffset &&\n mouseY <= refRect.bottom + hoverOffset;\n\n const isInsideFloating =\n mouseX >= floatingRect.left - hoverOffset &&\n mouseX <= floatingRect.right + hoverOffset &&\n mouseY >= floatingRect.top - hoverOffset &&\n mouseY <= floatingRect.bottom + hoverOffset;\n\n if (isInsideRef || isInsideFloating) {\n // Если вернулись внутрь — отменяем закрытие\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = null;\n }\n } else {\n // Если вышли — запускаем таймер на закрытие\n if (hoverCloseTimeout.current) clearTimeout(hoverCloseTimeout.current);\n hoverCloseTimeout.current = setTimeout(() => setIsOpen(false), hoverCloseDelay);\n }\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n if (hoverCloseTimeout.current) {\n clearTimeout(hoverCloseTimeout.current);\n }\n };\n }, [isOpen, props.isFloatingHover, refs.reference, refs.floating, hoverOffset, hoverCloseDelay, props.isDisabled]);\n\n /**\n * Устанавливаем минимальную ширину поповера, равную reference (если включено isWidthAsContent)\n */\n useLayoutEffect(() => {\n if (!props.isWidthAsContent || !refs.reference.current) return;\n const rect = refs.reference.current.getBoundingClientRect();\n setMinWidth(rect.width);\n }, [props.isWidthAsContent, refs.reference]);\n\n // Методы управления открытием\n const open = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen(true);\n }, [props.isDisabled]);\n const close = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen(false);\n }, [props.isDisabled]);\n const toggle = useCallback(() => {\n if (props.isDisabled) return;\n setIsOpen((prev) => !prev);\n }, [props.isDisabled]);\n\n // Объединяем стили floating-ui с дополнительными ограничениями по ширине\n const combinedStyles = useMemo(() => {\n return {\n ...floatingStyles,\n minWidth: props.isWidthAsContent && minWidth ? `${minWidth}px` : undefined,\n maxWidth: props.isWidthAsContent && minWidth ? `${minWidth}px` : undefined,\n };\n }, [floatingStyles, props.isWidthAsContent, minWidth]);\n\n /**\n * Вызываем onFocus при открытии\n * и запоминаем, что поповер хоть раз был открыт\n */\n useEffect(() => {\n if (isOpen) {\n onFocus?.();\n setWasEverOpen(true);\n }\n }, [isOpen, onFocus]);\n\n /**\n * Вызываем onBlur при первом закрытии после открытия\n */\n useEffect(() => {\n if (!isOpen && wasEverOpen) {\n onBlur?.();\n }\n }, [isOpen, wasEverOpen, onBlur]);\n\n /**\n * Закрытие при потере фокуса (focusin вне поповера + reference)\n * (но не на исключённые элементы)\n */\n useEffect(() => {\n if (!isOpen || props.isDisabled) return;\n\n const handleFocusIn = (e: FocusEvent) => {\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeClickOutside || [];\n\n const isInside =\n (refEl instanceof HTMLElement && refEl.contains(e.target as Node)) ||\n (floatingEl instanceof HTMLElement && floatingEl.contains(e.target as Node)) ||\n otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement) {\n return ref.current.contains(e.target as Node);\n }\n return false;\n });\n\n if (!isInside) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('focusin', handleFocusIn);\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n };\n }, [isOpen, refs.reference, refs.floating, props.refsExcludeClickOutside, props.isDisabled]);\n\n /**\n * Вызываем onBlurReference, если фокус ушёл с reference-элемента\n * (но не на исключённые элементы)\n */\n useEffect(() => {\n if (!refs.reference.current || props.isDisabled || !onBlurReference) return;\n\n const refEl = refs.reference.current;\n const otherRefs = props.refsExcludeBlur || [];\n\n const handleBlur = (e: FocusEvent) => {\n if (\n refEl instanceof HTMLElement &&\n !refEl.contains(e.relatedTarget as Node) &&\n !otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement)\n return ref.current.contains(e.relatedTarget as Node);\n })\n ) {\n onBlurReference();\n }\n };\n\n if (refEl instanceof HTMLElement) refEl.addEventListener('blur', handleBlur, true);\n\n return () => {\n if (refEl instanceof HTMLElement) refEl.removeEventListener('blur', handleBlur, true);\n };\n }, [refs.reference, props.isDisabled, onBlurReference, props.refsExcludeBlur]);\n\n /**\n * Функция возвращает true или false в зависимости от состояния от FocusEvent который находится внутри или снаружи\n */\n const getIsInside = useCallback(\n (target: Node | null) => {\n if (!target) return false; // если relatedTarget null, значит фокус ушёл вне окна — закрываем\n\n const refEl = refs.reference.current;\n const floatingEl = refs.floating.current;\n const otherRefs = props.refsExcludeBlur || [];\n\n return (\n (refEl instanceof HTMLElement && refEl.contains(target)) ||\n (floatingEl instanceof HTMLElement && floatingEl.contains(target)) ||\n otherRefs.some((ref) => {\n if (ref && 'current' in ref && ref.current && ref.current instanceof HTMLElement) {\n return ref.current.contains(target);\n }\n return false;\n })\n );\n },\n [refs.reference, refs.floating, props.refsExcludeBlur],\n );\n // Возвращаем наружу API для использования поповера\n return {\n getIsInside,\n isOpen,\n setIsOpen,\n open,\n close,\n toggle,\n refReference: refs.setReference as Ref<HTMLElement | null>,\n refFloating: refs.setFloating as Ref<HTMLElement | null>,\n floatingStyles: combinedStyles,\n placement: actualPlacement,\n };\n};\n","import { addSXTypography } from '@local/components/typography';\nimport { addAlwaysOutline, addFont } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { StyledPopoverProps } from '.';\n\n/****************************************** Popover Genre *************************************************/\nconst addPopoverGenre = css<StyledPopoverProps>`\n ${(props) => css`\n background: ${props.theme.colors.button[props.$genre].background.rest};\n border-color: ${props.theme.colors.button[props.$genre].border.rest};\n color: ${props.theme.colors.button[props.$genre].color.rest};\n /* box-shadow: ${props.theme.effects.button}; */\n `};\n`;\n\n/****************************************** Popover Size *************************************************/\nexport const addPopoverSize = css<StyledPopoverProps>`\n ${(props) =>\n addPopoverSizeConstructor({\n ...KEY_SIZE_DATA[props.$size ?? 'medium'],\n })};\n`;\nexport const addPopoverSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n display: flex;\n border-radius: ${props.radius}px;\n padding: ${props.padding}px;\n gap: ${props.padding - 2}px;\n`;\n\n/****************************************** Default *************************************************/\nexport const PopoverWrapper = styled(motion.div)<StyledPopoverProps>`\n max-width: ${(props) => props.$maxWidth || '100%'};\n max-height: ${(props) => props.$maxHeight || '100%'};\n overflow: auto;\n flex-direction: column;\n ${addFont};\n ${addPopoverSize};\n ${addAlwaysOutline};\n ${addSXTypography};\n ${addPopoverGenre};\n ${addSX};\n`;\n","export const DEFAULT_POPOVER_OFFSET = 8;\nexport const DEFAULT_POPOVER_CLOSE_DELAY = 100;\n","import { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport styled, { css } from 'styled-components';\n\nimport { Popover, PopoverProps } from '../popover';\nimport { Stack } from '../stack';\n\nexport const TooltipContainer = styled(Stack)`\n display: flex;\n width: fit-content;\n height: fit-content;\n`;\n\nexport const addTooltipBoxSize = css<PopoverProps>`\n ${(props) =>\n addTooltipBoxSizeConstructor({\n ...KEY_SIZE_DATA[props.size ?? 'medium'],\n })};\n`;\nexport const addTooltipBoxSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n gap: 0px;\n padding: ${props.padding}px ${props.padding}px 0px ${props.padding}px;\n :after {\n content: '';\n display: block;\n height: ${props.padding}px;\n width: 100%;\n }\n`;\n\n/****************************************** TooltipBox *************************************************/\nexport const TooltipBox = styled(Popover)`\n ${addTooltipBoxSize};\n`;\n","import { Typography } from '@local/components/typography';\n\nimport { FC, memo, Ref } from 'react';\n\nimport { usePopover } from '../popover';\nimport {\n DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n TooltipBox,\n TooltipContainer,\n TooltipProps,\n} from '.';\n\nexport const Tooltip: FC<TooltipProps> = memo((props) => {\n if (props.isDisabled) return <TooltipContainer sx={props.sx}>{props.children}</TooltipContainer>;\n\n return <TooltipContent {...props} />;\n});\n\nexport const TooltipContent: FC<TooltipProps> = (props) => {\n const { isOpen, refReference, refFloating, floatingStyles } = usePopover({\n placement: props.placement ?? DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,\n offset: props.offset ?? DEFAULT_TOOLTIP_OFFSET_FALLBACK,\n mode: props.mode ?? 'hover',\n isClickOutside: props.isClickOutside ?? true,\n isFloatingHover: props.isFloatingHover ?? true,\n isWidthAsContent: props.isWidthAsContent ?? false,\n hoverCloseDelay: props.hoverCloseDelay ?? undefined,\n hoverOffset: props.hoverOffset ?? undefined,\n });\n return (\n <>\n <TooltipContainer sx={props.sx} ref={refReference as Ref<HTMLDivElement | null>}>\n {props.children}\n </TooltipContainer>\n <TooltipBox\n size={props.size}\n isOpen={isOpen}\n genre={props.genre}\n floatingStyles={floatingStyles}\n ref={refFloating}\n maxHeight={props.maxHeight}\n maxWidth={props.maxWidth}\n >\n <Typography\n sx={\n props.sxTypography ?? {\n default: {\n size: 14,\n },\n }\n }\n >\n {props.content}\n </Typography>\n </TooltipBox>\n </>\n );\n};\n\nTooltip.displayName = 'Tooltip';\n","import { Placement } from '@floating-ui/react';\n\nexport const DEFAULT_TOOLTIP_PLACEMENT_FALLBACK: Placement = 'bottom-start';\nexport const DEFAULT_TOOLTIP_OFFSET_FALLBACK: number = 8;\n","import { useScreenWidth } from '@local/contexts/context-screen-width';\nimport { useOverflowing } from '@local/hooks/use-overflowing';\n\nimport { createLink, LinkProps } from '@tanstack/react-router';\nimport { memo, useMemo } from 'react';\n\nimport { Tooltip } from '../tooltip';\nimport { Title, TypographyCSSProps, TypographyProps, TypographyTooltipProps } from '.';\n\nconst TypographyWithRef = (props: TypographyProps) => {\n const { screenActual } = useScreenWidth();\n const cssProps: TypographyCSSProps & Pick<TypographyProps, 'onClick' | 'className' | 'style'> = useMemo(\n () => ({\n $sxTypography: props.sx,\n style: props.style,\n className: props.className,\n $sx: props.sxStandard,\n $isDisabledOutline: props.isDisabledOutline,\n $isOutlineBoxShadow: props.isOutlineBoxShadow,\n $isReadOnly: props.isReadOnly,\n onClick: props.onClick ? props.onClick : () => {},\n }),\n [\n props.sx,\n props.style,\n props.className,\n props.sxStandard,\n props.onClick,\n props.isDisabledOutline,\n props.isOutlineBoxShadow,\n props.isReadOnly,\n ],\n );\n\n const screenSX = useMemo(() => props.sx?.[screenActual] ?? props.sx?.default, [props.sx, screenActual]);\n\n if (screenSX && 'variant' in screenSX) {\n if (screenSX.variant === 'h7' || screenSX.variant === 'h8' || screenSX.variant === 'h9') {\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : 'span'}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n } else {\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : screenSX.variant}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n }\n }\n\n return (\n <Title\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ref={props.ref as any}\n as={props.isAnchor ? 'a' : props.isParagraph ? 'p' : props.isSpan ? 'span' : 'span'}\n href={props.href}\n {...cssProps}\n >\n {props.children}\n </Title>\n );\n};\n\nexport const Typography = (props: TypographyProps) => {\n return <TypographyWithRef {...props} />;\n};\n\nconst TypographySizeIsAnchor = (props: TypographyProps & LinkProps) => {\n return <TypographyWithRef isAnchor {...props} ref={props.ref} href={props.href} />;\n};\n\nexport const TypographyLink = createLink(TypographySizeIsAnchor);\n\nexport const TypographyTooltip = memo((props: TypographyTooltipProps) => {\n const { isDisabled, ref } = useOverflowing<HTMLDivElement>({\n isCheckSize: props.tooltip.isDisabled !== undefined ? !props.tooltip.isDisabled : true,\n dependencies: [props.children],\n });\n return (\n <Tooltip isDisabled={isDisabled} content={props.children} {...props.tooltip}>\n <TypographyWithRef ref={ref} {...props.typography} style={{ position: 'relative' }}>\n {props.children}\n </TypographyWithRef>\n </Tooltip>\n );\n});\n\nTypographyTooltip.displayName = 'TypographyTooltip';\nTypographyWithRef.displayName = 'TypographyWithRef';\nTypographySizeIsAnchor.displayName = 'TypographySizeIsAnchor';\n"],"names":["addSXStandard","ReactDOM","jsx","jsxs","Fragment"],"mappings":"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"}
@@ -1,186 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
- import { useMemo, useRef } from "react";
3
- import styled, { css, useTheme } from "styled-components";
4
- import { g as getIconComponents } from "./component.styles-CtZeOnGH.js";
5
- import { d as addRippleDefault } from "./component.styles-B0L4jbOO.js";
6
- import { R as Ripple } from "./component-DHM9pbab.js";
7
- import { K as KEY_SIZE_DATA } from "./theme.global-BzunMIsv.js";
8
- import { u as useMergeRefs } from "./floating-ui.react-Byi6bLb1.js";
9
- import { g as addSXTypography } from "./component-eqTj4VVc.js";
10
- import { b as addTransition, c as addFont, g as addOutline } from "./style-RL73t3JD.js";
11
- import { a as addSX } from "./style-plT9Ah7t.js";
12
- import { motion } from "framer-motion";
13
- const addButtonGenre = css`
14
- ${(props) => css`
15
- background: ${props.theme.colors.button[props.$genre].background.rest};
16
- border-color: ${props.theme.colors.button[props.$genre].border.rest};
17
- color: ${props.theme.colors.button[props.$genre].color.rest};
18
- &:hover {
19
- ${(!props.$isHidden || props.$isNotHoverEffect) && css`
20
- background: ${props.theme.colors.button[props.$genre].background.hover};
21
- border-color: ${props.theme.colors.button[props.$genre].border.hover};
22
- color: ${props.theme.colors.button[props.$genre].color.hover};
23
- `}
24
- }
25
- `};
26
- `;
27
- const addButtonDisabled = css`
28
- ${(props) => props.$isHidden ? css`
29
- opacity: 0.5;
30
- background: ${props.theme.colors.button[props.$genre].background.rest} !important;
31
- color: ${props.theme.colors.button[props.$genre].color.rest} !important;
32
- ` : css`
33
- opacity: 1;
34
- `}
35
- `;
36
- const addButtonIsHiddenBorder = css`
37
- ${(props) => props.$isHiddenBorder && css`
38
- border: 0px transparent !important;
39
- `}
40
- `;
41
- const addButtonIsRadius = css`
42
- ${(props) => props.$isRadius && css`
43
- border-radius: 100px;
44
- `}
45
- `;
46
- const addButtonIsPlaystationEffect = css`
47
- ${(props) => props.$isPlaystationEffect && css`
48
- box-shadow: ${props.theme.effects.button};
49
- `}
50
- `;
51
- const addButtonSize = css`
52
- height: fit-content;
53
- min-height: ${(props) => KEY_SIZE_DATA[props.$size].height}px;
54
- max-height: fit-content;
55
- padding: 2px ${(props) => KEY_SIZE_DATA[props.$size].padding}px;
56
- border-radius: ${(props) => KEY_SIZE_DATA[props.$size].radius}px;
57
- gap: ${(props) => KEY_SIZE_DATA[props.$size].padding - 2}px;
58
- ${(props) => props.$isFullSize && css`
59
- height: 100%;
60
- width: 100%;
61
- border-radius: 0px;
62
- `};
63
- ${(props) => props.$isWidthAsHeight && css`
64
- width: ${KEY_SIZE_DATA[props.$size].height}px;
65
- min-width: ${KEY_SIZE_DATA[props.$size].height}px;
66
- padding: 0px;
67
- `};
68
- ${(props) => props.$isMinWidthAsContent && css`
69
- min-width: max-content;
70
- `};
71
- `;
72
- const addButtonBorder = css`
73
- border: 1px solid transparent;
74
- `;
75
- const addButtonFlex = css`
76
- display: flex;
77
- align-items: center;
78
- justify-content: center;
79
- `;
80
- const StyledButton = styled(motion.button)`
81
- cursor: pointer;
82
- user-select: none;
83
-
84
- ${addButtonBorder};
85
- ${addButtonSize};
86
- ${addButtonGenre};
87
- ${addButtonDisabled};
88
- ${addButtonIsHiddenBorder};
89
- ${addButtonIsRadius};
90
- ${addButtonIsPlaystationEffect};
91
- ${addButtonFlex};
92
- ${addRippleDefault};
93
- ${addTransition};
94
- ${addFont};
95
- ${addOutline};
96
- ${addSXTypography};
97
- ${addSX};
98
- `;
99
- const StyledButtonIconsWrapper = styled.div`
100
- ${(props) => props.$isIconGroup ? css`
101
- display: flex;
102
- gap: ${KEY_SIZE_DATA[props.$size].padding - 2}px;
103
- align-items: center;
104
- order: ${props.$iconGroupOrder || "initial"};
105
- ` : css`
106
- display: contents;
107
- `}
108
- `;
109
- const Button = (props) => {
110
- var _a, _b, _c, _d;
111
- const theme = useTheme();
112
- const iconComponents = useMemo(
113
- () => getIconComponents({ icons: props.icons ?? [], size: props.size }),
114
- [props.icons, props.size]
115
- );
116
- const handleClick = (event) => {
117
- if (!props.isDisabled && props.onClick) {
118
- props.onClick(event);
119
- }
120
- };
121
- const refDefault = useRef(null);
122
- const ref = useMergeRefs([refDefault, props.ref]);
123
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
124
- StyledButton,
125
- {
126
- $font: {
127
- size: ((_a = props.font) == null ? void 0 : _a.size) ?? KEY_SIZE_DATA[props.size].font,
128
- weight: ((_b = props.font) == null ? void 0 : _b.weight) ?? 700,
129
- family: ((_c = props.font) == null ? void 0 : _c.family) ?? theme.font.family,
130
- height: (_d = props.font) == null ? void 0 : _d.height
131
- },
132
- $isNotHoverEffect: props.isNotHoverEffect,
133
- whileTap: props.isWhileTapEffect ? { scale: 0.9, transition: { duration: 0.01 } } : {},
134
- id: props.id,
135
- tabIndex: props.tabIndex ?? 0,
136
- $isFullSize: props.isFullSize,
137
- $genre: props.genre,
138
- $size: props.size,
139
- $isDisabled: props.isDisabled,
140
- $isDisabledOutline: props.isDisabled ?? props.isDisabledOutline,
141
- $isOutlineBoxShadow: props.isOutlineBoxShadow,
142
- $isReadOnly: props.isReadOnly,
143
- $isMinWidthAsContent: props.isMinWidthAsContent,
144
- $isWidthAsHeight: props.isWidthAsHeight,
145
- $isRadius: props.isRadius,
146
- $isHidden: props.isHidden,
147
- $isPlaystationEffect: props.isPlaystationEffect,
148
- $sxTypography: props.sxTypography,
149
- $isHiddenBorder: props.isHiddenBorder || props.isPlaystationEffect,
150
- disabled: props.isDisabled,
151
- type: props.type ?? "button",
152
- className: props.className,
153
- onClick: handleClick,
154
- onFocus: props.onFocus,
155
- onMouseDown: props.onMouseDown,
156
- ref,
157
- $sx: props.sx,
158
- children: [
159
- /* @__PURE__ */ jsxRuntimeExports.jsx(
160
- Ripple,
161
- {
162
- color: theme.colors.checkbox[props.genre].color.rest,
163
- isDisabled: props.isDisabled ?? props.isDisabledRipple,
164
- isHidden: props.isHidden
165
- }
166
- ),
167
- !props.isOnlyIcon && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { order: 0, display: "contents" }, children: props.children && props.children }),
168
- /* @__PURE__ */ jsxRuntimeExports.jsx(
169
- StyledButtonIconsWrapper,
170
- {
171
- $size: props.size,
172
- $isIconGroup: props.isIconGroup,
173
- $iconGroupOrder: "iconGroupOrder" in props ? props.iconGroupOrder : void 0,
174
- children: iconComponents
175
- }
176
- )
177
- ]
178
- }
179
- );
180
- };
181
- export {
182
- Button as B,
183
- StyledButton as S,
184
- StyledButtonIconsWrapper as a
185
- };
186
- //# sourceMappingURL=component-jPLOz52P.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-jPLOz52P.js","sources":["../src/components/button/component.styles.ts","../src/components/button/component.tsx"],"sourcesContent":["import { addRippleDefault } from '@local/components/ripple';\nimport { addSXTypography } from '@local/components/typography';\nimport { addFont, addOutline, addTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { StyledDollarButtonIconsWrapperProps, StyledDollarButtonProps } from '.';\n\n/**\n * Add\n */\nconst addButtonGenre = css<StyledDollarButtonProps>`\n ${(props) => css`\n background: ${props.theme.colors.button[props.$genre].background.rest};\n border-color: ${props.theme.colors.button[props.$genre].border.rest};\n color: ${props.theme.colors.button[props.$genre].color.rest};\n &:hover {\n ${\n (!props.$isHidden || props.$isNotHoverEffect) &&\n css`\n background: ${props.theme.colors.button[props.$genre].background.hover};\n border-color: ${props.theme.colors.button[props.$genre].border.hover};\n color: ${props.theme.colors.button[props.$genre].color.hover};\n `\n }\n }\n `};\n`;\nconst addButtonDisabled = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHidden\n ? css`\n opacity: 0.5;\n background: ${props.theme.colors.button[props.$genre].background.rest} !important;\n color: ${props.theme.colors.button[props.$genre].color.rest} !important;\n `\n : css`\n opacity: 1;\n `}\n`;\nconst addButtonIsHiddenBorder = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isHiddenBorder &&\n css`\n border: 0px transparent !important;\n `}\n`;\nconst addButtonIsRadius = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isRadius &&\n css`\n border-radius: 100px;\n `}\n`;\nconst addButtonIsPlaystationEffect = css<StyledDollarButtonProps>`\n ${(props) =>\n props.$isPlaystationEffect &&\n css`\n box-shadow: ${props.theme.effects.button};\n `}\n`;\nconst addButtonSize = css<StyledDollarButtonProps>`\n height: fit-content;\n min-height: ${(props) => KEY_SIZE_DATA[props.$size].height}px;\n max-height: fit-content;\n padding: 2px ${(props) => KEY_SIZE_DATA[props.$size].padding}px;\n border-radius: ${(props) => KEY_SIZE_DATA[props.$size].radius}px;\n gap: ${(props) => KEY_SIZE_DATA[props.$size].padding - 2}px;\n ${(props) =>\n props.$isFullSize &&\n css`\n height: 100%;\n width: 100%;\n border-radius: 0px;\n `};\n ${(props) =>\n props.$isWidthAsHeight &&\n css`\n width: ${KEY_SIZE_DATA[props.$size].height}px;\n min-width: ${KEY_SIZE_DATA[props.$size].height}px;\n padding: 0px;\n `};\n ${(props) =>\n props.$isMinWidthAsContent &&\n css`\n min-width: max-content;\n `};\n`;\nconst addButtonBorder = css`\n border: 1px solid transparent;\n`;\nconst addButtonFlex = css<StyledDollarButtonProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n/**\n * Styled\n */\nexport const StyledButton = styled(motion.button)<StyledDollarButtonProps>`\n cursor: pointer;\n user-select: none;\n\n ${addButtonBorder};\n ${addButtonSize};\n ${addButtonGenre};\n ${addButtonDisabled};\n ${addButtonIsHiddenBorder};\n ${addButtonIsRadius};\n ${addButtonIsPlaystationEffect};\n ${addButtonFlex};\n ${addRippleDefault};\n ${addTransition};\n ${addFont};\n ${addOutline};\n ${addSXTypography};\n ${addSX};\n`;\nexport const StyledButtonIconsWrapper = styled.div<StyledDollarButtonIconsWrapperProps>`\n ${(props) =>\n props.$isIconGroup\n ? css`\n display: flex;\n gap: ${KEY_SIZE_DATA[props.$size].padding - 2}px;\n align-items: center;\n order: ${props.$iconGroupOrder || 'initial'};\n `\n : css`\n display: contents;\n `}\n`;\n","import { getIconComponents } from '@local/components/icon';\nimport { Ripple } from '@local/components/ripple';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useMergeRefs } from '@floating-ui/react';\nimport { FC, Ref, useMemo, useRef } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ButtonProps, StyledButton, StyledButtonIconsWrapper } from '.';\n\nexport const Button: FC<ButtonProps> = (props) => {\n const theme = useTheme();\n\n const iconComponents = useMemo(\n () => getIconComponents({ icons: props.icons ?? [], size: props.size }),\n [props.icons, props.size],\n );\n\n const handleClick: ButtonProps['onClick'] = (event) => {\n if (!props.isDisabled && props.onClick) {\n props.onClick(event);\n }\n };\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n return (\n <StyledButton\n $font={{\n size: props.font?.size ?? KEY_SIZE_DATA[props.size].font,\n weight: props.font?.weight ?? 700,\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height,\n }}\n $isNotHoverEffect={props.isNotHoverEffect}\n whileTap={props.isWhileTapEffect ? { scale: 0.9, transition: { duration: 0.01 } } : {}}\n id={props.id}\n tabIndex={props.tabIndex ?? 0}\n $isFullSize={props.isFullSize}\n $genre={props.genre}\n $size={props.size}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $isMinWidthAsContent={props.isMinWidthAsContent}\n $isWidthAsHeight={props.isWidthAsHeight}\n $isRadius={props.isRadius}\n $isHidden={props.isHidden}\n $isPlaystationEffect={props.isPlaystationEffect}\n $sxTypography={props.sxTypography}\n $isHiddenBorder={props.isHiddenBorder || props.isPlaystationEffect}\n disabled={props.isDisabled}\n type={props.type ?? 'button'}\n className={props.className}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n ref={ref as Ref<HTMLButtonElement>}\n $sx={props.sx}\n >\n <Ripple\n color={theme.colors.checkbox[props.genre].color.rest}\n isDisabled={props.isDisabled ?? props.isDisabledRipple}\n isHidden={props.isHidden}\n />\n\n {!props.isOnlyIcon && <div style={{ order: 0, display: 'contents' }}>{props.children && props.children}</div>}\n <StyledButtonIconsWrapper\n $size={props.size}\n $isIconGroup={props.isIconGroup}\n $iconGroupOrder={'iconGroupOrder' in props ? props.iconGroupOrder : undefined}\n >\n {iconComponents}\n </StyledButtonIconsWrapper>\n </StyledButton>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("react"),n=require("react-leaflet");require("leaflet.markercluster");const o=require("react-leaflet-markercluster"),s=require("./component-BfppCwz9.cjs"),i=require("styled-components");require("./component.styles-BviHtzJH.cjs"),require("./component.styles-Dpg-__rn.cjs"),require("./theme.global-D67h5YeA.cjs");const r=require("leaflet"),C=require("./use-C1l0O0Qo.cjs"),l=require("./consts.cjs.js"),p=[-8.409518,115.188919],a=l.MapThemeList.find(e=>"OpenStreetMap"===e.name)||l.MapThemeList[0],u=t=>e.jsxRuntimeExports.jsx(o,{iconCreateFunction:e=>m(e,t.getCustomClusterLabel),chunkedLoading:!0,showCoverageOnHover:!1,spiderfyOnMaxZoom:!1,children:t.markers.map(o=>{var s;return e.jsxRuntimeExports.jsx(n.Marker,{position:o.position,icon:x((null==(s=null==t?void 0:t.getCustomClusterLabel)?void 0:s.call(t,o.options?[o.options]:[]))??""),options:o.options,children:e.jsxRuntimeExports.jsx(n.Popup,{...o.popupProps,children:o.popupContent})},o.id)})}),c=i.div`
2
- display: contents;
3
- .leaflet-popup-content-wrapper {
4
- ${e=>{var t;return(null==(t=e.style)?void 0:t.popupWrapper)&&i.css(e.style.popupWrapper)}}
5
- }
6
- .leaflet-popup-content {
7
- max-width: fit-content;
8
- width: 100%;
9
- ${e=>{var t;return(null==(t=e.style)?void 0:t.popupContent)&&i.css(e.style.popupContent)}}
10
- }
11
- .leaflet-div-icon {
12
- background: none;
13
- border: none;
14
- }
15
- `,m=(e,t)=>{const n=e.getChildCount(),o=e.getAllChildMarkers(),s=null==t?void 0:t(o.map(e=>e.options.options));return new r.DivIcon({html:`\n <div style="position: relative; width: 100%; height: 100%; display: flex; justify-content: center;">\n <svg width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path fill="#2A77EE" d="M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z"/>\n <path fill="#F7FAFF" d="M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z"/>\n <path fill="#2A77EE" d="M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z"/>\n </svg>\n <div \n style="\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n "\n >\n ${n} | ${s}\n </div>\n </div>\n `,iconSize:new r.Point(42,42),iconAnchor:[21,42]})},x=e=>new r.DivIcon({html:`\n <div style="position: relative; width: 100%; height: 100%; display: flex; justify-content: center;">\n <svg width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path fill="#2A77EE" d="M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z"/>\n <path fill="#F7FAFF" d="M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z"/>\n <path fill="#2A77EE" d="M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z"/>\n </svg>\n <div \n style="\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n "\n >\n ${e}\n </div>\n </div>\n `,iconSize:new r.Point(42,42),iconAnchor:[21,42],popupAnchor:[0,-36]}),d=()=>new r.DivIcon({html:'\n <div style="position: relative; width: 100%; height: 100%; display: flex; justify-content: center;">\n <svg width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path fill="#2A77EE" d="M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z"/>\n <path fill="#F7FAFF" d="M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z"/>\n <path fill="#2A77EE" d="M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z"/>\n </svg>\n </div>\n ',iconSize:new r.Point(42,42),iconAnchor:[21,42],popupAnchor:[0,-36]});function h(e){const o=n.useMap(),s=C.useDeepCompareMemoize(e);return t.useEffect(()=>{s.center&&s.maxBounds&&s.zoom?(o.setMaxBounds(s.maxBounds),o.setView(s.center,s.zoom)):s.center&&o.setView(s.center,s.zoom)},[o,s]),null}function f(){const o=n.useMap(),i=t.useCallback(()=>o.zoomOut(),[o]),r=t.useCallback(()=>o.zoomIn(),[o]),[C,l]=t.useState(!0),[p,a]=t.useState(!0);return t.useEffect(()=>{const e=()=>{l(o.getZoom()<o.getMaxZoom()),a(o.getZoom()>o.getMinZoom())};return o.on("zoomend",e),e(),()=>{o.off("zoomend",e)}},[o]),e.jsxRuntimeExports.jsxs("div",{style:{position:"absolute",top:"50%",right:"20px",transform:"translateY(-50%)",zIndex:400,display:"flex",flexDirection:"column",gap:"10px",pointerEvents:"none"},children:[e.jsxRuntimeExports.jsx(s.Button,{isHiddenBorder:!0,genre:"realebail-product",isWidthAsHeight:!0,isHidden:!C,isDisabled:!C,size:"small",icons:[{name:"Plus",type:"id",size:"medium"}],sx:{default:{pointerEvents:"all"}},onClick:e=>{e.preventDefault(),e.stopPropagation(),r()},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()}}),e.jsxRuntimeExports.jsx(s.Button,{isHiddenBorder:!0,genre:"realebail-product",isHidden:!p,isDisabled:!p,isWidthAsHeight:!0,size:"small",icons:[{name:"Minus",type:"id",size:"medium"}],sx:{default:{pointerEvents:"all"}},onClick:e=>{e.preventDefault(),e.stopPropagation(),i()},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()}})]})}exports.CustomZoomControl=f,exports.DEFAULT_MAP_CENTER=p,exports.DEFAULT_MAP_MAX_ZOOM=18,exports.DEFAULT_MAP_MIN_ZOOM=2,exports.DEFAULT_MAP_THEME=a,exports.DEFAULT_MAP_ZOOM=13,exports.MapCluster=o=>{const[s,i]=t.useState(o.theme??p),[r,C]=t.useState(o.center);return t.useEffect(()=>{i(o.theme)},[o.theme]),t.useEffect(()=>{o.center&&C(o.center)},[o.center]),r&&s&&e.jsxRuntimeExports.jsx(c,{style:o.style,children:e.jsxRuntimeExports.jsxs(n.MapContainer,{zoom:o.zoom??13,minZoom:o.minZoom??2,maxZoom:o.maxZoom??18,attributionControl:!1,zoomControl:!1,style:{height:"100%",width:"100%"},children:[e.jsxRuntimeExports.jsx(f,{}),e.jsxRuntimeExports.jsx(n.TileLayer,{url:s.url,attribution:s.attribution}),e.jsxRuntimeExports.jsx(u,{getCustomClusterLabel:o.getCustomClusterLabel,markers:o.markers}),e.jsxRuntimeExports.jsx(h,{center:r,maxBounds:o.maxBounds,zoom:o.zoom})]})})},exports.MapDot=o=>{const[s,i]=t.useState(o.coords??null),[r,C]=t.useState(o.theme??a),[l,p]=t.useState(o.center);t.useEffect(()=>{C(o.theme)},[o.theme]),t.useEffect(()=>{o.center&&p(o.center)},[o.center]);const u=()=>(n.useMapEvents({click(e){if(e.originalEvent.target.classList.contains("leaflet-container")){const t=[e.latlng.lat,e.latlng.lng];i(t),o.onSelect(t)}}}),null);return t.useEffect(()=>{o.coords&&i(o.coords)},[o.coords]),l&&e.jsxRuntimeExports.jsx(c,{children:e.jsxRuntimeExports.jsxs(n.MapContainer,{zoom:o.zoom??13,minZoom:o.minZoom??2,maxZoom:o.maxZoom??18,zoomControl:!1,attributionControl:!1,style:{height:"100%",width:"100%"},children:[e.jsxRuntimeExports.jsx(n.TileLayer,{url:(null==r?void 0:r.url)??"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution:null==r?void 0:r.attribution}),e.jsxRuntimeExports.jsx(f,{}),e.jsxRuntimeExports.jsx(h,{center:l,maxBounds:o.maxBounds,zoom:o.zoom}),e.jsxRuntimeExports.jsx(u,{}),s&&e.jsxRuntimeExports.jsx(n.Marker,{position:s,icon:d()})]})})},exports.MapWrapper=c,exports.MarkerCluster=u,exports.UpdateMapSettings=h,exports.createClusterIcon=m,exports.customDefaultIcon=d,exports.customTextIcon=x;
16
- //# sourceMappingURL=component.components-BZX00SGG.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.components-BZX00SGG.cjs","sources":["../src/components/map/component.constants.tsx","../src/components/map/component.cluster.tsx","../src/components/map/component.styles.ts","../src/components/map/component.functions.tsx","../src/components/map/component.components.tsx","../src/components/map/component.map-cluster.tsx","../src/components/map/component.map-dot.tsx"],"sourcesContent":["import { MapThemeList } from '@local/consts';\n\nimport { MapTheme } from '.';\n\nexport const DEFAULT_MAP_MAX_ZOOM = 18;\nexport const DEFAULT_MAP_MIN_ZOOM = 2;\nexport const DEFAULT_MAP_ZOOM = 13;\nexport const DEFAULT_MAP_CENTER: [number, number] = [-8.409518, 115.188919];\nexport const DEFAULT_MAP_THEME: MapTheme = MapThemeList.find((e) => e.name === 'OpenStreetMap') || MapThemeList[0];\n","import leaflet from 'leaflet';\nimport 'leaflet.markercluster';\n\nimport { Marker, Popup } from 'react-leaflet';\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\n\nimport { createClusterIcon, customTextIcon, MarkerClusterProps } from '.';\n\nexport const MarkerCluster = <T extends object>(props: MarkerClusterProps<T>) => {\n return (\n <MarkerClusterGroup\n iconCreateFunction={(cluster: leaflet.MarkerCluster) => createClusterIcon(cluster, props.getCustomClusterLabel)}\n chunkedLoading\n showCoverageOnHover={false}\n spiderfyOnMaxZoom={false}\n >\n {props.markers.map((marker) => (\n <Marker\n key={marker.id}\n position={marker.position}\n icon={customTextIcon(props?.getCustomClusterLabel?.(marker.options ? [marker.options] : []) ?? '')}\n {...({\n options: marker.options,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any)}\n >\n <Popup {...marker.popupProps}>{marker.popupContent}</Popup>\n </Marker>\n ))}\n </MarkerClusterGroup>\n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { MapProps } from '.';\n\nexport const MapWrapper = styled.div<{ style?: MapProps<object>['style'] }>`\n display: contents;\n .leaflet-popup-content-wrapper {\n ${(props) => props.style?.popupWrapper && css(props.style.popupWrapper)}\n }\n .leaflet-popup-content {\n max-width: fit-content;\n width: 100%;\n ${(props) => props.style?.popupContent && css(props.style.popupContent)}\n }\n .leaflet-div-icon {\n background: none;\n border: none;\n }\n`;\n","import leaflet from 'leaflet';\n\nexport const createClusterIcon = <T extends object>(\n cluster: leaflet.MarkerCluster,\n getCustomClusterLabel?: (markers: T[]) => string,\n) => {\n const markersCount = cluster.getChildCount();\n const markers = cluster.getAllChildMarkers();\n const customLabel = getCustomClusterLabel?.(markers.map((m) => (m.options as { options: T }).options));\n\n return new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n <div \n style=\"\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n \"\n >\n ${markersCount} | ${customLabel}\n </div>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n });\n};\n\nexport const customTextIcon = (text: string) =>\n new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n <div \n style=\"\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n \"\n >\n ${text}\n </div>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n popupAnchor: [0, -36],\n });\n\nexport const customDefaultIcon = () =>\n new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n popupAnchor: [0, -36],\n });\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { useMap } from 'react-leaflet';\n\nimport { Button } from '../button';\nimport { UpdateMapSettingsProps } from '.';\n\nexport function UpdateMapSettings(props: UpdateMapSettingsProps) {\n const map = useMap();\n const propsMemo = useDeepCompareMemoize(props);\n\n useEffect(() => {\n if (propsMemo.center && propsMemo.maxBounds && propsMemo.zoom) {\n map.setMaxBounds(propsMemo.maxBounds);\n map.setView(propsMemo.center, propsMemo.zoom);\n } else {\n if (propsMemo.center) {\n map.setView(propsMemo.center, propsMemo.zoom);\n }\n }\n }, [map, propsMemo]);\n\n return null;\n}\n\nexport function CustomZoomControl() {\n const map = useMap();\n\n const handleZoomOut = useCallback(() => map.zoomOut(), [map]);\n const handleZoomIn = useCallback(() => map.zoomIn(), [map]);\n const [canZoomIn, setCanZoomIn] = useState(true);\n const [canZoomOut, setCanZoomOut] = useState(true);\n\n useEffect(() => {\n const updateZoomStatus = () => {\n setCanZoomIn(map.getZoom() < map.getMaxZoom());\n setCanZoomOut(map.getZoom() > map.getMinZoom());\n };\n\n map.on('zoomend', updateZoomStatus);\n updateZoomStatus();\n\n return () => {\n map.off('zoomend', updateZoomStatus);\n };\n }, [map]);\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n right: '20px',\n transform: 'translateY(-50%)',\n zIndex: 400,\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n pointerEvents: 'none',\n }}\n >\n <Button\n isHiddenBorder\n genre='realebail-product'\n isWidthAsHeight\n isHidden={!canZoomIn}\n isDisabled={!canZoomIn}\n size='small'\n icons={[\n {\n name: 'Plus',\n type: 'id',\n size: 'medium',\n },\n ]}\n sx={{\n default: {\n pointerEvents: 'all',\n },\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleZoomIn();\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Button\n isHiddenBorder\n genre='realebail-product'\n isHidden={!canZoomOut}\n isDisabled={!canZoomOut}\n isWidthAsHeight\n size='small'\n icons={[\n {\n name: 'Minus',\n type: 'id',\n size: 'medium',\n },\n ]}\n sx={{\n default: {\n pointerEvents: 'all',\n },\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleZoomOut();\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { MapContainer, TileLayer } from 'react-leaflet';\nimport 'react-leaflet-markercluster/styles';\n\nimport {\n CustomZoomControl,\n DEFAULT_MAP_CENTER,\n DEFAULT_MAP_MAX_ZOOM,\n DEFAULT_MAP_MIN_ZOOM,\n DEFAULT_MAP_ZOOM,\n MapProps,\n MapWrapper,\n MarkerCluster,\n UpdateMapSettings,\n} from '.';\n\nimport 'leaflet.markercluster/dist/MarkerCluster.Default.css';\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\nimport 'leaflet/dist/leaflet.css';\n\nexport const MapCluster = <T extends object>(props: MapProps<T>) => {\n const [theme, setTheme] = useState(props.theme ?? DEFAULT_MAP_CENTER);\n const [center, setCenter] = useState(props.center);\n\n useEffect(() => {\n setTheme(props.theme);\n }, [props.theme]);\n\n useEffect(() => {\n if (props.center) {\n setCenter(props.center);\n }\n }, [props.center]);\n\n return (\n center &&\n theme && (\n <MapWrapper style={props.style}>\n <MapContainer\n zoom={props.zoom ?? DEFAULT_MAP_ZOOM}\n minZoom={props.minZoom ?? DEFAULT_MAP_MIN_ZOOM}\n maxZoom={props.maxZoom ?? DEFAULT_MAP_MAX_ZOOM}\n attributionControl={false}\n zoomControl={false}\n style={{ height: '100%', width: '100%' }}\n >\n <CustomZoomControl />\n <TileLayer url={theme.url} attribution={theme.attribution} />\n <MarkerCluster getCustomClusterLabel={props.getCustomClusterLabel} markers={props.markers} />\n <UpdateMapSettings center={center} maxBounds={props.maxBounds} zoom={props.zoom} />\n </MapContainer>\n </MapWrapper>\n )\n );\n};\n","import { useEffect, useState } from 'react';\nimport { MapContainer, Marker, TileLayer, useMapEvents } from 'react-leaflet';\nimport 'react-leaflet-markercluster/styles';\n\nimport {\n CustomZoomControl,\n customDefaultIcon,\n DEFAULT_MAP_MAX_ZOOM,\n DEFAULT_MAP_MIN_ZOOM,\n DEFAULT_MAP_THEME,\n DEFAULT_MAP_ZOOM,\n MapDotProps,\n MapWrapper,\n UpdateMapSettings,\n} from '.';\n\nimport 'leaflet.markercluster/dist/MarkerCluster.Default.css';\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\nimport 'leaflet/dist/leaflet.css';\n\nexport const MapDot = (props: MapDotProps) => {\n const [position, setPosition] = useState<[number, number] | null>(props.coords ?? null);\n const [theme, setTheme] = useState(props.theme ?? DEFAULT_MAP_THEME);\n const [center, setCenter] = useState(props.center);\n\n useEffect(() => {\n setTheme(props.theme);\n }, [props.theme]);\n\n useEffect(() => {\n if (props.center) {\n setCenter(props.center);\n }\n }, [props.center]);\n\n const MapClickHandler = () => {\n useMapEvents({\n click(e) {\n if ((e.originalEvent.target as HTMLElement).classList.contains('leaflet-container')) {\n const coords: [number, number] = [e.latlng.lat, e.latlng.lng];\n setPosition(coords);\n props.onSelect(coords);\n }\n },\n });\n return null;\n };\n\n useEffect(() => {\n if (props.coords) {\n setPosition(props.coords);\n }\n }, [props.coords]);\n return (\n center && (\n <MapWrapper>\n <MapContainer\n zoom={props.zoom ?? DEFAULT_MAP_ZOOM}\n minZoom={props.minZoom ?? DEFAULT_MAP_MIN_ZOOM}\n maxZoom={props.maxZoom ?? DEFAULT_MAP_MAX_ZOOM}\n zoomControl={false}\n attributionControl={false}\n style={{ height: '100%', width: '100%' }}\n >\n <TileLayer\n url={theme?.url ?? 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'}\n attribution={theme?.attribution}\n />\n <CustomZoomControl />\n <UpdateMapSettings center={center} maxBounds={props.maxBounds} zoom={props.zoom} />\n <MapClickHandler />\n {position && <Marker position={position} icon={customDefaultIcon()} />}\n </MapContainer>\n </MapWrapper>\n )\n );\n};\n"],"names":["DEFAULT_MAP_CENTER","DEFAULT_MAP_THEME","MapThemeList","find","e","name","MarkerCluster","props","jsx","MarkerClusterGroup","iconCreateFunction","cluster","createClusterIcon","getCustomClusterLabel","chunkedLoading","showCoverageOnHover","spiderfyOnMaxZoom","children","markers","map","marker","Marker","position","icon","customTextIcon","_a","call","options","Popup","popupProps","popupContent","id","MapWrapper","styled","div","style","popupWrapper","css","markersCount","getChildCount","getAllChildMarkers","customLabel","m","leaflet","DivIcon","html","iconSize","Point","iconAnchor","text","popupAnchor","customDefaultIcon","UpdateMapSettings","useMap","propsMemo","useDeepCompareMemoize","useEffect","center","maxBounds","zoom","setMaxBounds","setView","CustomZoomControl","handleZoomOut","useCallback","zoomOut","handleZoomIn","zoomIn","canZoomIn","setCanZoomIn","useState","canZoomOut","setCanZoomOut","updateZoomStatus","getZoom","getMaxZoom","getMinZoom","on","off","jsxs","top","right","transform","zIndex","display","flexDirection","gap","pointerEvents","Button","isHiddenBorder","genre","isWidthAsHeight","isHidden","isDisabled","size","icons","type","sx","default","onClick","preventDefault","stopPropagation","onMouseDown","theme","setTheme","setCenter","MapContainer","minZoom","maxZoom","attributionControl","zoomControl","height","width","TileLayer","url","attribution","setPosition","coords","MapClickHandler","useMapEvents","click","originalEvent","target","classList","contains","latlng","lat","lng","onSelect"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.components-C9TkSqTp.js","sources":["../src/components/map/component.constants.tsx","../src/components/map/component.map-cluster.tsx","../src/components/map/component.map-dot.tsx","../src/components/map/component.cluster.tsx","../src/components/map/component.styles.ts","../src/components/map/component.functions.tsx","../src/components/map/component.components.tsx"],"sourcesContent":["import { MapThemeList } from '@local/consts';\n\nimport { MapTheme } from '.';\n\nexport const DEFAULT_MAP_MAX_ZOOM = 18;\nexport const DEFAULT_MAP_MIN_ZOOM = 2;\nexport const DEFAULT_MAP_ZOOM = 13;\nexport const DEFAULT_MAP_CENTER: [number, number] = [-8.409518, 115.188919];\nexport const DEFAULT_MAP_THEME: MapTheme = MapThemeList.find((e) => e.name === 'OpenStreetMap') || MapThemeList[0];\n","import { useEffect, useState } from 'react';\nimport { MapContainer, TileLayer } from 'react-leaflet';\nimport 'react-leaflet-markercluster/styles';\n\nimport {\n CustomZoomControl,\n DEFAULT_MAP_CENTER,\n DEFAULT_MAP_MAX_ZOOM,\n DEFAULT_MAP_MIN_ZOOM,\n DEFAULT_MAP_ZOOM,\n MapProps,\n MapWrapper,\n MarkerCluster,\n UpdateMapSettings,\n} from '.';\n\nimport 'leaflet.markercluster/dist/MarkerCluster.Default.css';\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\nimport 'leaflet/dist/leaflet.css';\n\nexport const MapCluster = <T extends object>(props: MapProps<T>) => {\n const [theme, setTheme] = useState(props.theme ?? DEFAULT_MAP_CENTER);\n const [center, setCenter] = useState(props.center);\n\n useEffect(() => {\n setTheme(props.theme);\n }, [props.theme]);\n\n useEffect(() => {\n if (props.center) {\n setCenter(props.center);\n }\n }, [props.center]);\n\n return (\n center &&\n theme && (\n <MapWrapper style={props.style}>\n <MapContainer\n zoom={props.zoom ?? DEFAULT_MAP_ZOOM}\n minZoom={props.minZoom ?? DEFAULT_MAP_MIN_ZOOM}\n maxZoom={props.maxZoom ?? DEFAULT_MAP_MAX_ZOOM}\n attributionControl={false}\n zoomControl={false}\n style={{ height: '100%', width: '100%' }}\n >\n <CustomZoomControl />\n <TileLayer url={theme.url} attribution={theme.attribution} />\n <MarkerCluster getCustomClusterLabel={props.getCustomClusterLabel} markers={props.markers} />\n <UpdateMapSettings center={center} maxBounds={props.maxBounds} zoom={props.zoom} />\n </MapContainer>\n </MapWrapper>\n )\n );\n};\n","import { useEffect, useState } from 'react';\nimport { MapContainer, Marker, TileLayer, useMapEvents } from 'react-leaflet';\nimport 'react-leaflet-markercluster/styles';\n\nimport {\n CustomZoomControl,\n customDefaultIcon,\n DEFAULT_MAP_MAX_ZOOM,\n DEFAULT_MAP_MIN_ZOOM,\n DEFAULT_MAP_THEME,\n DEFAULT_MAP_ZOOM,\n MapDotProps,\n MapWrapper,\n UpdateMapSettings,\n} from '.';\n\nimport 'leaflet.markercluster/dist/MarkerCluster.Default.css';\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\nimport 'leaflet/dist/leaflet.css';\n\nexport const MapDot = (props: MapDotProps) => {\n const [position, setPosition] = useState<[number, number] | null>(props.coords ?? null);\n const [theme, setTheme] = useState(props.theme ?? DEFAULT_MAP_THEME);\n const [center, setCenter] = useState(props.center);\n\n useEffect(() => {\n setTheme(props.theme);\n }, [props.theme]);\n\n useEffect(() => {\n if (props.center) {\n setCenter(props.center);\n }\n }, [props.center]);\n\n const MapClickHandler = () => {\n useMapEvents({\n click(e) {\n if ((e.originalEvent.target as HTMLElement).classList.contains('leaflet-container')) {\n const coords: [number, number] = [e.latlng.lat, e.latlng.lng];\n setPosition(coords);\n props.onSelect(coords);\n }\n },\n });\n return null;\n };\n\n useEffect(() => {\n if (props.coords) {\n setPosition(props.coords);\n }\n }, [props.coords]);\n return (\n center && (\n <MapWrapper>\n <MapContainer\n zoom={props.zoom ?? DEFAULT_MAP_ZOOM}\n minZoom={props.minZoom ?? DEFAULT_MAP_MIN_ZOOM}\n maxZoom={props.maxZoom ?? DEFAULT_MAP_MAX_ZOOM}\n zoomControl={false}\n attributionControl={false}\n style={{ height: '100%', width: '100%' }}\n >\n <TileLayer\n url={theme?.url ?? 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'}\n attribution={theme?.attribution}\n />\n <CustomZoomControl />\n <UpdateMapSettings center={center} maxBounds={props.maxBounds} zoom={props.zoom} />\n <MapClickHandler />\n {position && <Marker position={position} icon={customDefaultIcon()} />}\n </MapContainer>\n </MapWrapper>\n )\n );\n};\n","import leaflet from 'leaflet';\nimport 'leaflet.markercluster';\n\nimport { Marker, Popup } from 'react-leaflet';\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\n\nimport { createClusterIcon, customTextIcon, MarkerClusterProps } from '.';\n\nexport const MarkerCluster = <T extends object>(props: MarkerClusterProps<T>) => {\n return (\n <MarkerClusterGroup\n iconCreateFunction={(cluster: leaflet.MarkerCluster) => createClusterIcon(cluster, props.getCustomClusterLabel)}\n chunkedLoading\n showCoverageOnHover={false}\n spiderfyOnMaxZoom={false}\n >\n {props.markers.map((marker) => (\n <Marker\n key={marker.id}\n position={marker.position}\n icon={customTextIcon(props?.getCustomClusterLabel?.(marker.options ? [marker.options] : []) ?? '')}\n {...({\n options: marker.options,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any)}\n >\n <Popup {...marker.popupProps}>{marker.popupContent}</Popup>\n </Marker>\n ))}\n </MarkerClusterGroup>\n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { MapProps } from '.';\n\nexport const MapWrapper = styled.div<{ style?: MapProps<object>['style'] }>`\n display: contents;\n .leaflet-popup-content-wrapper {\n ${(props) => props.style?.popupWrapper && css(props.style.popupWrapper)}\n }\n .leaflet-popup-content {\n max-width: fit-content;\n width: 100%;\n ${(props) => props.style?.popupContent && css(props.style.popupContent)}\n }\n .leaflet-div-icon {\n background: none;\n border: none;\n }\n`;\n","import leaflet from 'leaflet';\n\nexport const createClusterIcon = <T extends object>(\n cluster: leaflet.MarkerCluster,\n getCustomClusterLabel?: (markers: T[]) => string,\n) => {\n const markersCount = cluster.getChildCount();\n const markers = cluster.getAllChildMarkers();\n const customLabel = getCustomClusterLabel?.(markers.map((m) => (m.options as { options: T }).options));\n\n return new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n <div \n style=\"\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n \"\n >\n ${markersCount} | ${customLabel}\n </div>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n });\n};\n\nexport const customTextIcon = (text: string) =>\n new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n <div \n style=\"\n position: absolute;\n top: -30px;\n background-color: #2A77EE;\n padding: 0px 10px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-size: 20px;\n line-height: 150%;\n letter-spacing: -0.03em;\n color: #F7FAFF;\n white-space: nowrap;\n \"\n >\n ${text}\n </div>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n popupAnchor: [0, -36],\n });\n\nexport const customDefaultIcon = () =>\n new leaflet.DivIcon({\n html: `\n <div style=\"position: relative; width: 100%; height: 100%; display: flex; justify-content: center;\">\n <svg width=\"42\" height=\"42\" viewBox=\"0 0 42 42\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#2A77EE\" d=\"M34.125 18.375C34.125 30.8735 21 38.0625 21 38.0625C21 38.0625 7.875 30.8735 7.875 18.375C7.875 14.894 9.25781 11.5556 11.7192 9.09422C14.1806 6.63281 17.519 5.25 21 5.25C24.481 5.25 27.8194 6.63281 30.2808 9.09422C32.7422 11.5556 34.125 14.894 34.125 18.375ZM21.0003 6.33599C17.8074 6.33599 14.7453 7.60436 12.4876 9.86207C10.2298 12.1198 8.96148 15.1819 8.96148 18.3748C8.96148 24.2256 12.0337 28.8895 15.2148 32.1465C16.7986 33.768 18.3854 35.0153 19.5762 35.8565C20.1675 36.2743 20.6588 36.5902 21.0003 36.8006C21.3417 36.5902 21.833 36.2743 22.4243 35.8565C23.6152 35.0153 25.202 33.768 26.7857 32.1465C29.9668 28.8895 33.0391 24.2256 33.0391 18.3748C33.0391 15.1819 31.7707 12.1198 29.513 9.86207C27.2553 7.60436 24.1932 6.33599 21.0003 6.33599ZM21.0003 38.0623C20.4785 39.0149 20.4781 39.0147 20.4776 39.0145L20.4765 39.0139L20.4733 39.0121L20.4634 39.0066L20.4297 38.9877C20.401 38.9716 20.3603 38.9485 20.3083 38.9183C20.2042 38.858 20.0549 38.7697 19.8668 38.6539C19.4907 38.4223 18.9587 38.0801 18.3228 37.6309C17.0527 36.7336 15.3582 35.4025 13.6607 33.6644C10.2793 30.2024 6.78906 25.0224 6.78906 18.3748C6.78906 14.6057 8.28631 10.9911 10.9514 8.32594C13.6165 5.66082 17.2312 4.16357 21.0003 4.16357C24.7693 4.16357 28.384 5.66082 31.0491 8.32594C33.7142 10.9911 35.2115 14.6057 35.2115 18.3748C35.2115 25.0224 31.7212 30.2024 28.3398 33.6644C26.6423 35.4025 24.9479 36.7336 23.6778 37.6309C23.0418 38.0801 22.5099 38.4223 22.1338 38.6539C21.9456 38.7697 21.7963 38.858 21.6923 38.9183C21.6402 38.9485 21.5995 38.9716 21.5709 38.9877L21.5371 39.0066L21.5272 39.0121L21.524 39.0139L21.5229 39.0145C21.5225 39.0147 21.5221 39.0149 21.0003 38.0623ZM21.0003 38.0623L21.5221 39.0149C21.197 39.193 20.8035 39.193 20.4785 39.0149L21.0003 38.0623Z\"/>\n <path fill=\"#F7FAFF\" d=\"M26.25 18.375C26.25 19.7674 25.6969 21.1027 24.7123 22.0873C23.7277 23.0719 22.3924 23.625 21 23.625C19.6076 23.625 18.2723 23.0719 17.2877 22.0873C16.3031 21.1027 15.75 19.7674 15.75 18.375C15.75 16.9826 16.3031 15.6473 17.2877 14.6627C18.2723 13.6781 19.6076 13.125 21 13.125C22.3924 13.125 23.7277 13.6781 24.7123 14.6627C25.6969 15.6473 26.25 16.9826 26.25 18.375Z\"/>\n <path fill=\"#2A77EE\" d=\"M21.0003 14.211C19.896 14.211 18.8369 14.6497 18.056 15.4305C17.2752 16.2114 16.8365 17.2705 16.8365 18.3748C16.8365 19.4791 17.2752 20.5382 18.056 21.319C18.8369 22.0999 19.896 22.5386 21.0003 22.5386C22.1046 22.5386 23.1637 22.0999 23.9445 21.319C24.7254 20.5382 25.1641 19.4791 25.1641 18.3748C25.1641 17.2705 24.7254 16.2114 23.9445 15.4305C23.1637 14.6497 22.1046 14.211 21.0003 14.211ZM16.5199 13.8944C17.7082 12.7061 19.3198 12.0386 21.0003 12.0386C22.6807 12.0386 24.2924 12.7061 25.4806 13.8944C26.6689 15.0827 27.3365 16.6943 27.3365 18.3748C27.3365 20.0552 26.6689 21.6669 25.4806 22.8552C24.2924 24.0434 22.6807 24.711 21.0003 24.711C19.3198 24.711 17.7082 24.0434 16.5199 22.8552C15.3316 21.6669 14.6641 20.0552 14.6641 18.3748C14.6641 16.6943 15.3316 15.0827 16.5199 13.8944Z\"/>\n </svg>\n </div>\n `,\n iconSize: new leaflet.Point(42, 42),\n iconAnchor: [21, 42],\n popupAnchor: [0, -36],\n });\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { useMap } from 'react-leaflet';\n\nimport { Button } from '../button';\nimport { UpdateMapSettingsProps } from '.';\n\nexport function UpdateMapSettings(props: UpdateMapSettingsProps) {\n const map = useMap();\n const propsMemo = useDeepCompareMemoize(props);\n\n useEffect(() => {\n if (propsMemo.center && propsMemo.maxBounds && propsMemo.zoom) {\n map.setMaxBounds(propsMemo.maxBounds);\n map.setView(propsMemo.center, propsMemo.zoom);\n } else {\n if (propsMemo.center) {\n map.setView(propsMemo.center, propsMemo.zoom);\n }\n }\n }, [map, propsMemo]);\n\n return null;\n}\n\nexport function CustomZoomControl() {\n const map = useMap();\n\n const handleZoomOut = useCallback(() => map.zoomOut(), [map]);\n const handleZoomIn = useCallback(() => map.zoomIn(), [map]);\n const [canZoomIn, setCanZoomIn] = useState(true);\n const [canZoomOut, setCanZoomOut] = useState(true);\n\n useEffect(() => {\n const updateZoomStatus = () => {\n setCanZoomIn(map.getZoom() < map.getMaxZoom());\n setCanZoomOut(map.getZoom() > map.getMinZoom());\n };\n\n map.on('zoomend', updateZoomStatus);\n updateZoomStatus();\n\n return () => {\n map.off('zoomend', updateZoomStatus);\n };\n }, [map]);\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n right: '20px',\n transform: 'translateY(-50%)',\n zIndex: 400,\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n pointerEvents: 'none',\n }}\n >\n <Button\n isHiddenBorder\n genre='realebail-product'\n isWidthAsHeight\n isHidden={!canZoomIn}\n isDisabled={!canZoomIn}\n size='small'\n icons={[\n {\n name: 'Plus',\n type: 'id',\n size: 'medium',\n },\n ]}\n sx={{\n default: {\n pointerEvents: 'all',\n },\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleZoomIn();\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Button\n isHiddenBorder\n genre='realebail-product'\n isHidden={!canZoomOut}\n isDisabled={!canZoomOut}\n isWidthAsHeight\n size='small'\n icons={[\n {\n name: 'Minus',\n type: 'id',\n size: 'medium',\n },\n ]}\n sx={{\n default: {\n pointerEvents: 'all',\n },\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleZoomOut();\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n </div>\n );\n}\n"],"names":["jsx","jsxs"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const t=require("./jsx-runtime-BcGej2Kr.cjs"),n=require("framer-motion"),e=require("react"),i=require("./component-BfppCwz9.cjs"),o=require("./component-GKvpOWlO.cjs"),s=12;exports.DEFAULT_COMPONENT_PAGINATION_GAP=s,exports.Pagination=l=>{const a=e.useMemo(()=>0==l.index&&!l.isInfinity,[l.index,l.isInfinity]),r=e.useMemo(()=>l.index==l.length-1&&!l.isInfinity,[l.index,l.isInfinity,l.length]),u=e.useMemo(()=>l.gap??s,[l.gap]),d=e.useMemo(()=>l.lengthData??{},[l.lengthData]),x=e.useCallback(()=>{0==l.index?l.isInfinity&&l.changeIndex(l.length-1):l.changeIndex(l.index-1)},[l]),c=e.useCallback(()=>{l.index==l.length-1?l.isInfinity&&l.changeIndex(0):l.changeIndex(l.index+1)},[l]),h=e.useMemo(()=>{const t=Math.floor(l.viewQuantity/2),n=Math.max(0,Math.min(l.index-t,l.length-l.viewQuantity)),e=Math.min(l.length,n+l.viewQuantity);return Array.from({length:e-n},(t,e)=>n+e)},[l.index,l.viewQuantity,l.length]);return t.jsxRuntimeExports.jsxs(o.Stack,{sx:t=>({...null==l?void 0:l.sx,default:{height:"fit-content",gap:`${u}px`,...(null==l?void 0:l.sx)?"function"==typeof(null==l?void 0:l.sx)?null==l?void 0:l.sx(t).default:null==l?void 0:l.sx.default:{}}}),children:[t.jsxRuntimeExports.jsx(i.Button,{isDisabled:a,isHidden:a,onClick:x,...l.buttonControl,icons:[{type:"id",name:"Arrow2",order:-1,turn:90}],children:!l.buttonControl.isWidthAsHeight&&l.locale.prev}),t.jsxRuntimeExports.jsx(o.Stack,{sx:{default:{width:"fit-content",height:"fit-content",display:"flex",gap:`${u}px`,alignItems:"center",justifyContent:"flex-start"}},children:Array.from({length:l.length}).map((e,o)=>{var s,a;const r=h.includes(o);return t.jsxRuntimeExports.jsx(n.AnimatePresence,{mode:"popLayout",children:r&&t.jsxRuntimeExports.jsx(n.motion.div,{layout:!0,initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:1,ease:"backOut"},children:t.jsxRuntimeExports.jsx(i.Button,{isWidthAsHeight:!0,...o===l.index?l.buttonCount.active:l.buttonCount.inactive,...null==d?void 0:d[o],onClick:()=>l.changeIndex(o),children:(null==(a=null==(s=null==d?void 0:d[o])?void 0:s.icons)?void 0:a.length)?null:o+1})})},o)})}),t.jsxRuntimeExports.jsx(i.Button,{isDisabled:r,isHidden:r,onClick:c,...l.buttonControl,icons:[{type:"id",name:"Arrow2",turn:-90}],children:!l.buttonControl.isWidthAsHeight&&l.locale.next})]})};
2
- //# sourceMappingURL=component.constants-B-ZMDpFv.cjs.map