eidos-ui 1.0.1 → 1.0.2

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 (509) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +227 -225
  3. package/dist/accordion/index.cjs +2 -2
  4. package/dist/accordion/index.cjs.map +1 -1
  5. package/dist/accordion/index.js +1 -1
  6. package/dist/alert/index.cjs +5 -5
  7. package/dist/alert/index.cjs.map +1 -1
  8. package/dist/alert/index.js +4 -4
  9. package/dist/avatar/index.cjs +2 -2
  10. package/dist/avatar/index.cjs.map +1 -1
  11. package/dist/avatar/index.js +1 -1
  12. package/dist/badge/index.cjs.map +1 -1
  13. package/dist/breadcrumb/index.cjs +2 -2
  14. package/dist/breadcrumb/index.cjs.map +1 -1
  15. package/dist/breadcrumb/index.js +1 -1
  16. package/dist/button/index.cjs +4 -4
  17. package/dist/button/index.cjs.map +1 -1
  18. package/dist/button/index.js +3 -3
  19. package/dist/button-group/index.cjs +2 -2
  20. package/dist/button-group/index.cjs.map +1 -1
  21. package/dist/button-group/index.js +1 -1
  22. package/dist/card/index.cjs +2 -2
  23. package/dist/card/index.cjs.map +1 -1
  24. package/dist/card/index.js +1 -1
  25. package/dist/checkbox/index.cjs +2 -2
  26. package/dist/checkbox/index.cjs.map +1 -1
  27. package/dist/checkbox/index.js +1 -1
  28. package/dist/chip/index.cjs +4 -4
  29. package/dist/chip/index.cjs.map +1 -1
  30. package/dist/chip/index.js +3 -3
  31. package/dist/{chunk-OHUVWPFJ.js → chunk-2BC4M4QZ.js} +1 -1
  32. package/dist/chunk-2BC4M4QZ.js.map +1 -0
  33. package/dist/{chunk-OT3VZLN4.js → chunk-2BXCIWL7.js} +3 -3
  34. package/dist/chunk-2BXCIWL7.js.map +1 -0
  35. package/dist/{chunk-6QFT3BUD.cjs → chunk-2ROKOO22.cjs} +1 -1
  36. package/dist/chunk-2ROKOO22.cjs.map +1 -0
  37. package/dist/{chunk-AOV32YBE.js → chunk-2RXQMQYW.js} +1 -1
  38. package/dist/chunk-2RXQMQYW.js.map +1 -0
  39. package/dist/{chunk-VYV45YOK.cjs → chunk-2U7UJOOB.cjs} +17 -17
  40. package/dist/chunk-2U7UJOOB.cjs.map +1 -0
  41. package/dist/{chunk-UTENJWSE.cjs → chunk-366R4GKR.cjs} +1 -1
  42. package/dist/chunk-366R4GKR.cjs.map +1 -0
  43. package/dist/{chunk-TQCNQKWF.cjs → chunk-3CXULV4G.cjs} +1 -1
  44. package/dist/chunk-3CXULV4G.cjs.map +1 -0
  45. package/dist/{chunk-PEPYVWGY.cjs → chunk-3EPND5M2.cjs} +3 -3
  46. package/dist/chunk-3EPND5M2.cjs.map +1 -0
  47. package/dist/chunk-3ETWFS2N.cjs.map +1 -1
  48. package/dist/{chunk-GL4DHGQE.js → chunk-3HMKE2GJ.js} +5 -5
  49. package/dist/chunk-3HMKE2GJ.js.map +1 -0
  50. package/dist/{chunk-QYHTMEI5.js → chunk-3LBWAUCR.js} +1 -1
  51. package/dist/chunk-3LBWAUCR.js.map +1 -0
  52. package/dist/{chunk-E2B33QB7.js → chunk-3LHQUOGP.js} +4 -4
  53. package/dist/chunk-3LHQUOGP.js.map +1 -0
  54. package/dist/chunk-3RUIKBH4.cjs.map +1 -1
  55. package/dist/{chunk-DK4S3EHG.js → chunk-3TUCQAYL.js} +1 -1
  56. package/dist/chunk-3TUCQAYL.js.map +1 -0
  57. package/dist/{chunk-BBOUUHLO.js → chunk-3VRMTWUS.js} +5 -5
  58. package/dist/chunk-3VRMTWUS.js.map +1 -0
  59. package/dist/{chunk-SXF3TCYA.js → chunk-4BKTBV2I.js} +1 -1
  60. package/dist/chunk-4BKTBV2I.js.map +1 -0
  61. package/dist/{chunk-P74HNSNJ.cjs → chunk-4BQM5F76.cjs} +3 -3
  62. package/dist/chunk-4BQM5F76.cjs.map +1 -0
  63. package/dist/{chunk-Z7S4UQKY.js → chunk-4LM33LDV.js} +2 -2
  64. package/dist/chunk-4LM33LDV.js.map +1 -0
  65. package/dist/{chunk-GRH57M3E.js → chunk-4M3LZLOH.js} +3 -3
  66. package/dist/chunk-4M3LZLOH.js.map +1 -0
  67. package/dist/{chunk-M56IGNH7.cjs → chunk-4UJ7LG4W.cjs} +3 -3
  68. package/dist/chunk-4UJ7LG4W.cjs.map +1 -0
  69. package/dist/{chunk-P6ZBENAG.js → chunk-56B6RLOE.js} +3 -3
  70. package/dist/chunk-56B6RLOE.js.map +1 -0
  71. package/dist/{chunk-XSGUFMT4.js → chunk-5CLC3FJO.js} +1 -1
  72. package/dist/chunk-5CLC3FJO.js.map +1 -0
  73. package/dist/{chunk-VLC2OZV3.cjs → chunk-5O73AALP.cjs} +1 -1
  74. package/dist/chunk-5O73AALP.cjs.map +1 -0
  75. package/dist/{chunk-F54MVGKO.js → chunk-5WROPW7Z.js} +4 -4
  76. package/dist/chunk-5WROPW7Z.js.map +1 -0
  77. package/dist/{chunk-H56YUMFB.cjs → chunk-6A2ZKVST.cjs} +5 -5
  78. package/dist/chunk-6A2ZKVST.cjs.map +1 -0
  79. package/dist/{chunk-CJUZDUXW.cjs → chunk-6RGJAQCU.cjs} +5 -5
  80. package/dist/chunk-6RGJAQCU.cjs.map +1 -0
  81. package/dist/{chunk-P2BTQ33C.cjs → chunk-6U2H26A4.cjs} +4 -4
  82. package/dist/chunk-6U2H26A4.cjs.map +1 -0
  83. package/dist/{chunk-6USUVU6J.js → chunk-6ZAT5CGB.js} +1 -1
  84. package/dist/chunk-6ZAT5CGB.js.map +1 -0
  85. package/dist/{chunk-YKECQKOV.cjs → chunk-7AHZTHXR.cjs} +9 -9
  86. package/dist/chunk-7AHZTHXR.cjs.map +1 -0
  87. package/dist/{chunk-QYK4ECSZ.js → chunk-7HEUWGYW.js} +1 -1
  88. package/dist/chunk-7HEUWGYW.js.map +1 -0
  89. package/dist/{chunk-KF64C4QI.js → chunk-A3NE2C7C.js} +2 -2
  90. package/dist/chunk-A3NE2C7C.js.map +1 -0
  91. package/dist/{chunk-LTOHGCU4.cjs → chunk-A7Z2QAFZ.cjs} +7 -7
  92. package/dist/chunk-A7Z2QAFZ.cjs.map +1 -0
  93. package/dist/{chunk-ICHPPNFV.js → chunk-ALGX5X4N.js} +5 -5
  94. package/dist/chunk-ALGX5X4N.js.map +1 -0
  95. package/dist/{chunk-FNUOTM44.cjs → chunk-AYMD4D4M.cjs} +3 -3
  96. package/dist/chunk-AYMD4D4M.cjs.map +1 -0
  97. package/dist/{chunk-HQ4KZRFH.js → chunk-BOB5JJ7F.js} +3 -3
  98. package/dist/chunk-BOB5JJ7F.js.map +1 -0
  99. package/dist/{chunk-6GAIQ2IY.cjs → chunk-CBLWP43O.cjs} +47 -47
  100. package/dist/chunk-CBLWP43O.cjs.map +1 -0
  101. package/dist/{chunk-BTPCSBGP.js → chunk-CJVC3A4O.js} +2 -2
  102. package/dist/chunk-CJVC3A4O.js.map +1 -0
  103. package/dist/{chunk-ZBGTVTQJ.js → chunk-CMOBXLNA.js} +1 -1
  104. package/dist/chunk-CMOBXLNA.js.map +1 -0
  105. package/dist/{chunk-POX6JZLO.cjs → chunk-DKZTDYH5.cjs} +5 -5
  106. package/dist/chunk-DKZTDYH5.cjs.map +1 -0
  107. package/dist/{chunk-S25WB7KJ.js → chunk-DRXPTACG.js} +1 -1
  108. package/dist/chunk-DRXPTACG.js.map +1 -0
  109. package/dist/chunk-DZUJEN5N.cjs.map +1 -1
  110. package/dist/chunk-EACNRR3C.cjs.map +1 -1
  111. package/dist/{chunk-7IOOFKG3.js → chunk-EF4Y6Q35.js} +1 -1
  112. package/dist/chunk-EF4Y6Q35.js.map +1 -0
  113. package/dist/chunk-EQ6BNPTL.cjs.map +1 -1
  114. package/dist/{chunk-VZ43OLU6.cjs → chunk-EQEV7GPT.cjs} +7 -7
  115. package/dist/chunk-EQEV7GPT.cjs.map +1 -0
  116. package/dist/{chunk-ICJ3SV5I.cjs → chunk-FKXKBJUI.cjs} +1 -1
  117. package/dist/chunk-FKXKBJUI.cjs.map +1 -0
  118. package/dist/{chunk-BFYSYUA6.cjs → chunk-FMPXSF3H.cjs} +11 -11
  119. package/dist/chunk-FMPXSF3H.cjs.map +1 -0
  120. package/dist/chunk-FQZ6F7FQ.cjs.map +1 -1
  121. package/dist/{chunk-KV2FG7AN.cjs → chunk-FRUOA2QU.cjs} +1 -1
  122. package/dist/chunk-FRUOA2QU.cjs.map +1 -0
  123. package/dist/{chunk-CDV2OAS3.cjs → chunk-G5IGADJI.cjs} +7 -7
  124. package/dist/chunk-G5IGADJI.cjs.map +1 -0
  125. package/dist/{chunk-TBMVUI7S.cjs → chunk-GOR642KK.cjs} +1 -1
  126. package/dist/chunk-GOR642KK.cjs.map +1 -0
  127. package/dist/{chunk-XJBMEDQ5.js → chunk-H6CWTMAH.js} +1 -1
  128. package/dist/chunk-H6CWTMAH.js.map +1 -0
  129. package/dist/{chunk-2ZWBN3LK.cjs → chunk-HFZ5FKRG.cjs} +1 -1
  130. package/dist/chunk-HFZ5FKRG.cjs.map +1 -0
  131. package/dist/{chunk-QGZF5MOS.cjs → chunk-HLNKIAE5.cjs} +7 -7
  132. package/dist/chunk-HLNKIAE5.cjs.map +1 -0
  133. package/dist/chunk-I44YNYI6.cjs.map +1 -1
  134. package/dist/chunk-I6UOIS4J.cjs.map +1 -1
  135. package/dist/{chunk-LEZ4HSBD.cjs → chunk-IC2M4N7R.cjs} +34 -34
  136. package/dist/chunk-IC2M4N7R.cjs.map +1 -0
  137. package/dist/{chunk-G2FANEA2.cjs → chunk-IJ4DXG7D.cjs} +1 -1
  138. package/dist/chunk-IJ4DXG7D.cjs.map +1 -0
  139. package/dist/{chunk-SOGUWOSQ.cjs → chunk-IJYYHBZC.cjs} +3 -3
  140. package/dist/chunk-IJYYHBZC.cjs.map +1 -0
  141. package/dist/{chunk-SAFSEXMU.cjs → chunk-ISABZ2VX.cjs} +8 -8
  142. package/dist/chunk-ISABZ2VX.cjs.map +1 -0
  143. package/dist/{chunk-VTAABT55.js → chunk-IV4LM3MB.js} +6 -6
  144. package/dist/chunk-IV4LM3MB.js.map +1 -0
  145. package/dist/{chunk-KO2MKZDW.cjs → chunk-IXZMKIV5.cjs} +1 -1
  146. package/dist/chunk-IXZMKIV5.cjs.map +1 -0
  147. package/dist/{chunk-7KGV6YCG.cjs → chunk-IYWAZEFI.cjs} +1 -1
  148. package/dist/chunk-IYWAZEFI.cjs.map +1 -0
  149. package/dist/{chunk-E3XATJ63.js → chunk-IZBJW37N.js} +6 -6
  150. package/dist/chunk-IZBJW37N.js.map +1 -0
  151. package/dist/{chunk-HO7P6IJO.js → chunk-JC4WLVBG.js} +2 -2
  152. package/dist/chunk-JC4WLVBG.js.map +1 -0
  153. package/dist/{chunk-O6B4KB4D.js → chunk-JMD3P4CY.js} +5 -5
  154. package/dist/chunk-JMD3P4CY.js.map +1 -0
  155. package/dist/{chunk-T56K5IKQ.js → chunk-JV7Z3D3U.js} +2 -2
  156. package/dist/chunk-JV7Z3D3U.js.map +1 -0
  157. package/dist/{chunk-DFADZZ3K.js → chunk-K7IFNKMN.js} +3 -3
  158. package/dist/chunk-K7IFNKMN.js.map +1 -0
  159. package/dist/{chunk-C7F2VFAI.cjs → chunk-KIXFSXIN.cjs} +1 -1
  160. package/dist/chunk-KIXFSXIN.cjs.map +1 -0
  161. package/dist/{chunk-V5JNYS77.cjs → chunk-KV3V2CPH.cjs} +1 -1
  162. package/dist/chunk-KV3V2CPH.cjs.map +1 -0
  163. package/dist/{chunk-5TGBNYZK.cjs → chunk-KVIL4EP4.cjs} +1 -1
  164. package/dist/chunk-KVIL4EP4.cjs.map +1 -0
  165. package/dist/{chunk-PWIA4XQD.js → chunk-LUSLBNSG.js} +1 -1
  166. package/dist/chunk-LUSLBNSG.js.map +1 -0
  167. package/dist/{chunk-73EKJU4G.js → chunk-LYH3EKKQ.js} +1 -1
  168. package/dist/chunk-LYH3EKKQ.js.map +1 -0
  169. package/dist/{chunk-D7PGZ3M3.cjs → chunk-MW2S7PZ7.cjs} +5 -5
  170. package/dist/chunk-MW2S7PZ7.cjs.map +1 -0
  171. package/dist/{chunk-LQ3C3OR2.js → chunk-MZZ4SAFY.js} +1 -1
  172. package/dist/chunk-MZZ4SAFY.js.map +1 -0
  173. package/dist/{chunk-KKOZX64Z.js → chunk-NEQXEVHM.js} +1 -1
  174. package/dist/chunk-NEQXEVHM.js.map +1 -0
  175. package/dist/{chunk-NDLMU6HJ.js → chunk-NFIK3KMT.js} +9 -9
  176. package/dist/chunk-NFIK3KMT.js.map +1 -0
  177. package/dist/{chunk-3YPTYI7R.js → chunk-NQ4L6PYW.js} +1 -1
  178. package/dist/chunk-NQ4L6PYW.js.map +1 -0
  179. package/dist/{chunk-JFA5ABVE.js → chunk-NSITXZBU.js} +1 -1
  180. package/dist/chunk-NSITXZBU.js.map +1 -0
  181. package/dist/{chunk-2YQE26EK.js → chunk-O3I3RBZJ.js} +1 -1
  182. package/dist/chunk-O3I3RBZJ.js.map +1 -0
  183. package/dist/{chunk-O5ZPSZNY.cjs → chunk-OGKD5PLS.cjs} +6 -6
  184. package/dist/chunk-OGKD5PLS.cjs.map +1 -0
  185. package/dist/{chunk-7R7IFWGB.cjs → chunk-OZZHOEN5.cjs} +1 -1
  186. package/dist/chunk-OZZHOEN5.cjs.map +1 -0
  187. package/dist/{chunk-6P4WYB3B.js → chunk-P2GCAVUZ.js} +2 -2
  188. package/dist/chunk-P2GCAVUZ.js.map +1 -0
  189. package/dist/{chunk-L3UPSLJ5.cjs → chunk-PA4IT2XQ.cjs} +19 -19
  190. package/dist/chunk-PA4IT2XQ.cjs.map +1 -0
  191. package/dist/{chunk-N7HX5635.cjs → chunk-PJC7NZUV.cjs} +3 -3
  192. package/dist/chunk-PJC7NZUV.cjs.map +1 -0
  193. package/dist/{chunk-QP2A5ZMK.cjs → chunk-PTBBY4ZX.cjs} +1 -1
  194. package/dist/chunk-PTBBY4ZX.cjs.map +1 -0
  195. package/dist/{chunk-VFYG7GAH.js → chunk-PY2376XI.js} +2 -2
  196. package/dist/chunk-PY2376XI.js.map +1 -0
  197. package/dist/{chunk-R5UNLPQZ.cjs → chunk-Q3GNKF74.cjs} +1 -1
  198. package/dist/chunk-Q3GNKF74.cjs.map +1 -0
  199. package/dist/{chunk-YLKESEHQ.cjs → chunk-QF2RAUPB.cjs} +1 -1
  200. package/dist/chunk-QF2RAUPB.cjs.map +1 -0
  201. package/dist/{chunk-2HTBZGBP.cjs → chunk-QQIALSTX.cjs} +1 -1
  202. package/dist/chunk-QQIALSTX.cjs.map +1 -0
  203. package/dist/{chunk-6HGDQ4BM.js → chunk-S2EICHZK.js} +13 -13
  204. package/dist/chunk-S2EICHZK.js.map +1 -0
  205. package/dist/{chunk-5QG2I3FK.cjs → chunk-S77GR5YQ.cjs} +3 -3
  206. package/dist/chunk-S77GR5YQ.cjs.map +1 -0
  207. package/dist/{chunk-YCUT6NQ4.js → chunk-S7TWEVC3.js} +2 -2
  208. package/dist/chunk-S7TWEVC3.js.map +1 -0
  209. package/dist/{chunk-2JWY36LD.cjs → chunk-SDEKANNL.cjs} +1 -1
  210. package/dist/chunk-SDEKANNL.cjs.map +1 -0
  211. package/dist/{chunk-RSBQNIJZ.js → chunk-SENVA467.js} +1 -1
  212. package/dist/chunk-SENVA467.js.map +1 -0
  213. package/dist/chunk-SJDTFR3I.cjs.map +1 -1
  214. package/dist/chunk-SWPZ3HFY.cjs.map +1 -1
  215. package/dist/{chunk-R36SGSJX.cjs → chunk-TROYIUDH.cjs} +1 -1
  216. package/dist/chunk-TROYIUDH.cjs.map +1 -0
  217. package/dist/{chunk-3KAR5KCS.cjs → chunk-UGMONQGH.cjs} +11 -11
  218. package/dist/chunk-UGMONQGH.cjs.map +1 -0
  219. package/dist/{chunk-CKH36D7H.js → chunk-UTUPJOBY.js} +1 -1
  220. package/dist/chunk-UTUPJOBY.js.map +1 -0
  221. package/dist/{chunk-63N2KZZX.cjs → chunk-V2S6XWIQ.cjs} +1 -1
  222. package/dist/chunk-V2S6XWIQ.cjs.map +1 -0
  223. package/dist/{chunk-G36S5CWN.cjs → chunk-V5RS3JZN.cjs} +1 -1
  224. package/dist/chunk-V5RS3JZN.cjs.map +1 -0
  225. package/dist/chunk-VW32UTUE.cjs.map +1 -1
  226. package/dist/{chunk-4NUZP66U.js → chunk-VZYLJSV5.js} +3 -3
  227. package/dist/chunk-VZYLJSV5.js.map +1 -0
  228. package/dist/{chunk-GOVOQZYN.js → chunk-W2F6WDUX.js} +1 -1
  229. package/dist/chunk-W2F6WDUX.js.map +1 -0
  230. package/dist/{chunk-XMRMCWSQ.js → chunk-W3X3V72Q.js} +3 -3
  231. package/dist/chunk-W3X3V72Q.js.map +1 -0
  232. package/dist/{chunk-AUFCW7QU.cjs → chunk-W6IKHJ76.cjs} +3 -3
  233. package/dist/chunk-W6IKHJ76.cjs.map +1 -0
  234. package/dist/{chunk-A35Y5MRJ.js → chunk-WE5FTQGD.js} +3 -3
  235. package/dist/chunk-WE5FTQGD.js.map +1 -0
  236. package/dist/{chunk-FO5FNTJX.js → chunk-WIE7HDIM.js} +3 -3
  237. package/dist/chunk-WIE7HDIM.js.map +1 -0
  238. package/dist/{chunk-YZOVF7JV.cjs → chunk-WPTMMOA6.cjs} +9 -9
  239. package/dist/chunk-WPTMMOA6.cjs.map +1 -0
  240. package/dist/{chunk-HUNMRKGE.js → chunk-WTXASLBB.js} +2 -2
  241. package/dist/chunk-WTXASLBB.js.map +1 -0
  242. package/dist/chunk-XJAXKENE.cjs.map +1 -1
  243. package/dist/{chunk-TCX3QKF3.js → chunk-XJBWFDDE.js} +1 -1
  244. package/dist/chunk-XJBWFDDE.js.map +1 -0
  245. package/dist/{chunk-IYQX7PBO.cjs → chunk-XKQMEVOD.cjs} +1 -1
  246. package/dist/chunk-XKQMEVOD.cjs.map +1 -0
  247. package/dist/{chunk-KQKJVFYF.js → chunk-YQLCPKGV.js} +1 -1
  248. package/dist/chunk-YQLCPKGV.js.map +1 -0
  249. package/dist/{chunk-GI7WPGP2.cjs → chunk-YRK56AOP.cjs} +5 -5
  250. package/dist/chunk-YRK56AOP.cjs.map +1 -0
  251. package/dist/{chunk-H523JFY2.js → chunk-YV57RSPD.js} +1 -1
  252. package/dist/chunk-YV57RSPD.js.map +1 -0
  253. package/dist/{chunk-JORQYNJD.js → chunk-Z4ZY7L7W.js} +3 -3
  254. package/dist/chunk-Z4ZY7L7W.js.map +1 -0
  255. package/dist/{chunk-R5QPUQSI.cjs → chunk-Z5U4NJTW.cjs} +1 -1
  256. package/dist/chunk-Z5U4NJTW.cjs.map +1 -0
  257. package/dist/{chunk-5D3LIJYW.cjs → chunk-ZBKJ3EMK.cjs} +5 -5
  258. package/dist/chunk-ZBKJ3EMK.cjs.map +1 -0
  259. package/dist/{chunk-K5TKNT6I.cjs → chunk-ZMDZGL5A.cjs} +1 -1
  260. package/dist/chunk-ZMDZGL5A.cjs.map +1 -0
  261. package/dist/{chunk-OVYIBDGE.js → chunk-ZZSPQFMX.js} +1 -1
  262. package/dist/chunk-ZZSPQFMX.js.map +1 -0
  263. package/dist/color-picker/index.cjs +3 -3
  264. package/dist/color-picker/index.cjs.map +1 -1
  265. package/dist/color-picker/index.js +2 -2
  266. package/dist/combobox/index.cjs +6 -6
  267. package/dist/combobox/index.cjs.map +1 -1
  268. package/dist/combobox/index.js +5 -5
  269. package/dist/command-palette/index.cjs +3 -3
  270. package/dist/command-palette/index.cjs.map +1 -1
  271. package/dist/command-palette/index.js +2 -2
  272. package/dist/context-menu/index.cjs +7 -7
  273. package/dist/context-menu/index.cjs.map +1 -1
  274. package/dist/context-menu/index.js +6 -6
  275. package/dist/data-grid/index.cjs +17 -17
  276. package/dist/data-grid/index.cjs.map +1 -1
  277. package/dist/data-grid/index.js +16 -16
  278. package/dist/date-picker/index.cjs +8 -8
  279. package/dist/date-picker/index.cjs.map +1 -1
  280. package/dist/date-picker/index.js +7 -7
  281. package/dist/divider/index.cjs +2 -2
  282. package/dist/divider/index.cjs.map +1 -1
  283. package/dist/divider/index.js +1 -1
  284. package/dist/drawer/index.cjs +5 -5
  285. package/dist/drawer/index.cjs.map +1 -1
  286. package/dist/drawer/index.js +4 -4
  287. package/dist/dropdown/index.cjs +2 -2
  288. package/dist/dropdown/index.cjs.map +1 -1
  289. package/dist/dropdown/index.js +1 -1
  290. package/dist/empty-state/index.cjs +2 -2
  291. package/dist/empty-state/index.cjs.map +1 -1
  292. package/dist/empty-state/index.js +1 -1
  293. package/dist/file-upload/index.cjs +2 -2
  294. package/dist/file-upload/index.cjs.map +1 -1
  295. package/dist/file-upload/index.js +1 -1
  296. package/dist/footer/index.cjs +2 -2
  297. package/dist/footer/index.cjs.map +1 -1
  298. package/dist/footer/index.js +1 -1
  299. package/dist/header/index.cjs +5 -5
  300. package/dist/header/index.cjs.map +1 -1
  301. package/dist/header/index.js +4 -4
  302. package/dist/index.cjs +56 -56
  303. package/dist/index.cjs.map +1 -1
  304. package/dist/index.js +55 -55
  305. package/dist/inline-edit/index.cjs +5 -5
  306. package/dist/inline-edit/index.cjs.map +1 -1
  307. package/dist/inline-edit/index.js +4 -4
  308. package/dist/input/index.cjs +4 -4
  309. package/dist/input/index.cjs.map +1 -1
  310. package/dist/input/index.js +3 -3
  311. package/dist/kbd/index.cjs +2 -2
  312. package/dist/kbd/index.cjs.map +1 -1
  313. package/dist/kbd/index.js +1 -1
  314. package/dist/menu/index.cjs +6 -6
  315. package/dist/menu/index.cjs.map +1 -1
  316. package/dist/menu/index.js +5 -5
  317. package/dist/modal/index.cjs +5 -5
  318. package/dist/modal/index.cjs.map +1 -1
  319. package/dist/modal/index.js +4 -4
  320. package/dist/navigation/index.cjs +6 -6
  321. package/dist/navigation/index.cjs.map +1 -1
  322. package/dist/navigation/index.js +5 -5
  323. package/dist/number-input/index.cjs +2 -2
  324. package/dist/number-input/index.cjs.map +1 -1
  325. package/dist/number-input/index.js +1 -1
  326. package/dist/o-t-p-input/index.cjs +2 -2
  327. package/dist/o-t-p-input/index.cjs.map +1 -1
  328. package/dist/o-t-p-input/index.js +1 -1
  329. package/dist/page-layout/index.cjs +15 -15
  330. package/dist/page-layout/index.cjs.map +1 -1
  331. package/dist/page-layout/index.js +14 -14
  332. package/dist/pagination/index.cjs +8 -8
  333. package/dist/pagination/index.cjs.map +1 -1
  334. package/dist/pagination/index.js +7 -7
  335. package/dist/pill/index.cjs.map +1 -1
  336. package/dist/popover/index.cjs +2 -2
  337. package/dist/popover/index.cjs.map +1 -1
  338. package/dist/popover/index.js +1 -1
  339. package/dist/progress/index.cjs +2 -2
  340. package/dist/progress/index.cjs.map +1 -1
  341. package/dist/progress/index.js +1 -1
  342. package/dist/radio/index.cjs +2 -2
  343. package/dist/radio/index.cjs.map +1 -1
  344. package/dist/radio/index.js +1 -1
  345. package/dist/segmented-control/index.cjs +4 -4
  346. package/dist/segmented-control/index.cjs.map +1 -1
  347. package/dist/segmented-control/index.js +3 -3
  348. package/dist/select/index.cjs +6 -6
  349. package/dist/select/index.cjs.map +1 -1
  350. package/dist/select/index.js +5 -5
  351. package/dist/skeleton/index.cjs +2 -2
  352. package/dist/skeleton/index.cjs.map +1 -1
  353. package/dist/skeleton/index.js +1 -1
  354. package/dist/slider/index.cjs +2 -2
  355. package/dist/slider/index.cjs.map +1 -1
  356. package/dist/slider/index.js +1 -1
  357. package/dist/snackbar/index.cjs +5 -5
  358. package/dist/snackbar/index.cjs.map +1 -1
  359. package/dist/snackbar/index.js +4 -4
  360. package/dist/spinner/index.cjs +2 -2
  361. package/dist/spinner/index.cjs.map +1 -1
  362. package/dist/spinner/index.js +1 -1
  363. package/dist/split-button/index.cjs +7 -7
  364. package/dist/split-button/index.cjs.map +1 -1
  365. package/dist/split-button/index.js +6 -6
  366. package/dist/stepper/index.cjs +2 -2
  367. package/dist/stepper/index.cjs.map +1 -1
  368. package/dist/stepper/index.js +1 -1
  369. package/dist/switch/index.cjs +2 -2
  370. package/dist/switch/index.cjs.map +1 -1
  371. package/dist/switch/index.js +1 -1
  372. package/dist/table/index.cjs +17 -17
  373. package/dist/table/index.cjs.map +1 -1
  374. package/dist/table/index.js +16 -16
  375. package/dist/tabs/index.cjs +3 -3
  376. package/dist/tabs/index.cjs.map +1 -1
  377. package/dist/tabs/index.js +2 -2
  378. package/dist/tag-input/index.cjs +6 -6
  379. package/dist/tag-input/index.cjs.map +1 -1
  380. package/dist/tag-input/index.js +5 -5
  381. package/dist/textarea/index.cjs +4 -4
  382. package/dist/textarea/index.cjs.map +1 -1
  383. package/dist/textarea/index.js +3 -3
  384. package/dist/timeline/index.cjs +2 -2
  385. package/dist/timeline/index.cjs.map +1 -1
  386. package/dist/timeline/index.js +1 -1
  387. package/dist/toolbar/index.cjs +11 -11
  388. package/dist/toolbar/index.cjs.map +1 -1
  389. package/dist/toolbar/index.js +10 -10
  390. package/dist/tooltip/index.cjs +2 -2
  391. package/dist/tooltip/index.cjs.map +1 -1
  392. package/dist/tooltip/index.js +1 -1
  393. package/dist/tree-view/index.cjs +2 -2
  394. package/dist/tree-view/index.cjs.map +1 -1
  395. package/dist/tree-view/index.js +1 -1
  396. package/dist/virtual-list/index.cjs +3 -3
  397. package/dist/virtual-list/index.cjs.map +1 -1
  398. package/dist/virtual-list/index.js +2 -2
  399. package/package.json +114 -114
  400. package/dist/chunk-2HTBZGBP.cjs.map +0 -1
  401. package/dist/chunk-2JWY36LD.cjs.map +0 -1
  402. package/dist/chunk-2YQE26EK.js.map +0 -1
  403. package/dist/chunk-2ZWBN3LK.cjs.map +0 -1
  404. package/dist/chunk-3KAR5KCS.cjs.map +0 -1
  405. package/dist/chunk-3YPTYI7R.js.map +0 -1
  406. package/dist/chunk-4NUZP66U.js.map +0 -1
  407. package/dist/chunk-5D3LIJYW.cjs.map +0 -1
  408. package/dist/chunk-5QG2I3FK.cjs.map +0 -1
  409. package/dist/chunk-5TGBNYZK.cjs.map +0 -1
  410. package/dist/chunk-63N2KZZX.cjs.map +0 -1
  411. package/dist/chunk-6GAIQ2IY.cjs.map +0 -1
  412. package/dist/chunk-6HGDQ4BM.js.map +0 -1
  413. package/dist/chunk-6P4WYB3B.js.map +0 -1
  414. package/dist/chunk-6QFT3BUD.cjs.map +0 -1
  415. package/dist/chunk-6USUVU6J.js.map +0 -1
  416. package/dist/chunk-73EKJU4G.js.map +0 -1
  417. package/dist/chunk-7IOOFKG3.js.map +0 -1
  418. package/dist/chunk-7KGV6YCG.cjs.map +0 -1
  419. package/dist/chunk-7R7IFWGB.cjs.map +0 -1
  420. package/dist/chunk-A35Y5MRJ.js.map +0 -1
  421. package/dist/chunk-AOV32YBE.js.map +0 -1
  422. package/dist/chunk-AUFCW7QU.cjs.map +0 -1
  423. package/dist/chunk-BBOUUHLO.js.map +0 -1
  424. package/dist/chunk-BFYSYUA6.cjs.map +0 -1
  425. package/dist/chunk-BTPCSBGP.js.map +0 -1
  426. package/dist/chunk-C7F2VFAI.cjs.map +0 -1
  427. package/dist/chunk-CDV2OAS3.cjs.map +0 -1
  428. package/dist/chunk-CJUZDUXW.cjs.map +0 -1
  429. package/dist/chunk-CKH36D7H.js.map +0 -1
  430. package/dist/chunk-D7PGZ3M3.cjs.map +0 -1
  431. package/dist/chunk-DFADZZ3K.js.map +0 -1
  432. package/dist/chunk-DK4S3EHG.js.map +0 -1
  433. package/dist/chunk-E2B33QB7.js.map +0 -1
  434. package/dist/chunk-E3XATJ63.js.map +0 -1
  435. package/dist/chunk-F54MVGKO.js.map +0 -1
  436. package/dist/chunk-FNUOTM44.cjs.map +0 -1
  437. package/dist/chunk-FO5FNTJX.js.map +0 -1
  438. package/dist/chunk-G2FANEA2.cjs.map +0 -1
  439. package/dist/chunk-G36S5CWN.cjs.map +0 -1
  440. package/dist/chunk-GI7WPGP2.cjs.map +0 -1
  441. package/dist/chunk-GL4DHGQE.js.map +0 -1
  442. package/dist/chunk-GOVOQZYN.js.map +0 -1
  443. package/dist/chunk-GRH57M3E.js.map +0 -1
  444. package/dist/chunk-H523JFY2.js.map +0 -1
  445. package/dist/chunk-H56YUMFB.cjs.map +0 -1
  446. package/dist/chunk-HO7P6IJO.js.map +0 -1
  447. package/dist/chunk-HQ4KZRFH.js.map +0 -1
  448. package/dist/chunk-HUNMRKGE.js.map +0 -1
  449. package/dist/chunk-ICHPPNFV.js.map +0 -1
  450. package/dist/chunk-ICJ3SV5I.cjs.map +0 -1
  451. package/dist/chunk-IYQX7PBO.cjs.map +0 -1
  452. package/dist/chunk-JFA5ABVE.js.map +0 -1
  453. package/dist/chunk-JORQYNJD.js.map +0 -1
  454. package/dist/chunk-K5TKNT6I.cjs.map +0 -1
  455. package/dist/chunk-KF64C4QI.js.map +0 -1
  456. package/dist/chunk-KKOZX64Z.js.map +0 -1
  457. package/dist/chunk-KO2MKZDW.cjs.map +0 -1
  458. package/dist/chunk-KQKJVFYF.js.map +0 -1
  459. package/dist/chunk-KV2FG7AN.cjs.map +0 -1
  460. package/dist/chunk-L3UPSLJ5.cjs.map +0 -1
  461. package/dist/chunk-LEZ4HSBD.cjs.map +0 -1
  462. package/dist/chunk-LQ3C3OR2.js.map +0 -1
  463. package/dist/chunk-LTOHGCU4.cjs.map +0 -1
  464. package/dist/chunk-M56IGNH7.cjs.map +0 -1
  465. package/dist/chunk-N7HX5635.cjs.map +0 -1
  466. package/dist/chunk-NDLMU6HJ.js.map +0 -1
  467. package/dist/chunk-O5ZPSZNY.cjs.map +0 -1
  468. package/dist/chunk-O6B4KB4D.js.map +0 -1
  469. package/dist/chunk-OHUVWPFJ.js.map +0 -1
  470. package/dist/chunk-OT3VZLN4.js.map +0 -1
  471. package/dist/chunk-OVYIBDGE.js.map +0 -1
  472. package/dist/chunk-P2BTQ33C.cjs.map +0 -1
  473. package/dist/chunk-P6ZBENAG.js.map +0 -1
  474. package/dist/chunk-P74HNSNJ.cjs.map +0 -1
  475. package/dist/chunk-PEPYVWGY.cjs.map +0 -1
  476. package/dist/chunk-POX6JZLO.cjs.map +0 -1
  477. package/dist/chunk-PWIA4XQD.js.map +0 -1
  478. package/dist/chunk-QGZF5MOS.cjs.map +0 -1
  479. package/dist/chunk-QP2A5ZMK.cjs.map +0 -1
  480. package/dist/chunk-QYHTMEI5.js.map +0 -1
  481. package/dist/chunk-QYK4ECSZ.js.map +0 -1
  482. package/dist/chunk-R36SGSJX.cjs.map +0 -1
  483. package/dist/chunk-R5QPUQSI.cjs.map +0 -1
  484. package/dist/chunk-R5UNLPQZ.cjs.map +0 -1
  485. package/dist/chunk-RSBQNIJZ.js.map +0 -1
  486. package/dist/chunk-S25WB7KJ.js.map +0 -1
  487. package/dist/chunk-SAFSEXMU.cjs.map +0 -1
  488. package/dist/chunk-SOGUWOSQ.cjs.map +0 -1
  489. package/dist/chunk-SXF3TCYA.js.map +0 -1
  490. package/dist/chunk-T56K5IKQ.js.map +0 -1
  491. package/dist/chunk-TBMVUI7S.cjs.map +0 -1
  492. package/dist/chunk-TCX3QKF3.js.map +0 -1
  493. package/dist/chunk-TQCNQKWF.cjs.map +0 -1
  494. package/dist/chunk-UTENJWSE.cjs.map +0 -1
  495. package/dist/chunk-V5JNYS77.cjs.map +0 -1
  496. package/dist/chunk-VFYG7GAH.js.map +0 -1
  497. package/dist/chunk-VLC2OZV3.cjs.map +0 -1
  498. package/dist/chunk-VTAABT55.js.map +0 -1
  499. package/dist/chunk-VYV45YOK.cjs.map +0 -1
  500. package/dist/chunk-VZ43OLU6.cjs.map +0 -1
  501. package/dist/chunk-XJBMEDQ5.js.map +0 -1
  502. package/dist/chunk-XMRMCWSQ.js.map +0 -1
  503. package/dist/chunk-XSGUFMT4.js.map +0 -1
  504. package/dist/chunk-YCUT6NQ4.js.map +0 -1
  505. package/dist/chunk-YKECQKOV.cjs.map +0 -1
  506. package/dist/chunk-YLKESEHQ.cjs.map +0 -1
  507. package/dist/chunk-YZOVF7JV.cjs.map +0 -1
  508. package/dist/chunk-Z7S4UQKY.js.map +0 -1
  509. package/dist/chunk-ZBGTVTQJ.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/weekOfYear.js","../src/components/DatePicker/DatePicker.component.tsx","../src/components/DatePicker/Calendar.component.tsx","../src/components/DatePicker/TimeInput.component.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),Y=_.prototype;return O.prototype=Y,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){Y[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var r=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),r.call(this,t)};var o=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s;if(0===u)return this.utc(f);var r=this.clone();if(f)return r.$offset=u,r.$u=!1,r;var o=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(r=this.local().add(u+o,t)).$offset=u,r.$x.$localOffset=o,r};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,r){var o,a=function(t,n,i){void 0===i&&(i={});var r=new Date(t),o=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",r=t+\"|\"+i,o=e[r];return o||(o=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[r]=o),o}(n,i);return o.formatToParts(r)},u=function(e,n){for(var i=a(e,n),o=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(o[c]=parseInt(m,10))}var l=o[3],d=24===l?0:l,h=o[0]+\"-\"+o[1]+\"-\"+o[2]+\" \"+d+\":\"+o[4]+\":\"+o[5]+\":000\",v=+e;return(r.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){if(void 0===t&&(t=o),!this.isValid())return this;var n,i=this.utcOffset(),a=this.toDate(),f=a.toLocaleString(\"en-US\",{timeZone:t}),s=u(+a,t);if(!Number(s))n=this.utcOffset(0,e);else if(n=r(f,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=r(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},r.tz=function(t,e,n){var i=n&&e,a=n||e||o,f=u(+r(),a);if(\"string\"!=typeof t)return r(t).tz(a);var s=r.utc(t,i).valueOf();if(Number.isNaN(s)){var m=r(NaN);return m.$x.$timezone=a,m}var c=function(t,e,n){var i=t-60*e*1e3,r=u(i,n);if(e===r)return[i,e];var o=u(i-=60*(r-e)*1e3,n);return r===o?[i,r]:[t-60*Math.min(r,o)*1e3,Math.max(r,o)]}(s,f,a),l=c[0],d=c[1],h=r(l).utcOffset(d);return h.$x.$timezone=a,h},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(t){o=t}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","import React, { useState, useCallback, useRef, useMemo } from 'react';\nimport dayjs, { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { Calendar as CalendarIcon, X } from 'lucide-react';\nimport { Input } from '../Input/Input.component';\nimport { Dropdown } from '../Dropdown/Dropdown.component';\nimport { Calendar } from './Calendar.component';\nimport { TimeInput } from './TimeInput.component';\nimport type {\n DatePickerProps,\n DateSelectionMode,\n DateTimeValue,\n TimeValue,\n RangeTimeValue,\n} from './DatePicker.types';\n\n// Initialize dayjs plugins\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const DatePicker = <T extends DateSelectionMode = 'single'>({\n mode,\n value,\n onChange,\n granularity = 'day',\n time = { enabled: false },\n calendar = { numberOfCalendars: 2 },\n format = {\n displayFormat: 'MMM DD, YYYY',\n inputFormat: 'YYYY-MM-DD',\n timeFormat: 'HH:mm',\n timezone: 'UTC',\n },\n placeholder = 'Select date...',\n disabled = false,\n required = false,\n name,\n id,\n inputProps = {},\n minDate,\n maxDate,\n disabledDates = [],\n disabledDaysOfWeek = [],\n className = '',\n fullWidth = false,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n autoWidth = false,\n}: DatePickerProps<T>) => {\n const [dropdownKey, setDropdownKey] = useState(0);\n // Two different, deliberately different, notions of \"timezone\" are in\n // play here, matching two genuinely different kinds of value:\n //\n // - Date-only (time.enabled === false): a pure calendar date has no\n // wall-clock moment attached to it, so there's nothing for a timezone\n // to sensibly represent. It's anchored to a fixed `pickerTimezone`\n // (default UTC) so the same calendar date always serializes to the\n // same ISO instant no matter which machine picks it - see\n // `composeDateOnly`.\n // - Date + time (time.enabled === true): this genuinely represents a\n // real-world instant, e.g. a meeting at a specific wall-clock time -\n // exactly the case a timezone exists to disambiguate. That instant\n // should be computed from *the picking user's own local offset*\n // (someone in UTC+3 typing \"15:00\" means 12:00 UTC), and later\n // displayed by converting that same UTC instant into *each viewer's\n // own* local offset (that same instant shows as \"12:00\" to a UTC+0\n // viewer). That's exactly plain, un-anchored dayjs/Date behavior with\n // no explicit timezone forcing at all, so this path intentionally\n // does not use `pickerTimezone` anywhere.\n const pickerTimezone = format.timezone || 'UTC';\n // Combines a calendar date (only its Y-M-D is read, so it's timezone-\n // agnostic going in) with a start/end-of-day boundary, anchored to\n // `pickerTimezone` - only ever used for date-only values.\n const composeDateOnly = useCallback(\n (date: Dayjs, boundary: 'start' | 'end' = 'start') => {\n const anchored = dayjs.tz(date.format('YYYY-MM-DD'), pickerTimezone);\n return boundary === 'end' ? anchored.endOf('day') : anchored.startOf('day');\n },\n [pickerTimezone],\n );\n // Combines a calendar date with a time-of-day using plain local\n // semantics (no timezone forcing) - only ever used for date+time values,\n // see the note above.\n const composeLocalDateTime = useCallback(\n (date: Dayjs, t: TimeValue): Dayjs =>\n date\n .hour(t.hours)\n .minute(t.minutes)\n .second(t.seconds || 0),\n [],\n );\n // Re-anchors an already-stored ISO instant's calendar day (read in the\n // browser's own local timezone, matching how it was written) onto a new\n // time-of-day - used when the user edits a TimeInput without re-picking\n // the date, so that edit actually changes the returned value instead of\n // only updating the separate `value.time` field alongside an unchanged\n // `value.date`. Deliberately local, not anchored to `pickerTimezone` -\n // see the note above.\n const recomposeIsoWithTime = useCallback(\n (isoString: string, t: TimeValue): string =>\n dayjs(isoString)\n .hour(t.hours)\n .minute(t.minutes)\n .second(t.seconds || 0)\n .toISOString(),\n [],\n );\n // Month granularity always shows a single year/month grid - side-by-side\n // \"next month\" calendars don't make sense once there are no day cells.\n const numberOfCalendars = granularity === 'month' ? 1 : calendar.numberOfCalendars || 2;\n const independentCalendars = calendar.independent ?? false;\n // One entry per visible calendar. In the default (non-independent) mode\n // these always stay consecutive months, kept in sync from a single shared\n // control (see `handleCalendarMonthChange`) - the array shape is the same\n // either way, only how a change to one entry propagates differs.\n const [calendarDates, setCalendarDates] = useState<Dayjs[]>(() =>\n Array.from({ length: numberOfCalendars }, (_, i) => dayjs().add(i, 'month')),\n );\n const handleCalendarMonthChange = useCallback(\n (index: number, newDate: Dayjs) => {\n if (!independentCalendars) {\n // Coupled: every calendar shifts together, re-anchored so `index`\n // lands on `newDate` - e.g. moving calendar 1 to November re-anchors\n // calendar 0 to October, same as before this was array-based.\n const anchor = newDate.subtract(index, 'month');\n setCalendarDates(\n Array.from({ length: numberOfCalendars }, (_, i) => anchor.add(i, 'month')),\n );\n return;\n }\n\n // Independent: only this calendar moves, clamped so it can never reach\n // or cross an immediate neighbor's month - two calendars both landing\n // on (or swapping past) the same month would be exactly the confusing\n // state independent mode exists to let users avoid, just self-inflicted\n // instead of automatic.\n setCalendarDates((prev) => {\n const next = [...prev];\n let clamped = newDate;\n const left = prev[index - 1];\n const right = prev[index + 1];\n if (left && !clamped.isAfter(left, 'month')) {\n clamped = left.add(1, 'month');\n }\n if (right && !clamped.isBefore(right, 'month')) {\n clamped = right.subtract(1, 'month');\n }\n next[index] = clamped;\n return next;\n });\n },\n [independentCalendars, numberOfCalendars],\n );\n const triggerRef = useRef<HTMLDivElement>(null);\n\n // Convert the string-based constraint props to the Dayjs objects Calendar\n // actually consumes for its `isBefore`/`isAfter`/`isSame` comparisons.\n const minDateObj = useMemo(() => (minDate ? dayjs(minDate) : undefined), [minDate]);\n const maxDateObj = useMemo(() => (maxDate ? dayjs(maxDate) : undefined), [maxDate]);\n const disabledDatesObj = useMemo(() => disabledDates.map((d) => dayjs(d)), [disabledDates]);\n\n // Default time values\n const defaultStartTime = useMemo<TimeValue>(() => ({ hours: 0, minutes: 0, seconds: 0 }), []);\n const defaultEndTime = useMemo<TimeValue>(() => ({ hours: 23, minutes: 59, seconds: 59 }), []);\n\n // Helper function to convert stored ISO strings back to the calendar date\n // they represent, for calendar-grid display (which day to highlight).\n const toLocalDateString = useCallback(\n (isoString: string | null): string | null => {\n if (!isoString) return null;\n const parsed = dayjs(isoString);\n // Date-only values were anchored to `pickerTimezone` when stored (see\n // `composeDateOnly`) - reading them back via the browser's ambient\n // timezone instead would recover the wrong calendar day for anyone\n // not in that same timezone. Date+time values were deliberately\n // never anchored (see the note above `pickerTimezone`), so they stay\n // on local interpretation, matching how they were written.\n return (time.enabled ? parsed : parsed.tz(pickerTimezone)).format('YYYY-MM-DD');\n },\n [time.enabled, pickerTimezone],\n );\n\n // Convert current value to calendar-compatible format\n const { selectedDates, rangeStart, rangeEnd } = useMemo(() => {\n if (!value?.date) {\n return { selectedDates: [], rangeStart: null, rangeEnd: null };\n }\n\n switch (mode) {\n case 'single': {\n const isoString = value.date as string | null;\n const localDateStr = toLocalDateString(isoString);\n return {\n selectedDates: localDateStr ? [dayjs(localDateStr)] : [],\n rangeStart: null,\n rangeEnd: null,\n };\n }\n case 'multiple': {\n const isoStrings = value.date as string[];\n const localDateStrings = isoStrings\n .map((d) => toLocalDateString(d))\n .filter(Boolean) as string[];\n return {\n selectedDates: localDateStrings.map((d) => dayjs(d)),\n rangeStart: null,\n rangeEnd: null,\n };\n }\n case 'range': {\n const range = value.date as { start: string | null; end: string | null };\n const startStr = toLocalDateString(range.start);\n const endStr = toLocalDateString(range.end);\n return {\n selectedDates: [],\n rangeStart: startStr ? dayjs(startStr) : null,\n rangeEnd: endStr ? dayjs(endStr) : null,\n };\n }\n default:\n return { selectedDates: [], rangeStart: null, rangeEnd: null };\n }\n }, [value, mode, toLocalDateString]);\n\n // Handle date selection from calendar - always return ISO strings. Uses\n // `composeDateOnly` (fixed `pickerTimezone` anchor) when time.enabled is\n // false, `composeLocalDateTime` (plain local semantics) when true - see\n // the note above `pickerTimezone` for why these need to differ.\n const handleDateSelect = useCallback(\n (selectedDate: Dayjs) => {\n // `granularity === 'month'` means the calendar only ever hands us a\n // day *within* the picked month (see Calendar's month grid) - the\n // stored/returned value is always that month's last day, while the\n // day-of-week boundary semantics below ('start' of day vs 'end' of\n // day) are unaffected.\n const effectiveDate = granularity === 'month' ? selectedDate.endOf('month') : selectedDate;\n const compareUnit = granularity === 'month' ? 'month' : 'day';\n\n switch (mode) {\n case 'single': {\n let dateWithTime: Dayjs;\n // Preserve whatever time the user already configured via\n // TimeInput rather than resetting to the default every time a\n // different date is picked.\n const activeTime = (value?.time as TimeValue) ?? defaultStartTime;\n if (time.enabled) {\n dateWithTime = composeLocalDateTime(effectiveDate, activeTime);\n } else {\n dateWithTime = composeDateOnly(effectiveDate, 'start');\n }\n\n const newValue: DateTimeValue<T> = {\n date: dateWithTime.toISOString() as DateTimeValue<T>['date'],\n time: time.enabled ? (activeTime as DateTimeValue<T>['time']) : undefined,\n };\n\n onChange?.(newValue);\n setDropdownKey((prev) => prev + 1); // Close dropdown\n break;\n }\n\n case 'multiple': {\n const currentDates = (value?.date as string[]) || [];\n const currentDayjs = currentDates.map((d) => dayjs(d));\n\n // Check if date is already selected\n const existingIndex = currentDayjs.findIndex((d) => d.isSame(effectiveDate, compareUnit));\n let newDates: Dayjs[];\n\n if (existingIndex >= 0) {\n // Remove if already selected\n newDates = currentDayjs.filter((_, index) => index !== existingIndex);\n } else {\n // Add new date, preserving the shared time already configured.\n const activeTime = (value?.time as TimeValue) ?? defaultStartTime;\n const dateWithTime = time.enabled\n ? composeLocalDateTime(effectiveDate, activeTime)\n : composeDateOnly(effectiveDate, 'start');\n newDates = [...currentDayjs, dateWithTime];\n }\n\n // Always return ISO strings\n const newValue: DateTimeValue<T> = {\n date: newDates.map((d) => d.toISOString()) as DateTimeValue<T>['date'],\n time: time.enabled\n ? (((value?.time as TimeValue) ?? defaultStartTime) as DateTimeValue<T>['time'])\n : undefined,\n };\n\n onChange?.(newValue);\n break;\n }\n\n case 'range': {\n const currentRange = (value?.date as { start: string | null; end: string | null }) || {\n start: null,\n end: null,\n };\n const currentRangeTime = (value?.time as RangeTimeValue) || {\n start: defaultStartTime,\n end: defaultEndTime,\n };\n\n if (!currentRange.start || (currentRange.start && currentRange.end)) {\n // Start new range, preserving the already-configured start time.\n const startWithTime = time.enabled\n ? composeLocalDateTime(effectiveDate, currentRangeTime.start)\n : composeDateOnly(effectiveDate, 'start');\n\n // Always return ISO string\n const newValue: DateTimeValue<T> = {\n date: { start: startWithTime.toISOString(), end: null } as DateTimeValue<T>['date'],\n time: time.enabled ? (currentRangeTime as DateTimeValue<T>['time']) : undefined,\n };\n\n onChange?.(newValue);\n } else {\n // Complete the range. Date-only starts were anchored to\n // `pickerTimezone` when stored (see `composeDateOnly`) -\n // re-read it the same way so the \"is end before start\"\n // comparison below lines up with the day it actually\n // represents. Date+time starts were never anchored, so\n // they stay on local interpretation, matching how they\n // were written.\n const start = time.enabled\n ? dayjs(currentRange.start)\n : dayjs(currentRange.start).tz(pickerTimezone);\n let end = effectiveDate;\n\n // Ensure end is after start\n if (end.isBefore(start, compareUnit)) {\n end = start;\n }\n\n end = time.enabled\n ? composeLocalDateTime(end, currentRangeTime.end)\n : composeDateOnly(end, 'end');\n\n // Always return ISO strings\n const newValue: DateTimeValue<T> = {\n date: {\n start: currentRange.start,\n end: end.toISOString(),\n } as DateTimeValue<T>['date'],\n time: time.enabled ? (currentRangeTime as DateTimeValue<T>['time']) : undefined,\n };\n\n onChange?.(newValue);\n setDropdownKey((prev) => prev + 1); // Close dropdown after completing range\n }\n break;\n }\n }\n },\n [\n mode,\n time,\n value,\n onChange,\n defaultStartTime,\n defaultEndTime,\n composeDateOnly,\n composeLocalDateTime,\n pickerTimezone,\n granularity,\n ],\n );\n\n // Format display value\n const displayValue = useMemo(() => {\n if (!value?.date) return '';\n\n const displayFmt =\n format.displayFormat || (granularity === 'month' ? 'MMM YYYY' : 'MMM DD, YYYY');\n // Date-only values were anchored to `pickerTimezone` when stored (see\n // `composeDateOnly`) - display them in that same timezone rather than\n // the viewer's ambient one, so the trigger shows the actual calendar\n // date that was picked. Date+time values were deliberately never\n // anchored (see the note above `pickerTimezone`) - the viewer's own\n // local timezone is exactly what should convert that instant for\n // display, e.g. a UTC+3-scheduled 15:00 meeting showing as 12:00 to a\n // UTC+0 viewer.\n const parseDateOnlyAware = (iso: string) =>\n time.enabled ? dayjs(iso) : dayjs(iso).tz(pickerTimezone);\n\n switch (mode) {\n case 'single': {\n const date = parseDateOnlyAware(value.date as string);\n let result = date.format(displayFmt);\n if (time.enabled) {\n const timeStr = time.includeSeconds ? date.format('HH:mm:ss') : date.format('HH:mm');\n result += ` ${timeStr}`;\n }\n return result;\n }\n\n case 'multiple': {\n const dates = value.date as string[];\n if (time.enabled) {\n const formattedDates = dates.map((d) => {\n const date = parseDateOnlyAware(d);\n const dateStr = date.format(displayFmt);\n const timeStr = time.includeSeconds ? date.format('HH:mm:ss') : date.format('HH:mm');\n return `${dateStr} ${timeStr}`;\n });\n return formattedDates.join(', ');\n } else {\n const formattedDates = dates.map((d) => parseDateOnlyAware(d).format(displayFmt));\n return formattedDates.join(', ');\n }\n }\n\n case 'range': {\n const rangeValue = value.date as { start: string | null; end: string | null };\n const parts: string[] = [];\n\n if (rangeValue.start) {\n const startDate = parseDateOnlyAware(rangeValue.start);\n let startStr = startDate.format(displayFmt);\n if (time.enabled) {\n const timeStr = time.includeSeconds\n ? startDate.format('HH:mm:ss')\n : startDate.format('HH:mm');\n startStr += ` ${timeStr}`;\n }\n parts.push(startStr);\n }\n\n if (rangeValue.end) {\n const endDate = parseDateOnlyAware(rangeValue.end);\n let endStr = endDate.format(displayFmt);\n if (time.enabled) {\n const timeStr = time.includeSeconds\n ? endDate.format('HH:mm:ss')\n : endDate.format('HH:mm');\n endStr += ` ${timeStr}`;\n }\n parts.push(endStr);\n }\n\n return parts.join(' - ');\n }\n\n default:\n return '';\n }\n }, [value, mode, time, format, pickerTimezone, granularity]);\n\n // Handle clear\n const handleClear = useCallback(\n (e?: React.MouseEvent) => {\n if (e) {\n e.stopPropagation();\n }\n\n const clearedValue = (() => {\n if (mode === 'multiple') {\n return {\n date: [] as unknown as DateTimeValue<T>['date'],\n time: time.enabled\n ? (defaultStartTime as unknown as DateTimeValue<T>['time'])\n : undefined,\n } as DateTimeValue<T>;\n } else if (mode === 'range') {\n return {\n date: { start: null, end: null } as unknown as DateTimeValue<T>['date'],\n time: time.enabled\n ? ({\n start: defaultStartTime,\n end: defaultEndTime,\n } as unknown as DateTimeValue<T>['time'])\n : undefined,\n } as DateTimeValue<T>;\n } else {\n return {\n date: null as unknown as DateTimeValue<T>['date'],\n time: time.enabled\n ? (defaultStartTime as unknown as DateTimeValue<T>['time'])\n : undefined,\n } as DateTimeValue<T>;\n }\n })();\n\n onChange?.(clearedValue);\n setDropdownKey((prev) => prev + 1); // Close dropdown\n },\n [mode, time, onChange, defaultStartTime, defaultEndTime],\n );\n\n // Create trigger element\n const triggerElement = (\n <div\n ref={triggerRef}\n className={`eidos-date-picker-trigger${fullWidth ? ' eidos-date-picker-trigger--fullWidth' : ''}`}\n >\n <Input\n value={displayValue}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n name={name}\n id={id}\n readOnly={true}\n preIcon={CalendarIcon}\n posIcon={displayValue ? X : undefined}\n posIconButton={!!displayValue}\n onPosIconClick={displayValue ? handleClear : undefined}\n {...inputProps}\n clearable={false}\n />\n </div>\n );\n\n // Create dropdown content with calendar(s) and time inputs\n const dropdownContent = (\n <div className={'eidos-date-picker-content'}>\n {/* Multiple calendars with container-level navigation */}\n <div className={'eidos-date-picker-calendars-wrapper'}>\n {Array.from({ length: numberOfCalendars }, (_, index) => {\n const calendarDate = calendarDates[index] ?? dayjs().add(index, 'month');\n return (\n <Calendar\n key={index}\n currentDate={calendarDate}\n selectedDates={selectedDates}\n rangeStart={rangeStart}\n rangeEnd={rangeEnd}\n mode={mode}\n granularity={granularity}\n onDateSelect={handleDateSelect}\n onMonthChange={(newDate) => handleCalendarMonthChange(index, newDate)}\n minDate={minDateObj}\n maxDate={maxDateObj}\n disabledDates={disabledDatesObj}\n disabledDaysOfWeek={disabledDaysOfWeek}\n showWeekNumbers={calendar.showWeekNumbers}\n firstDayOfWeek={calendar.firstDayOfWeek}\n // Non-independent: only the first calendar's control is\n // interactive, since it's the one every other calendar\n // actually follows. Independent: every calendar gets one.\n showNavigation={independentCalendars || index === 0}\n />\n );\n })}\n </div>\n\n {/* Time inputs */}\n {time.enabled && (\n <div className={'eidos-date-picker-time-container'}>\n {mode === 'single' && (\n <TimeInput\n value={(value?.time as TimeValue) || defaultStartTime}\n onChange={(newTime) => {\n // Recompose the actual returned value with the new\n // time, not just the separate `time` field - see\n // `recomposeIsoWithTime`.\n const currentIso = value?.date as string | null;\n const newValue = {\n ...value,\n date: (currentIso\n ? recomposeIsoWithTime(currentIso, newTime)\n : currentIso) as DateTimeValue<T>['date'],\n time: newTime,\n } as DateTimeValue<T>;\n onChange?.(newValue);\n }}\n includeSeconds={time.includeSeconds}\n disabled={disabled}\n label=\"Time\"\n />\n )}\n\n {mode === 'multiple' && (\n <TimeInput\n value={(value?.time as TimeValue) || defaultStartTime}\n onChange={(newTime) => {\n // Recompose every selected date with the new shared\n // time - see `recomposeIsoWithTime`.\n const currentDates = (value?.date as string[]) || [];\n const newValue = {\n ...value,\n date: currentDates.map((d) =>\n recomposeIsoWithTime(d, newTime),\n ) as DateTimeValue<T>['date'],\n time: newTime,\n } as DateTimeValue<T>;\n onChange?.(newValue);\n }}\n includeSeconds={time.includeSeconds}\n disabled={disabled}\n label=\"Time for all dates\"\n />\n )}\n\n {mode === 'range' && (\n <div className={'eidos-date-picker-range-time-inputs'}>\n <TimeInput\n value={(value?.time as RangeTimeValue)?.start || defaultStartTime}\n onChange={(newTime) => {\n const currentRangeTime = (value?.time as RangeTimeValue) || {\n start: defaultStartTime,\n end: defaultEndTime,\n };\n // Recompose just the start of the range with the new\n // time - see `recomposeIsoWithTime`.\n const currentRange = (value?.date as {\n start: string | null;\n end: string | null;\n }) || {\n start: null,\n end: null,\n };\n const newValue = {\n ...value,\n date: {\n ...currentRange,\n start: currentRange.start\n ? recomposeIsoWithTime(currentRange.start, newTime)\n : currentRange.start,\n } as DateTimeValue<T>['date'],\n time: {\n ...currentRangeTime,\n start: newTime,\n },\n } as DateTimeValue<T>;\n onChange?.(newValue);\n }}\n includeSeconds={time.includeSeconds}\n disabled={disabled}\n label=\"Start time\"\n />\n <TimeInput\n value={(value?.time as RangeTimeValue)?.end || defaultEndTime}\n onChange={(newTime) => {\n const currentRangeTime = (value?.time as RangeTimeValue) || {\n start: defaultStartTime,\n end: defaultEndTime,\n };\n // Recompose just the end of the range with the new\n // time - see `recomposeIsoWithTime`.\n const currentRange = (value?.date as {\n start: string | null;\n end: string | null;\n }) || {\n start: null,\n end: null,\n };\n const newValue = {\n ...value,\n date: {\n ...currentRange,\n end: currentRange.end\n ? recomposeIsoWithTime(currentRange.end, newTime)\n : currentRange.end,\n } as DateTimeValue<T>['date'],\n time: {\n ...currentRangeTime,\n end: newTime,\n },\n } as DateTimeValue<T>;\n onChange?.(newValue);\n }}\n includeSeconds={time.includeSeconds}\n disabled={disabled}\n label=\"End time\"\n />\n </div>\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={`eidos-date-picker-container${fullWidth ? ' eidos-date-picker-container--fullWidth' : ''} ${className}`.trim()}\n >\n <Dropdown\n key={dropdownKey}\n trigger={triggerElement}\n content={dropdownContent}\n placement=\"bottom\"\n minWidth={minWidth}\n maxWidth={maxWidth || 'none'}\n minHeight={minHeight}\n maxHeight={maxHeight || 'none'}\n autoWidth={autoWidth}\n triggerRef={triggerRef as React.RefObject<HTMLElement | null>}\n />\n </div>\n );\n};\n\nDatePicker.displayName = 'DatePicker';\n","import React, { useMemo, useCallback } from 'react';\nimport dayjs, { Dayjs } from 'dayjs';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\n\n// Initialize dayjs plugins\ndayjs.extend(weekOfYear);\nimport { Select } from '../Select/Select.component';\nimport type { CalendarProps } from './DatePicker.types';\nimport { Button } from '../Button/Button.component';\n\nexport const Calendar: React.FC<CalendarProps> = ({\n currentDate,\n selectedDates,\n rangeStart,\n rangeEnd,\n // mode, // TODO: Use this for different selection behaviors\n granularity = 'day',\n onDateSelect,\n onMonthChange,\n minDate,\n maxDate,\n disabledDates = [],\n disabledDaysOfWeek = [],\n showWeekNumbers = false,\n firstDayOfWeek = 1, // Monday\n showNavigation = true,\n}) => {\n // Generate month options (12 months)\n const monthOptions = useMemo(() => {\n return Array.from({ length: 12 }, (_, i) => ({\n id: i.toString(),\n label: dayjs().month(i).format('MMMM'),\n value: i.toString(),\n }));\n }, []);\n\n // Generate year options (current year ± 50 years)\n const yearOptions = useMemo(() => {\n const currentYear = dayjs().year();\n const years = [];\n for (let year = currentYear - 50; year <= currentYear + 50; year++) {\n years.push({\n id: year.toString(),\n label: year.toString(),\n value: year.toString(),\n });\n }\n return years;\n }, []);\n\n // Handle month selection\n const handleMonthSelect = useCallback(\n (value: string | string[]) => {\n if (typeof value === 'string') {\n const newDate = currentDate.month(parseInt(value));\n onMonthChange(newDate);\n }\n },\n [currentDate, onMonthChange],\n );\n\n // Handle year selection\n const handleYearSelect = useCallback(\n (value: string | string[]) => {\n if (typeof value === 'string') {\n const newDate = currentDate.year(parseInt(value));\n onMonthChange(newDate);\n }\n },\n [currentDate, onMonthChange],\n );\n\n // Handle navigation arrows\n const handlePrevMonth = useCallback(() => {\n onMonthChange(currentDate.subtract(1, 'month'));\n }, [currentDate, onMonthChange]);\n\n const handleNextMonth = useCallback(() => {\n onMonthChange(currentDate.add(1, 'month'));\n }, [currentDate, onMonthChange]);\n\n const handlePrevYear = useCallback(() => {\n onMonthChange(currentDate.subtract(1, 'year'));\n }, [currentDate, onMonthChange]);\n\n const handleNextYear = useCallback(() => {\n onMonthChange(currentDate.add(1, 'year'));\n }, [currentDate, onMonthChange]);\n\n // Generate the 12 months of `currentDate`'s year - used instead of\n // `calendarDays` when `granularity === 'month'`.\n const monthCells = useMemo(() => {\n return Array.from({ length: 12 }, (_, i) => {\n const monthDate = currentDate.month(i).startOf('month');\n const isToday = monthDate.isSame(dayjs(), 'month');\n const isSelected = selectedDates.some((date) => date.isSame(monthDate, 'month'));\n const isDisabled =\n (minDate && monthDate.endOf('month').isBefore(minDate, 'month')) ||\n (maxDate && monthDate.isAfter(maxDate, 'month'));\n\n const isRangeStart = rangeStart?.isSame(monthDate, 'month') || false;\n const isRangeEnd = rangeEnd?.isSame(monthDate, 'month') || false;\n const isInRange =\n rangeStart &&\n rangeEnd &&\n monthDate.isAfter(rangeStart, 'month') &&\n monthDate.isBefore(rangeEnd, 'month');\n\n return {\n date: monthDate,\n isToday,\n isSelected,\n isDisabled,\n isRangeStart,\n isRangeEnd,\n isInRange,\n };\n });\n }, [currentDate, selectedDates, rangeStart, rangeEnd, minDate, maxDate]);\n\n // Generate calendar days\n const calendarDays = useMemo(() => {\n const startOfMonth = currentDate.startOf('month');\n\n // Get the first day of the week for the first day of the month\n let startOfCalendar = startOfMonth.startOf('week');\n if (firstDayOfWeek === 1) {\n // Monday\n startOfCalendar =\n startOfMonth.day() === 0\n ? startOfMonth.subtract(6, 'day')\n : startOfMonth.startOf('week').add(1, 'day');\n }\n\n // Generate 42 days (6 weeks * 7 days)\n const days = [];\n let current = startOfCalendar;\n\n for (let i = 0; i < 42; i++) {\n const isCurrentMonth = current.month() === currentDate.month();\n const isToday = current.isSame(dayjs(), 'day');\n const isSelected = selectedDates.some((date) => date.isSame(current, 'day'));\n const isDisabled =\n (minDate && current.isBefore(minDate, 'day')) ||\n (maxDate && current.isAfter(maxDate, 'day')) ||\n disabledDates.some((date) => date.isSame(current, 'day')) ||\n disabledDaysOfWeek.includes(current.day());\n\n // Range logic\n const isRangeStart = rangeStart?.isSame(current, 'day') || false;\n const isRangeEnd = rangeEnd?.isSame(current, 'day') || false;\n const isInRange =\n rangeStart &&\n rangeEnd &&\n current.isAfter(rangeStart, 'day') &&\n current.isBefore(rangeEnd, 'day');\n\n days.push({\n date: current,\n isCurrentMonth,\n isToday,\n isSelected,\n isDisabled,\n isRangeStart,\n isRangeEnd,\n isInRange,\n });\n\n current = current.add(1, 'day');\n }\n\n return days;\n }, [\n currentDate,\n selectedDates,\n rangeStart,\n rangeEnd,\n minDate,\n maxDate,\n disabledDates,\n disabledDaysOfWeek,\n firstDayOfWeek,\n ]);\n\n // Generate weekday headers\n const weekDays = useMemo(() => {\n const days = [];\n let start =\n firstDayOfWeek === 0 ? dayjs().startOf('week') : dayjs().startOf('week').add(1, 'day');\n\n for (let i = 0; i < 7; i++) {\n days.push(start.format('dd'));\n start = start.add(1, 'day');\n }\n return days;\n }, [firstDayOfWeek]);\n\n // Handle date click\n const handleDateClick = useCallback(\n (date: Dayjs) => {\n onDateSelect(date);\n },\n [onDateSelect],\n );\n\n return (\n <div className={'eidos-calendar'}>\n {/* Header with navigation - only interactive when this calendar actually\n\t\t\t navigates independently of its neighbors (see `showNavigation` doc).\n\t\t\t Showing editable, interactive controls that silently move a sibling\n\t\t\t calendar instead of themselves is exactly the confusing behavior this\n\t\t\t is meant to avoid; a plain label is honest about what will happen. */}\n <div className={'eidos-calendar-header'}>\n {showNavigation ? (\n granularity === 'month' ? (\n <>\n <Button variant=\"text\" icon={ChevronLeft} onClick={handlePrevYear} />\n\n <div className={'eidos-calendar-selectors'}>\n <Select\n options={yearOptions}\n value={currentDate.year().toString()}\n onChange={handleYearSelect}\n clearable={false}\n dropdownProps={{\n dropdownGroup: 'calendar-navigation',\n }}\n />\n </div>\n\n <Button variant=\"text\" icon={ChevronRight} onClick={handleNextYear} />\n </>\n ) : (\n <>\n <Button variant=\"text\" icon={ChevronLeft} onClick={handlePrevMonth} />\n\n <div className={'eidos-calendar-selectors'}>\n <Select\n options={monthOptions}\n value={currentDate.month().toString()}\n onChange={handleMonthSelect}\n clearable={false}\n dropdownProps={{\n dropdownGroup: 'calendar-navigation',\n }}\n />\n <Select\n options={yearOptions}\n value={currentDate.year().toString()}\n onChange={handleYearSelect}\n clearable={false}\n dropdownProps={{\n dropdownGroup: 'calendar-navigation',\n }}\n />\n </div>\n\n <Button variant=\"text\" icon={ChevronRight} onClick={handleNextMonth} />\n </>\n )\n ) : (\n <div className={'eidos-calendar-label'}>\n {currentDate.format(granularity === 'month' ? 'YYYY' : 'MMMM YYYY')}\n </div>\n )}\n </div>\n\n {/* Calendar grid */}\n {granularity === 'month' ? (\n <div className={'eidos-calendar-month-cells'}>\n {monthCells.map((month, index) => (\n <button\n key={index}\n type=\"button\"\n className={`eidos-calendar-date-cell eidos-calendar-month-cell ${month.isToday ? 'eidos-calendar-today' : ''} ${month.isSelected ? 'eidos-calendar-selected' : ''} ${month.isDisabled ? 'eidos-calendar-disabled' : ''} ${month.isRangeStart ? 'eidos-calendar-range-start' : ''} ${month.isRangeEnd ? 'eidos-calendar-range-end' : ''} ${month.isInRange ? 'eidos-calendar-in-range' : ''}`.trim()}\n onClick={() => !month.isDisabled && handleDateClick(month.date)}\n disabled={month.isDisabled}\n >\n {month.date.format('MMM')}\n </button>\n ))}\n </div>\n ) : (\n <div className={'eidos-calendar-grid'}>\n {/* Week numbers column (optional) */}\n {showWeekNumbers && (\n <div className={'eidos-calendar-week-numbers-column'}>\n <div className={'eidos-calendar-week-number-header'}></div>\n {Array.from({ length: 6 }, (_, weekIndex) => {\n const weekStart = calendarDays[weekIndex * 7].date;\n return (\n <div key={weekIndex} className={'eidos-calendar-week-number'}>\n {weekStart.format('W')}\n </div>\n );\n })}\n </div>\n )}\n\n {/* Main calendar content */}\n <div className={'eidos-calendar-content'}>\n {/* Weekday headers */}\n <div className={'eidos-calendar-week-days'}>\n {weekDays.map((day, index) => (\n <div key={index} className={'eidos-calendar-week-day'}>\n {day}\n </div>\n ))}\n </div>\n\n {/* Date cells */}\n <div className={'eidos-calendar-date-cells'}>\n {calendarDays.map((day, index) => (\n <button\n key={index}\n type=\"button\"\n className={`eidos-calendar-date-cell ${!day.isCurrentMonth ? 'eidos-calendar-other-month' : ''} ${day.isToday ? 'eidos-calendar-today' : ''} ${day.isSelected ? 'eidos-calendar-selected' : ''} ${day.isDisabled ? 'eidos-calendar-disabled' : ''} ${day.isRangeStart ? 'eidos-calendar-range-start' : ''} ${day.isRangeEnd ? 'eidos-calendar-range-end' : ''} ${day.isInRange ? 'eidos-calendar-in-range' : ''}`.trim()}\n onClick={() => !day.isDisabled && handleDateClick(day.date)}\n disabled={day.isDisabled}\n >\n {day.date.date()}\n </button>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Input } from '../Input/Input.component';\nimport type { TimeValue } from './DatePicker.types';\n\nexport interface TimeInputProps {\n value: TimeValue;\n onChange: (time: TimeValue) => void;\n includeSeconds?: boolean;\n disabled?: boolean;\n label?: string;\n}\n\nexport const TimeInput: React.FC<TimeInputProps> = ({\n value,\n onChange,\n includeSeconds = false,\n disabled = false,\n label = 'Time',\n}) => {\n const [hours, setHours] = useState(value.hours.toString().padStart(2, '0'));\n const [minutes, setMinutes] = useState(value.minutes.toString().padStart(2, '0'));\n const [seconds, setSeconds] = useState((value.seconds || 0).toString().padStart(2, '0'));\n\n // Update local state when value prop changes\n useEffect(() => {\n setHours(value.hours.toString().padStart(2, '0'));\n setMinutes(value.minutes.toString().padStart(2, '0'));\n setSeconds((value.seconds || 0).toString().padStart(2, '0'));\n }, [value]);\n\n const handleTimeChange = useCallback(\n (newHours: number, newMinutes: number, newSeconds: number) => {\n onChange({\n hours: newHours,\n minutes: newMinutes,\n seconds: newSeconds,\n });\n },\n [onChange],\n );\n\n const handleHoursChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newHours = Math.max(0, Math.min(23, parseInt(e.target.value) || 0));\n setHours(newHours.toString().padStart(2, '0'));\n handleTimeChange(newHours, value.minutes, value.seconds || 0);\n },\n [handleTimeChange, value.minutes, value.seconds],\n );\n\n const handleMinutesChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newMinutes = Math.max(0, Math.min(59, parseInt(e.target.value) || 0));\n setMinutes(newMinutes.toString().padStart(2, '0'));\n handleTimeChange(value.hours, newMinutes, value.seconds || 0);\n },\n [handleTimeChange, value.hours, value.seconds],\n );\n\n const handleSecondsChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newSeconds = Math.max(0, Math.min(59, parseInt(e.target.value) || 0));\n setSeconds(newSeconds.toString().padStart(2, '0'));\n handleTimeChange(value.hours, value.minutes, newSeconds);\n },\n [handleTimeChange, value.hours, value.minutes],\n );\n\n return (\n <div className={'eidos-time-input'}>\n {label && <label className={'eidos-time-input-label'}>{label}</label>}\n <div className={'eidos-time-input-inputs'}>\n <div className={'eidos-time-input-input-group'}>\n <Input\n type=\"number\"\n value={hours}\n onChange={handleHoursChange}\n disabled={disabled}\n min={0}\n max={23}\n placeholder=\"HH\"\n size=\"sm\"\n className={'eidos-time-input-time-field'}\n />\n <span className={'eidos-time-input-separator'}>:</span>\n </div>\n <div className={'eidos-time-input-input-group'}>\n <Input\n type=\"number\"\n value={minutes}\n onChange={handleMinutesChange}\n disabled={disabled}\n min={0}\n max={59}\n placeholder=\"MM\"\n size=\"sm\"\n className={'eidos-time-input-time-field'}\n />\n {includeSeconds && <span className={'eidos-time-input-separator'}>:</span>}\n </div>\n {includeSeconds && (\n <div className={'eidos-time-input-input-group'}>\n <Input\n type=\"number\"\n value={seconds}\n onChange={handleSecondsChange}\n disabled={disabled}\n min={0}\n max={59}\n placeholder=\"SS\"\n size=\"sm\"\n className={'eidos-time-input-time-field'}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,MAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,QAAM,EAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,UAAI,IAAE,KAAI,IAAE,KAAI,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,UAAS,IAAE,QAAO,IAAE,OAAM,IAAE,QAAO,IAAE,SAAQ,IAAE,WAAU,IAAE,QAAO,IAAE,QAAO,IAAE,gBAAe,IAAE,8FAA6F,IAAE,wFAAuF,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASA,IAAE;AAAC,YAAIC,KAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,KAAEF,KAAE;AAAI,eAAM,MAAIA,MAAGC,IAAGC,KAAE,MAAI,EAAE,KAAGD,GAAEC,EAAC,KAAGD,GAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAE,IAAE,SAASD,IAAEC,IAAEC,IAAE;AAAC,YAAIC,KAAE,OAAOH,EAAC;AAAE,eAAM,CAACG,MAAGA,GAAE,UAAQF,KAAED,KAAE,KAAG,MAAMC,KAAE,IAAEE,GAAE,MAAM,EAAE,KAAKD,EAAC,IAAEF;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,GAAE,GAAE,SAASA,IAAE;AAAC,YAAIC,KAAE,CAACD,GAAE,UAAU,GAAEE,KAAE,KAAK,IAAID,EAAC,GAAEE,KAAE,KAAK,MAAMD,KAAE,EAAE,GAAEE,KAAEF,KAAE;AAAG,gBAAOD,MAAG,IAAE,MAAI,OAAK,EAAEE,IAAE,GAAE,GAAG,IAAE,MAAI,EAAEC,IAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASJ,GAAEC,IAAEC,IAAE;AAAC,YAAGD,GAAE,KAAK,IAAEC,GAAE,KAAK,EAAE,QAAM,CAACF,GAAEE,IAAED,EAAC;AAAE,YAAIE,KAAE,MAAID,GAAE,KAAK,IAAED,GAAE,KAAK,MAAIC,GAAE,MAAM,IAAED,GAAE,MAAM,IAAGG,KAAEH,GAAE,MAAM,EAAE,IAAIE,IAAE,CAAC,GAAEE,KAAEH,KAAEE,KAAE,GAAEE,KAAEL,GAAE,MAAM,EAAE,IAAIE,MAAGE,KAAE,KAAG,IAAG,CAAC;AAAE,eAAM,EAAE,EAAEF,MAAGD,KAAEE,OAAIC,KAAED,KAAEE,KAAEA,KAAEF,QAAK;AAAA,MAAE,GAAE,GAAE,SAASJ,IAAE;AAAC,eAAOA,KAAE,IAAE,KAAK,KAAKA,EAAC,KAAG,IAAE,KAAK,MAAMA,EAAC;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAM,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,EAAC,EAAEA,EAAC,KAAG,OAAOA,MAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAO,WAASA;AAAA,MAAC,EAAC,GAAE,IAAE,MAAK,IAAE,CAAC;AAAE,QAAE,CAAC,IAAE;AAAE,UAAI,IAAE,kBAAiB,IAAE,SAASA,IAAE;AAAC,eAAOA,cAAa,KAAG,EAAE,CAACA,MAAG,CAACA,GAAE,CAAC;AAAA,MAAE,GAAE,IAAE,SAASA,GAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAIC;AAAE,YAAG,CAACH,GAAE,QAAO;AAAE,YAAG,YAAU,OAAOA,IAAE;AAAC,cAAII,KAAEJ,GAAE,YAAY;AAAE,YAAEI,EAAC,MAAID,KAAEC,KAAGH,OAAI,EAAEG,EAAC,IAAEH,IAAEE,KAAEC;AAAG,cAAIC,KAAEL,GAAE,MAAM,GAAG;AAAE,cAAG,CAACG,MAAGE,GAAE,SAAO,EAAE,QAAON,GAAEM,GAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAIC,KAAEN,GAAE;AAAK,YAAEM,EAAC,IAAEN,IAAEG,KAAEG;AAAA,QAAC;AAAC,eAAM,CAACJ,MAAGC,OAAI,IAAEA,KAAGA,MAAG,CAACD,MAAG;AAAA,MAAC,GAAE,IAAE,SAASH,IAAEC,IAAE;AAAC,YAAG,EAAED,EAAC,EAAE,QAAOA,GAAE,MAAM;AAAE,YAAIE,KAAE,YAAU,OAAOD,KAAEA,KAAE,CAAC;AAAE,eAAOC,GAAE,OAAKF,IAAEE,GAAE,OAAK,WAAU,IAAI,EAAEA,EAAC;AAAA,MAAC,GAAE,IAAE;AAAE,QAAE,IAAE,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,SAASF,IAAEC,IAAE;AAAC,eAAO,EAAED,IAAE,EAAC,QAAOC,GAAE,IAAG,KAAIA,GAAE,IAAG,GAAEA,GAAE,IAAG,SAAQA,GAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI,KAAE,WAAU;AAAC,iBAASO,GAAER,IAAE;AAAC,eAAK,KAAG,EAAEA,GAAE,QAAO,MAAK,IAAE,GAAE,KAAK,MAAMA,EAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,GAAE,KAAG,CAAC,GAAE,KAAK,CAAC,IAAE;AAAA,QAAE;AAAC,YAAIS,KAAED,GAAE;AAAU,eAAOC,GAAE,QAAM,SAAST,IAAE;AAAC,eAAK,MAAG,SAASA,IAAE;AAAC,gBAAIC,KAAED,GAAE,MAAKE,KAAEF,GAAE;AAAI,gBAAG,SAAOC,GAAE,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAG,EAAE,EAAEA,EAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,cAAa,KAAK,QAAO,IAAI,KAAKA,EAAC;AAAE,gBAAG,YAAU,OAAOA,MAAG,CAAC,MAAM,KAAKA,EAAC,GAAE;AAAC,kBAAIE,KAAEF,GAAE,MAAM,CAAC;AAAE,kBAAGE,IAAE;AAAC,oBAAIC,KAAED,GAAE,CAAC,IAAE,KAAG,GAAEE,MAAGF,GAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAOD,KAAE,IAAI,KAAK,KAAK,IAAIC,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC,CAAC,IAAE,IAAI,KAAKF,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKJ,EAAC;AAAA,UAAC,GAAED,EAAC,GAAE,KAAK,KAAK;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,cAAIT,KAAE,KAAK;AAAG,eAAK,KAAGA,GAAE,YAAY,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,QAAQ,GAAE,KAAK,KAAGA,GAAE,OAAO,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,MAAIA,GAAE,gBAAgB;AAAA,QAAC,GAAES,GAAE,SAAO,WAAU;AAAC,iBAAO;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAM,EAAE,KAAK,GAAG,SAAS,MAAI;AAAA,QAAE,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,EAAEF,EAAC;AAAE,iBAAO,KAAK,QAAQC,EAAC,KAAGC,MAAGA,MAAG,KAAK,MAAMD,EAAC;AAAA,QAAC,GAAEQ,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,iBAAO,EAAED,EAAC,IAAE,KAAK,QAAQC,EAAC;AAAA,QAAC,GAAEQ,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAMA,EAAC,IAAE,EAAED,EAAC;AAAA,QAAC,GAAES,GAAE,KAAG,SAAST,IAAEC,IAAEC,IAAE;AAAC,iBAAO,EAAE,EAAEF,EAAC,IAAE,KAAKC,EAAC,IAAE,KAAK,IAAIC,IAAEF,EAAC;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAQ,IAAE,GAAG;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAQ;AAAA,QAAC,GAAEA,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,CAAC,CAAC,EAAE,EAAEF,EAAC,KAAGA,IAAES,KAAE,EAAE,EAAEV,EAAC,GAAEW,KAAE,SAASX,IAAEC,IAAE;AAAC,gBAAIG,KAAE,EAAE,EAAEF,GAAE,KAAG,KAAK,IAAIA,GAAE,IAAGD,IAAED,EAAC,IAAE,IAAI,KAAKE,GAAE,IAAGD,IAAED,EAAC,GAAEE,EAAC;AAAE,mBAAOC,KAAEC,KAAEA,GAAE,MAAM,CAAC;AAAA,UAAC,GAAEQ,KAAE,SAASZ,IAAEC,IAAE;AAAC,mBAAO,EAAE,EAAEC,GAAE,OAAO,EAAEF,EAAC,EAAE,MAAME,GAAE,OAAO,GAAG,IAAGC,KAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMF,EAAC,CAAC,GAAEC,EAAC;AAAA,UAAC,GAAEW,KAAE,KAAK,IAAGL,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGK,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAOJ,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAOP,KAAEQ,GAAE,GAAE,CAAC,IAAEA,GAAE,IAAG,EAAE;AAAA,YAAE,KAAK;AAAE,qBAAOR,KAAEQ,GAAE,GAAEH,EAAC,IAAEG,GAAE,GAAEH,KAAE,CAAC;AAAA,YAAE,KAAK;AAAE,kBAAIO,KAAE,KAAK,QAAQ,EAAE,aAAW,GAAEC,MAAGH,KAAEE,KAAEF,KAAE,IAAEA,MAAGE;AAAE,qBAAOJ,GAAER,KAAEM,KAAEO,KAAEP,MAAG,IAAEO,KAAGR,EAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOI,GAAEE,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK,MAAM;AAAA,UAAC;AAAA,QAAC,GAAEL,GAAE,QAAM,SAAST,IAAE;AAAC,iBAAO,KAAK,QAAQA,IAAE,KAAE;AAAA,QAAC,GAAES,GAAE,OAAK,SAAST,IAAEC,IAAE;AAAC,cAAIC,IAAEe,KAAE,EAAE,EAAEjB,EAAC,GAAEU,KAAE,SAAO,KAAK,KAAG,QAAM,KAAIC,MAAGT,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,YAAWR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,gBAAeR,IAAGe,EAAC,GAAEL,KAAEK,OAAI,IAAE,KAAK,MAAIhB,KAAE,KAAK,MAAIA;AAAE,cAAGgB,OAAI,KAAGA,OAAI,GAAE;AAAC,gBAAIJ,KAAE,KAAK,MAAM,EAAE,IAAI,GAAE,CAAC;AAAE,YAAAA,GAAE,GAAGF,EAAC,EAAEC,EAAC,GAAEC,GAAE,KAAK,GAAE,KAAK,KAAGA,GAAE,IAAI,GAAE,KAAK,IAAI,KAAK,IAAGA,GAAE,YAAY,CAAC,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAF,MAAG,KAAK,GAAGA,EAAC,EAAEC,EAAC;AAAE,iBAAO,KAAK,KAAK,GAAE;AAAA,QAAI,GAAEH,GAAE,MAAI,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAM,EAAE,KAAKD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,MAAI,SAAST,IAAE;AAAC,iBAAO,KAAK,EAAE,EAAEA,EAAC,CAAC,EAAE;AAAA,QAAC,GAAES,GAAE,MAAI,SAASN,IAAEO,IAAE;AAAC,cAAIQ,IAAEP,KAAE;AAAK,UAAAR,KAAE,OAAOA,EAAC;AAAE,cAAIS,KAAE,EAAE,EAAEF,EAAC,GAAEG,KAAE,SAASb,IAAE;AAAC,gBAAIC,KAAE,EAAEU,EAAC;AAAE,mBAAO,EAAE,EAAEV,GAAE,KAAKA,GAAE,KAAK,IAAE,KAAK,MAAMD,KAAEG,EAAC,CAAC,GAAEQ,EAAC;AAAA,UAAC;AAAE,cAAGC,OAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI,EAAE,QAAOC,GAAE,CAAC;AAAE,cAAGD,OAAI,EAAE,QAAOC,GAAE,CAAC;AAAE,cAAIL,MAAGU,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,IAAGN,EAAC,KAAG,GAAEH,KAAE,KAAK,GAAG,QAAQ,IAAEN,KAAEK;AAAE,iBAAO,EAAE,EAAEC,IAAE,IAAI;AAAA,QAAC,GAAEA,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,IAAI,KAAGD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,SAAO,SAAST,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,KAAK,QAAQ;AAAE,cAAG,CAAC,KAAK,QAAQ,EAAE,QAAOA,GAAE,eAAa;AAAE,cAAIC,KAAEH,MAAG,wBAAuBI,KAAE,EAAE,EAAE,IAAI,GAAEC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGU,KAAEf,GAAE,UAASiB,KAAEjB,GAAE,QAAOQ,KAAER,GAAE,UAASkB,KAAE,SAASpB,IAAEE,IAAEE,IAAEC,IAAE;AAAC,mBAAOL,OAAIA,GAAEE,EAAC,KAAGF,GAAEC,IAAEE,EAAC,MAAIC,GAAEF,EAAC,EAAE,MAAM,GAAEG,EAAC;AAAA,UAAC,GAAEa,KAAE,SAASlB,IAAE;AAAC,mBAAO,EAAE,EAAEK,KAAE,MAAI,IAAGL,IAAE,GAAG;AAAA,UAAC,GAAEY,KAAEF,MAAG,SAASV,IAAEC,IAAEC,IAAE;AAAC,gBAAIC,KAAEH,KAAE,KAAG,OAAK;AAAK,mBAAOE,KAAEC,GAAE,YAAY,IAAEA;AAAA,UAAC;AAAE,iBAAOA,GAAE,QAAQ,IAAG,SAASH,IAAEG,IAAE;AAAC,mBAAOA,OAAG,SAASH,IAAE;AAAC,sBAAOA,IAAE;AAAA,gBAAC,KAAI;AAAK,yBAAO,OAAOC,GAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOM,KAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,KAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOa,GAAElB,GAAE,aAAYK,IAAEY,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOC,GAAED,IAAEZ,EAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAE;AAAA,gBAAG,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmB,GAAElB,GAAE,aAAYD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOG,GAAElB,GAAE,eAAcD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,GAAEhB,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOI,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOa,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAEP,IAAEC,IAAE,IAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOM,GAAEP,IAAEC,IAAE,KAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOL,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAO,EAAE,EAAEA,GAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,GAAEJ,EAAC,KAAGI,GAAE,QAAQ,KAAI,EAAE;AAAA,UAAC,EAAE;AAAA,QAAC,GAAEK,GAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAkB,IAAE,EAAE;AAAA,QAAC,GAAEA,GAAE,OAAK,SAASN,IAAEe,IAAEP,IAAE;AAAC,cAAIC,IAAEC,KAAE,MAAKL,KAAE,EAAE,EAAEU,EAAC,GAAET,KAAE,EAAEN,EAAC,GAAEW,MAAGL,GAAE,UAAU,IAAE,KAAK,UAAU,KAAG,GAAEM,KAAE,OAAKN,IAAEO,KAAE,WAAU;AAAC,mBAAO,EAAE,EAAEH,IAAEJ,EAAC;AAAA,UAAC;AAAE,kBAAOD,IAAE;AAAA,YAAC,KAAK;AAAE,cAAAI,KAAEI,GAAE,IAAE;AAAG;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE,IAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,MAAGG,KAAED,MAAG;AAAO;AAAA,YAAM,KAAK;AAAE,cAAAF,MAAGG,KAAED,MAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAF,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM;AAAQ,cAAAH,KAAEG;AAAA,UAAC;AAAC,iBAAOJ,KAAEC,KAAE,EAAE,EAAEA,EAAC;AAAA,QAAC,GAAEH,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAM,CAAC,EAAE;AAAA,QAAE,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,EAAE,KAAK,EAAE;AAAA,QAAC,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAG,CAACD,GAAE,QAAO,KAAK;AAAG,cAAIE,KAAE,KAAK,MAAM,GAAEC,KAAE,EAAEH,IAAEC,IAAE,IAAE;AAAE,iBAAOE,OAAID,GAAE,KAAGC,KAAGD;AAAA,QAAC,GAAEO,GAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAQ,IAAE,KAAK,YAAY,IAAE;AAAA,QAAI,GAAEA,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAEA,GAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAED;AAAA,MAAC,GAAE,GAAE,IAAE,EAAE;AAAU,aAAO,EAAE,YAAU,GAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,CAAC,EAAE,SAAS,SAASR,IAAE;AAAC,UAAEA,GAAE,CAAC,CAAC,IAAE,SAASC,IAAE;AAAC,iBAAO,KAAK,GAAGA,IAAED,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAE,GAAE,EAAE,SAAO,SAASA,IAAEC,IAAE;AAAC,eAAOD,GAAE,OAAKA,GAAEC,IAAE,GAAE,CAAC,GAAED,GAAE,KAAG,OAAI;AAAA,MAAC,GAAE,EAAE,SAAO,GAAE,EAAE,UAAQ,GAAE,EAAE,OAAK,SAASA,IAAE;AAAC,eAAO,EAAE,MAAIA,EAAC;AAAA,MAAC,GAAE,EAAE,KAAG,EAAE,CAAC,GAAE,EAAE,KAAG,GAAE,EAAE,IAAE,CAAC,GAAE;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACAv/N;AAAA;AAAA;AAAA,MAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,mBAAiB,EAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,UAAI,IAAE,UAAS,IAAE,wBAAuB,IAAE;AAAe,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAU,UAAE,MAAI,SAASqB,IAAE;AAAC,cAAIC,KAAE,EAAC,MAAKD,IAAE,KAAI,MAAG,MAAK,UAAS;AAAE,iBAAO,IAAI,EAAEC,EAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,IAAE;AAAC,cAAIC,KAAE,EAAE,KAAK,OAAO,GAAE,EAAC,QAAO,KAAK,IAAG,KAAI,KAAE,CAAC;AAAE,iBAAOD,KAAEC,GAAE,IAAI,KAAK,UAAU,GAAE,CAAC,IAAEA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,KAAK,OAAO,GAAE,EAAC,QAAO,KAAK,IAAG,KAAI,MAAE,CAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAM,UAAE,QAAM,SAASF,IAAE;AAAC,UAAAA,GAAE,QAAM,KAAK,KAAG,OAAI,KAAK,OAAO,EAAE,EAAEA,GAAE,OAAO,MAAI,KAAK,UAAQA,GAAE,UAAS,EAAE,KAAK,MAAKA,EAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIA,KAAE,KAAK;AAAG,iBAAK,KAAGA,GAAE,eAAe,GAAE,KAAK,KAAGA,GAAE,YAAY,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,KAAGA,GAAE,UAAU,GAAE,KAAK,KAAGA,GAAE,YAAY,GAAE,KAAK,KAAGA,GAAE,cAAc,GAAE,KAAK,KAAGA,GAAE,cAAc,GAAE,KAAK,MAAIA,GAAE,mBAAmB;AAAA,UAAC,MAAM,GAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAU,UAAE,YAAU,SAASG,IAAEC,IAAE;AAAC,cAAIC,KAAE,KAAK,OAAO,EAAE;AAAE,cAAGA,GAAEF,EAAC,EAAE,QAAO,KAAK,KAAG,IAAEE,GAAE,KAAK,OAAO,IAAE,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAG,YAAU,OAAOF,OAAIA,MAAE,SAASH,IAAE;AAAC,uBAASA,OAAIA,KAAE;AAAI,gBAAIG,KAAEH,GAAE,MAAM,CAAC;AAAE,gBAAG,CAACG,GAAE,QAAO;AAAK,gBAAIC,MAAG,KAAGD,GAAE,CAAC,GAAG,MAAM,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEE,KAAED,GAAE,CAAC,GAAEE,KAAE,KAAG,CAACF,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAO,MAAIE,KAAE,IAAE,QAAMD,KAAEC,KAAE,CAACA;AAAA,UAAC,GAAEH,EAAC,GAAE,SAAOA,IAAG,QAAO;AAAK,cAAIG,KAAE,KAAK,IAAIH,EAAC,KAAG,KAAG,KAAGA,KAAEA;AAAE,cAAG,MAAIG,GAAE,QAAO,KAAK,IAAIF,EAAC;AAAE,cAAIG,KAAE,KAAK,MAAM;AAAE,cAAGH,GAAE,QAAOG,GAAE,UAAQD,IAAEC,GAAE,KAAG,OAAGA;AAAE,cAAIC,KAAE,KAAK,KAAG,KAAK,OAAO,EAAE,kBAAkB,IAAE,KAAG,KAAK,UAAU;AAAE,kBAAOD,KAAE,KAAK,MAAM,EAAE,IAAID,KAAEE,IAAE,CAAC,GAAG,UAAQF,IAAEC,GAAE,GAAG,eAAaC,IAAED;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASP,IAAE;AAAC,cAAIC,KAAED,OAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAO,EAAE,KAAK,MAAKC,EAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAID,KAAE,KAAK,OAAO,EAAE,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAkB;AAAG,iBAAO,KAAK,GAAG,QAAQ,IAAE,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAO,EAAE,YAAY;AAAA,QAAC,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAO,EAAE,YAAY;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASA,IAAE;AAAC,iBAAM,QAAMA,MAAG,KAAK,UAAQ,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAO,IAAE,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,SAASA,IAAEC,IAAEC,IAAE;AAAC,cAAGF,MAAG,KAAK,OAAKA,GAAE,GAAG,QAAO,EAAE,KAAK,MAAKA,IAAEC,IAAEC,EAAC;AAAE,cAAIC,KAAE,KAAK,MAAM,GAAEC,KAAE,EAAEJ,EAAC,EAAE,MAAM;AAAE,iBAAO,EAAE,KAAKG,IAAEC,IAAEH,IAAEC,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACAntE;AAAA;AAAA;AAAA,MAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,wBAAsB,EAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,UAAI,IAAE,EAAC,MAAK,GAAE,OAAM,GAAE,KAAI,GAAE,MAAK,GAAE,QAAO,GAAE,QAAO,EAAC,GAAE,IAAE,CAAC;AAAE,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,GAAE,IAAE,SAASO,IAAEC,IAAEC,IAAE;AAAC,qBAASA,OAAIA,KAAE,CAAC;AAAG,cAAIC,KAAE,IAAI,KAAKH,EAAC,GAAEI,MAAE,SAASJ,IAAEC,IAAE;AAAC,uBAASA,OAAIA,KAAE,CAAC;AAAG,gBAAIC,KAAED,GAAE,gBAAc,SAAQE,KAAEH,KAAE,MAAIE,IAAEE,KAAE,EAAED,EAAC;AAAE,mBAAOC,OAAIA,KAAE,IAAI,KAAK,eAAe,SAAQ,EAAC,QAAO,OAAG,UAASJ,IAAE,MAAK,WAAU,OAAM,WAAU,KAAI,WAAU,MAAK,WAAU,QAAO,WAAU,QAAO,WAAU,cAAaE,GAAC,CAAC,GAAE,EAAEC,EAAC,IAAEC,KAAGA;AAAA,UAAC,GAAEH,IAAEC,EAAC;AAAE,iBAAOE,GAAE,cAAcD,EAAC;AAAA,QAAC,GAAE,IAAE,SAASE,IAAEJ,IAAE;AAAC,mBAAQC,KAAE,EAAEG,IAAEJ,EAAC,GAAEG,KAAE,CAAC,GAAEE,KAAE,GAAEA,KAAEJ,GAAE,QAAOI,MAAG,GAAE;AAAC,gBAAIC,KAAEL,GAAEI,EAAC,GAAEE,KAAED,GAAE,MAAK,IAAEA,GAAE,OAAM,IAAE,EAAEC,EAAC;AAAE,iBAAG,MAAIJ,GAAE,CAAC,IAAE,SAAS,GAAE,EAAE;AAAA,UAAE;AAAC,cAAI,IAAEA,GAAE,CAAC,GAAE,IAAE,OAAK,IAAE,IAAE,GAAE,IAAEA,GAAE,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,QAAO,IAAE,CAACC;AAAE,kBAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAG,KAAG,IAAE,QAAM;AAAA,QAAG,GAAE,IAAE,EAAE;AAAU,UAAE,KAAG,SAASL,IAAEK,IAAE;AAAC,cAAG,WAASL,OAAIA,KAAE,IAAG,CAAC,KAAK,QAAQ,EAAE,QAAO;AAAK,cAAIC,IAAEC,KAAE,KAAK,UAAU,GAAEO,KAAE,KAAK,OAAO,GAAEF,KAAEE,GAAE,eAAe,SAAQ,EAAC,UAAST,GAAC,CAAC,GAAEQ,KAAE,EAAE,CAACC,IAAET,EAAC;AAAE,cAAG,CAAC,OAAOQ,EAAC,EAAE,CAAAP,KAAE,KAAK,UAAU,GAAEI,EAAC;AAAA,mBAAUJ,KAAE,EAAEM,IAAE,EAAC,QAAO,KAAK,GAAE,CAAC,EAAE,KAAK,eAAc,KAAK,GAAG,EAAE,UAAUC,IAAE,IAAE,GAAEH,IAAE;AAAC,gBAAI,IAAEJ,GAAE,UAAU;AAAE,YAAAA,KAAEA,GAAE,IAAIC,KAAE,GAAE,QAAQ;AAAA,UAAC;AAAC,iBAAOD,GAAE,GAAG,YAAUD,IAAEC;AAAA,QAAC,GAAE,EAAE,aAAW,SAASD,IAAE;AAAC,cAAIK,KAAE,KAAK,GAAG,aAAW,EAAE,GAAG,MAAM,GAAEJ,KAAE,EAAE,KAAK,QAAQ,GAAEI,IAAE,EAAC,cAAaL,GAAC,CAAC,EAAE,MAAM,SAASA,IAAE;AAAC,mBAAM,mBAAiBA,GAAE,KAAK,YAAY;AAAA,UAAC,EAAE;AAAE,iBAAOC,MAAGA,GAAE;AAAA,QAAK;AAAE,YAAI,IAAE,EAAE;AAAQ,UAAE,UAAQ,SAASD,IAAEK,IAAE;AAAC,cAAG,CAAC,KAAK,MAAI,CAAC,KAAK,GAAG,UAAU,QAAO,EAAE,KAAK,MAAKL,IAAEK,EAAC;AAAE,cAAIJ,KAAE,EAAE,KAAK,OAAO,yBAAyB,GAAE,EAAC,QAAO,KAAK,GAAE,CAAC;AAAE,iBAAO,EAAE,KAAKA,IAAED,IAAEK,EAAC,EAAE,GAAG,KAAK,GAAG,WAAU,IAAE;AAAA,QAAC,GAAE,EAAE,KAAG,SAASL,IAAEK,IAAEJ,IAAE;AAAC,cAAIC,KAAED,MAAGI,IAAEI,KAAER,MAAGI,MAAG,GAAEE,KAAE,EAAE,CAAC,EAAE,GAAEE,EAAC;AAAE,cAAG,YAAU,OAAOT,GAAE,QAAO,EAAEA,EAAC,EAAE,GAAGS,EAAC;AAAE,cAAID,KAAE,EAAE,IAAIR,IAAEE,EAAC,EAAE,QAAQ;AAAE,cAAG,OAAO,MAAMM,EAAC,GAAE;AAAC,gBAAI,IAAE,EAAE,GAAG;AAAE,mBAAO,EAAE,GAAG,YAAUC,IAAE;AAAA,UAAC;AAAC,cAAI,KAAE,SAAST,IAAEK,IAAEJ,IAAE;AAAC,gBAAIC,KAAEF,KAAE,KAAGK,KAAE,KAAIF,KAAE,EAAED,IAAED,EAAC;AAAE,gBAAGI,OAAIF,GAAE,QAAM,CAACD,IAAEG,EAAC;AAAE,gBAAID,KAAE,EAAEF,MAAG,MAAIC,KAAEE,MAAG,KAAIJ,EAAC;AAAE,mBAAOE,OAAIC,KAAE,CAACF,IAAEC,EAAC,IAAE,CAACH,KAAE,KAAG,KAAK,IAAIG,IAAEC,EAAC,IAAE,KAAI,KAAK,IAAID,IAAEC,EAAC,CAAC;AAAA,UAAC,GAAEI,IAAED,IAAEE,EAAC,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,EAAE,UAAU,CAAC;AAAE,iBAAO,EAAE,GAAG,YAAUA,IAAE;AAAA,QAAC,GAAE,EAAE,GAAG,QAAM,WAAU;AAAC,iBAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE;AAAA,QAAQ,GAAE,EAAE,GAAG,aAAW,SAAST,IAAE;AAAC,cAAEA;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACAtqE;AAAA;AAAA;AAAA,MAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,0BAAwB,EAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,UAAI,IAAE,QAAO,IAAE;AAAO,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAU,UAAE,OAAK,SAASU,IAAE;AAAC,cAAG,WAASA,OAAIA,KAAE,OAAM,SAAOA,GAAE,QAAO,KAAK,IAAI,KAAGA,KAAE,KAAK,KAAK,IAAG,KAAK;AAAE,cAAIC,KAAE,KAAK,QAAQ,EAAE,aAAW;AAAE,cAAG,OAAK,KAAK,MAAM,KAAG,KAAK,KAAK,IAAE,IAAG;AAAC,gBAAIC,KAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,KAAKD,EAAC,GAAE,IAAE,EAAE,IAAI,EAAE,MAAM,CAAC;AAAE,gBAAGC,GAAE,SAAS,CAAC,EAAE,QAAO;AAAA,UAAC;AAAC,cAAI,IAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAKD,EAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAE,aAAa,GAAE,IAAE,KAAK,KAAK,GAAE,GAAE,IAAE;AAAE,iBAAO,IAAE,IAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,KAAK,IAAE,KAAK,KAAK,CAAC;AAAA,QAAC,GAAE,EAAE,QAAM,SAASE,IAAE;AAAC,iBAAO,WAASA,OAAIA,KAAE,OAAM,KAAK,KAAKA,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACCrwB,IAAAC,gBAA6B;AAC7B,iBAAgB;AAChB,sBAAqB;AAHrB,SAAgB,YAAAC,WAAU,eAAAC,cAAa,QAAQ,WAAAC,gBAAe;AAI9D,SAAS,YAAY,cAAc,SAAS;;;ACH5C,mBAA6B;AAC7B,wBAAuB;AAFvB,SAAgB,SAAS,mBAAmB;AAG5C,SAAS,aAAa,oBAAoB;AAqN9B,mBACE,KADF;AAlNZ,aAAAC,QAAM,OAAO,kBAAAC,OAAU;AAKhB,IAAM,WAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,CAAC;AAAA,EACjB,qBAAqB,CAAC;AAAA,EACtB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA;AAAA,EACjB,iBAAiB;AACnB,MAAM;AAEJ,QAAM,eAAe,QAAQ,MAAM;AACjC,WAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,OAAO;AAAA,MAC3C,IAAI,EAAE,SAAS;AAAA,MACf,WAAO,aAAAD,SAAM,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM;AAAA,MACrC,OAAO,EAAE,SAAS;AAAA,IACpB,EAAE;AAAA,EACJ,GAAG,CAAC,CAAC;AAGL,QAAM,cAAc,QAAQ,MAAM;AAChC,UAAM,kBAAc,aAAAA,SAAM,EAAE,KAAK;AACjC,UAAM,QAAQ,CAAC;AACf,aAAS,OAAO,cAAc,IAAI,QAAQ,cAAc,IAAI,QAAQ;AAClE,YAAM,KAAK;AAAA,QACT,IAAI,KAAK,SAAS;AAAA,QAClB,OAAO,KAAK,SAAS;AAAA,QACrB,OAAO,KAAK,SAAS;AAAA,MACvB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAGL,QAAM,oBAAoB;AAAA,IACxB,CAAC,UAA6B;AAC5B,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,UAAU,YAAY,MAAM,SAAS,KAAK,CAAC;AACjD,sBAAc,OAAO;AAAA,MACvB;AAAA,IACF;AAAA,IACA,CAAC,aAAa,aAAa;AAAA,EAC7B;AAGA,QAAM,mBAAmB;AAAA,IACvB,CAAC,UAA6B;AAC5B,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,UAAU,YAAY,KAAK,SAAS,KAAK,CAAC;AAChD,sBAAc,OAAO;AAAA,MACvB;AAAA,IACF;AAAA,IACA,CAAC,aAAa,aAAa;AAAA,EAC7B;AAGA,QAAM,kBAAkB,YAAY,MAAM;AACxC,kBAAc,YAAY,SAAS,GAAG,OAAO,CAAC;AAAA,EAChD,GAAG,CAAC,aAAa,aAAa,CAAC;AAE/B,QAAM,kBAAkB,YAAY,MAAM;AACxC,kBAAc,YAAY,IAAI,GAAG,OAAO,CAAC;AAAA,EAC3C,GAAG,CAAC,aAAa,aAAa,CAAC;AAE/B,QAAM,iBAAiB,YAAY,MAAM;AACvC,kBAAc,YAAY,SAAS,GAAG,MAAM,CAAC;AAAA,EAC/C,GAAG,CAAC,aAAa,aAAa,CAAC;AAE/B,QAAM,iBAAiB,YAAY,MAAM;AACvC,kBAAc,YAAY,IAAI,GAAG,MAAM,CAAC;AAAA,EAC1C,GAAG,CAAC,aAAa,aAAa,CAAC;AAI/B,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,MAAM;AAC1C,YAAM,YAAY,YAAY,MAAM,CAAC,EAAE,QAAQ,OAAO;AACtD,YAAM,UAAU,UAAU,WAAO,aAAAA,SAAM,GAAG,OAAO;AACjD,YAAM,aAAa,cAAc,KAAK,CAAC,SAAS,KAAK,OAAO,WAAW,OAAO,CAAC;AAC/E,YAAM,aACH,WAAW,UAAU,MAAM,OAAO,EAAE,SAAS,SAAS,OAAO,KAC7D,WAAW,UAAU,QAAQ,SAAS,OAAO;AAEhD,YAAM,eAAe,YAAY,OAAO,WAAW,OAAO,KAAK;AAC/D,YAAM,aAAa,UAAU,OAAO,WAAW,OAAO,KAAK;AAC3D,YAAM,YACJ,cACA,YACA,UAAU,QAAQ,YAAY,OAAO,KACrC,UAAU,SAAS,UAAU,OAAO;AAEtC,aAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,aAAa,eAAe,YAAY,UAAU,SAAS,OAAO,CAAC;AAGvE,QAAM,eAAe,QAAQ,MAAM;AACjC,UAAM,eAAe,YAAY,QAAQ,OAAO;AAGhD,QAAI,kBAAkB,aAAa,QAAQ,MAAM;AACjD,QAAI,mBAAmB,GAAG;AAExB,wBACE,aAAa,IAAI,MAAM,IACnB,aAAa,SAAS,GAAG,KAAK,IAC9B,aAAa,QAAQ,MAAM,EAAE,IAAI,GAAG,KAAK;AAAA,IACjD;AAGA,UAAM,OAAO,CAAC;AACd,QAAI,UAAU;AAEd,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM,iBAAiB,QAAQ,MAAM,MAAM,YAAY,MAAM;AAC7D,YAAM,UAAU,QAAQ,WAAO,aAAAA,SAAM,GAAG,KAAK;AAC7C,YAAM,aAAa,cAAc,KAAK,CAAC,SAAS,KAAK,OAAO,SAAS,KAAK,CAAC;AAC3E,YAAM,aACH,WAAW,QAAQ,SAAS,SAAS,KAAK,KAC1C,WAAW,QAAQ,QAAQ,SAAS,KAAK,KAC1C,cAAc,KAAK,CAAC,SAAS,KAAK,OAAO,SAAS,KAAK,CAAC,KACxD,mBAAmB,SAAS,QAAQ,IAAI,CAAC;AAG3C,YAAM,eAAe,YAAY,OAAO,SAAS,KAAK,KAAK;AAC3D,YAAM,aAAa,UAAU,OAAO,SAAS,KAAK,KAAK;AACvD,YAAM,YACJ,cACA,YACA,QAAQ,QAAQ,YAAY,KAAK,KACjC,QAAQ,SAAS,UAAU,KAAK;AAElC,WAAK,KAAK;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,gBAAU,QAAQ,IAAI,GAAG,KAAK;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,WAAW,QAAQ,MAAM;AAC7B,UAAM,OAAO,CAAC;AACd,QAAI,QACF,mBAAmB,QAAI,aAAAA,SAAM,EAAE,QAAQ,MAAM,QAAI,aAAAA,SAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,GAAG,KAAK;AAEvF,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,WAAK,KAAK,MAAM,OAAO,IAAI,CAAC;AAC5B,cAAQ,MAAM,IAAI,GAAG,KAAK;AAAA,IAC5B;AACA,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,CAAC;AAGnB,QAAM,kBAAkB;AAAA,IACtB,CAAC,SAAgB;AACf,mBAAa,IAAI;AAAA,IACnB;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,SACE,qBAAC,SAAI,WAAW,kBAMd;AAAA,wBAAC,SAAI,WAAW,yBACb,2BACC,gBAAgB,UACd,iCACE;AAAA,0BAAC,UAAO,SAAQ,QAAO,MAAM,aAAa,SAAS,gBAAgB;AAAA,MAEnE,oBAAC,SAAI,WAAW,4BACd;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,OAAO,YAAY,KAAK,EAAE,SAAS;AAAA,UACnC,UAAU;AAAA,UACV,WAAW;AAAA,UACX,eAAe;AAAA,YACb,eAAe;AAAA,UACjB;AAAA;AAAA,MACF,GACF;AAAA,MAEA,oBAAC,UAAO,SAAQ,QAAO,MAAM,cAAc,SAAS,gBAAgB;AAAA,OACtE,IAEA,iCACE;AAAA,0BAAC,UAAO,SAAQ,QAAO,MAAM,aAAa,SAAS,iBAAiB;AAAA,MAEpE,qBAAC,SAAI,WAAW,4BACd;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,OAAO,YAAY,MAAM,EAAE,SAAS;AAAA,YACpC,UAAU;AAAA,YACV,WAAW;AAAA,YACX,eAAe;AAAA,cACb,eAAe;AAAA,YACjB;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,OAAO,YAAY,KAAK,EAAE,SAAS;AAAA,YACnC,UAAU;AAAA,YACV,WAAW;AAAA,YACX,eAAe;AAAA,cACb,eAAe;AAAA,YACjB;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MAEA,oBAAC,UAAO,SAAQ,QAAO,MAAM,cAAc,SAAS,iBAAiB;AAAA,OACvE,IAGF,oBAAC,SAAI,WAAW,wBACb,sBAAY,OAAO,gBAAgB,UAAU,SAAS,WAAW,GACpE,GAEJ;AAAA,IAGC,gBAAgB,UACf,oBAAC,SAAI,WAAW,8BACb,qBAAW,IAAI,CAAC,OAAO,UACtB;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAW,sDAAsD,MAAM,UAAU,yBAAyB,EAAE,IAAI,MAAM,aAAa,4BAA4B,EAAE,IAAI,MAAM,aAAa,4BAA4B,EAAE,IAAI,MAAM,eAAe,+BAA+B,EAAE,IAAI,MAAM,aAAa,6BAA6B,EAAE,IAAI,MAAM,YAAY,4BAA4B,EAAE,GAAG,KAAK;AAAA,QAClY,SAAS,MAAM,CAAC,MAAM,cAAc,gBAAgB,MAAM,IAAI;AAAA,QAC9D,UAAU,MAAM;AAAA,QAEf,gBAAM,KAAK,OAAO,KAAK;AAAA;AAAA,MANnB;AAAA,IAOP,CACD,GACH,IAEA,qBAAC,SAAI,WAAW,uBAEb;AAAA,yBACC,qBAAC,SAAI,WAAW,sCACd;AAAA,4BAAC,SAAI,WAAW,qCAAqC;AAAA,QACpD,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,cAAc;AAC3C,gBAAM,YAAY,aAAa,YAAY,CAAC,EAAE;AAC9C,iBACE,oBAAC,SAAoB,WAAW,8BAC7B,oBAAU,OAAO,GAAG,KADb,SAEV;AAAA,QAEJ,CAAC;AAAA,SACH;AAAA,MAIF,qBAAC,SAAI,WAAW,0BAEd;AAAA,4BAAC,SAAI,WAAW,4BACb,mBAAS,IAAI,CAAC,KAAK,UAClB,oBAAC,SAAgB,WAAW,2BACzB,iBADO,KAEV,CACD,GACH;AAAA,QAGA,oBAAC,SAAI,WAAW,6BACb,uBAAa,IAAI,CAAC,KAAK,UACtB;AAAA,UAAC;AAAA;AAAA,YAEC,MAAK;AAAA,YACL,WAAW,4BAA4B,CAAC,IAAI,iBAAiB,+BAA+B,EAAE,IAAI,IAAI,UAAU,yBAAyB,EAAE,IAAI,IAAI,aAAa,4BAA4B,EAAE,IAAI,IAAI,aAAa,4BAA4B,EAAE,IAAI,IAAI,eAAe,+BAA+B,EAAE,IAAI,IAAI,aAAa,6BAA6B,EAAE,IAAI,IAAI,YAAY,4BAA4B,EAAE,GAAG,KAAK;AAAA,YACvZ,SAAS,MAAM,CAAC,IAAI,cAAc,gBAAgB,IAAI,IAAI;AAAA,YAC1D,UAAU,IAAI;AAAA,YAEb,cAAI,KAAK,KAAK;AAAA;AAAA,UANV;AAAA,QAOP,CACD,GACH;AAAA,SACF;AAAA,OACF;AAAA,KAEJ;AAEJ;;;AC1UA,SAAgB,UAAU,WAAW,eAAAE,oBAAmB;AAsExC,gBAAAC,MAER,QAAAC,aAFQ;AA1DT,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,QAAQ;AACV,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM,MAAM,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAC1E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAChF,QAAM,CAAC,SAAS,UAAU,IAAI,UAAU,MAAM,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAGvF,YAAU,MAAM;AACd,aAAS,MAAM,MAAM,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAChD,eAAW,MAAM,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AACpD,gBAAY,MAAM,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,EAC7D,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,mBAAmBC;AAAA,IACvB,CAAC,UAAkB,YAAoB,eAAuB;AAC5D,eAAS;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,oBAAoBA;AAAA,IACxB,CAAC,MAA2C;AAC1C,YAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;AACxE,eAAS,SAAS,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAC7C,uBAAiB,UAAU,MAAM,SAAS,MAAM,WAAW,CAAC;AAAA,IAC9D;AAAA,IACA,CAAC,kBAAkB,MAAM,SAAS,MAAM,OAAO;AAAA,EACjD;AAEA,QAAM,sBAAsBA;AAAA,IAC1B,CAAC,MAA2C;AAC1C,YAAM,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;AAC1E,iBAAW,WAAW,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AACjD,uBAAiB,MAAM,OAAO,YAAY,MAAM,WAAW,CAAC;AAAA,IAC9D;AAAA,IACA,CAAC,kBAAkB,MAAM,OAAO,MAAM,OAAO;AAAA,EAC/C;AAEA,QAAM,sBAAsBA;AAAA,IAC1B,CAAC,MAA2C;AAC1C,YAAM,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;AAC1E,iBAAW,WAAW,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AACjD,uBAAiB,MAAM,OAAO,MAAM,SAAS,UAAU;AAAA,IACzD;AAAA,IACA,CAAC,kBAAkB,MAAM,OAAO,MAAM,OAAO;AAAA,EAC/C;AAEA,SACE,gBAAAD,MAAC,SAAI,WAAW,oBACb;AAAA,aAAS,gBAAAD,KAAC,WAAM,WAAW,0BAA2B,iBAAM;AAAA,IAC7D,gBAAAC,MAAC,SAAI,WAAW,2BACd;AAAA,sBAAAA,MAAC,SAAI,WAAW,gCACd;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,YACV;AAAA,YACA,KAAK;AAAA,YACL,KAAK;AAAA,YACL,aAAY;AAAA,YACZ,MAAK;AAAA,YACL,WAAW;AAAA;AAAA,QACb;AAAA,QACA,gBAAAA,KAAC,UAAK,WAAW,8BAA8B,eAAC;AAAA,SAClD;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAW,gCACd;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,YACV;AAAA,YACA,KAAK;AAAA,YACL,KAAK;AAAA,YACL,aAAY;AAAA,YACZ,MAAK;AAAA,YACL,WAAW;AAAA;AAAA,QACb;AAAA,QACC,kBAAkB,gBAAAA,KAAC,UAAK,WAAW,8BAA8B,eAAC;AAAA,SACrE;AAAA,MACC,kBACC,gBAAAA,KAAC,SAAI,WAAW,gCACd,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,UACV;AAAA,UACA,KAAK;AAAA,UACL,KAAK;AAAA,UACL,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,WAAW;AAAA;AAAA,MACb,GACF;AAAA,OAEJ;AAAA,KACF;AAEJ;;;AF4XM,gBAAAG,MAoGM,QAAAC,aApGN;AAheN,cAAAC,QAAM,OAAO,WAAAC,OAAG;AAChB,cAAAD,QAAM,OAAO,gBAAAE,OAAQ;AAEd,IAAM,aAAa,CAAyC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,OAAO,EAAE,SAAS,MAAM;AAAA,EACxB,WAAW,EAAE,mBAAmB,EAAE;AAAA,EAClC,SAAS;AAAA,IACP,eAAe;AAAA,IACf,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,aAAa,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA,gBAAgB,CAAC;AAAA,EACjB,qBAAqB,CAAC;AAAA,EACtB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,MAA0B;AACxB,QAAM,CAAC,aAAa,cAAc,IAAIC,UAAS,CAAC;AAoBhD,QAAM,iBAAiB,OAAO,YAAY;AAI1C,QAAM,kBAAkBC;AAAA,IACtB,CAAC,MAAa,WAA4B,YAAY;AACpD,YAAM,WAAW,cAAAJ,QAAM,GAAG,KAAK,OAAO,YAAY,GAAG,cAAc;AACnE,aAAO,aAAa,QAAQ,SAAS,MAAM,KAAK,IAAI,SAAS,QAAQ,KAAK;AAAA,IAC5E;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAIA,QAAM,uBAAuBI;AAAA,IAC3B,CAAC,MAAa,MACZ,KACG,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC;AAAA,IAC1B,CAAC;AAAA,EACH;AAQA,QAAM,uBAAuBA;AAAA,IAC3B,CAAC,WAAmB,UAClB,cAAAJ,SAAM,SAAS,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,EACrB,YAAY;AAAA,IACjB,CAAC;AAAA,EACH;AAGA,QAAM,oBAAoB,gBAAgB,UAAU,IAAI,SAAS,qBAAqB;AACtF,QAAM,uBAAuB,SAAS,eAAe;AAKrD,QAAM,CAAC,eAAe,gBAAgB,IAAIG;AAAA,IAAkB,MAC1D,MAAM,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,GAAG,UAAM,cAAAH,SAAM,EAAE,IAAI,GAAG,OAAO,CAAC;AAAA,EAC7E;AACA,QAAM,4BAA4BI;AAAA,IAChC,CAAC,OAAe,YAAmB;AACjC,UAAI,CAAC,sBAAsB;AAIzB,cAAM,SAAS,QAAQ,SAAS,OAAO,OAAO;AAC9C;AAAA,UACE,MAAM,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,GAAG,MAAM,OAAO,IAAI,GAAG,OAAO,CAAC;AAAA,QAC5E;AACA;AAAA,MACF;AAOA,uBAAiB,CAAC,SAAS;AACzB,cAAM,OAAO,CAAC,GAAG,IAAI;AACrB,YAAI,UAAU;AACd,cAAM,OAAO,KAAK,QAAQ,CAAC;AAC3B,cAAM,QAAQ,KAAK,QAAQ,CAAC;AAC5B,YAAI,QAAQ,CAAC,QAAQ,QAAQ,MAAM,OAAO,GAAG;AAC3C,oBAAU,KAAK,IAAI,GAAG,OAAO;AAAA,QAC/B;AACA,YAAI,SAAS,CAAC,QAAQ,SAAS,OAAO,OAAO,GAAG;AAC9C,oBAAU,MAAM,SAAS,GAAG,OAAO;AAAA,QACrC;AACA,aAAK,KAAK,IAAI;AACd,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,sBAAsB,iBAAiB;AAAA,EAC1C;AACA,QAAM,aAAa,OAAuB,IAAI;AAI9C,QAAM,aAAaC,SAAQ,MAAO,cAAU,cAAAL,SAAM,OAAO,IAAI,QAAY,CAAC,OAAO,CAAC;AAClF,QAAM,aAAaK,SAAQ,MAAO,cAAU,cAAAL,SAAM,OAAO,IAAI,QAAY,CAAC,OAAO,CAAC;AAClF,QAAM,mBAAmBK,SAAQ,MAAM,cAAc,IAAI,CAAC,UAAM,cAAAL,SAAM,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AAG1F,QAAM,mBAAmBK,SAAmB,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC;AAC5F,QAAM,iBAAiBA,SAAmB,OAAO,EAAE,OAAO,IAAI,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC;AAI7F,QAAM,oBAAoBD;AAAA,IACxB,CAAC,cAA4C;AAC3C,UAAI,CAAC,UAAW,QAAO;AACvB,YAAM,aAAS,cAAAJ,SAAM,SAAS;AAO9B,cAAQ,KAAK,UAAU,SAAS,OAAO,GAAG,cAAc,GAAG,OAAO,YAAY;AAAA,IAChF;AAAA,IACA,CAAC,KAAK,SAAS,cAAc;AAAA,EAC/B;AAGA,QAAM,EAAE,eAAe,YAAY,SAAS,IAAIK,SAAQ,MAAM;AAC5D,QAAI,CAAC,OAAO,MAAM;AAChB,aAAO,EAAE,eAAe,CAAC,GAAG,YAAY,MAAM,UAAU,KAAK;AAAA,IAC/D;AAEA,YAAQ,MAAM;AAAA,MACZ,KAAK,UAAU;AACb,cAAM,YAAY,MAAM;AACxB,cAAM,eAAe,kBAAkB,SAAS;AAChD,eAAO;AAAA,UACL,eAAe,eAAe,KAAC,cAAAL,SAAM,YAAY,CAAC,IAAI,CAAC;AAAA,UACvD,YAAY;AAAA,UACZ,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,KAAK,YAAY;AACf,cAAM,aAAa,MAAM;AACzB,cAAM,mBAAmB,WACtB,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC,EAC/B,OAAO,OAAO;AACjB,eAAO;AAAA,UACL,eAAe,iBAAiB,IAAI,CAAC,UAAM,cAAAA,SAAM,CAAC,CAAC;AAAA,UACnD,YAAY;AAAA,UACZ,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,KAAK,SAAS;AACZ,cAAM,QAAQ,MAAM;AACpB,cAAM,WAAW,kBAAkB,MAAM,KAAK;AAC9C,cAAM,SAAS,kBAAkB,MAAM,GAAG;AAC1C,eAAO;AAAA,UACL,eAAe,CAAC;AAAA,UAChB,YAAY,eAAW,cAAAA,SAAM,QAAQ,IAAI;AAAA,UACzC,UAAU,aAAS,cAAAA,SAAM,MAAM,IAAI;AAAA,QACrC;AAAA,MACF;AAAA,MACA;AACE,eAAO,EAAE,eAAe,CAAC,GAAG,YAAY,MAAM,UAAU,KAAK;AAAA,IACjE;AAAA,EACF,GAAG,CAAC,OAAO,MAAM,iBAAiB,CAAC;AAMnC,QAAM,mBAAmBI;AAAA,IACvB,CAAC,iBAAwB;AAMvB,YAAM,gBAAgB,gBAAgB,UAAU,aAAa,MAAM,OAAO,IAAI;AAC9E,YAAM,cAAc,gBAAgB,UAAU,UAAU;AAExD,cAAQ,MAAM;AAAA,QACZ,KAAK,UAAU;AACb,cAAI;AAIJ,gBAAM,aAAc,OAAO,QAAsB;AACjD,cAAI,KAAK,SAAS;AAChB,2BAAe,qBAAqB,eAAe,UAAU;AAAA,UAC/D,OAAO;AACL,2BAAe,gBAAgB,eAAe,OAAO;AAAA,UACvD;AAEA,gBAAM,WAA6B;AAAA,YACjC,MAAM,aAAa,YAAY;AAAA,YAC/B,MAAM,KAAK,UAAW,aAA0C;AAAA,UAClE;AAEA,qBAAW,QAAQ;AACnB,yBAAe,CAAC,SAAS,OAAO,CAAC;AACjC;AAAA,QACF;AAAA,QAEA,KAAK,YAAY;AACf,gBAAM,eAAgB,OAAO,QAAqB,CAAC;AACnD,gBAAM,eAAe,aAAa,IAAI,CAAC,UAAM,cAAAJ,SAAM,CAAC,CAAC;AAGrD,gBAAM,gBAAgB,aAAa,UAAU,CAAC,MAAM,EAAE,OAAO,eAAe,WAAW,CAAC;AACxF,cAAI;AAEJ,cAAI,iBAAiB,GAAG;AAEtB,uBAAW,aAAa,OAAO,CAAC,GAAG,UAAU,UAAU,aAAa;AAAA,UACtE,OAAO;AAEL,kBAAM,aAAc,OAAO,QAAsB;AACjD,kBAAM,eAAe,KAAK,UACtB,qBAAqB,eAAe,UAAU,IAC9C,gBAAgB,eAAe,OAAO;AAC1C,uBAAW,CAAC,GAAG,cAAc,YAAY;AAAA,UAC3C;AAGA,gBAAM,WAA6B;AAAA,YACjC,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AAAA,YACzC,MAAM,KAAK,UACJ,OAAO,QAAsB,mBAChC;AAAA,UACN;AAEA,qBAAW,QAAQ;AACnB;AAAA,QACF;AAAA,QAEA,KAAK,SAAS;AACZ,gBAAM,eAAgB,OAAO,QAAyD;AAAA,YACpF,OAAO;AAAA,YACP,KAAK;AAAA,UACP;AACA,gBAAM,mBAAoB,OAAO,QAA2B;AAAA,YAC1D,OAAO;AAAA,YACP,KAAK;AAAA,UACP;AAEA,cAAI,CAAC,aAAa,SAAU,aAAa,SAAS,aAAa,KAAM;AAEnE,kBAAM,gBAAgB,KAAK,UACvB,qBAAqB,eAAe,iBAAiB,KAAK,IAC1D,gBAAgB,eAAe,OAAO;AAG1C,kBAAM,WAA6B;AAAA,cACjC,MAAM,EAAE,OAAO,cAAc,YAAY,GAAG,KAAK,KAAK;AAAA,cACtD,MAAM,KAAK,UAAW,mBAAgD;AAAA,YACxE;AAEA,uBAAW,QAAQ;AAAA,UACrB,OAAO;AAQL,kBAAM,QAAQ,KAAK,cACf,cAAAA,SAAM,aAAa,KAAK,QACxB,cAAAA,SAAM,aAAa,KAAK,EAAE,GAAG,cAAc;AAC/C,gBAAI,MAAM;AAGV,gBAAI,IAAI,SAAS,OAAO,WAAW,GAAG;AACpC,oBAAM;AAAA,YACR;AAEA,kBAAM,KAAK,UACP,qBAAqB,KAAK,iBAAiB,GAAG,IAC9C,gBAAgB,KAAK,KAAK;AAG9B,kBAAM,WAA6B;AAAA,cACjC,MAAM;AAAA,gBACJ,OAAO,aAAa;AAAA,gBACpB,KAAK,IAAI,YAAY;AAAA,cACvB;AAAA,cACA,MAAM,KAAK,UAAW,mBAAgD;AAAA,YACxE;AAEA,uBAAW,QAAQ;AACnB,2BAAe,CAAC,SAAS,OAAO,CAAC;AAAA,UACnC;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAGA,QAAM,eAAeK,SAAQ,MAAM;AACjC,QAAI,CAAC,OAAO,KAAM,QAAO;AAEzB,UAAM,aACJ,OAAO,kBAAkB,gBAAgB,UAAU,aAAa;AASlE,UAAM,qBAAqB,CAAC,QAC1B,KAAK,cAAU,cAAAL,SAAM,GAAG,QAAI,cAAAA,SAAM,GAAG,EAAE,GAAG,cAAc;AAE1D,YAAQ,MAAM;AAAA,MACZ,KAAK,UAAU;AACb,cAAM,OAAO,mBAAmB,MAAM,IAAc;AACpD,YAAI,SAAS,KAAK,OAAO,UAAU;AACnC,YAAI,KAAK,SAAS;AAChB,gBAAM,UAAU,KAAK,iBAAiB,KAAK,OAAO,UAAU,IAAI,KAAK,OAAO,OAAO;AACnF,oBAAU,IAAI,OAAO;AAAA,QACvB;AACA,eAAO;AAAA,MACT;AAAA,MAEA,KAAK,YAAY;AACf,cAAM,QAAQ,MAAM;AACpB,YAAI,KAAK,SAAS;AAChB,gBAAM,iBAAiB,MAAM,IAAI,CAAC,MAAM;AACtC,kBAAM,OAAO,mBAAmB,CAAC;AACjC,kBAAM,UAAU,KAAK,OAAO,UAAU;AACtC,kBAAM,UAAU,KAAK,iBAAiB,KAAK,OAAO,UAAU,IAAI,KAAK,OAAO,OAAO;AACnF,mBAAO,GAAG,OAAO,IAAI,OAAO;AAAA,UAC9B,CAAC;AACD,iBAAO,eAAe,KAAK,IAAI;AAAA,QACjC,OAAO;AACL,gBAAM,iBAAiB,MAAM,IAAI,CAAC,MAAM,mBAAmB,CAAC,EAAE,OAAO,UAAU,CAAC;AAChF,iBAAO,eAAe,KAAK,IAAI;AAAA,QACjC;AAAA,MACF;AAAA,MAEA,KAAK,SAAS;AACZ,cAAM,aAAa,MAAM;AACzB,cAAM,QAAkB,CAAC;AAEzB,YAAI,WAAW,OAAO;AACpB,gBAAM,YAAY,mBAAmB,WAAW,KAAK;AACrD,cAAI,WAAW,UAAU,OAAO,UAAU;AAC1C,cAAI,KAAK,SAAS;AAChB,kBAAM,UAAU,KAAK,iBACjB,UAAU,OAAO,UAAU,IAC3B,UAAU,OAAO,OAAO;AAC5B,wBAAY,IAAI,OAAO;AAAA,UACzB;AACA,gBAAM,KAAK,QAAQ;AAAA,QACrB;AAEA,YAAI,WAAW,KAAK;AAClB,gBAAM,UAAU,mBAAmB,WAAW,GAAG;AACjD,cAAI,SAAS,QAAQ,OAAO,UAAU;AACtC,cAAI,KAAK,SAAS;AAChB,kBAAM,UAAU,KAAK,iBACjB,QAAQ,OAAO,UAAU,IACzB,QAAQ,OAAO,OAAO;AAC1B,sBAAU,IAAI,OAAO;AAAA,UACvB;AACA,gBAAM,KAAK,MAAM;AAAA,QACnB;AAEA,eAAO,MAAM,KAAK,KAAK;AAAA,MACzB;AAAA,MAEA;AACE,eAAO;AAAA,IACX;AAAA,EACF,GAAG,CAAC,OAAO,MAAM,MAAM,QAAQ,gBAAgB,WAAW,CAAC;AAG3D,QAAM,cAAcI;AAAA,IAClB,CAAC,MAAyB;AACxB,UAAI,GAAG;AACL,UAAE,gBAAgB;AAAA,MACpB;AAEA,YAAM,gBAAgB,MAAM;AAC1B,YAAI,SAAS,YAAY;AACvB,iBAAO;AAAA,YACL,MAAM,CAAC;AAAA,YACP,MAAM,KAAK,UACN,mBACD;AAAA,UACN;AAAA,QACF,WAAW,SAAS,SAAS;AAC3B,iBAAO;AAAA,YACL,MAAM,EAAE,OAAO,MAAM,KAAK,KAAK;AAAA,YAC/B,MAAM,KAAK,UACN;AAAA,cACC,OAAO;AAAA,cACP,KAAK;AAAA,YACP,IACA;AAAA,UACN;AAAA,QACF,OAAO;AACL,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,MAAM,KAAK,UACN,mBACD;AAAA,UACN;AAAA,QACF;AAAA,MACF,GAAG;AAEH,iBAAW,YAAY;AACvB,qBAAe,CAAC,SAAS,OAAO,CAAC;AAAA,IACnC;AAAA,IACA,CAAC,MAAM,MAAM,UAAU,kBAAkB,cAAc;AAAA,EACzD;AAGA,QAAM,iBACJ,gBAAAN;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAW,4BAA4B,YAAY,0CAA0C,EAAE;AAAA,MAE/F,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV,SAAS;AAAA,UACT,SAAS,eAAe,IAAI;AAAA,UAC5B,eAAe,CAAC,CAAC;AAAA,UACjB,gBAAgB,eAAe,cAAc;AAAA,UAC5C,GAAG;AAAA,UACJ,WAAW;AAAA;AAAA,MACb;AAAA;AAAA,EACF;AAIF,QAAM,kBACJ,gBAAAC,MAAC,SAAI,WAAW,6BAEd;AAAA,oBAAAD,KAAC,SAAI,WAAW,uCACb,gBAAM,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,GAAG,UAAU;AACvD,YAAM,eAAe,cAAc,KAAK,SAAK,cAAAE,SAAM,EAAE,IAAI,OAAO,OAAO;AACvE,aACE,gBAAAF;AAAA,QAAC;AAAA;AAAA,UAEC,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,eAAe,CAAC,YAAY,0BAA0B,OAAO,OAAO;AAAA,UACpE,SAAS;AAAA,UACT,SAAS;AAAA,UACT,eAAe;AAAA,UACf;AAAA,UACA,iBAAiB,SAAS;AAAA,UAC1B,gBAAgB,SAAS;AAAA,UAIzB,gBAAgB,wBAAwB,UAAU;AAAA;AAAA,QAlB7C;AAAA,MAmBP;AAAA,IAEJ,CAAC,GACH;AAAA,IAGC,KAAK,WACJ,gBAAAC,MAAC,SAAI,WAAW,oCACb;AAAA,eAAS,YACR,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAQ,OAAO,QAAsB;AAAA,UACrC,UAAU,CAAC,YAAY;AAIrB,kBAAM,aAAa,OAAO;AAC1B,kBAAM,WAAW;AAAA,cACf,GAAG;AAAA,cACH,MAAO,aACH,qBAAqB,YAAY,OAAO,IACxC;AAAA,cACJ,MAAM;AAAA,YACR;AACA,uBAAW,QAAQ;AAAA,UACrB;AAAA,UACA,gBAAgB,KAAK;AAAA,UACrB;AAAA,UACA,OAAM;AAAA;AAAA,MACR;AAAA,MAGD,SAAS,cACR,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAQ,OAAO,QAAsB;AAAA,UACrC,UAAU,CAAC,YAAY;AAGrB,kBAAM,eAAgB,OAAO,QAAqB,CAAC;AACnD,kBAAM,WAAW;AAAA,cACf,GAAG;AAAA,cACH,MAAM,aAAa;AAAA,gBAAI,CAAC,MACtB,qBAAqB,GAAG,OAAO;AAAA,cACjC;AAAA,cACA,MAAM;AAAA,YACR;AACA,uBAAW,QAAQ;AAAA,UACrB;AAAA,UACA,gBAAgB,KAAK;AAAA,UACrB;AAAA,UACA,OAAM;AAAA;AAAA,MACR;AAAA,MAGD,SAAS,WACR,gBAAAC,MAAC,SAAI,WAAW,uCACd;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,OAAQ,OAAO,MAAyB,SAAS;AAAA,YACjD,UAAU,CAAC,YAAY;AACrB,oBAAM,mBAAoB,OAAO,QAA2B;AAAA,gBAC1D,OAAO;AAAA,gBACP,KAAK;AAAA,cACP;AAGA,oBAAM,eAAgB,OAAO,QAGvB;AAAA,gBACJ,OAAO;AAAA,gBACP,KAAK;AAAA,cACP;AACA,oBAAM,WAAW;AAAA,gBACf,GAAG;AAAA,gBACH,MAAM;AAAA,kBACJ,GAAG;AAAA,kBACH,OAAO,aAAa,QAChB,qBAAqB,aAAa,OAAO,OAAO,IAChD,aAAa;AAAA,gBACnB;AAAA,gBACA,MAAM;AAAA,kBACJ,GAAG;AAAA,kBACH,OAAO;AAAA,gBACT;AAAA,cACF;AACA,yBAAW,QAAQ;AAAA,YACrB;AAAA,YACA,gBAAgB,KAAK;AAAA,YACrB;AAAA,YACA,OAAM;AAAA;AAAA,QACR;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAQ,OAAO,MAAyB,OAAO;AAAA,YAC/C,UAAU,CAAC,YAAY;AACrB,oBAAM,mBAAoB,OAAO,QAA2B;AAAA,gBAC1D,OAAO;AAAA,gBACP,KAAK;AAAA,cACP;AAGA,oBAAM,eAAgB,OAAO,QAGvB;AAAA,gBACJ,OAAO;AAAA,gBACP,KAAK;AAAA,cACP;AACA,oBAAM,WAAW;AAAA,gBACf,GAAG;AAAA,gBACH,MAAM;AAAA,kBACJ,GAAG;AAAA,kBACH,KAAK,aAAa,MACd,qBAAqB,aAAa,KAAK,OAAO,IAC9C,aAAa;AAAA,gBACnB;AAAA,gBACA,MAAM;AAAA,kBACJ,GAAG;AAAA,kBACH,KAAK;AAAA,gBACP;AAAA,cACF;AACA,yBAAW,QAAQ;AAAA,YACrB;AAAA,YACA,gBAAgB,KAAK;AAAA,YACrB;AAAA,YACA,OAAM;AAAA;AAAA,QACR;AAAA,SACF;AAAA,OAEJ;AAAA,KAEJ;AAGF,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,8BAA8B,YAAY,4CAA4C,EAAE,IAAI,SAAS,GAAG,KAAK;AAAA,MAExH,0BAAAA;AAAA,QAAC;AAAA;AAAA,UAEC,SAAS;AAAA,UACT,SAAS;AAAA,UACT,WAAU;AAAA,UACV;AAAA,UACA,UAAU,YAAY;AAAA,UACtB;AAAA,UACA,WAAW,aAAa;AAAA,UACxB;AAAA,UACA;AAAA;AAAA,QATK;AAAA,MAUP;AAAA;AAAA,EACF;AAEJ;AAEA,WAAW,cAAc;","names":["t","e","n","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","t","i","e","s","f","n","u","r","o","t","n","i","r","o","e","u","f","s","a","i","n","f","e","import_dayjs","useState","useCallback","useMemo","dayjs","weekOfYear","useCallback","jsx","jsxs","useCallback","jsx","jsxs","dayjs","utc","timezone","useState","useCallback","useMemo"]}
@@ -89,4 +89,4 @@ Stepper.displayName = "Stepper";
89
89
  export {
90
90
  Stepper
91
91
  };
92
- //# sourceMappingURL=chunk-QYHTMEI5.js.map
92
+ //# sourceMappingURL=chunk-3LBWAUCR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Stepper.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Check, X } from 'lucide-react';\nimport type { StepperProps, StepStatus } from './Stepper.types';\n\nexport const Stepper: React.FC<StepperProps> = ({\n steps,\n activeStep = 0,\n orientation = 'horizontal',\n color = 'primary',\n showNumbers = true,\n extendStart = false,\n extendEnd = false,\n className = '',\n}) => {\n const getStatus = (index: number, explicitStatus?: StepStatus): StepStatus => {\n if (explicitStatus) return explicitStatus;\n if (index < activeStep) return 'completed';\n if (index === activeStep) return 'active';\n return 'pending';\n };\n\n // `extendStart`'s connector has no real preceding step to take its color\n // from, so it mirrors the first step's own status instead - colored only\n // once that step is actually completed. `extendEnd`'s connector *does*\n // have a real preceding step (the last one) and colors via the adjacent-\n // sibling rule in Stepper.scss, same as a between-step connector.\n const isFirstStepCompleted = steps.length > 0 && getStatus(0, steps[0].status) === 'completed';\n\n return (\n <div\n className={['eidos-stepper', `eidos-stepper--${orientation}`, className]\n .filter(Boolean)\n .join(' ')}\n aria-label=\"Progress steps\"\n >\n {/*\n `extendStart`/`extendEnd` render as standalone connectors, siblings\n of the steps rather than nested inside one - nesting one inside (say)\n the first step's own dot-row would make it share that step's fixed\n flex slot with its regular trailing connector, silently shrinking\n the real Account-Profile gap to make room. As an extra sibling, it\n gets its own independent share of the row instead, so every existing\n gap shrinks by the same small, uniform amount rather than one\n specific connector taking the whole hit.\n */}\n {extendStart && (\n <div\n className={[\n 'eidos-stepper-connector',\n 'eidos-stepper-connector--extend',\n isFirstStepCompleted && `eidos-stepper-connector--${color}`,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n )}\n {steps.map((step, index) => {\n const status = getStatus(index, step.status);\n // The last step only skips its own trailing connector when there's\n // truly nothing after it - if `extendEnd` adds a connector past it,\n // it needs one too, exactly like every other step, so there's no\n // blank gap between its dot and the extend connector.\n const isLast = index === steps.length - 1 && !extendEnd;\n // That trailing connector and the standalone extend connector right\n // after it both carry the usual margin meant for the gap before a\n // *dot* - stacked together with no dot between them, that reads as\n // an unwanted extra gap. Only the extend connector's own side of\n // that junction is zeroed in Stepper.scss; this is the other side.\n const joinsExtendEnd = index === steps.length - 1 && extendEnd;\n\n const dotContent = step.icon ? (\n step.icon\n ) : status === 'completed' ? (\n <Check aria-hidden=\"true\" />\n ) : status === 'error' ? (\n <X aria-hidden=\"true\" />\n ) : showNumbers ? (\n <span>{index + 1}</span>\n ) : null;\n\n return (\n <div\n key={index}\n className={[\n 'eidos-stepper-step',\n `eidos-stepper-step--${status}`,\n `eidos-stepper-step--${color}`,\n !isLast && 'eidos-stepper-step--has-connector',\n ]\n .filter(Boolean)\n .join(' ')}\n aria-current={status === 'active' ? 'step' : undefined}\n >\n {/* Dot + connector wrapper */}\n <div className=\"eidos-stepper-dot-row\">\n <div className=\"eidos-stepper-dot\" aria-hidden=\"true\">\n {dotContent}\n </div>\n {!isLast && (\n <div\n className={[\n 'eidos-stepper-connector',\n joinsExtendEnd && 'eidos-stepper-connector--joins-extend',\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n )}\n </div>\n\n {/* Labels */}\n <div className=\"eidos-stepper-label-group\">\n <span className=\"eidos-stepper-label\">{step.label}</span>\n {step.description && (\n <span className=\"eidos-stepper-description\">{step.description}</span>\n )}\n </div>\n </div>\n );\n })}\n {extendEnd && (\n <div\n className=\"eidos-stepper-connector eidos-stepper-connector--extend\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n );\n};\n\nStepper.displayName = 'Stepper';\n"],"mappings":";AACA,SAAS,OAAO,SAAS;AA6CjB,cAiDI,YAjDJ;AA1CD,IAAM,UAAkC,CAAC;AAAA,EAC9C;AAAA,EACA,aAAa;AAAA,EACb,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,YAAY;AACd,MAAM;AACJ,QAAM,YAAY,CAAC,OAAe,mBAA4C;AAC5E,QAAI,eAAgB,QAAO;AAC3B,QAAI,QAAQ,WAAY,QAAO;AAC/B,QAAI,UAAU,WAAY,QAAO;AACjC,WAAO;AAAA,EACT;AAOA,QAAM,uBAAuB,MAAM,SAAS,KAAK,UAAU,GAAG,MAAM,CAAC,EAAE,MAAM,MAAM;AAEnF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,CAAC,iBAAiB,kBAAkB,WAAW,IAAI,SAAS,EACpE,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX,cAAW;AAAA,MAYV;AAAA,uBACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA,wBAAwB,4BAA4B,KAAK;AAAA,YAC3D,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,YACX,eAAY;AAAA;AAAA,QACd;AAAA,QAED,MAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,gBAAM,SAAS,UAAU,OAAO,KAAK,MAAM;AAK3C,gBAAM,SAAS,UAAU,MAAM,SAAS,KAAK,CAAC;AAM9C,gBAAM,iBAAiB,UAAU,MAAM,SAAS,KAAK;AAErD,gBAAM,aAAa,KAAK,OACtB,KAAK,OACH,WAAW,cACb,oBAAC,SAAM,eAAY,QAAO,IACxB,WAAW,UACb,oBAAC,KAAE,eAAY,QAAO,IACpB,cACF,oBAAC,UAAM,kBAAQ,GAAE,IACf;AAEJ,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,WAAW;AAAA,gBACT;AAAA,gBACA,uBAAuB,MAAM;AAAA,gBAC7B,uBAAuB,KAAK;AAAA,gBAC5B,CAAC,UAAU;AAAA,cACb,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,cACX,gBAAc,WAAW,WAAW,SAAS;AAAA,cAG7C;AAAA,qCAAC,SAAI,WAAU,yBACb;AAAA,sCAAC,SAAI,WAAU,qBAAoB,eAAY,QAC5C,sBACH;AAAA,kBACC,CAAC,UACA;AAAA,oBAAC;AAAA;AAAA,sBACC,WAAW;AAAA,wBACT;AAAA,wBACA,kBAAkB;AAAA,sBACpB,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,sBACX,eAAY;AAAA;AAAA,kBACd;AAAA,mBAEJ;AAAA,gBAGA,qBAAC,SAAI,WAAU,6BACb;AAAA,sCAAC,UAAK,WAAU,uBAAuB,eAAK,OAAM;AAAA,kBACjD,KAAK,eACJ,oBAAC,UAAK,WAAU,6BAA6B,eAAK,aAAY;AAAA,mBAElE;AAAA;AAAA;AAAA,YAnCK;AAAA,UAoCP;AAAA,QAEJ,CAAC;AAAA,QACA,aACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,QAAQ,cAAc;","names":[]}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  MenuPanel
3
- } from "./chunk-O6B4KB4D.js";
3
+ } from "./chunk-JMD3P4CY.js";
4
4
  import {
5
5
  Dropdown
6
- } from "./chunk-SXF3TCYA.js";
6
+ } from "./chunk-4BKTBV2I.js";
7
7
  import {
8
8
  renderIcon
9
- } from "./chunk-XSGUFMT4.js";
9
+ } from "./chunk-5CLC3FJO.js";
10
10
 
11
11
  // src/components/SplitButton/SplitButton.component.tsx
12
12
  import { useCallback } from "react";
@@ -94,4 +94,4 @@ var SplitButton = ({
94
94
  export {
95
95
  SplitButton
96
96
  };
97
- //# sourceMappingURL=chunk-E2B33QB7.js.map
97
+ //# sourceMappingURL=chunk-3LHQUOGP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/SplitButton/SplitButton.component.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { ChevronDown, LoaderCircle } from 'lucide-react';\nimport { Dropdown } from '../Dropdown/Dropdown.component';\nimport { MenuPanel } from '../Menu';\nimport type { MenuItem } from '../Menu';\nimport { renderIcon } from '../../utils';\nimport type { SplitButtonProps } from './SplitButton.types';\n\n/**\n * SplitButton - a two-part control with a primary action button on the left\n * and a chevron that opens a dropdown of secondary actions on the right.\n *\n * The primary button fires `onClick` directly; clicking the chevron opens the\n * dropdown. Visually the two parts share a single bordered unit.\n *\n * @example\n * ```tsx\n * <SplitButton\n * label=\"Save\"\n * onClick={() => save()}\n * options={[\n * { id: 'draft', label: 'Save as draft', onClick: saveDraft },\n * { id: 'template', label: 'Save as template', onClick: saveTemplate },\n * ]}\n * />\n * ```\n */\nexport const SplitButton: React.FC<SplitButtonProps> = ({\n label,\n onClick,\n options,\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n preIcon,\n className = '',\n}) => {\n // Convert SplitButtonOption → MenuItemType so MenuPanel can render them.\n const menuItems: MenuItem[] = options.map((opt) => ({\n type: 'item' as const,\n id: opt.id,\n label: opt.label,\n icon: opt.icon,\n disabled: opt.disabled,\n onClick: opt.onClick,\n }));\n\n const handleItemClick = useCallback(() => {\n // Close the dropdown by dispatching a mousedown outside it.\n setTimeout(() => {\n document.dispatchEvent(\n new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window }),\n );\n }, 10);\n }, []);\n\n const baseClass = `eidos-button eidos-button--${variant} eidos-button--${color} eidos-button--${size}`;\n const disabledOrLoading = disabled || loading;\n\n const chevronTrigger = (\n <button\n type=\"button\"\n className={`${baseClass} eidos-split-button__chevron`}\n disabled={disabledOrLoading}\n aria-label=\"More options\"\n >\n <ChevronDown className=\"eidos-split-button__chevron-icon\" aria-hidden=\"true\" />\n </button>\n );\n\n return (\n <div\n className={[\n 'eidos-split-button',\n `eidos-split-button--${variant}`,\n `eidos-split-button--${color}`,\n `eidos-split-button--${size}`,\n disabledOrLoading && 'eidos-split-button--disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {/* Primary action */}\n <button\n type=\"button\"\n className={`${baseClass} eidos-split-button__primary`}\n disabled={disabledOrLoading}\n onClick={onClick}\n >\n {loading ? (\n <LoaderCircle className=\"eidos-split-button__spinner\" aria-hidden=\"true\" />\n ) : (\n preIcon && renderIcon(preIcon, 'eidos-split-button__pre-icon')\n )}\n <span className=\"eidos-split-button__label\">{label}</span>\n </button>\n\n {/* Secondary actions dropdown */}\n <Dropdown\n trigger={chevronTrigger}\n content={<MenuPanel items={menuItems} onItemClick={handleItemClick} />}\n placement=\"bottom\"\n align=\"end\"\n disabled={disabledOrLoading}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA,SAAgB,mBAAmB;AACnC,SAAS,aAAa,oBAAoB;AAmEpC,cAkBA,YAlBA;AAzCC,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV;AAAA,EACA,YAAY;AACd,MAAM;AAEJ,QAAM,YAAwB,QAAQ,IAAI,CAAC,SAAS;AAAA,IAClD,MAAM;AAAA,IACN,IAAI,IAAI;AAAA,IACR,OAAO,IAAI;AAAA,IACX,MAAM,IAAI;AAAA,IACV,UAAU,IAAI;AAAA,IACd,SAAS,IAAI;AAAA,EACf,EAAE;AAEF,QAAM,kBAAkB,YAAY,MAAM;AAExC,eAAW,MAAM;AACf,eAAS;AAAA,QACP,IAAI,WAAW,aAAa,EAAE,SAAS,MAAM,YAAY,MAAM,MAAM,OAAO,CAAC;AAAA,MAC/E;AAAA,IACF,GAAG,EAAE;AAAA,EACP,GAAG,CAAC,CAAC;AAEL,QAAM,YAAY,8BAA8B,OAAO,kBAAkB,KAAK,kBAAkB,IAAI;AACpG,QAAM,oBAAoB,YAAY;AAEtC,QAAM,iBACJ;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW,GAAG,SAAS;AAAA,MACvB,UAAU;AAAA,MACV,cAAW;AAAA,MAEX,8BAAC,eAAY,WAAU,oCAAmC,eAAY,QAAO;AAAA;AAAA,EAC/E;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,uBAAuB,OAAO;AAAA,QAC9B,uBAAuB,KAAK;AAAA,QAC5B,uBAAuB,IAAI;AAAA,QAC3B,qBAAqB;AAAA,QACrB;AAAA,MACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAGX;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAW,GAAG,SAAS;AAAA,YACvB,UAAU;AAAA,YACV;AAAA,YAEC;AAAA,wBACC,oBAAC,gBAAa,WAAU,+BAA8B,eAAY,QAAO,IAEzE,WAAW,WAAW,SAAS,8BAA8B;AAAA,cAE/D,oBAAC,UAAK,WAAU,6BAA6B,iBAAM;AAAA;AAAA;AAAA,QACrD;AAAA,QAGA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,SAAS,oBAAC,aAAU,OAAO,WAAW,aAAa,iBAAiB;AAAA,YACpE,WAAU;AAAA,YACV,OAAM;AAAA,YACN,UAAU;AAAA;AAAA,QACZ;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/pedromealha/Documents/Repositories/Personal/eidos-ui/dist/chunk-3RUIKBH4.cjs"],"names":[],"mappings":"AAAA","file":"/Users/pedromealha/Documents/Repositories/Personal/eidos-ui/dist/chunk-3RUIKBH4.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-3RUIKBH4.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-3RUIKBH4.cjs"}
@@ -26,4 +26,4 @@ EmptyState.displayName = "EmptyState";
26
26
  export {
27
27
  EmptyState
28
28
  };
29
- //# sourceMappingURL=chunk-DK4S3EHG.js.map
29
+ //# sourceMappingURL=chunk-3TUCQAYL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/EmptyState/EmptyState.component.tsx"],"sourcesContent":["import React from 'react';\nimport type { EmptyStateProps } from './EmptyState.types';\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n action,\n size = 'md',\n className = '',\n}) => (\n <div\n className={['eidos-empty-state', `eidos-empty-state--${size}`, className]\n .filter(Boolean)\n .join(' ')}\n >\n {icon && <div className=\"eidos-empty-state-icon\">{icon}</div>}\n\n <div className=\"eidos-empty-state-content\">\n <h3 className=\"eidos-empty-state-title\">{title}</h3>\n {description && <p className=\"eidos-empty-state-description\">{description}</p>}\n </div>\n\n {action && <div className=\"eidos-empty-state-action\">{action}</div>}\n </div>\n);\n\nEmptyState.displayName = 'EmptyState';\n"],"mappings":";AAgBa,cAET,YAFS;AAbN,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AACd,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,CAAC,qBAAqB,sBAAsB,IAAI,IAAI,SAAS,EACrE,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IAEV;AAAA,cAAQ,oBAAC,SAAI,WAAU,0BAA0B,gBAAK;AAAA,MAEvD,qBAAC,SAAI,WAAU,6BACb;AAAA,4BAAC,QAAG,WAAU,2BAA2B,iBAAM;AAAA,QAC9C,eAAe,oBAAC,OAAE,WAAU,iCAAiC,uBAAY;AAAA,SAC5E;AAAA,MAEC,UAAU,oBAAC,SAAI,WAAU,4BAA4B,kBAAO;AAAA;AAAA;AAC/D;AAGF,WAAW,cAAc;","names":[]}
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Toolbar
3
- } from "./chunk-VTAABT55.js";
3
+ } from "./chunk-IV4LM3MB.js";
4
4
  import {
5
5
  Navigation
6
- } from "./chunk-ICHPPNFV.js";
6
+ } from "./chunk-ALGX5X4N.js";
7
7
  import {
8
8
  Footer
9
- } from "./chunk-GOVOQZYN.js";
9
+ } from "./chunk-W2F6WDUX.js";
10
10
  import {
11
11
  Header
12
- } from "./chunk-HUNMRKGE.js";
12
+ } from "./chunk-WTXASLBB.js";
13
13
 
14
14
  // src/components/PageLayout/PageLayout.component.tsx
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -59,4 +59,4 @@ var PageLayout = ({
59
59
  export {
60
60
  PageLayout
61
61
  };
62
- //# sourceMappingURL=chunk-BBOUUHLO.js.map
62
+ //# sourceMappingURL=chunk-3VRMTWUS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/PageLayout/PageLayout.component.tsx"],"sourcesContent":["import React from 'react';\nimport type { PageLayoutProps } from './PageLayout.types';\nimport './PageLayout.scss';\nimport { Toolbar } from '../Toolbar';\nimport { Header } from '../Header';\nimport { Footer } from '../Footer';\nimport type { FooterProps } from '../Footer';\nimport { Navigation } from '../Navigation';\n\nconst defaultFooter: FooterProps = { copyright: `© ${new Date().getFullYear()} Eidos UI` };\n\nexport const PageLayout: React.FC<PageLayoutProps> = ({\n toolbar,\n navigation,\n header,\n footer,\n children,\n className = '',\n ...rest\n}) => {\n const classes = ['eidos-pagelayout', className].filter(Boolean).join(' ');\n\n return (\n <div className={classes} {...rest}>\n <Toolbar\n breadcrumbs={toolbar?.breadcrumbs || { items: [], separator: <></> }}\n cmdPaletteItems={toolbar?.cmdPaletteItems || []}\n actions={toolbar?.actions || []}\n userMenu={toolbar?.userMenu || []}\n className=\"eidos-pagelayout__toolbar\"\n />\n <div className=\"eidos-pagelayout__navigation\">\n {navigation && <Navigation {...navigation} />}\n </div>\n <main className=\"eidos-pagelayout__content\">\n {header && (\n <Header\n {...header}\n className={['eidos-pagelayout__header', header.className].filter(Boolean).join(' ')}\n />\n )}\n <div className=\"eidos-pagelayout__body\">{children}</div>\n <Footer\n {...(footer ?? defaultFooter)}\n className={['eidos-pagelayout__footer', footer?.className].filter(Boolean).join(' ')}\n />\n </main>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAyBqE,wBAS/D,YAT+D;AAhBrE,IAAM,gBAA6B,EAAE,WAAW,SAAK,oBAAI,KAAK,GAAE,YAAY,CAAC,YAAY;AAElF,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,GAAG;AACL,MAAM;AACJ,QAAM,UAAU,CAAC,oBAAoB,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAExE,SACE,qBAAC,SAAI,WAAW,SAAU,GAAG,MAC3B;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,SAAS,eAAe,EAAE,OAAO,CAAC,GAAG,WAAW,gCAAE,EAAI;AAAA,QACnE,iBAAiB,SAAS,mBAAmB,CAAC;AAAA,QAC9C,SAAS,SAAS,WAAW,CAAC;AAAA,QAC9B,UAAU,SAAS,YAAY,CAAC;AAAA,QAChC,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,oBAAC,SAAI,WAAU,gCACZ,wBAAc,oBAAC,cAAY,GAAG,YAAY,GAC7C;AAAA,IACA,qBAAC,UAAK,WAAU,6BACb;AAAA,gBACC;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,WAAW,CAAC,4BAA4B,OAAO,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA;AAAA,MACpF;AAAA,MAEF,oBAAC,SAAI,WAAU,0BAA0B,UAAS;AAAA,MAClD;AAAA,QAAC;AAAA;AAAA,UACE,GAAI,UAAU;AAAA,UACf,WAAW,CAAC,4BAA4B,QAAQ,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA;AAAA,MACrF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
@@ -398,4 +398,4 @@ export {
398
398
  useDropdownContext,
399
399
  Dropdown
400
400
  };
401
- //# sourceMappingURL=chunk-SXF3TCYA.js.map
401
+ //# sourceMappingURL=chunk-4BKTBV2I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Dropdown/Dropdown.context.types.ts","../src/components/Dropdown/Dropdown.context.tsx","../src/components/Dropdown/Dropdown.hooks.ts","../src/components/Dropdown/Dropdown.component.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nexport interface DropdownContextValue {\n level: number;\n}\n\nexport const DropdownContext = createContext<DropdownContextValue>({ level: 0 });\n","import React from 'react';\nimport { DropdownContext } from './Dropdown.context.types';\n\nexport const DropdownProvider: React.FC<{ children: React.ReactNode; level?: number }> = ({\n children,\n level = 0,\n}) => {\n return <DropdownContext.Provider value={{ level }}>{children}</DropdownContext.Provider>;\n};\n","import { useContext } from 'react';\nimport { DropdownContext } from './Dropdown.context.types';\n\nexport const useDropdownContext = () => {\n return useContext(DropdownContext);\n};\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { DropdownProps, DropdownState } from './Dropdown.types';\nimport { DropdownProvider } from './Dropdown.context';\nimport { useDropdownContext } from './Dropdown.hooks';\n\nconst DropdownInternal: React.FC<DropdownProps> = ({\n trigger,\n content,\n placement: preferredPlacement = 'bottom',\n align = 'start',\n delay = 0,\n disabled = false,\n defaultOpen = false,\n triggerClassName = '',\n contentClassName = '',\n closeOnClickOutside = true,\n closeOnEscape = true,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n autoWidth = true,\n fullWidth = false,\n triggerRef: externalTriggerRef,\n isNested = false,\n dropdownLevel,\n dropdownGroup,\n}) => {\n const context = useDropdownContext();\n const actualLevel = dropdownLevel !== undefined ? dropdownLevel : context.level;\n const [dropdownState, setDropdownState] = useState<DropdownState>({\n isVisible: defaultOpen,\n isPositioned: false,\n position: { top: 0, left: 0, placement: preferredPlacement },\n });\n const triggerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const animationFrameRef = useRef<number | undefined>(undefined);\n const isScrollingRef = useRef(false);\n\n // The element to actually measure/anchor against. When a consumer passes\n // `triggerRef`, that's an explicit statement of \"this is what I want the\n // dropdown positioned relative to\" - it must win over the internal wrapper\n // div, not just inform sizing. Consumers occasionally need `trigger` to be\n // a small anchor node (e.g. a 0-height span) sitting inside a larger,\n // variable-content field (chips, wrapped text); anchoring position to the\n // wrapper instead of that field silently drifts as soon as the field's\n // internal layout changes, since the wrapper only ever contains `trigger`\n // itself, never the field around it.\n const getTriggerElement = useCallback(\n (): HTMLElement | null => externalTriggerRef?.current ?? triggerRef.current,\n [externalTriggerRef],\n );\n\n const calculateDynamicSizing = useCallback(\n (triggerRect: DOMRect) => {\n // Shrink the panel to its content by default. This prevents the\n // position:fixed element from expanding to viewport width when children\n // use `width:100%` or `flex:1`. `minWidth` (set below) still wins when\n // the trigger is wider than the content, as CSS min-width overrides width.\n const styles: Record<string, string | number> = { width: 'max-content' };\n\n if (autoWidth && (externalTriggerRef?.current || triggerRef.current)) {\n const triggerWidth = triggerRect.width;\n styles.minWidth = triggerWidth;\n }\n\n if (minWidth !== undefined) {\n styles.minWidth = typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n }\n if (maxWidth !== undefined) {\n if (maxWidth === 'auto') {\n styles.maxWidth = 'none';\n } else {\n styles.maxWidth = typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth;\n }\n }\n if (minHeight !== undefined) {\n styles.minHeight = typeof minHeight === 'number' ? `${minHeight}px` : minHeight;\n }\n if (maxHeight !== undefined) {\n if (maxHeight === 'auto') {\n styles.maxHeight = 'none';\n } else {\n styles.maxHeight = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n }\n }\n\n const hasHeightConstraint = minHeight !== undefined || maxHeight !== undefined;\n if (hasHeightConstraint) {\n styles.overflowY = 'auto';\n } else {\n styles.overflowY = 'visible';\n }\n\n return styles;\n },\n [autoWidth, externalTriggerRef, minWidth, maxWidth, minHeight, maxHeight],\n );\n\n const calculateOptimalPosition = useCallback(\n (triggerRect: DOMRect, contentRect: DOMRect) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const gap = 8;\n\n let placement: 'top' | 'bottom' | 'left' | 'right' = preferredPlacement;\n let top = 0;\n let left = 0;\n\n // Helpers for cross-axis alignment\n const alignedLeft = (() => {\n switch (align) {\n case 'end':\n return triggerRect.right - contentRect.width;\n case 'center':\n return triggerRect.left + (triggerRect.width - contentRect.width) / 2;\n default:\n return triggerRect.left; // \"start\"\n }\n })();\n const alignedTop = (() => {\n switch (align) {\n case 'end':\n return triggerRect.bottom - contentRect.height;\n case 'center':\n return triggerRect.top + (triggerRect.height - contentRect.height) / 2;\n default:\n return triggerRect.top; // \"start\"\n }\n })();\n\n switch (preferredPlacement) {\n case 'top':\n top = triggerRect.top - contentRect.height - gap;\n left = alignedLeft;\n break;\n case 'bottom':\n top = triggerRect.bottom + gap;\n left = alignedLeft;\n break;\n case 'left':\n top = alignedTop;\n left = triggerRect.left - contentRect.width - gap;\n break;\n case 'right':\n top = alignedTop;\n left = triggerRect.right + gap;\n break;\n }\n\n if (placement === 'top' && top < gap) {\n placement = 'bottom';\n top = triggerRect.bottom + gap;\n } else if (placement === 'bottom' && top + contentRect.height > viewportHeight - gap) {\n placement = 'top';\n top = triggerRect.top - contentRect.height - gap;\n } else if (placement === 'left' && left < gap) {\n placement = 'right';\n left = triggerRect.right + gap;\n } else if (placement === 'right' && left + contentRect.width > viewportWidth - gap) {\n placement = 'left';\n left = triggerRect.left - contentRect.width - gap;\n }\n\n // Always clamp to both viewport edges - not just the near one - regardless\n // of whether an explicit min/max size was passed. `autoWidth` consumers\n // (Combobox, Select, TagInput suggestions, Menu, ...) never set\n // minWidth/maxWidth, so gating this on those props left the far edge\n // (right/bottom) completely unclamped and let content overflow the\n // viewport whenever it rendered wider/taller than its trigger.\n top = Math.max(gap, Math.min(top, viewportHeight - contentRect.height - gap));\n\n left = Math.max(gap, Math.min(left, viewportWidth - contentRect.width - gap));\n\n return { top, left, placement };\n },\n [preferredPlacement, align],\n );\n\n const handleScroll = useCallback(() => {\n if (!dropdownState.isVisible || !dropdownState.isPositioned || isScrollingRef.current) return;\n\n isScrollingRef.current = true;\n\n animationFrameRef.current = requestAnimationFrame(() => {\n const triggerElement = getTriggerElement();\n if (triggerElement && contentRef.current) {\n const triggerRect = triggerElement.getBoundingClientRect();\n const contentRect = contentRef.current.getBoundingClientRect();\n\n const { top, left, placement } = calculateOptimalPosition(triggerRect, contentRect);\n\n setDropdownState((prev) => ({\n ...prev,\n position: { top, left, placement },\n }));\n }\n\n isScrollingRef.current = false;\n });\n }, [\n dropdownState.isVisible,\n dropdownState.isPositioned,\n calculateOptimalPosition,\n getTriggerElement,\n ]);\n\n const handleTriggerClick = useCallback(() => {\n if (disabled) return;\n\n if (dropdownState.isVisible) {\n setDropdownState((prev) => ({\n ...prev,\n isVisible: false,\n isPositioned: false,\n }));\n } else {\n if (dropdownGroup) {\n const siblingDropdowns = document.querySelectorAll(\n `[data-dropdown-group=\"${dropdownGroup}\"][data-dropdown-content]`,\n );\n siblingDropdowns.forEach((dropdown) => {\n const dropdownElement = dropdown as HTMLElement;\n\n dropdownElement.dispatchEvent(new CustomEvent('closeSibling'));\n });\n }\n\n if (delay > 0) {\n timeoutRef.current = setTimeout(() => {\n setDropdownState((prev) => ({\n ...prev,\n isVisible: true,\n isPositioned: false,\n }));\n }, delay);\n } else {\n setDropdownState((prev) => ({\n ...prev,\n isVisible: true,\n isPositioned: false,\n }));\n }\n }\n }, [disabled, dropdownState.isVisible, delay, dropdownGroup]);\n\n useEffect(() => {\n const handleCloseSibling = () => {\n if (dropdownState.isVisible) {\n setDropdownState((prev) => ({\n ...prev,\n isVisible: false,\n isPositioned: false,\n }));\n }\n };\n\n const currentContentRef = contentRef.current;\n if (currentContentRef) {\n currentContentRef.addEventListener('closeSibling', handleCloseSibling);\n }\n\n return () => {\n if (currentContentRef) {\n currentContentRef.removeEventListener('closeSibling', handleCloseSibling);\n }\n };\n }, [dropdownState.isVisible]);\n\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if (!closeOnClickOutside || !dropdownState.isVisible) return;\n\n const target = event.target as Node;\n\n if (contentRef.current?.contains(target)) {\n return;\n }\n\n if (getTriggerElement()?.contains(target)) {\n return;\n }\n\n const allDropdowns = document.querySelectorAll('[data-dropdown-content]');\n for (const dropdown of allDropdowns) {\n if (dropdown === contentRef.current) continue;\n\n if (dropdown.contains(target)) {\n const clickedDropdownLevel = parseInt(\n dropdown.getAttribute('data-dropdown-level') || '0',\n );\n\n if (clickedDropdownLevel > actualLevel) {\n return;\n }\n }\n }\n\n setDropdownState((prev) => ({\n ...prev,\n isVisible: false,\n isPositioned: false,\n }));\n },\n [closeOnClickOutside, dropdownState.isVisible, actualLevel, getTriggerElement],\n );\n\n const handleEscapeKey = useCallback(\n (event: KeyboardEvent) => {\n if (closeOnEscape && event.key === 'Escape' && dropdownState.isVisible) {\n setDropdownState((prev) => ({\n ...prev,\n isVisible: false,\n isPositioned: false,\n }));\n }\n },\n [closeOnEscape, dropdownState.isVisible],\n );\n\n useEffect(() => {\n const triggerElement = getTriggerElement();\n if (\n dropdownState.isVisible &&\n !dropdownState.isPositioned &&\n contentRef.current &&\n triggerElement\n ) {\n const triggerRect = triggerElement.getBoundingClientRect();\n const contentRect = contentRef.current.getBoundingClientRect();\n\n const { top, left, placement } = calculateOptimalPosition(triggerRect, contentRect);\n\n setDropdownState((prev) => ({\n ...prev,\n position: { top, left, placement },\n isPositioned: true,\n }));\n }\n }, [\n dropdownState.isVisible,\n dropdownState.isPositioned,\n calculateOptimalPosition,\n getTriggerElement,\n ]);\n\n useEffect(() => {\n const handleResize = () => {\n const triggerElement = getTriggerElement();\n if (\n dropdownState.isVisible &&\n dropdownState.isPositioned &&\n contentRef.current &&\n triggerElement\n ) {\n const triggerRect = triggerElement.getBoundingClientRect();\n const contentRect = contentRef.current.getBoundingClientRect();\n\n const { top, left, placement } = calculateOptimalPosition(triggerRect, contentRect);\n\n setDropdownState((prev) => ({\n ...prev,\n position: { top, left, placement },\n }));\n }\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [\n dropdownState.isVisible,\n dropdownState.isPositioned,\n calculateOptimalPosition,\n getTriggerElement,\n ]);\n\n useEffect(() => {\n if (dropdownState.isVisible) {\n window.addEventListener('scroll', handleScroll, { passive: true });\n\n document.body.addEventListener('scroll', handleScroll, { passive: true });\n }\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n document.body.removeEventListener('scroll', handleScroll);\n };\n }, [dropdownState.isVisible, handleScroll]);\n\n useEffect(() => {\n if (dropdownState.isVisible) {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscapeKey);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscapeKey);\n };\n }, [dropdownState.isVisible, handleClickOutside, handleEscapeKey]);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n };\n }, []);\n\n return (\n <>\n <div\n ref={triggerRef}\n onClick={handleTriggerClick}\n className={`eidos-dropdown-trigger ${fullWidth ? 'eidos-dropdown-trigger--fullWidth' : ''} ${triggerClassName}`}\n role=\"button\"\n tabIndex={-1}\n >\n {trigger}\n </div>\n {dropdownState.isVisible &&\n createPortal(\n <div\n ref={contentRef}\n data-dropdown-content\n data-dropdown-level={actualLevel}\n data-dropdown-group={dropdownGroup || ''}\n className={`eidos-dropdown-content eidos-dropdown-content--${dropdownState.position.placement} ${isNested ? 'eidos-dropdown-content--nested' : ''} ${dropdownState.isPositioned ? 'eidos-dropdown-content--positioned' : ''} ${contentClassName || ''}`}\n style={{\n top: dropdownState.position.top,\n left: dropdownState.position.left,\n ...calculateDynamicSizing(\n getTriggerElement()?.getBoundingClientRect() || new DOMRect(),\n ),\n }}\n role=\"menu\"\n >\n {content}\n </div>,\n document.body,\n )}\n </>\n );\n};\n\nexport const Dropdown: React.FC<DropdownProps> = (props) => {\n const context = useDropdownContext();\n const nextLevel = props.dropdownLevel !== undefined ? props.dropdownLevel : context.level + 1;\n\n return (\n <DropdownProvider level={nextLevel}>\n <DropdownInternal {...props} />\n </DropdownProvider>\n );\n};\n\nDropdown.displayName = 'Dropdown';\n"],"mappings":"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","names":["jsx"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkBFYSYUA6cjs = require('./chunk-BFYSYUA6.cjs');
3
+ var _chunkFMPXSF3Hcjs = require('./chunk-FMPXSF3H.cjs');
4
4
 
5
5
  // src/components/ContextMenu/ContextMenu.component.tsx
6
6
  var _react = require('react');
@@ -92,7 +92,7 @@ var ContextMenu = ({
92
92
  top: position.y,
93
93
  left: position.x
94
94
  },
95
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBFYSYUA6cjs.MenuPanel, { items, onItemClick: handleItemClick })
95
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMPXSF3Hcjs.MenuPanel, { items, onItemClick: handleItemClick })
96
96
  }
97
97
  ),
98
98
  document.body
@@ -103,4 +103,4 @@ var ContextMenu = ({
103
103
 
104
104
 
105
105
  exports.ContextMenu = ContextMenu;
106
- //# sourceMappingURL=chunk-P74HNSNJ.cjs.map
106
+ //# sourceMappingURL=chunk-4BQM5F76.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-4BQM5F76.cjs","../src/components/ContextMenu/ContextMenu.component.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACJA,8BAAgE;AAChE,qCAA6B;AAkHzB,+CAAA;AAnFG,IAAM,YAAA,EAA0C,CAAC;AAAA,EACtD,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,UAAA,EAAY;AACd,CAAA,EAAA,GAAM;AACJ,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,EAAA,EAAI,6BAAA,KAAc,CAAA;AAC1C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,EAAA,EAAI,6BAAA,EAAyB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,EAAE,CAAC,CAAA;AACrE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,EAAA,EAAI,6BAAA,KAAc,CAAA;AACtD,EAAA,MAAM,QAAA,EAAU,2BAAA,IAA2B,CAAA;AAE3C,EAAA,MAAM,MAAA,EAAQ,gCAAA,CAAY,EAAA,GAAM;AAC9B,IAAA,SAAA,CAAU,KAAK,CAAA;AACf,IAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,EACvB,CAAA,EAAG,CAAC,CAAC,CAAA;AAGL,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,CAAC,OAAA,GAAU,CAAC,OAAA,CAAQ,OAAA,EAAS,MAAA;AAEjC,IAAA,MAAM,KAAA,EAAO,OAAA,CAAQ,OAAA;AACrB,IAAA,MAAM,EAAE,KAAA,EAAO,OAAO,EAAA,EAAI,IAAA,CAAK,qBAAA,CAAsB,CAAA;AACrD,IAAA,MAAM,GAAA,EAAK,MAAA,CAAO,UAAA;AAClB,IAAA,MAAM,GAAA,EAAK,MAAA,CAAO,WAAA;AAClB,IAAA,MAAM,IAAA,EAAM,CAAA;AAEZ,IAAA,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,QAAA,CAAS,CAAA,EAAG,GAAA,EAAK,MAAA,EAAQ,GAAG,CAAA;AACtD,IAAA,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,QAAA,CAAS,CAAA,EAAG,GAAA,EAAK,OAAA,EAAS,GAAG,CAAA;AAEvD,IAAA,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,CAAA,EAAA;AACD,IAAA;AACD,IAAA;AACG,EAAA;AAGL,EAAA;AACD,IAAA;AAEP,IAAA;AACQ,MAAA;AACJ,QAAA;AACR,MAAA;AACF,IAAA;AAES,IAAA;AACI,IAAA;AACG,EAAA;AAGF,EAAA;AACD,IAAA;AAEP,IAAA;AACU,MAAA;AAChB,IAAA;AAEM,IAAA;AAEG,IAAA;AACF,IAAA;AACM,IAAA;AACF,MAAA;AACF,MAAA;AACT,IAAA;AACgB,EAAA;AAEZ,EAAA;AACU,IAAA;AACG,IAAA;AACC,IAAA;AACJ,IAAA;AACE,IAAA;AACG,IAAA;AACrB,EAAA;AAEM,EAAA;AACiB,IAAA;AACb,MAAA;AACR,IAAA;AACM,IAAA;AACR,EAAA;AAGE,EAAA;AACE,oBAAA;AAAC,MAAA;AAAA,MAAA;AACa,QAAA;AACG,QAAA;AAEd,QAAA;AAAA,MAAA;AACH,IAAA;AAGE,IAAA;AACE,sBAAA;AAAC,QAAA;AAAA,QAAA;AACM,UAAA;AACM,UAAA;AACT,YAAA;AACA,YAAA;AAEQ,UAAA;AAEH,UAAA;AACA,YAAA;AACC,YAAA;AACR,UAAA;AAEA,UAAA;AAAuD,QAAA;AACzD,MAAA;AACS,MAAA;AACX,IAAA;AACJ,EAAA;AAEJ;AD3CuB;AACA;AACA;AACA","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-4BQM5F76.cjs","sourcesContent":[null,"import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { MenuPanel } from '../Menu';\nimport type { MenuItem } from '../Menu';\nimport type { ContextMenuProps } from './ContextMenu.types';\n\ninterface MenuPosition {\n x: number;\n y: number;\n}\n\n/**\n * ContextMenu - wraps any content and attaches a right-click (or long-press)\n * triggered menu positioned at the cursor.\n *\n * The browser's native context menu is suppressed when `disabled` is false.\n * The menu closes on: click outside, item selection, Escape, and scroll.\n *\n * @example\n * ```tsx\n * <ContextMenu\n * items={[\n * { type: 'item', id: 'copy', label: 'Copy', icon: Copy, onClick: () => copy() },\n * { type: 'item', id: 'cut', label: 'Cut', icon: Scissors, onClick: () => cut() },\n * { type: 'separator', id: 'sep1' },\n * { type: 'item', id: 'delete', label: 'Delete', icon: Trash2, onClick: () => remove(), disabled: true },\n * ]}\n * >\n * <div className=\"canvas-area\">...</div>\n * </ContextMenu>\n * ```\n */\nexport const ContextMenu: React.FC<ContextMenuProps> = ({\n items,\n children,\n disabled = false,\n className = '',\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [position, setPosition] = useState<MenuPosition>({ x: 0, y: 0 });\n const [isPositioned, setIsPositioned] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => {\n setIsOpen(false);\n setIsPositioned(false);\n }, []);\n\n // Measure the menu panel after it renders and clamp to viewport edges.\n useEffect(() => {\n if (!isOpen || !menuRef.current) return;\n\n const menu = menuRef.current;\n const { width, height } = menu.getBoundingClientRect();\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n const GAP = 4; // px clearance from viewport edge\n\n const clampedX = Math.min(position.x, vw - width - GAP);\n const clampedY = Math.min(position.y, vh - height - GAP);\n\n menu.style.left = `${Math.max(GAP, clampedX)}px`;\n menu.style.top = `${Math.max(GAP, clampedY)}px`;\n setIsPositioned(true);\n }, [isOpen, position]);\n\n // Close on click outside.\n useEffect(() => {\n if (!isOpen) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n close();\n }\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => document.removeEventListener('mousedown', handleMouseDown);\n }, [isOpen, close]);\n\n // Close on Escape or scroll.\n useEffect(() => {\n if (!isOpen) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') close();\n };\n\n const handleScroll = () => close();\n\n document.addEventListener('keydown', handleKeyDown);\n window.addEventListener('scroll', handleScroll, true); // capture: catches nested scrollers\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('scroll', handleScroll, true);\n };\n }, [isOpen, close]);\n\n const handleContextMenu = (e: React.MouseEvent) => {\n if (disabled) return;\n e.preventDefault();\n e.stopPropagation();\n setIsOpen(true);\n setIsPositioned(false);\n setPosition({ x: e.clientX, y: e.clientY });\n };\n\n const handleItemClick = useCallback(\n (_item: MenuItem) => {\n close();\n },\n [close],\n );\n\n return (\n <>\n <div\n className={['eidos-context-menu-target', className].filter(Boolean).join(' ')}\n onContextMenu={handleContextMenu}\n >\n {children}\n </div>\n\n {isOpen &&\n createPortal(\n <div\n ref={menuRef}\n className={[\n 'eidos-context-menu-panel',\n isPositioned && 'eidos-context-menu-panel--positioned',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n top: position.y,\n left: position.x,\n }}\n >\n <MenuPanel items={items} onItemClick={handleItemClick} />\n </div>,\n document.body,\n )}\n </>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Input
3
- } from "./chunk-A35Y5MRJ.js";
3
+ } from "./chunk-WE5FTQGD.js";
4
4
 
5
5
  // src/components/InlineEdit/InlineEdit.component.tsx
6
6
  import { useState, useRef, useCallback } from "react";
@@ -122,4 +122,4 @@ var InlineEdit = ({
122
122
  export {
123
123
  InlineEdit
124
124
  };
125
- //# sourceMappingURL=chunk-Z7S4UQKY.js.map
125
+ //# sourceMappingURL=chunk-4LM33LDV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/InlineEdit/InlineEdit.component.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport { Pencil } from 'lucide-react';\nimport { Input } from '../Input/Input.component';\nimport type { InlineEditProps } from './InlineEdit.types';\nimport './InlineEdit.scss';\n\nexport const InlineEdit: React.FC<InlineEditProps> = ({\n value,\n onChange,\n onConfirm,\n onCancel,\n editing: editingProp,\n onEditingChange,\n type = 'text',\n placeholder,\n trigger = 'click',\n size = 'md',\n fullWidth = false,\n disabled = false,\n confirmOnBlur = true,\n renderDisplay,\n showEditIcon = true,\n inputVariant = 'outlined',\n className = '',\n}) => {\n const isControlled = editingProp !== undefined;\n const [internalEditing, setInternalEditing] = useState(false);\n const editing = isControlled ? editingProp : internalEditing;\n\n // Track the value at the moment editing begins so Esc can revert to it.\n const valueAtEditStart = useRef(value);\n\n // Local draft while editing - keeps Input value in sync without forcing the\n // parent to wire `onChange` just to see live keystrokes.\n const [draft, setDraft] = useState(value);\n\n // ------------------------------------------------------------------\n // Editing state helpers\n // ------------------------------------------------------------------\n\n const openEdit = useCallback(() => {\n if (disabled) return;\n valueAtEditStart.current = value;\n setDraft(value);\n if (!isControlled) setInternalEditing(true);\n onEditingChange?.(true);\n }, [disabled, isControlled, onEditingChange, value]);\n\n const closeEdit = useCallback(() => {\n if (!isControlled) setInternalEditing(false);\n onEditingChange?.(false);\n }, [isControlled, onEditingChange]);\n\n const confirm = useCallback(() => {\n closeEdit();\n onConfirm?.(draft);\n }, [closeEdit, draft, onConfirm]);\n\n const cancel = useCallback(() => {\n // Revert the draft AND propagate the original value so the parent stays in\n // sync when `onChange` is used to maintain external state.\n setDraft(valueAtEditStart.current);\n onChange?.(valueAtEditStart.current);\n closeEdit();\n onCancel?.();\n }, [closeEdit, onChange, onCancel]);\n\n // ------------------------------------------------------------------\n // Input handlers\n // ------------------------------------------------------------------\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setDraft(e.target.value);\n onChange?.(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n // Stop propagation so parent grids/tables don't double-handle Enter.\n e.stopPropagation();\n confirm();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n cancel();\n }\n // Tab and Arrow keys intentionally bubble - consumers like DataGrid own\n // Tab-to-next-cell and arrow-key navigation at the container level.\n };\n\n const handleBlur = () => {\n if (confirmOnBlur) confirm();\n };\n\n // ------------------------------------------------------------------\n // Trigger props for display mode\n // ------------------------------------------------------------------\n\n const displayTriggerProps =\n trigger === 'doubleClick' ? { onDoubleClick: openEdit } : { onClick: openEdit };\n\n // ------------------------------------------------------------------\n // Render: edit mode\n // ------------------------------------------------------------------\n\n if (editing) {\n return (\n <Input\n type={type}\n variant={inputVariant}\n size={size}\n value={draft}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n placeholder={placeholder}\n fullWidth={fullWidth}\n clearable={false}\n autoFocus\n className={`eidos-inline-edit eidos-inline-edit--editing ${className}`}\n />\n );\n }\n\n // ------------------------------------------------------------------\n // Render: display mode\n // ------------------------------------------------------------------\n\n const isEmpty = !value;\n\n return (\n <span\n role=\"button\"\n tabIndex={disabled ? undefined : 0}\n aria-label={disabled ? undefined : 'Click to edit'}\n className={[\n 'eidos-inline-edit',\n `eidos-inline-edit--${size}`,\n fullWidth ? 'eidos-inline-edit--full-width' : '',\n disabled ? 'eidos-inline-edit--disabled' : '',\n isEmpty ? 'eidos-inline-edit--empty' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...(disabled ? {} : displayTriggerProps)}\n onKeyDown={\n disabled\n ? undefined\n : (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n openEdit();\n }\n }\n }\n >\n <span className=\"eidos-inline-edit__text\">\n {renderDisplay\n ? renderDisplay(value)\n : value || <span className=\"eidos-inline-edit__placeholder\">{placeholder}</span>}\n </span>\n {!disabled && showEditIcon && (\n <span className=\"eidos-inline-edit__icon\" aria-hidden>\n <Pencil />\n </span>\n )}\n </span>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderIcon
3
- } from "./chunk-XSGUFMT4.js";
3
+ } from "./chunk-5CLC3FJO.js";
4
4
  import {
5
5
  Tooltip
6
- } from "./chunk-H523JFY2.js";
6
+ } from "./chunk-YV57RSPD.js";
7
7
 
8
8
  // src/components/Chip/Chip.component.tsx
9
9
  import { X } from "lucide-react";
@@ -85,4 +85,4 @@ var Chip = ({
85
85
  export {
86
86
  Chip
87
87
  };
88
- //# sourceMappingURL=chunk-GRH57M3E.js.map
88
+ //# sourceMappingURL=chunk-4M3LZLOH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Chip/Chip.component.tsx"],"sourcesContent":["import React from 'react';\nimport { X } from 'lucide-react';\nimport type { ChipProps } from './Chip.types';\nimport { Tooltip } from '../Tooltip/Tooltip.component';\nimport { renderIcon } from '../../utils';\n\nexport const Chip: React.FC<ChipProps> = ({\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n fullWidth = false,\n tooltip,\n className = '',\n preIcon,\n posIcon,\n children,\n onClick,\n onRemove,\n ...chipProps\n}) => {\n const isClickable = !!onClick;\n const isRemovable = !!onRemove;\n\n // Build CSS classes\n const chipClasses = [\n 'eidos-chip',\n `eidos-chip--${variant}`,\n `eidos-chip--${color}`,\n `eidos-chip--${size}`,\n disabled && 'eidos-chip--disabled',\n isClickable && 'eidos-chip--clickable',\n isRemovable && 'eidos-chip--removable',\n fullWidth && 'eidos-chip--full-width',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const handleClick = () => {\n if (disabled || !onClick) return;\n onClick();\n };\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevent chip click when removing\n if (disabled || !onRemove) return;\n onRemove();\n };\n\n // Use div when removable to avoid nested buttons, button only when clickable without remove\n const ChipElement = isClickable && !isRemovable ? 'button' : 'div';\n\n const chipContent = (\n <ChipElement\n className={chipClasses}\n disabled={ChipElement === 'button' ? disabled : undefined}\n onClick={isClickable ? handleClick : undefined}\n role={ChipElement === 'div' && isClickable ? 'button' : undefined}\n tabIndex={ChipElement === 'div' && isClickable ? 0 : undefined}\n onKeyDown={\n ChipElement === 'div' && isClickable\n ? (e) => {\n if ((e.key === 'Enter' || e.key === ' ') && !disabled) {\n e.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n {...chipProps}\n >\n {preIcon && renderIcon(preIcon, 'eidos-chip--pre-icon')}\n\n <span className=\"eidos-chip--copy\">{children}</span>\n\n {posIcon && renderIcon(posIcon, 'eidos-chip--pos-icon')}\n\n {isRemovable && (\n <button\n className=\"eidos-chip--remove-button\"\n onClick={handleRemove}\n disabled={disabled}\n aria-label=\"Remove\"\n type=\"button\"\n >\n <X className=\"eidos-chip--remove-icon\" />\n </button>\n )}\n </ChipElement>\n );\n\n return tooltip ? <Tooltip message={tooltip}>{chipContent}</Tooltip> : chipContent;\n};\n"],"mappings":";;;;;;;;AACA,SAAS,SAAS;AAqDd,SAoBE,KApBF;AAhDG,IAAM,OAA4B,CAAC;AAAA,EACxC,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAc,CAAC,CAAC;AACtB,QAAM,cAAc,CAAC,CAAC;AAGtB,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,eAAe,OAAO;AAAA,IACtB,eAAe,KAAK;AAAA,IACpB,eAAe,IAAI;AAAA,IACnB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,aAAa;AAAA,IACb;AAAA,EACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,QAAM,cAAc,MAAM;AACxB,QAAI,YAAY,CAAC,QAAS;AAC1B,YAAQ;AAAA,EACV;AAEA,QAAM,eAAe,CAAC,MAAwB;AAC5C,MAAE,gBAAgB;AAClB,QAAI,YAAY,CAAC,SAAU;AAC3B,aAAS;AAAA,EACX;AAGA,QAAM,cAAc,eAAe,CAAC,cAAc,WAAW;AAE7D,QAAM,cACJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,UAAU,gBAAgB,WAAW,WAAW;AAAA,MAChD,SAAS,cAAc,cAAc;AAAA,MACrC,MAAM,gBAAgB,SAAS,cAAc,WAAW;AAAA,MACxD,UAAU,gBAAgB,SAAS,cAAc,IAAI;AAAA,MACrD,WACE,gBAAgB,SAAS,cACrB,CAAC,MAAM;AACL,aAAK,EAAE,QAAQ,WAAW,EAAE,QAAQ,QAAQ,CAAC,UAAU;AACrD,YAAE,eAAe;AACjB,sBAAY;AAAA,QACd;AAAA,MACF,IACA;AAAA,MAEL,GAAG;AAAA,MAEH;AAAA,mBAAW,WAAW,SAAS,sBAAsB;AAAA,QAEtD,oBAAC,UAAK,WAAU,oBAAoB,UAAS;AAAA,QAE5C,WAAW,WAAW,SAAS,sBAAsB;AAAA,QAErD,eACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS;AAAA,YACT;AAAA,YACA,cAAW;AAAA,YACX,MAAK;AAAA,YAEL,8BAAC,KAAE,WAAU,2BAA0B;AAAA;AAAA,QACzC;AAAA;AAAA;AAAA,EAEJ;AAGF,SAAO,UAAU,oBAAC,WAAQ,SAAS,SAAU,uBAAY,IAAa;AACxE;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkCDV2OAS3cjs = require('./chunk-CDV2OAS3.cjs');
3
+ var _chunkG5IGADJIcjs = require('./chunk-G5IGADJI.cjs');
4
4
 
5
5
  // src/components/InlineEdit/InlineEdit.component.tsx
6
6
  var _react = require('react');
@@ -72,7 +72,7 @@ var InlineEdit = ({
72
72
  const displayTriggerProps = trigger === "doubleClick" ? { onDoubleClick: openEdit } : { onClick: openEdit };
73
73
  if (editing) {
74
74
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
75
- _chunkCDV2OAS3cjs.Input,
75
+ _chunkG5IGADJIcjs.Input,
76
76
  {
77
77
  type,
78
78
  variant: inputVariant,
@@ -122,4 +122,4 @@ var InlineEdit = ({
122
122
 
123
123
 
124
124
  exports.InlineEdit = InlineEdit;
125
- //# sourceMappingURL=chunk-M56IGNH7.cjs.map
125
+ //# sourceMappingURL=chunk-4UJ7LG4W.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-4UJ7LG4W.cjs","../src/components/InlineEdit/InlineEdit.component.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-4UJ7LG4W.cjs","sourcesContent":[null,"import React, { useState, useRef, useCallback } from 'react';\nimport { Pencil } from 'lucide-react';\nimport { Input } from '../Input/Input.component';\nimport type { InlineEditProps } from './InlineEdit.types';\nimport './InlineEdit.scss';\n\nexport const InlineEdit: React.FC<InlineEditProps> = ({\n value,\n onChange,\n onConfirm,\n onCancel,\n editing: editingProp,\n onEditingChange,\n type = 'text',\n placeholder,\n trigger = 'click',\n size = 'md',\n fullWidth = false,\n disabled = false,\n confirmOnBlur = true,\n renderDisplay,\n showEditIcon = true,\n inputVariant = 'outlined',\n className = '',\n}) => {\n const isControlled = editingProp !== undefined;\n const [internalEditing, setInternalEditing] = useState(false);\n const editing = isControlled ? editingProp : internalEditing;\n\n // Track the value at the moment editing begins so Esc can revert to it.\n const valueAtEditStart = useRef(value);\n\n // Local draft while editing - keeps Input value in sync without forcing the\n // parent to wire `onChange` just to see live keystrokes.\n const [draft, setDraft] = useState(value);\n\n // ------------------------------------------------------------------\n // Editing state helpers\n // ------------------------------------------------------------------\n\n const openEdit = useCallback(() => {\n if (disabled) return;\n valueAtEditStart.current = value;\n setDraft(value);\n if (!isControlled) setInternalEditing(true);\n onEditingChange?.(true);\n }, [disabled, isControlled, onEditingChange, value]);\n\n const closeEdit = useCallback(() => {\n if (!isControlled) setInternalEditing(false);\n onEditingChange?.(false);\n }, [isControlled, onEditingChange]);\n\n const confirm = useCallback(() => {\n closeEdit();\n onConfirm?.(draft);\n }, [closeEdit, draft, onConfirm]);\n\n const cancel = useCallback(() => {\n // Revert the draft AND propagate the original value so the parent stays in\n // sync when `onChange` is used to maintain external state.\n setDraft(valueAtEditStart.current);\n onChange?.(valueAtEditStart.current);\n closeEdit();\n onCancel?.();\n }, [closeEdit, onChange, onCancel]);\n\n // ------------------------------------------------------------------\n // Input handlers\n // ------------------------------------------------------------------\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setDraft(e.target.value);\n onChange?.(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n // Stop propagation so parent grids/tables don't double-handle Enter.\n e.stopPropagation();\n confirm();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n cancel();\n }\n // Tab and Arrow keys intentionally bubble - consumers like DataGrid own\n // Tab-to-next-cell and arrow-key navigation at the container level.\n };\n\n const handleBlur = () => {\n if (confirmOnBlur) confirm();\n };\n\n // ------------------------------------------------------------------\n // Trigger props for display mode\n // ------------------------------------------------------------------\n\n const displayTriggerProps =\n trigger === 'doubleClick' ? { onDoubleClick: openEdit } : { onClick: openEdit };\n\n // ------------------------------------------------------------------\n // Render: edit mode\n // ------------------------------------------------------------------\n\n if (editing) {\n return (\n <Input\n type={type}\n variant={inputVariant}\n size={size}\n value={draft}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n placeholder={placeholder}\n fullWidth={fullWidth}\n clearable={false}\n autoFocus\n className={`eidos-inline-edit eidos-inline-edit--editing ${className}`}\n />\n );\n }\n\n // ------------------------------------------------------------------\n // Render: display mode\n // ------------------------------------------------------------------\n\n const isEmpty = !value;\n\n return (\n <span\n role=\"button\"\n tabIndex={disabled ? undefined : 0}\n aria-label={disabled ? undefined : 'Click to edit'}\n className={[\n 'eidos-inline-edit',\n `eidos-inline-edit--${size}`,\n fullWidth ? 'eidos-inline-edit--full-width' : '',\n disabled ? 'eidos-inline-edit--disabled' : '',\n isEmpty ? 'eidos-inline-edit--empty' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...(disabled ? {} : displayTriggerProps)}\n onKeyDown={\n disabled\n ? undefined\n : (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n openEdit();\n }\n }\n }\n >\n <span className=\"eidos-inline-edit__text\">\n {renderDisplay\n ? renderDisplay(value)\n : value || <span className=\"eidos-inline-edit__placeholder\">{placeholder}</span>}\n </span>\n {!disabled && showEditIcon && (\n <span className=\"eidos-inline-edit__icon\" aria-hidden>\n <Pencil />\n </span>\n )}\n </span>\n );\n};\n"]}