@modern-admin/web 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/config/runtime-config.d.ts +31 -3
  2. package/dist/config/vite.d.ts +14 -0
  3. package/dist/config/vite.js +2 -2
  4. package/dist/lib/index.js +6 -2
  5. package/dist/lib/runtime-config.d.ts +31 -3
  6. package/dist/standalone/assets/{action-component-host-8DE4kuUJ.js → action-component-host-BhkBbvy5.js} +1 -2
  7. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.br +0 -0
  8. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.gz +0 -0
  9. package/dist/standalone/assets/{action-page-D6BbXzUo.js → action-page-cwWF8qzs.js} +1 -2
  10. package/dist/standalone/assets/action-page-cwWF8qzs.js.br +0 -0
  11. package/dist/standalone/assets/action-page-cwWF8qzs.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-BORa8_hT.js → ai-assistant-widget-DaFf7V1n.js} +1 -2
  13. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.br +0 -0
  14. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.gz +0 -0
  15. package/dist/standalone/assets/arrow-left-yVCaEJJu.js +1 -2
  16. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js +1 -0
  17. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.br +0 -0
  18. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.gz +0 -0
  19. package/dist/standalone/assets/badge-CdW_Z0lB.js +1 -2
  20. package/dist/standalone/assets/bot-CuDPD_ZU.js +1 -2
  21. package/dist/standalone/assets/{cache-page-CBKj7WFq.js → cache-page-Ddt6pCFn.js} +1 -2
  22. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.br +0 -0
  23. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.gz +0 -0
  24. package/dist/standalone/assets/calendar-p3BEC7Ac.js +1 -0
  25. package/dist/standalone/assets/calendar-p3BEC7Ac.js.br +0 -0
  26. package/dist/standalone/assets/calendar-p3BEC7Ac.js.gz +0 -0
  27. package/dist/standalone/assets/card-BYbadRar.js +1 -2
  28. package/dist/standalone/assets/card-BYbadRar.js.br +0 -0
  29. package/dist/standalone/assets/card-BYbadRar.js.gz +0 -0
  30. package/dist/standalone/assets/chart-widget-DFq9o29S.js +1 -0
  31. package/dist/standalone/assets/chart-widget-DFq9o29S.js.br +0 -0
  32. package/dist/standalone/assets/chart-widget-DFq9o29S.js.gz +0 -0
  33. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js +1 -2
  34. package/dist/standalone/assets/circle-alert-D1sKnXtO.js +1 -2
  35. package/dist/standalone/assets/clock-B9qbSr_k.js +1 -2
  36. package/dist/standalone/assets/{command-BAXXxf0P.js → command-Cv4kMka4.js} +1 -2
  37. package/dist/standalone/assets/command-Cv4kMka4.js.br +0 -0
  38. package/dist/standalone/assets/command-Cv4kMka4.js.gz +0 -0
  39. package/dist/standalone/assets/copy-5fb4qj-_.js +1 -2
  40. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js +1 -2
  41. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.br +0 -0
  42. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.gz +0 -0
  43. package/dist/standalone/assets/date-picker-BfxB3e8W.js +1 -0
  44. package/dist/standalone/assets/date-picker-BfxB3e8W.js.br +0 -0
  45. package/dist/standalone/assets/date-picker-BfxB3e8W.js.gz +0 -0
  46. package/dist/standalone/assets/dist-CiXwD0ML.js +1 -2
  47. package/dist/standalone/assets/dist-CiXwD0ML.js.br +0 -0
  48. package/dist/standalone/assets/dist-CiXwD0ML.js.gz +0 -0
  49. package/dist/standalone/assets/dist-DPxQeZn3.js +1 -2
  50. package/dist/standalone/assets/dist-DPxQeZn3.js.br +0 -0
  51. package/dist/standalone/assets/dist-DPxQeZn3.js.gz +0 -0
  52. package/dist/standalone/assets/{dist-COXu-_Zv.js → dist-DfV3IWyn.js} +1 -2
  53. package/dist/standalone/assets/dist-DfV3IWyn.js.br +0 -0
  54. package/dist/standalone/assets/dist-DfV3IWyn.js.gz +0 -0
  55. package/dist/standalone/assets/edit-page-VPFbqPNP.js +1 -0
  56. package/dist/standalone/assets/edit-page-VPFbqPNP.js.br +0 -0
  57. package/dist/standalone/assets/edit-page-VPFbqPNP.js.gz +0 -0
  58. package/dist/standalone/assets/ellipsis-BRmOlhsy.js +1 -2
  59. package/dist/standalone/assets/{empty-DMs98grx.js → empty-BR6YtCo2.js} +1 -2
  60. package/dist/standalone/assets/empty-BR6YtCo2.js.br +0 -0
  61. package/dist/standalone/assets/empty-BR6YtCo2.js.gz +0 -0
  62. package/dist/standalone/assets/file-text-MQF--yeB.js +1 -2
  63. package/dist/standalone/assets/floating-layer-BcTp2AMB.js +1 -2
  64. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.br +0 -0
  65. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.gz +0 -0
  66. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js +1 -0
  67. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.br +0 -0
  68. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.gz +0 -0
  69. package/dist/standalone/assets/{heavy-fields-LnhreUPp.js → heavy-fields-i9EcYH8r.js} +26 -27
  70. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.br +0 -0
  71. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.gz +0 -0
  72. package/dist/standalone/assets/{home-page-DiDOzuic.js → home-page-9caZ0Yg1.js} +3 -4
  73. package/dist/standalone/assets/home-page-9caZ0Yg1.js.br +0 -0
  74. package/dist/standalone/assets/home-page-9caZ0Yg1.js.gz +0 -0
  75. package/dist/standalone/assets/hooks-Djo7VZHf.js +185 -0
  76. package/dist/standalone/assets/hooks-Djo7VZHf.js.br +0 -0
  77. package/dist/standalone/assets/hooks-Djo7VZHf.js.gz +0 -0
  78. package/dist/standalone/assets/{icon-registry-s31CNk7M.js → icon-registry-BCvzitKu.js} +1 -2
  79. package/dist/standalone/assets/icon-registry-BCvzitKu.js.br +0 -0
  80. package/dist/standalone/assets/icon-registry-BCvzitKu.js.gz +0 -0
  81. package/dist/standalone/assets/index-SG_6EpY3.js +14 -0
  82. package/dist/standalone/assets/index-SG_6EpY3.js.br +0 -0
  83. package/dist/standalone/assets/index-SG_6EpY3.js.gz +0 -0
  84. package/dist/standalone/assets/info-ChwYoM77.js +1 -2
  85. package/dist/standalone/assets/{json-editor-BD0UhGOT.js → json-editor-TAtTB6fV.js} +1 -2
  86. package/dist/standalone/assets/json-editor-TAtTB6fV.js.br +0 -0
  87. package/dist/standalone/assets/json-editor-TAtTB6fV.js.gz +0 -0
  88. package/dist/standalone/assets/key-BzJFbNbz.js +1 -2
  89. package/dist/standalone/assets/key-round-oSqmVdkQ.js +1 -2
  90. package/dist/standalone/assets/minimize-2-iWv98HjE.js +1 -2
  91. package/dist/standalone/assets/palette-jgTV28yN.js +1 -2
  92. package/dist/standalone/assets/pencil-kFOObGrY.js +1 -2
  93. package/dist/standalone/assets/pipette-roLBCmPv.js +1 -2
  94. package/dist/standalone/assets/pipette-roLBCmPv.js.br +0 -0
  95. package/dist/standalone/assets/pipette-roLBCmPv.js.gz +0 -0
  96. package/dist/standalone/assets/plus-D7PHzena.js +1 -2
  97. package/dist/standalone/assets/property-renderer-KXwrRQgq.js +3 -0
  98. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.br +0 -0
  99. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.gz +0 -0
  100. package/dist/standalone/assets/reference-BibBrgjx.js +1 -0
  101. package/dist/standalone/assets/reference-BibBrgjx.js.br +0 -0
  102. package/dist/standalone/assets/reference-BibBrgjx.js.gz +0 -0
  103. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js +1 -2
  104. package/dist/standalone/assets/{revisions-button-Csueldv_.js → revisions-button-B6PmW0BY.js} +1 -2
  105. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.br +0 -0
  106. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.gz +0 -0
  107. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js +1 -2
  108. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.br +0 -0
  109. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.gz +0 -0
  110. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js +1 -2
  111. package/dist/standalone/assets/save-BkkrgP5Q.js +1 -2
  112. package/dist/standalone/assets/schemas-ByMQmMCS.js +1 -2
  113. package/dist/standalone/assets/schemas-ByMQmMCS.js.br +0 -0
  114. package/dist/standalone/assets/schemas-ByMQmMCS.js.gz +0 -0
  115. package/dist/standalone/assets/{select-BOe2daO9.js → select-Bs49X1wg.js} +1 -2
  116. package/dist/standalone/assets/select-Bs49X1wg.js.br +0 -0
  117. package/dist/standalone/assets/select-Bs49X1wg.js.gz +0 -0
  118. package/dist/standalone/assets/send-Bzb_4uMT.js +1 -2
  119. package/dist/standalone/assets/settings-page-CSb9z_qM.js +1 -0
  120. package/dist/standalone/assets/settings-page-CSb9z_qM.js.br +0 -0
  121. package/dist/standalone/assets/settings-page-CSb9z_qM.js.gz +0 -0
  122. package/dist/standalone/assets/{show-page-CDgUXhsx.js → show-page-DsBH63Hr.js} +1 -2
  123. package/dist/standalone/assets/show-page-DsBH63Hr.js.br +0 -0
  124. package/dist/standalone/assets/show-page-DsBH63Hr.js.gz +0 -0
  125. package/dist/standalone/assets/sparkles-1tT0H4n4.js +1 -2
  126. package/dist/standalone/assets/square-pen-ZvVEwkzw.js +1 -2
  127. package/dist/standalone/assets/table-RI-lM4fw.js +1 -2
  128. package/dist/standalone/assets/table-RI-lM4fw.js.br +0 -0
  129. package/dist/standalone/assets/table-RI-lM4fw.js.gz +0 -0
  130. package/dist/standalone/assets/{tabs-Bj4gQaH2.js → tabs-XOuUmhl0.js} +1 -2
  131. package/dist/standalone/assets/tabs-XOuUmhl0.js.br +0 -0
  132. package/dist/standalone/assets/tabs-XOuUmhl0.js.gz +0 -0
  133. package/dist/standalone/assets/textarea-C2w7TG3h.js +1 -2
  134. package/dist/standalone/assets/trash-2-BIJVpWxv.js +1 -2
  135. package/dist/standalone/assets/triangle-alert-yljVpQCM.js +1 -2
  136. package/dist/standalone/assets/undo-2-CnH3ScKE.js +1 -2
  137. package/dist/standalone/assets/undo-2-CnH3ScKE.js.br +0 -0
  138. package/dist/standalone/assets/undo-2-CnH3ScKE.js.gz +0 -0
  139. package/dist/standalone/assets/upload-DrfB-4bU.js +1 -2
  140. package/dist/standalone/assets/upload-DrfB-4bU.js.br +0 -0
  141. package/dist/standalone/assets/upload-DrfB-4bU.js.gz +0 -0
  142. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js +1 -2
  143. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.br +0 -0
  144. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.gz +0 -0
  145. package/dist/standalone/assets/{useQueries-DNUnShBb.js → useQueries-BIIIiVKJ.js} +1 -2
  146. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.br +0 -0
  147. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.gz +0 -0
  148. package/dist/standalone/assets/{user-directory-BvmDzxsG.js → user-directory-Cs4iA6fu.js} +2 -3
  149. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.br +0 -0
  150. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.gz +0 -0
  151. package/dist/standalone/assets/uuid-DLSnbsz2.js +1 -2
  152. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js +1 -2
  153. package/dist/standalone/assets/wizard-create-page-px1E35D5.js +1 -0
  154. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.br +0 -0
  155. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.gz +0 -0
  156. package/dist/standalone/assets/x-c-gfVPJa.js +1 -2
  157. package/dist/standalone/assets/zap-BxPAEPtJ.js +1 -2
  158. package/dist/standalone/assets/zod-CL5c4fuD.js +1 -0
  159. package/dist/standalone/assets/zod-CL5c4fuD.js.br +0 -0
  160. package/dist/standalone/assets/zod-CL5c4fuD.js.gz +0 -0
  161. package/dist/standalone/index.html +6 -6
  162. package/dist/standalone/index.html.br +0 -0
  163. package/dist/standalone/index.html.gz +0 -0
  164. package/package.json +6 -5
  165. package/src/app.tsx +4 -0
  166. package/src/runtime-config.ts +31 -3
  167. package/src/vite.ts +16 -1
  168. package/dist/lib/app.d.ts.map +0 -1
  169. package/dist/lib/index.d.ts.map +0 -1
  170. package/dist/lib/index.js.map +0 -1
  171. package/dist/lib/mount.d.ts.map +0 -1
  172. package/dist/lib/runtime-config.d.ts.map +0 -1
  173. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.br +0 -0
  174. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.gz +0 -0
  175. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.map +0 -1
  176. package/dist/standalone/assets/action-page-D6BbXzUo.js.br +0 -0
  177. package/dist/standalone/assets/action-page-D6BbXzUo.js.gz +0 -0
  178. package/dist/standalone/assets/action-page-D6BbXzUo.js.map +0 -1
  179. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.br +0 -0
  180. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.gz +0 -0
  181. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.map +0 -1
  182. package/dist/standalone/assets/arrow-left-yVCaEJJu.js.map +0 -1
  183. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js +0 -2
  184. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.br +0 -0
  185. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.gz +0 -0
  186. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.map +0 -1
  187. package/dist/standalone/assets/badge-CdW_Z0lB.js.map +0 -1
  188. package/dist/standalone/assets/bot-CuDPD_ZU.js.map +0 -1
  189. package/dist/standalone/assets/cache-page-CBKj7WFq.js.br +0 -0
  190. package/dist/standalone/assets/cache-page-CBKj7WFq.js.gz +0 -0
  191. package/dist/standalone/assets/cache-page-CBKj7WFq.js.map +0 -1
  192. package/dist/standalone/assets/calendar-BuLRvNBg.js +0 -2
  193. package/dist/standalone/assets/calendar-BuLRvNBg.js.br +0 -0
  194. package/dist/standalone/assets/calendar-BuLRvNBg.js.gz +0 -0
  195. package/dist/standalone/assets/calendar-BuLRvNBg.js.map +0 -1
  196. package/dist/standalone/assets/card-BYbadRar.js.map +0 -1
  197. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js +0 -2
  198. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.br +0 -0
  199. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.gz +0 -0
  200. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.map +0 -1
  201. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js.map +0 -1
  202. package/dist/standalone/assets/circle-alert-D1sKnXtO.js.map +0 -1
  203. package/dist/standalone/assets/clock-B9qbSr_k.js.map +0 -1
  204. package/dist/standalone/assets/command-BAXXxf0P.js.br +0 -0
  205. package/dist/standalone/assets/command-BAXXxf0P.js.gz +0 -0
  206. package/dist/standalone/assets/command-BAXXxf0P.js.map +0 -1
  207. package/dist/standalone/assets/copy-5fb4qj-_.js.map +0 -1
  208. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.map +0 -1
  209. package/dist/standalone/assets/date-picker-Bxv-yrWf.js +0 -2
  210. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.br +0 -0
  211. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.gz +0 -0
  212. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.map +0 -1
  213. package/dist/standalone/assets/dist-COXu-_Zv.js.br +0 -0
  214. package/dist/standalone/assets/dist-COXu-_Zv.js.gz +0 -0
  215. package/dist/standalone/assets/dist-COXu-_Zv.js.map +0 -1
  216. package/dist/standalone/assets/dist-CiXwD0ML.js.map +0 -1
  217. package/dist/standalone/assets/dist-DPxQeZn3.js.map +0 -1
  218. package/dist/standalone/assets/edit-page-Dm638D2J.js +0 -2
  219. package/dist/standalone/assets/edit-page-Dm638D2J.js.br +0 -0
  220. package/dist/standalone/assets/edit-page-Dm638D2J.js.gz +0 -0
  221. package/dist/standalone/assets/edit-page-Dm638D2J.js.map +0 -1
  222. package/dist/standalone/assets/ellipsis-BRmOlhsy.js.map +0 -1
  223. package/dist/standalone/assets/empty-DMs98grx.js.br +0 -0
  224. package/dist/standalone/assets/empty-DMs98grx.js.gz +0 -0
  225. package/dist/standalone/assets/empty-DMs98grx.js.map +0 -1
  226. package/dist/standalone/assets/file-text-MQF--yeB.js.map +0 -1
  227. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.map +0 -1
  228. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js +0 -2
  229. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.br +0 -0
  230. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.gz +0 -0
  231. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.map +0 -1
  232. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.br +0 -0
  233. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.gz +0 -0
  234. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.map +0 -1
  235. package/dist/standalone/assets/home-page-DiDOzuic.js.br +0 -0
  236. package/dist/standalone/assets/home-page-DiDOzuic.js.gz +0 -0
  237. package/dist/standalone/assets/home-page-DiDOzuic.js.map +0 -1
  238. package/dist/standalone/assets/hooks-BiOfAnEq.js +0 -186
  239. package/dist/standalone/assets/hooks-BiOfAnEq.js.br +0 -0
  240. package/dist/standalone/assets/hooks-BiOfAnEq.js.gz +0 -0
  241. package/dist/standalone/assets/hooks-BiOfAnEq.js.map +0 -1
  242. package/dist/standalone/assets/icon-registry-s31CNk7M.js.br +0 -0
  243. package/dist/standalone/assets/icon-registry-s31CNk7M.js.gz +0 -0
  244. package/dist/standalone/assets/icon-registry-s31CNk7M.js.map +0 -1
  245. package/dist/standalone/assets/index-CASCzvYu.js +0 -15
  246. package/dist/standalone/assets/index-CASCzvYu.js.br +0 -0
  247. package/dist/standalone/assets/index-CASCzvYu.js.gz +0 -0
  248. package/dist/standalone/assets/index-CASCzvYu.js.map +0 -1
  249. package/dist/standalone/assets/info-ChwYoM77.js.map +0 -1
  250. package/dist/standalone/assets/json-editor-BD0UhGOT.js.br +0 -0
  251. package/dist/standalone/assets/json-editor-BD0UhGOT.js.gz +0 -0
  252. package/dist/standalone/assets/json-editor-BD0UhGOT.js.map +0 -1
  253. package/dist/standalone/assets/key-BzJFbNbz.js.map +0 -1
  254. package/dist/standalone/assets/key-round-oSqmVdkQ.js.map +0 -1
  255. package/dist/standalone/assets/minimize-2-iWv98HjE.js.map +0 -1
  256. package/dist/standalone/assets/palette-jgTV28yN.js.map +0 -1
  257. package/dist/standalone/assets/pencil-kFOObGrY.js.map +0 -1
  258. package/dist/standalone/assets/pipette-roLBCmPv.js.map +0 -1
  259. package/dist/standalone/assets/plus-D7PHzena.js.map +0 -1
  260. package/dist/standalone/assets/property-renderer-ClrVnSny.js +0 -4
  261. package/dist/standalone/assets/property-renderer-ClrVnSny.js.br +0 -0
  262. package/dist/standalone/assets/property-renderer-ClrVnSny.js.gz +0 -0
  263. package/dist/standalone/assets/property-renderer-ClrVnSny.js.map +0 -1
  264. package/dist/standalone/assets/reference-BMbhUBHD.js +0 -2
  265. package/dist/standalone/assets/reference-BMbhUBHD.js.br +0 -0
  266. package/dist/standalone/assets/reference-BMbhUBHD.js.gz +0 -0
  267. package/dist/standalone/assets/reference-BMbhUBHD.js.map +0 -1
  268. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js.map +0 -1
  269. package/dist/standalone/assets/revisions-button-Csueldv_.js.br +0 -0
  270. package/dist/standalone/assets/revisions-button-Csueldv_.js.gz +0 -0
  271. package/dist/standalone/assets/revisions-button-Csueldv_.js.map +0 -1
  272. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.map +0 -1
  273. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js.map +0 -1
  274. package/dist/standalone/assets/save-BkkrgP5Q.js.map +0 -1
  275. package/dist/standalone/assets/schemas-ByMQmMCS.js.map +0 -1
  276. package/dist/standalone/assets/select-BOe2daO9.js.br +0 -0
  277. package/dist/standalone/assets/select-BOe2daO9.js.gz +0 -0
  278. package/dist/standalone/assets/select-BOe2daO9.js.map +0 -1
  279. package/dist/standalone/assets/send-Bzb_4uMT.js.map +0 -1
  280. package/dist/standalone/assets/settings-page-BmphreWj.js +0 -2
  281. package/dist/standalone/assets/settings-page-BmphreWj.js.br +0 -0
  282. package/dist/standalone/assets/settings-page-BmphreWj.js.gz +0 -0
  283. package/dist/standalone/assets/settings-page-BmphreWj.js.map +0 -1
  284. package/dist/standalone/assets/show-page-CDgUXhsx.js.br +0 -0
  285. package/dist/standalone/assets/show-page-CDgUXhsx.js.gz +0 -0
  286. package/dist/standalone/assets/show-page-CDgUXhsx.js.map +0 -1
  287. package/dist/standalone/assets/sparkles-1tT0H4n4.js.map +0 -1
  288. package/dist/standalone/assets/square-pen-ZvVEwkzw.js.map +0 -1
  289. package/dist/standalone/assets/table-RI-lM4fw.js.map +0 -1
  290. package/dist/standalone/assets/tabs-Bj4gQaH2.js.br +0 -0
  291. package/dist/standalone/assets/tabs-Bj4gQaH2.js.gz +0 -0
  292. package/dist/standalone/assets/tabs-Bj4gQaH2.js.map +0 -1
  293. package/dist/standalone/assets/textarea-C2w7TG3h.js.map +0 -1
  294. package/dist/standalone/assets/trash-2-BIJVpWxv.js.map +0 -1
  295. package/dist/standalone/assets/triangle-alert-yljVpQCM.js.map +0 -1
  296. package/dist/standalone/assets/undo-2-CnH3ScKE.js.map +0 -1
  297. package/dist/standalone/assets/upload-DrfB-4bU.js.map +0 -1
  298. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.map +0 -1
  299. package/dist/standalone/assets/useQueries-DNUnShBb.js.br +0 -0
  300. package/dist/standalone/assets/useQueries-DNUnShBb.js.gz +0 -0
  301. package/dist/standalone/assets/useQueries-DNUnShBb.js.map +0 -1
  302. package/dist/standalone/assets/user-directory-BvmDzxsG.js.br +0 -0
  303. package/dist/standalone/assets/user-directory-BvmDzxsG.js.gz +0 -0
  304. package/dist/standalone/assets/user-directory-BvmDzxsG.js.map +0 -1
  305. package/dist/standalone/assets/uuid-DLSnbsz2.js.map +0 -1
  306. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js.map +0 -1
  307. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js +0 -2
  308. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.br +0 -0
  309. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.gz +0 -0
  310. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.map +0 -1
  311. package/dist/standalone/assets/x-c-gfVPJa.js.map +0 -1
  312. package/dist/standalone/assets/zap-BxPAEPtJ.js.map +0 -1
  313. package/dist/standalone/assets/zod-2-ubQvxh.js +0 -2
  314. package/dist/standalone/assets/zod-2-ubQvxh.js.br +0 -0
  315. package/dist/standalone/assets/zod-2-ubQvxh.js.gz +0 -0
  316. package/dist/standalone/assets/zod-2-ubQvxh.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-BYbadRar.js","names":[],"sources":["../../../../ui/src/components/card.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cn } from '../lib/utils.js'\n\nexport const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border border-border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n ),\n)\nCard.displayName = 'Card'\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1.5 p-3 sm:p-6', className)} {...props} />\n ),\n)\nCardHeader.displayName = 'CardHeader'\n\nexport const CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref as unknown as React.Ref<HTMLHeadingElement>}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n ),\n)\nCardTitle.displayName = 'CardTitle'\n\nexport const CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref as unknown as React.Ref<HTMLParagraphElement>}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nCardDescription.displayName = 'CardDescription'\n\n// `[&:not(:first-child)]:pt-0` collapses the top padding only when this content\n// follows a sibling (typically a `CardHeader`), so a standalone `<Card><CardContent/>`\n// keeps full top padding instead of inheriting the header-aware `pt-0`.\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-3 sm:p-6 [&:not(:first-child)]:pt-0', className)} {...props} />\n ),\n)\nCardContent.displayName = 'CardContent'\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 p-3 pt-0 sm:p-6 sm:pt-0', className)} {...props} />\n ),\n)\nCardFooter.displayName = 'CardFooter'\n"],"mappings":"uIAGa,EAAA,EAAa,YACvB,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,IAAA,CAAC,MAAD,CACO,MACL,UAAW,EAAG,yEAA0E,CAAS,EACjG,GAAI,CACL,CAAA,CAEL,EACA,EAAK,YAAc,OAEnB,IAAa,EAAA,EAAmB,YAC7B,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAU,MAAK,UAAW,EAAG,mCAAoC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAE7F,EACA,EAAW,YAAc,aAEzB,IAAa,EAAA,EAAkB,YAC5B,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,IAAA,CAAC,KAAD,CACO,MACL,UAAW,EAAG,oDAAqD,CAAS,EAC5E,GAAI,CACL,CAAA,CAEL,EACA,EAAU,YAAc,YAExB,IAAa,EAAA,EAAwB,YAGlC,CAAE,YAAW,GAAG,GAAS,KAC1B,EAAA,EAAA,IAAA,CAAC,IAAD,CACO,MACL,UAAW,EAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CACF,EACD,EAAgB,YAAc,kBAK9B,IAAa,EAAA,EAAoB,YAC9B,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAU,MAAK,UAAW,EAAG,wCAAyC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAElG,EACA,EAAY,YAAc,cAE1B,IAAa,EAAA,EAAmB,YAC7B,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAU,MAAK,UAAW,EAAG,kDAAmD,CAAS,EAAG,GAAI,CAAQ,CAAA,CAE5G,EACA,EAAW,YAAc"}
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{i as r,r as i,t as a}from"./refresh-cw-Cm9YiHGV.js";import{t as o}from"./trash-2-BIJVpWxv.js";import{n as s,r as ee,t as te}from"./minimize-2-iWv98HjE.js";import{t as ne}from"./copy-5fb4qj-_.js";import{t as re}from"./ellipsis-BRmOlhsy.js";import{t as ie}from"./pencil-kFOObGrY.js";import{n as ae,t as oe}from"./palette-jgTV28yN.js";import{t as se}from"./triangle-alert-yljVpQCM.js";import{o as c}from"./dist-DPxQeZn3.js";import{A as ce,N as l,T as le}from"./hooks-BiOfAnEq.js";import{a as u,i as d,n as f,o as p,t as m}from"./select-BOe2daO9.js";import{t as h}from"./date-picker-Bxv-yrWf.js";import{a as ue,i as de,n as fe,t as pe}from"./card-BYbadRar.js";import{r as me}from"./use-dashboard-charts-D7-ctwCE.js";import{t as g}from"./reference-BMbhUBHD.js";import{a as _,c as he,i as ge,l as _e,n as ve,o as v,r as ye,s as y,t as b}from"./home-page-DiDOzuic.js";import{B as x,Dt as S,F as be,G as C,M as w,U as T,V as E,W as D,Y as xe,j as Se,k as Ce,nt as O,z as we}from"./index-CASCzvYu.js";var k=e(t(),1);function A(e,t,n){if(n===`all`)return[e.slice(0,10)];let r=[],i=N(new Date(e),n),a=N(new Date(t),n);for(;i.getTime()<=a.getTime();)r.push(M(i)),P(i,n);return r}function j(e,t,n,r){let i=A(t,n,r);return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),n=i.map(e=>({date:e,value:t.get(e)??0}));return{key:e.key,points:n}})}function Te(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`2-digit`}),r=new Intl.DateTimeFormat(t,{month:`2-digit`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`});return t=>{let a=new Date(t);return e===`year`?i.format(a):e===`month`?r.format(a):n.format(a)}}function Ee(e,t=`en-US`){let n=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`long`,year:`numeric`}),r=new Intl.DateTimeFormat(t,{month:`long`,year:`numeric`}),i=new Intl.DateTimeFormat(t,{year:`numeric`}),a=new Intl.DateTimeFormat(t,{day:`2-digit`,month:`short`});return t=>{let o=new Date(t);if(e===`year`)return i.format(o);if(e===`month`)return r.format(o);if(e===`week`){let e=new Date(o);return e.setDate(e.getDate()+6),`${a.format(o)} – ${a.format(e)}`}return n.format(o)}}function M(e){return e.toISOString().slice(0,10)}function N(e,t){let n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));if(t===`week`){let e=(n.getUTCDay()+6)%7;n.setUTCDate(n.getUTCDate()-e)}else t===`month`?n.setUTCDate(1):t===`year`&&n.setUTCMonth(0,1);return n}function P(e,t){t===`day`?e.setUTCDate(e.getUTCDate()+1):t===`week`?e.setUTCDate(e.getUTCDate()+7):t===`month`?e.setUTCMonth(e.getUTCMonth()+1):t===`year`&&e.setUTCFullYear(e.getUTCFullYear()+1)}var F=`__prev__:`;function De(e){let t=Date.parse(`${e.from}T00:00:00.000Z`),n=Date.parse(`${e.to}T00:00:00.000Z`);if(Number.isNaN(t)||Number.isNaN(n)||n<t)return null;let r=Math.round((n-t)/864e5)+1;return{from:L(new Date(t-r*864e5)),to:L(new Date(t-864e5))}}function Oe(e,t,n,r){if(n.length===0)return[];let i=A(t.from,t.to,r),a=n.length-i.length;return e.map(e=>{let t=new Map(e.points.map(e=>[e.date,e.value])),r=n.map((e,n)=>{let r=i[n-a];return r===void 0?{date:e,value:0}:{date:e,value:t.get(r)??0,sourceDate:r}});return{key:`${F}${e.key}`,sourceKey:e.key,points:r}})}function I(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function ke(e,t){if(e==null||t==null||t===0)return null;let n=Math.round((e-t)/Math.abs(t)*1e3)/10;return{percent:n,direction:n>0?`up`:n<0?`down`:`flat`}}var L=e=>e.toISOString().slice(0,10),R=n();function Ae({items:e,onSave:t,onClose:n}){let{t:r}=l(),[i,a]=k.useState(()=>Object.fromEntries(e.map(e=>[e.key,e.override])));return(0,R.jsx)(x,{open:!0,onOpenChange:e=>{e||n()},children:(0,R.jsxs)(E,{className:`w-full max-w-lg`,children:[(0,R.jsx)(D,{children:(0,R.jsx)(C,{children:r(`dashboard:widget.colorsTitle`)})}),(0,R.jsx)(`div`,{className:`max-h-[60vh] space-y-4 overflow-y-auto py-1`,children:e.map(e=>(0,R.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,R.jsx)(`span`,{className:`size-3 shrink-0 rounded-full`,style:{backgroundColor:i[e.key]??e.auto}}),(0,R.jsx)(`span`,{className:`truncate font-medium`,children:e.label})]}),(0,R.jsx)(_,{value:i[e.key],onChange:t=>a(n=>({...n,[e.key]:t})),presets:v,labels:{custom:r(`dashboard:widget.colorCustom`),pick:r(`dashboard:widget.colorPick`),auto:r(`dashboard:widget.colorAuto`)}})]},e.key))}),(0,R.jsxs)(T,{children:[(0,R.jsx)(c,{variant:`outline`,onClick:n,children:r(`common:cancel`)}),(0,R.jsx)(c,{onClick:()=>{let e={};for(let[t,n]of Object.entries(i))n&&(e[t]=n);t(e)},children:r(`common:save`)})]})]})})}var je=[`7d`,`30d`,`90d`,`1y`,`all`,`custom`],Me=[`day`,`week`,`month`,`year`];function z({config:e,onEdit:t,onDelete:n,onMove:g,onUpdate:_}){let{t:v,locale:y}=l(),b=e.visualisation===`kpi`,x=b?`all`:e.timeRange.preset===`all`&&(e.step===`day`||e.step===`week`)?`month`:e.timeRange.preset===`1y`&&e.step===`day`?`week`:e.step,C=k.useMemo(()=>me(e.timeRange),[e.timeRange]),T=!b&&e.comparePrevious===!0&&!e.groupBy,E=le(e.resource),D=k.useMemo(()=>{if(e.groupByLabelResource)return e.groupByLabelResource;if(!e.groupBy||!E)return;let t=E.properties,n=t.find(t=>t.path===e.groupBy);if(!n)return;if(n.reference)return n.reference;let r=n.path.endsWith(`_id`)?n.path.slice(0,-3):n.path.endsWith(`Id`)?n.path.slice(0,-2):``;if(r){let e=t.find(e=>e.path===r&&e.reference);if(e?.reference)return e.reference}},[e.groupBy,e.groupByLabelResource,E]),O=k.useMemo(()=>({resource:e.resource,dateField:e.dateField,step:x,metric:e.metric,from:C.from,to:C.to,...e.field?{field:e.field}:{},...!b&&e.groupBy?{groupBy:e.groupBy}:{},...!b&&e.groupBy?{topN:e.topN}:{},...!b&&e.groupBy&&D?{groupByLabelResource:D}:{},...Object.keys(e.filters).length?{filters:e.filters}:{},...b||T?{comparePrevious:!0}:{}}),[e,C,b,T,x,D]),{data:j,isLoading:M,isError:N,refetch:P,isFetching:F}=ce(O),[L,z]=k.useState(!1),[B,V]=k.useState(!1),[H,U]=k.useState(C.from),[W,G]=k.useState(C.to),K=e.quickFilters??[],q=t=>{_({...e,...t,updatedAt:new Date().toISOString()})},Re=(t,n)=>{let r={...e.filters};n===``?delete r[t]:r[t]=n,q({filters:r})},ze=e=>{e===`custom`?(U(C.from),G(C.to),q({timeRange:{preset:`custom`,from:C.from,to:C.to}})):q({timeRange:{preset:e}})},Be=()=>{H&&W&&q({timeRange:{preset:`custom`,from:H,to:W}})},Ve=e=>{e!==`all`&&q({step:e})},He=()=>{q({width:e.width===`full`?`half`:`full`})},J=b?`h-32`:`h-[320px]`,Ue=j?.resolvedLabels,Y=k.useCallback(e=>e===`__total__`?v(`dashboard:seriesTotal`):e===`__other__`?v(`dashboard:seriesOther`):e===`__null__`?v(`dashboard:seriesNull`):Ue?.[e]??e,[Ue,v]),We=k.useMemo(()=>ye(e.format,y),[e.format,y]),Ge=k.useMemo(()=>ve(e.format,y),[e.format,y]),X=k.useMemo(()=>{let t=ge(Fe(j?.series??[],C,x,Y),e.transform).map(t=>{let n=e.series?.[t.key]?.color;return n?{...t,color:n}:t});if(!T||!j?.previous?.length)return t;let n=De(C);if(!n)return t;let r=A(C.from,C.to,x),i=ge(Oe(j.previous,n,r,x),e.transform).map(e=>({key:e.key,label:v(`dashboard:widget.previousSeries`).replace(`{label}`,Y(e.sourceKey)),points:e.points,dashed:!0,hiddenWith:e.sourceKey}));return[...t,...i]},[j?.series,j?.previous,C.from,C.to,x,Y,T,e.transform,e.series,v]),Z=k.useMemo(()=>T&&j?ke(I(j.series),I(j.previous)):null,[T,j]),[Ke,Q]=k.useState(!1),qe=k.useMemo(()=>{let t=X.filter(e=>!(`dashed`in e)||!e.dashed),n=_e(t.length);return t.map((t,r)=>({key:t.key,label:t.label,override:e.series?.[t.key]?.color,auto:n[r]}))},[X,e.series]),Je=t=>{let n={...e.series};for(let e of qe)delete n[e.key];for(let[e,r]of Object.entries(t))n[e]={color:r};q({series:n}),Q(!1)},$=j&&j.supported===!1;return(0,R.jsxs)(pe,{className:`flex flex-col`,children:[(0,R.jsxs)(de,{className:`flex flex-row items-center justify-between gap-2 p-3 pb-2 space-y-0 sm:p-6 sm:pb-2`,children:[(0,R.jsxs)(ue,{className:`flex min-w-0 items-center gap-2 text-sm font-medium pr-2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:e.title||v(`chart:untitled`)}),Z&&(0,R.jsxs)(`span`,{title:v(`dashboard:widget.previousPeriod`),className:`inline-flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium tabular-nums ${Z.direction===`up`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:Z.direction===`down`?`bg-rose-500/10 text-rose-600 dark:text-rose-400`:`bg-muted text-muted-foreground`}`,children:[Z.direction===`up`?(0,R.jsx)(i,{className:`size-3`}):Z.direction===`down`?(0,R.jsx)(r,{className:`size-3`}):null,Math.abs(Z.percent),`%`]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,R.jsx)(c,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:He,"aria-label":e.width===`full`?v(`dashboard:widget.shrink`):v(`dashboard:widget.expand`),children:e.width===`full`?(0,R.jsx)(te,{className:`size-3.5`}):(0,R.jsx)(s,{className:`size-3.5`})}),j?.sql&&(0,R.jsx)(c,{variant:L?`secondary`:`ghost`,size:`icon`,className:`size-7`,onClick:()=>z(e=>!e),"aria-label":v(`dashboard:widget.toggleSql`),children:(0,R.jsx)(ee,{className:`size-3.5`})}),(0,R.jsx)(c,{variant:`ghost`,size:`icon`,className:`size-7`,onClick:()=>P(),disabled:F,"aria-label":v(`common:refresh`),children:(0,R.jsx)(a,{className:`size-3.5 ${F?`animate-spin`:``}`})}),(0,R.jsxs)(Ce,{children:[(0,R.jsx)(we,{asChild:!0,children:(0,R.jsx)(c,{variant:`ghost`,size:`icon`,className:`size-7`,"aria-label":v(`common:openMenu`),children:(0,R.jsx)(re,{className:`size-3.5`})})}),(0,R.jsxs)(Se,{align:`end`,children:[(0,R.jsxs)(w,{onClick:t,children:[(0,R.jsx)(ie,{className:`size-4 mr-2`}),v(`chart:editChart`)]}),!b&&(0,R.jsxs)(w,{onClick:()=>Q(!0),children:[(0,R.jsx)(oe,{className:`size-4 mr-2`}),v(`dashboard:widget.editColors`)]}),g&&(0,R.jsxs)(w,{onClick:g,children:[(0,R.jsx)(ae,{className:`size-4 mr-2`}),v(`chart:moveToGroup`)]}),(0,R.jsx)(be,{}),(0,R.jsxs)(w,{onClick:n,className:`text-destructive focus:text-destructive`,children:[(0,R.jsx)(o,{className:`size-4 mr-2`}),v(`chart:deleteChart`)]})]})]})]})]}),(0,R.jsxs)(fe,{className:`flex-1 p-3 pt-0 space-y-3 sm:p-6 sm:pt-0`,children:[!$&&(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[K.length>0&&E&&K.map(t=>{let n=E.properties.find(e=>e.path===t);return n?(0,R.jsx)(Pe,{property:n,placeholder:n.label,value:e.filters[t]??``,onChange:e=>Re(t,e)},t):null}),!b&&(0,R.jsxs)(m,{value:e.step===`all`?`day`:e.step,onValueChange:e=>Ve(e),children:[(0,R.jsx)(u,{className:`h-8 px-2 text-xs w-auto`,"aria-label":v(`chart:step`),children:(0,R.jsx)(p,{})}),(0,R.jsx)(f,{children:Me.map(e=>(0,R.jsx)(d,{value:e,children:v(`chart:step${Ne(e)}`)},e))})]}),(0,R.jsxs)(m,{value:e.timeRange.preset,onValueChange:e=>ze(e),children:[(0,R.jsx)(u,{className:`h-8 px-2 text-xs w-auto`,"aria-label":v(`dashboard:builder.range`),children:(0,R.jsx)(p,{})}),(0,R.jsx)(f,{children:je.map(e=>(0,R.jsx)(d,{value:e,children:v(`dashboard:range.${e}`)},e))})]}),e.timeRange.preset===`custom`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(h,{value:H,onChange:U,ariaLabel:v(`common:from`),openCalendarLabel:v(`common:openCalendar`),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,R.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}),(0,R.jsx)(h,{value:W,onChange:G,ariaLabel:v(`common:to`),openCalendarLabel:v(`common:openCalendar`),className:`w-[130px]`,inputClassName:`h-8 text-xs`}),(0,R.jsxs)(c,{size:`sm`,className:`h-8 px-3 shrink-0`,onClick:Be,disabled:!H||!W,"aria-label":v(`common:apply`),children:[(0,R.jsx)(S,{className:`size-3.5 mr-1`}),v(`common:apply`)]})]}):(0,R.jsxs)(`span`,{className:`ml-auto tabular-nums`,children:[C.from,` — `,C.to]})]}),!$&&!N&&j?.truncated&&(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`,children:[(0,R.jsx)(se,{className:`size-3.5 mt-0.5 shrink-0`}),(0,R.jsx)(`span`,{children:v(`dashboard:widget.truncatedWarning`)})]}),M?(0,R.jsx)(xe,{className:`${J} w-full rounded-md`}):N?(0,R.jsx)(`div`,{className:`flex items-center justify-center text-sm text-muted-foreground ${J}`,children:v(`chart:loadError`)}):$?(0,R.jsx)(`div`,{className:`flex items-center justify-center text-center text-sm text-muted-foreground px-4 ${J}`,children:v(`dashboard:widget.unsupported`)}):b?(0,R.jsx)(Ie,{data:j,transform:e.transform,formatNumber:We,labels:Le(v)}):(0,R.jsx)(he,{series:X,height:320,visualisation:e.visualisation===`kpi`?void 0:e.visualisation,tickFormatter:Te(x,y),labelFormatter:Ee(x,y),valueFormatter:We,axisValueFormatter:Ge,labels:{noData:v(`chart:noData`),showAll:v(`dashboard:widget.showAll`),hideAll:v(`dashboard:widget.hideAll`)}}),j?.sql&&L&&(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(c,{variant:`ghost`,size:`icon`,className:`absolute top-1 right-1 size-6`,onClick:()=>{navigator.clipboard.writeText(j.sql??``),V(!0),setTimeout(()=>V(!1),2e3)},"aria-label":v(B?`common:copied`:`common:copy`),children:B?(0,R.jsx)(S,{className:`size-3 text-green-500`}):(0,R.jsx)(ne,{className:`size-3`})}),(0,R.jsx)(`pre`,{className:`text-[11px] leading-snug bg-muted/50 border border-border rounded-md p-2 pr-8 overflow-x-auto whitespace-pre`,children:j.sql})]})]}),Ke&&(0,R.jsx)(Ae,{items:qe,onSave:Je,onClose:()=>Q(!1)})]})}var Ne=e=>e.charAt(0).toUpperCase()+e.slice(1),B=`__none__`;function Pe({property:e,placeholder:t,value:n,onChange:r}){let i=t??e.label;if(e.reference)return(0,R.jsx)(`div`,{className:`w-36`,children:(0,R.jsx)(g,{referenceResourceId:e.reference,value:n||null,onChange:e=>r(e==null?``:String(e)),placeholder:i,className:`h-8 text-xs`})});if(e.availableValues&&e.availableValues.length>0)return(0,R.jsxs)(m,{value:n||B,onValueChange:e=>r(e===B?``:e),children:[(0,R.jsx)(u,{className:`h-8 px-2 text-xs w-36`,children:(0,R.jsx)(p,{placeholder:i})}),(0,R.jsxs)(f,{children:[(0,R.jsx)(d,{value:B,children:i}),e.availableValues.map(e=>(0,R.jsx)(d,{value:e.value,children:e.label},e.value))]})]});if(e.type===`boolean`)return(0,R.jsxs)(m,{value:n||B,onValueChange:e=>r(e===B?``:e),children:[(0,R.jsx)(u,{className:`h-8 px-2 text-xs w-36`,children:(0,R.jsx)(p,{placeholder:i})}),(0,R.jsxs)(f,{children:[(0,R.jsx)(d,{value:B,children:i}),(0,R.jsx)(d,{value:`true`,children:`true`}),(0,R.jsx)(d,{value:`false`,children:`false`})]})]});let a=e.type===`number`||e.type===`float`||e.type===`currency`;return(0,R.jsx)(O,{type:a?`number`:`text`,className:`h-8 px-2 text-xs w-36`,value:n,placeholder:i,onChange:e=>r(e.target.value)})}function Fe(e,t,n,r){return j(e.map(e=>({key:e.key,points:e.points})),t.from,t.to,n).map(e=>({key:e.key,label:r(e.key),points:[...e.points]}))}function Ie({data:e,transform:t,formatNumber:n,labels:r}){let i=V(e?.series),a=V(e?.previous),o=i==null?i:b(i,t),s=a==null?a:b(a,t);return(0,R.jsx)(y,{value:o,previousValue:s,formatNumber:n,labels:r})}function V(e){if(!e||e.length===0)return null;let t=0;for(let n of e)for(let e of n.points)t+=e.value;return t}function Le(e){return{noData:e(`chart:noData`),deltaUp:e(`dashboard:widget.deltaUp`),deltaDown:e(`dashboard:widget.deltaDown`),deltaFlat:e(`dashboard:widget.deltaFlat`),previousPeriod:e(`dashboard:widget.previousPeriod`)}}export{z as ChartWidget};
2
- //# sourceMappingURL=chart-widget-Bfk_mvm2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-widget-Bfk_mvm2.js","names":[],"sources":["../../../../react/src/dashboard/time-series.ts","../../../../react/src/dashboard/compare.ts","../../../../react/src/components/chart-series-colors-dialog.tsx","../../../../react/src/components/chart-widget.tsx"],"sourcesContent":["// Time-series UI helpers — bucket fill, tick formatting, label formatting.\n// All zero-fill happens here on the client side (req: \"Заполнение нулями\n// должно быть только в ui, вне зависимости от адаптеров\"). Adapters return\n// only buckets that have data; the UI fabricates the rest at value 0 so\n// charts don't have visual gaps.\n\nimport type {\n TimeSeriesPoint,\n TimeSeriesSeries,\n TimeSeriesStep,\n} from '../client.js'\n\n/** Generate a continuous sequence of `YYYY-MM-DD` bucket keys spanning [from, to]. */\nexport function generateBuckets(\n fromIso: string,\n toIso: string,\n step: TimeSeriesStep,\n): string[] {\n if (step === 'all') return [fromIso.slice(0, 10)]\n const out: string[] = []\n const cur = startOf(new Date(fromIso), step)\n const end = startOf(new Date(toIso), step)\n while (cur.getTime() <= end.getTime()) {\n out.push(ymd(cur))\n advance(cur, step)\n }\n return out\n}\n\n/**\n * Zero-fill every series so each one has a value for every bucket in the\n * resolved date range. Missing buckets become `value: 0` rather than gaps,\n * which Recharts renders as flat segments instead of breaks.\n */\nexport function fillTimeSeries(\n series: TimeSeriesSeries[],\n fromIso: string,\n toIso: string,\n step: TimeSeriesStep,\n): TimeSeriesSeries[] {\n const buckets = generateBuckets(fromIso, toIso, step)\n return series.map((s) => {\n const map = new Map(s.points.map((p) => [p.date, p.value]))\n const points: TimeSeriesPoint[] = buckets.map((date) => ({\n date,\n value: map.get(date) ?? 0,\n }))\n return { key: s.key, points }\n })\n}\n\n/**\n * X-axis tick formatter — short label format depending on bucket size.\n * day/week → DD.MM, month → MM.YYYY, year → YYYY.\n */\nexport function makeTickFormatter(\n step: TimeSeriesStep,\n locale = 'en-US',\n): (iso: string) => string {\n const dayMonth = new Intl.DateTimeFormat(locale, { day: '2-digit', month: '2-digit' })\n const monthYear = new Intl.DateTimeFormat(locale, { month: '2-digit', year: 'numeric' })\n const year = new Intl.DateTimeFormat(locale, { year: 'numeric' })\n return (iso: string): string => {\n const d = new Date(iso)\n if (step === 'year') return year.format(d)\n if (step === 'month') return monthYear.format(d)\n return dayMonth.format(d)\n }\n}\n\n/**\n * Tooltip label formatter — long, human-friendly form. For week buckets\n * we render `Mon DD – Sun DD` (the bucket plus 6 days).\n */\nexport function makeLabelFormatter(\n step: TimeSeriesStep,\n locale = 'en-US',\n): (iso: string) => string {\n const fullDay = new Intl.DateTimeFormat(locale, {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n })\n const monthYear = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' })\n const year = new Intl.DateTimeFormat(locale, { year: 'numeric' })\n const shortDay = new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' })\n return (iso: string): string => {\n const d = new Date(iso)\n if (step === 'year') return year.format(d)\n if (step === 'month') return monthYear.format(d)\n if (step === 'week') {\n const end = new Date(d)\n end.setDate(end.getDate() + 6)\n return `${shortDay.format(d)} – ${shortDay.format(end)}`\n }\n return fullDay.format(d)\n }\n}\n\n// ─── Internals ────────────────────────────────────────────────────────────\n\nfunction ymd(d: Date): string {\n return d.toISOString().slice(0, 10)\n}\n\nfunction startOf(d: Date, step: TimeSeriesStep): Date {\n const out = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()))\n if (step === 'week') {\n // Monday-anchored week.\n const dow = (out.getUTCDay() + 6) % 7\n out.setUTCDate(out.getUTCDate() - dow)\n } else if (step === 'month') {\n out.setUTCDate(1)\n } else if (step === 'year') {\n out.setUTCMonth(0, 1)\n }\n return out\n}\n\nfunction advance(d: Date, step: TimeSeriesStep): void {\n if (step === 'day') d.setUTCDate(d.getUTCDate() + 1)\n else if (step === 'week') d.setUTCDate(d.getUTCDate() + 7)\n else if (step === 'month') d.setUTCMonth(d.getUTCMonth() + 1)\n else if (step === 'year') d.setUTCFullYear(d.getUTCFullYear() + 1)\n}\n","// Previous-period comparison helpers for dashboard charts.\n//\n// The adapters compute the previous window as `prevTo = from`,\n// `prevFrom = from − (to − from)` where the wire `from`/`to` are\n// start-of-day / end-of-day instants. In whole-day terms that is the\n// N-day window ending the day before the current one starts — which is\n// what `serverPreviousRangeOf` reproduces so client-side zero-fill and\n// tooltips agree with the buckets the server actually returns. (The\n// degenerate 1 ms boundary bucket at `from` itself is dropped.)\n\nimport type { TimeSeriesSeries, TimeSeriesStep } from '../client.js'\nimport { generateBuckets } from './time-series.js'\n\n/** Prefix marking overlay series produced from the previous window. */\nexport const PREVIOUS_KEY_PREFIX = '__prev__:'\n\nexport interface AlignedPreviousPoint {\n /** Current-window bucket the point is plotted on. */\n date: string\n value: number\n /** Real previous-window bucket the value came from (for tooltips). */\n sourceDate?: string\n}\n\nexport interface AlignedPreviousSeries {\n key: string\n /** Key of the paired current-window series (`__total__`, …). */\n sourceKey: string\n points: AlignedPreviousPoint[]\n}\n\n/**\n * Whole-day previous window matching the adapters' formula: for a current\n * window of N days `[from, to]`, returns `[from − N, from − 1]`.\n */\nexport function serverPreviousRangeOf(range: {\n from: string\n to: string\n}): { from: string; to: string } | null {\n const f = Date.parse(`${range.from}T00:00:00.000Z`)\n const t = Date.parse(`${range.to}T00:00:00.000Z`)\n if (Number.isNaN(f) || Number.isNaN(t) || t < f) return null\n const days = Math.round((t - f) / 86_400_000) + 1\n return {\n from: ymd(new Date(f - days * 86_400_000)),\n to: ymd(new Date(f - 86_400_000)),\n }\n}\n\n/**\n * Zero-fill the previous window and re-plot each point onto the current\n * window's bucket axis (point *i* → `currentBuckets[i]`), keeping the real\n * date in `sourceDate`. When bucket counts differ (step-aligned month/week\n * windows drift by ±1) the series are aligned on their END — \"yesterday\n * lines up with yesterday\" — and leading gaps become zeros.\n */\nexport function alignPreviousSeries(\n previous: ReadonlyArray<TimeSeriesSeries>,\n prevRange: { from: string; to: string },\n currentBuckets: ReadonlyArray<string>,\n step: TimeSeriesStep,\n): AlignedPreviousSeries[] {\n if (currentBuckets.length === 0) return []\n const prevBuckets = generateBuckets(prevRange.from, prevRange.to, step)\n const offset = currentBuckets.length - prevBuckets.length\n return previous.map((s) => {\n const map = new Map(s.points.map((p) => [p.date, p.value]))\n const points: AlignedPreviousPoint[] = currentBuckets.map((date, i) => {\n const src = prevBuckets[i - offset]\n return src === undefined\n ? { date, value: 0 }\n : { date, value: map.get(src) ?? 0, sourceDate: src }\n })\n return { key: `${PREVIOUS_KEY_PREFIX}${s.key}`, sourceKey: s.key, points }\n })\n}\n\n/** Total across all points of all series (raw, pre-transform values). */\nexport function sumSeries(\n series: ReadonlyArray<TimeSeriesSeries> | undefined,\n): number | null {\n if (!series || series.length === 0) return null\n let total = 0\n for (const s of series) for (const p of s.points) total += p.value\n return total\n}\n\nexport interface PeriodDelta {\n /** Signed percentage, one decimal place (e.g. -81.7). */\n percent: number\n direction: 'up' | 'down' | 'flat'\n}\n\n/**\n * Period-over-period delta on raw totals: `(cur − prev) / prev`. Returns\n * null when the previous total is missing or 0 (undefined percentage).\n */\nexport function computeDelta(\n current: number | null,\n previous: number | null,\n): PeriodDelta | null {\n if (current == null || previous == null || previous === 0) return null\n const percent = Math.round(((current - previous) / Math.abs(previous)) * 1000) / 10\n return {\n percent,\n direction: percent > 0 ? 'up' : percent < 0 ? 'down' : 'flat',\n }\n}\n\nconst ymd = (d: Date): string => d.toISOString().slice(0, 10)\n","// Per-series color override dialog for a dashboard chart. Opened from the\n// widget \"…\" menu so it can list the series actually rendered (groupBy\n// values are only known once data is loaded). Lives in the react package\n// because it is i18n-aware; primitives come from @modern-admin/ui.\n\nimport * as React from 'react'\nimport {\n Button,\n ColorSwatchPicker,\n CHART_COLOR_PRESETS,\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@modern-admin/ui'\nimport { useI18n } from '../i18n.js'\n\nexport interface SeriesColorItem {\n /** Stable series key (`__total__`, groupBy value, …). */\n key: string\n /** Display label (legend text). */\n label: string\n /** Persisted override, if any. */\n override?: string\n /** Palette color used when no override is set — shown as the row swatch. */\n auto: string\n}\n\nexport interface ChartSeriesColorsDialogProps {\n items: ReadonlyArray<SeriesColorItem>\n /** Receives only the overrides (key → hex); auto rows are omitted. */\n onSave(overrides: Record<string, string>): void\n onClose(): void\n}\n\nexport function ChartSeriesColorsDialog({\n items,\n onSave,\n onClose,\n}: ChartSeriesColorsDialogProps): React.ReactElement {\n const { t } = useI18n()\n const [draft, setDraft] = React.useState<Record<string, string | undefined>>(\n () => Object.fromEntries(items.map((i) => [i.key, i.override])),\n )\n\n const handleSave = (): void => {\n const overrides: Record<string, string> = {}\n for (const [key, color] of Object.entries(draft)) {\n if (color) overrides[key] = color\n }\n onSave(overrides)\n }\n\n return (\n <Dialog open onOpenChange={(open) => { if (!open) onClose() }}>\n <DialogContent className=\"w-full max-w-lg\">\n <DialogHeader>\n <DialogTitle>{t('dashboard:widget.colorsTitle')}</DialogTitle>\n </DialogHeader>\n\n <div className=\"max-h-[60vh] space-y-4 overflow-y-auto py-1\">\n {items.map((item) => (\n <div key={item.key} className=\"space-y-1.5\">\n <div className=\"flex items-center gap-2 text-sm\">\n <span\n className=\"size-3 shrink-0 rounded-full\"\n style={{ backgroundColor: draft[item.key] ?? item.auto }}\n />\n <span className=\"truncate font-medium\">{item.label}</span>\n </div>\n <ColorSwatchPicker\n value={draft[item.key]}\n onChange={(next) =>\n setDraft((prev) => ({ ...prev, [item.key]: next }))\n }\n presets={CHART_COLOR_PRESETS}\n labels={{\n custom: t('dashboard:widget.colorCustom'),\n pick: t('dashboard:widget.colorPick'),\n auto: t('dashboard:widget.colorAuto'),\n }}\n />\n </div>\n ))}\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>{t('common:cancel')}</Button>\n <Button onClick={handleSave}>{t('common:save')}</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","// Dashboard tile rendering one ChartDef. Phase 10 brings:\n// • Per-widget toolbar (step / range / width / SQL toggle) — changes persist\n// via `onUpdate` so a tweak survives reload without re-opening the builder.\n// • Time-series chart (date X-axis, value Y-axis) with multi-series via\n// secondary `groupBy`. Zero-fill happens UI-side regardless of adapter.\n// • KPI mode = `step: 'all'` — sums the single bucket and shows period-over-\n// period delta.\n// • Graceful degradation when the adapter cannot do time-series aggregation\n// (e.g. non-relational DB) — shows a friendly message instead of erroring.\n\nimport * as React from 'react'\nimport {\n MoreHorizontal,\n Pencil,\n Trash2,\n RefreshCw,\n Maximize2,\n Minimize2,\n Code,\n Copy,\n Check,\n FolderSymlink,\n AlertTriangle,\n ArrowUp,\n ArrowDown,\n Palette,\n} from 'lucide-react'\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n TimeSeriesChart,\n KpiCard,\n DatePicker,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Button,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Skeleton,\n paletteFor,\n} from '@modern-admin/ui'\nimport { ReferenceCombobox } from '../reference.js'\nimport type { PropertyJSON } from '../types.js'\nimport type {\n ChartDef,\n ChartDefInput,\n AggregationStep,\n ChartWidth,\n TimeRange,\n TimeRangePreset,\n} from '@modern-admin/core'\nimport { useTimeSeries, useResource } from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { resolveRange } from '../use-dashboard-charts.js'\nimport {\n fillTimeSeries,\n generateBuckets,\n makeLabelFormatter,\n makeTickFormatter,\n} from '../dashboard/time-series.js'\nimport {\n applyTransform,\n transformSeries,\n makeValueFormatter,\n makeAxisFormatter,\n} from '../dashboard/value-format.js'\nimport {\n alignPreviousSeries,\n serverPreviousRangeOf,\n sumSeries,\n computeDelta,\n} from '../dashboard/compare.js'\nimport { ChartSeriesColorsDialog } from './chart-series-colors-dialog.js'\nimport type { TimeSeriesQuery, TimeSeriesSeries } from '../client.js'\nimport type { ChartTransformStep } from '@modern-admin/core'\n\nconst PRESETS: TimeRangePreset[] = ['7d', '30d', '90d', '1y', 'all', 'custom']\nconst STEPS: Exclude<AggregationStep, 'all'>[] = ['day', 'week', 'month', 'year']\n\nexport interface ChartWidgetProps {\n config: ChartDef\n onEdit(): void\n onDelete(): void\n onMove?(): void\n /** Called when the user tweaks step / range / width directly on the widget. */\n onUpdate(input: ChartDefInput): void\n}\n\nexport function ChartWidget({\n config,\n onEdit,\n onDelete,\n onMove,\n onUpdate,\n}: ChartWidgetProps): React.ReactElement {\n const { t, locale } = useI18n()\n\n const isKpi = config.visualisation === 'kpi'\n // KPI charts force `step: 'all'`; the schema enforces this at save time.\n // For very wide presets, automatically coarsen granularity so the point\n // count stays manageable — 3650 daily buckets for 'all' would render an\n // unreadable axis and cause significant memory pressure in Recharts.\n const renderStep: AggregationStep =\n isKpi ? 'all'\n : config.timeRange.preset === 'all' && (config.step === 'day' || config.step === 'week') ? 'month'\n : config.timeRange.preset === '1y' && config.step === 'day' ? 'week'\n : config.step\n\n // Resolve the time-range preset to concrete from/to per render so cards\n // automatically reflect \"now\" as days roll over without re-saving.\n const range = React.useMemo(() => resolveRange(config.timeRange), [config.timeRange])\n\n // Previous-period overlay is only meaningful without a breakdown: top-N is\n // computed independently per window, so grouped series keys aren't stable.\n const compareActive = !isKpi && config.comparePrevious === true && !config.groupBy\n\n // If the saved ChartDef pre-dates the groupByLabelResource feature (i.e.,\n // groupBy is set but groupByLabelResource is not), derive it from the\n // resource's property metadata so labels resolve without requiring a re-save.\n const resourceConfig = useResource(config.resource)\n const effectiveLabelResource = React.useMemo(() => {\n if (config.groupByLabelResource) return config.groupByLabelResource\n if (!config.groupBy || !resourceConfig) return undefined\n const props = resourceConfig.properties\n const prop = props.find((p) => p.path === config.groupBy)\n if (!prop) return undefined\n if (prop.reference) return prop.reference\n // FK heuristic: strip Id / _id suffix and look for a sibling reference prop.\n const base = prop.path.endsWith('_id')\n ? prop.path.slice(0, -3)\n : prop.path.endsWith('Id')\n ? prop.path.slice(0, -2)\n : ''\n if (base) {\n const sibling = props.find((p) => p.path === base && p.reference)\n if (sibling?.reference) return sibling.reference\n }\n return undefined\n }, [config.groupBy, config.groupByLabelResource, resourceConfig])\n\n const query = React.useMemo<TimeSeriesQuery>(\n () => ({\n resource: config.resource,\n dateField: config.dateField,\n step: renderStep as TimeSeriesQuery['step'],\n metric: config.metric,\n from: range.from,\n to: range.to,\n ...(config.field ? { field: config.field } : {}),\n ...(!isKpi && config.groupBy ? { groupBy: config.groupBy } : {}),\n ...(!isKpi && config.groupBy ? { topN: config.topN } : {}),\n ...(!isKpi && config.groupBy && effectiveLabelResource\n ? { groupByLabelResource: effectiveLabelResource }\n : {}),\n ...(Object.keys(config.filters).length ? { filters: config.filters } : {}),\n ...(isKpi || compareActive ? { comparePrevious: true as const } : {}),\n }),\n [config, range, isKpi, compareActive, renderStep, effectiveLabelResource],\n )\n\n const { data, isLoading, isError, refetch, isFetching } = useTimeSeries(query)\n\n const [showSql, setShowSql] = React.useState(false)\n const [sqlCopied, setSqlCopied] = React.useState(false)\n\n // Draft from/to — only committed when the user clicks Apply.\n // Seeded from `config.timeRange` when preset changes to 'custom'.\n const [draftFrom, setDraftFrom] = React.useState(range.from)\n const [draftTo, setDraftTo] = React.useState(range.to)\n\n // Quick filters exposed inline in the toolbar, alongside the date range\n // controls. Each change applies immediately — no separate Apply step.\n const quickFilterPaths = config.quickFilters ?? []\n\n // Mutators — persisted by the parent via `onUpdate(updatedDef)`.\n const update = (patch: Partial<ChartDefInput>): void => {\n onUpdate({ ...config, ...patch, updatedAt: new Date().toISOString() })\n }\n\n const applyQuickFilter = (path: string, value: string): void => {\n const next: Record<string, string> = { ...config.filters }\n if (value === '') delete next[path]\n else next[path] = value\n update({ filters: next })\n }\n\n const onPresetChange = (preset: TimeRangePreset): void => {\n if (preset === 'custom') {\n // Seed draft with the currently resolved window — user can then narrow\n // it and click Apply without triggering an immediate refetch.\n setDraftFrom(range.from)\n setDraftTo(range.to)\n update({\n timeRange: { preset: 'custom', from: range.from, to: range.to } as TimeRange,\n })\n } else {\n update({ timeRange: { preset } as TimeRange })\n }\n }\n\n const applyCustomRange = (): void => {\n if (draftFrom && draftTo) {\n update({\n timeRange: { preset: 'custom', from: draftFrom, to: draftTo } as TimeRange,\n })\n }\n }\n\n const onStepChange = (step: AggregationStep): void => {\n if (step === 'all') return // KPI is selected via the builder, not the toolbar\n update({ step })\n }\n\n const onWidthToggle = (): void => {\n update({ width: (config.width === 'full' ? 'half' : 'full') as ChartWidth })\n }\n\n // ── Render ────────────────────────────────────────────────────────────\n\n const heightClass = isKpi ? 'h-32' : 'h-[320px]'\n\n const resolvedLabels = data?.resolvedLabels\n const seriesLabel = React.useCallback(\n (key: string): string => {\n if (key === '__total__') return t('dashboard:seriesTotal')\n if (key === '__other__') return t('dashboard:seriesOther')\n if (key === '__null__') return t('dashboard:seriesNull')\n return resolvedLabels?.[key] ?? key\n },\n [resolvedLabels, t],\n )\n\n const valueFormatter = React.useMemo(\n () => makeValueFormatter(config.format, locale),\n [config.format, locale],\n )\n const axisValueFormatter = React.useMemo(\n () => makeAxisFormatter(config.format, locale),\n [config.format, locale],\n )\n\n const chartSeries = React.useMemo(() => {\n const primary = transformSeries(\n prepareSeries(data?.series ?? [], range, renderStep, seriesLabel),\n config.transform,\n ).map((s) => {\n const color = config.series?.[s.key]?.color\n return color ? { ...s, color } : s\n })\n if (!compareActive || !data?.previous?.length) return primary\n const prevRange = serverPreviousRangeOf(range)\n if (!prevRange) return primary\n const currentBuckets = generateBuckets(range.from, range.to, renderStep)\n const overlays = transformSeries(\n alignPreviousSeries(data.previous, prevRange, currentBuckets, renderStep),\n config.transform,\n ).map((s) => ({\n key: s.key,\n label: t('dashboard:widget.previousSeries').replace(\n '{label}',\n seriesLabel(s.sourceKey),\n ),\n points: s.points,\n dashed: true,\n hiddenWith: s.sourceKey,\n }))\n return [...primary, ...overlays]\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n data?.series,\n data?.previous,\n range.from,\n range.to,\n renderStep,\n seriesLabel,\n compareActive,\n config.transform,\n config.series,\n t,\n ])\n\n // Period-over-period delta on raw (pre-transform) totals.\n const delta = React.useMemo(\n () =>\n compareActive && data\n ? computeDelta(sumSeries(data.series), sumSeries(data.previous))\n : null,\n [compareActive, data],\n )\n\n const [colorsOpen, setColorsOpen] = React.useState(false)\n // Effective colors for the dialog rows: override or palette by index\n // among primary (non-dashed) series — matches TimeSeriesChart's slots.\n const colorItems = React.useMemo(() => {\n const primary = chartSeries.filter((s) => !('dashed' in s) || !s.dashed)\n const palette = paletteFor(primary.length)\n return primary.map((s, i) => ({\n key: s.key,\n label: s.label,\n override: config.series?.[s.key]?.color,\n auto: palette[i]!,\n }))\n }, [chartSeries, config.series])\n\n const saveSeriesColors = (overrides: Record<string, string>): void => {\n // Preserve overrides for series not currently rendered (other windows /\n // filters may surface different groupBy values).\n const next: Record<string, { color?: string }> = { ...config.series }\n for (const item of colorItems) delete next[item.key]\n for (const [key, color] of Object.entries(overrides)) next[key] = { color }\n update({ series: next })\n setColorsOpen(false)\n }\n\n // Adapter cannot do time-series — friendly message, no toolbar churn.\n const unsupported = data && data.supported === false\n\n return (\n <Card className=\"flex flex-col\">\n <CardHeader className=\"flex flex-row items-center justify-between gap-2 p-3 pb-2 space-y-0 sm:p-6 sm:pb-2\">\n <CardTitle className=\"flex min-w-0 items-center gap-2 text-sm font-medium pr-2\">\n <span className=\"truncate\">{config.title || t('chart:untitled')}</span>\n {delta && (\n <span\n title={t('dashboard:widget.previousPeriod')}\n className={`inline-flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium tabular-nums ${\n delta.direction === 'up'\n ? 'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400'\n : delta.direction === 'down'\n ? 'bg-rose-500/10 text-rose-600 dark:text-rose-400'\n : 'bg-muted text-muted-foreground'\n }`}\n >\n {delta.direction === 'up' ? (\n <ArrowUp className=\"size-3\" />\n ) : delta.direction === 'down' ? (\n <ArrowDown className=\"size-3\" />\n ) : null}\n {Math.abs(delta.percent)}%\n </span>\n )}\n </CardTitle>\n <div className=\"flex items-center gap-1 shrink-0\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7\"\n onClick={onWidthToggle}\n aria-label={\n config.width === 'full'\n ? t('dashboard:widget.shrink')\n : t('dashboard:widget.expand')\n }\n >\n {config.width === 'full' ? (\n <Minimize2 className=\"size-3.5\" />\n ) : (\n <Maximize2 className=\"size-3.5\" />\n )}\n </Button>\n {data?.sql && (\n <Button\n variant={showSql ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"size-7\"\n onClick={() => setShowSql((v) => !v)}\n aria-label={t('dashboard:widget.toggleSql')}\n >\n <Code className=\"size-3.5\" />\n </Button>\n )}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7\"\n onClick={() => refetch()}\n disabled={isFetching}\n aria-label={t('common:refresh')}\n >\n <RefreshCw className={`size-3.5 ${isFetching ? 'animate-spin' : ''}`} />\n </Button>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7\"\n aria-label={t('common:openMenu')}\n >\n <MoreHorizontal className=\"size-3.5\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={onEdit}>\n <Pencil className=\"size-4 mr-2\" />\n {t('chart:editChart')}\n </DropdownMenuItem>\n {!isKpi && (\n <DropdownMenuItem onClick={() => setColorsOpen(true)}>\n <Palette className=\"size-4 mr-2\" />\n {t('dashboard:widget.editColors')}\n </DropdownMenuItem>\n )}\n {onMove && (\n <DropdownMenuItem onClick={onMove}>\n <FolderSymlink className=\"size-4 mr-2\" />\n {t('chart:moveToGroup')}\n </DropdownMenuItem>\n )}\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={onDelete}\n className=\"text-destructive focus:text-destructive\"\n >\n <Trash2 className=\"size-4 mr-2\" />\n {t('chart:deleteChart')}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </CardHeader>\n\n <CardContent className=\"flex-1 p-3 pt-0 space-y-3 sm:p-6 sm:pt-0\">\n {/* Toolbar — quick filters + step + range + window display, all in one\n row. Hidden for unsupported adapters because changing knobs would\n have no effect. Quick filters apply immediately on change. */}\n {!unsupported && (\n <div className=\"flex flex-wrap items-center gap-2 text-xs text-muted-foreground\">\n {quickFilterPaths.length > 0 && resourceConfig &&\n quickFilterPaths.map((path) => {\n const prop = resourceConfig.properties.find((p) => p.path === path)\n if (!prop) return null\n return (\n <QuickFilterInput\n key={path}\n property={prop}\n placeholder={prop.label}\n value={config.filters[path] ?? ''}\n onChange={(v) => applyQuickFilter(path, v)}\n />\n )\n })}\n {!isKpi && (\n <Select\n value={config.step === 'all' ? 'day' : config.step}\n onValueChange={(v) => onStepChange(v as AggregationStep)}\n >\n <SelectTrigger\n className=\"h-8 px-2 text-xs w-auto\"\n aria-label={t('chart:step')}\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {STEPS.map((s) => (\n <SelectItem key={s} value={s}>\n {t(`chart:step${cap(s)}`)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )}\n <Select\n value={config.timeRange.preset}\n onValueChange={(v) => onPresetChange(v as TimeRangePreset)}\n >\n <SelectTrigger\n className=\"h-8 px-2 text-xs w-auto\"\n aria-label={t('dashboard:builder.range')}\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {PRESETS.map((p) => (\n <SelectItem key={p} value={p}>\n {t(`dashboard:range.${p}`)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {config.timeRange.preset === 'custom' ? (\n <>\n <DatePicker\n value={draftFrom}\n onChange={setDraftFrom}\n ariaLabel={t('common:from')}\n openCalendarLabel={t('common:openCalendar')}\n className=\"w-[130px]\"\n inputClassName=\"h-8 text-xs\"\n />\n <span className=\"text-muted-foreground\">—</span>\n <DatePicker\n value={draftTo}\n onChange={setDraftTo}\n ariaLabel={t('common:to')}\n openCalendarLabel={t('common:openCalendar')}\n className=\"w-[130px]\"\n inputClassName=\"h-8 text-xs\"\n />\n <Button\n size=\"sm\"\n className=\"h-8 px-3 shrink-0\"\n onClick={applyCustomRange}\n disabled={!draftFrom || !draftTo}\n aria-label={t('common:apply')}\n >\n <Check className=\"size-3.5 mr-1\" />\n {t('common:apply')}\n </Button>\n </>\n ) : (\n <span className=\"ml-auto tabular-nums\">\n {range.from} — {range.to}\n </span>\n )}\n </div>\n )}\n\n {/* Truncation warning — adapter capped the scan, so the chart reflects\n only a subset of the window. Hidden while loading / unsupported. */}\n {!unsupported && !isError && data?.truncated && (\n <div className=\"flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400\">\n <AlertTriangle className=\"size-3.5 mt-0.5 shrink-0\" />\n <span>{t('dashboard:widget.truncatedWarning')}</span>\n </div>\n )}\n\n {/* Body */}\n {isLoading ? (\n <Skeleton className={`${heightClass} w-full rounded-md`} />\n ) : isError ? (\n <div\n className={`flex items-center justify-center text-sm text-muted-foreground ${heightClass}`}\n >\n {t('chart:loadError')}\n </div>\n ) : unsupported ? (\n <div\n className={`flex items-center justify-center text-center text-sm text-muted-foreground px-4 ${heightClass}`}\n >\n {t('dashboard:widget.unsupported')}\n </div>\n ) : isKpi ? (\n <KpiBody\n data={data}\n transform={config.transform}\n formatNumber={valueFormatter}\n labels={kpiLabels(t)}\n />\n ) : (\n <TimeSeriesChart\n series={chartSeries}\n height={320}\n visualisation={config.visualisation === 'kpi' ? undefined : config.visualisation}\n tickFormatter={makeTickFormatter(renderStep, locale)}\n labelFormatter={makeLabelFormatter(renderStep, locale)}\n valueFormatter={valueFormatter}\n axisValueFormatter={axisValueFormatter}\n labels={{\n noData: t('chart:noData'),\n showAll: t('dashboard:widget.showAll'),\n hideAll: t('dashboard:widget.hideAll'),\n }}\n />\n )}\n\n {/* Captured SQL — only when the user toggled and server returned it. */}\n {data?.sql && showSql && (\n <div className=\"relative\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute top-1 right-1 size-6\"\n onClick={() => {\n void navigator.clipboard.writeText(data.sql ?? '')\n setSqlCopied(true)\n setTimeout(() => setSqlCopied(false), 2000)\n }}\n aria-label={sqlCopied ? t('common:copied') : t('common:copy')}\n >\n {sqlCopied\n ? <Check className=\"size-3 text-green-500\" />\n : <Copy className=\"size-3\" />}\n </Button>\n <pre className=\"text-[11px] leading-snug bg-muted/50 border border-border rounded-md p-2 pr-8 overflow-x-auto whitespace-pre\">\n {data.sql}\n </pre>\n </div>\n )}\n </CardContent>\n\n {colorsOpen && (\n <ChartSeriesColorsDialog\n items={colorItems}\n onSave={saveSeriesColors}\n onClose={() => setColorsOpen(false)}\n />\n )}\n </Card>\n )\n}\n\n// ── Helpers ──────────────────────────────────────────────────────────────\n\nconst cap = (s: string): string => s.charAt(0).toUpperCase() + s.slice(1)\n\nconst QF_NONE = '__none__'\n\n/** Compact inline filter input — label is passed as placeholder so no\n * extra row is needed. Matches the `h-7 text-xs` sizing of toolbar controls. */\nfunction QuickFilterInput({\n property,\n placeholder,\n value,\n onChange,\n}: {\n property: PropertyJSON\n placeholder?: string\n value: string\n onChange(next: string): void\n}): React.ReactElement {\n const ph = placeholder ?? property.label\n if (property.reference) {\n return (\n <div className=\"w-36\">\n <ReferenceCombobox\n referenceResourceId={property.reference}\n value={value || null}\n onChange={(next) => onChange(next == null ? '' : String(next))}\n placeholder={ph}\n className=\"h-8 text-xs\"\n />\n </div>\n )\n }\n if (property.availableValues && property.availableValues.length > 0) {\n return (\n <Select\n value={value || QF_NONE}\n onValueChange={(v) => onChange(v === QF_NONE ? '' : v)}\n >\n <SelectTrigger className=\"h-8 px-2 text-xs w-36\">\n <SelectValue placeholder={ph} />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={QF_NONE}>{ph}</SelectItem>\n {property.availableValues.map((opt) => (\n <SelectItem key={opt.value} value={opt.value}>{opt.label}</SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n }\n if (property.type === 'boolean') {\n return (\n <Select\n value={value || QF_NONE}\n onValueChange={(v) => onChange(v === QF_NONE ? '' : v)}\n >\n <SelectTrigger className=\"h-8 px-2 text-xs w-36\">\n <SelectValue placeholder={ph} />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={QF_NONE}>{ph}</SelectItem>\n <SelectItem value=\"true\">true</SelectItem>\n <SelectItem value=\"false\">false</SelectItem>\n </SelectContent>\n </Select>\n )\n }\n const isNumeric =\n property.type === 'number' || property.type === 'float' || property.type === 'currency'\n return (\n <Input\n type={isNumeric ? 'number' : 'text'}\n className=\"h-8 px-2 text-xs w-36\"\n value={value}\n placeholder={ph}\n onChange={(e) => onChange(e.target.value)}\n />\n )\n}\n\n/**\n * Zero-fill every series across the resolved date range and re-tag each\n * with its display label (so legend shows \"Total\" / \"Other\" / actual\n * groupBy values rather than the wire-format internal keys).\n */\nfunction prepareSeries(\n series: ReadonlyArray<TimeSeriesSeries>,\n range: { from: string; to: string },\n step: AggregationStep,\n labelFor: (key: string) => string,\n): { key: string; label: string; points: { date: string; value: number }[] }[] {\n const filled = fillTimeSeries(\n series.map((s) => ({ key: s.key, points: s.points })),\n range.from,\n range.to,\n step as Exclude<AggregationStep, 'all'> | 'all',\n )\n return filled.map((s) => ({\n key: s.key,\n label: labelFor(s.key),\n points: [...s.points],\n }))\n}\n\ninterface KpiBodyProps {\n data: { series: ReadonlyArray<TimeSeriesSeries>; previous?: ReadonlyArray<TimeSeriesSeries> } | undefined\n transform: ReadonlyArray<ChartTransformStep>\n formatNumber: (n: number) => string\n labels: {\n noData: string\n deltaUp: string\n deltaDown: string\n deltaFlat: string\n previousPeriod: string\n }\n}\n\n/** KPI mode summarises the single-bucket response to one scalar. The value\n * transform applies to both windows so the delta stays consistent. */\nfunction KpiBody({ data, transform, formatNumber, labels }: KpiBodyProps): React.ReactElement {\n const raw = sumAll(data?.series)\n const rawPrev = sumAll(data?.previous)\n const value = raw == null ? raw : applyTransform(raw, transform)\n const prev = rawPrev == null ? rawPrev : applyTransform(rawPrev, transform)\n return (\n <KpiCard\n value={value}\n previousValue={prev}\n formatNumber={formatNumber}\n labels={labels}\n />\n )\n}\n\nfunction sumAll(series: ReadonlyArray<TimeSeriesSeries> | undefined): number | null {\n if (!series || series.length === 0) return null\n let total = 0\n for (const s of series) for (const p of s.points) total += p.value\n return total\n}\n\nfunction kpiLabels(t: (key: string) => string): {\n noData: string\n deltaUp: string\n deltaDown: string\n deltaFlat: string\n previousPeriod: string\n} {\n return {\n noData: t('chart:noData'),\n deltaUp: t('dashboard:widget.deltaUp'),\n deltaDown: t('dashboard:widget.deltaDown'),\n deltaFlat: t('dashboard:widget.deltaFlat'),\n previousPeriod: t('dashboard:widget.previousPeriod'),\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chevrons-up-down-y29_Sm-3.js","names":[],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n];\nconst ChevronsUpDown = createLucideIcon(\"chevrons-up-down\", __iconNode);\n\nexport { __iconNode, ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAiB,EAAiB,mBAAoB,CAH1D,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAE,EAAG,eAAgB,IAAK,QAAS,CAAC,CAEa,CAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"circle-alert-D1sKnXtO.js","names":[],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/circle-alert.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAcA,IAAM,EAAc,EAAiB,eAAgB,CAJnD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAS,CAAC,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,QAAS,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,CAElB,CAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"clock-B9qbSr_k.js","names":["__iconNode"],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/clock.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.mjs.map\n"],"x_google_ignoreList":[0,1],"mappings":"mDAaA,IAAM,EAAa,EAAiB,cAAeA,CAHjD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAEGA,CAAU,ECAvD,EAAQ,EAAiB,QAAS,CAHtC,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,QAAS,CAAC,CAEN,CAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-BAXXxf0P.js","names":["Y","k","B","K","setRef","React","count","React","useLayoutEffect","getElementRef","React","PORTAL_NAME","PortalPrimitive","RemoveScroll","Fragment","ae","H","D","G","w.Root","w.Portal","w.Overlay","w.Content"],"sources":["../../../../../node_modules/.bun/cmdk@1.1.1+c32617ced709d283/node_modules/cmdk/dist/chunk-NZJY6EH4.mjs","../../../../../node_modules/.bun/@radix-ui+primitive@1.1.5/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-compose-refs@1.1.3+03aa47d54245a271/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-context@1.2.0+03aa47d54245a271/node_modules/@radix-ui/react-context/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-use-layout-effect@1.1.2+03aa47d54245a271/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-id@1.1.2+03aa47d54245a271/node_modules/@radix-ui/react-id/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-use-controllable-state@1.2.3+03aa47d54245a271/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-slot@1.3.0+03aa47d54245a271/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-primitive@2.1.7+c32617ced709d283/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-use-callback-ref@1.1.2+03aa47d54245a271/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-dismissable-layer@1.1.15+c32617ced709d283/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-focus-scope@1.1.12+c32617ced709d283/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-portal@1.1.13+c32617ced709d283/node_modules/@radix-ui/react-portal/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-presence@1.1.7+c32617ced709d283/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-focus-guards@1.1.4+03aa47d54245a271/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-dialog@1.1.19+c32617ced709d283/node_modules/@radix-ui/react-dialog/dist/index.mjs","../../../../../node_modules/.bun/cmdk@1.1.1+c32617ced709d283/node_modules/cmdk/dist/index.mjs","../../../../ui/src/components/command.tsx"],"sourcesContent":["var U=1,Y=.9,H=.8,J=.17,p=.1,u=.999,$=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(_,C,h,P,A,f,O){if(f===C.length)return A===_.length?U:k;var T=`${A},${f}`;if(O[T]!==void 0)return O[T];for(var L=P.charAt(f),c=h.indexOf(L,A),S=0,E,N,R,M;c>=0;)E=G(_,C,h,P,c+1,f+1,O),E>S&&(c===A?E*=U:m.test(_.charAt(c-1))?(E*=H,R=_.slice(A,c-1).match(B),R&&A>0&&(E*=Math.pow(u,R.length))):K.test(_.charAt(c-1))?(E*=Y,M=_.slice(A,c-1).match(X),M&&A>0&&(E*=Math.pow(u,M.length))):(E*=J,A>0&&(E*=Math.pow(u,c-A))),_.charAt(c)!==C.charAt(f)&&(E*=$)),(E<p&&h.charAt(c-1)===P.charAt(f+1)||P.charAt(f+1)===P.charAt(f)&&h.charAt(c-1)!==P.charAt(f))&&(N=G(_,C,h,P,c+1,f+2,O),N*p>E&&(E=N*p)),E>S&&(S=E),c=h.indexOf(L,c+1);return O[T]=S,S}function D(_){return _.toLowerCase().replace(X,\" \")}function W(_,C,h){return _=h&&h.length>0?`${_+\" \"+h.join(\" \")}`:_,G(_,C,D(_),D(C),0,0,{})}export{W as a};\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = (props) => \"child\" in props ? props.children(props.child) : props.children;\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = (slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!React.isValidElement(child2)) return null;\n return React.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return React.isValidElement(child) ? child : null;\n};\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nvar createSlotError = (ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n};\nvar createSlottableError = (ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n};\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set(),\n // Outside elements that belong to a layer's own dismiss affordance (eg, a\n // dialog overlay). Pressing them should dismiss the layer regardless of\n // whether or not they stop propagation.\n //\n // See https://github.com/radix-ui/primitives/issues/3346\n dismissableSurfaces: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n deferPointerDownOutside = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, setNode);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = highestLayerWithOutsidePointerEventsDisabled ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled) : -1;\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const isDeferredPointerDownOutsideRef = React.useRef(false);\n const pointerDownOutside = usePointerDownOutside(\n (event) => {\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n },\n {\n ownerDocument,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces: context.dismissableSurfaces,\n shouldHandlePointerDownOutside: React.useCallback(\n (target) => {\n if (!(target instanceof Node)) {\n return false;\n }\n const isPointerDownOnBranch = [...context.branches].some(\n (branch) => branch.contains(target)\n );\n return isPointerEventsEnabled && !isPointerDownOnBranch;\n },\n [context.branches, isPointerEventsEnabled]\n )\n }\n );\n const focusOutside = useFocusOutside((event) => {\n if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) {\n return;\n }\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const isHighestLayer = node ? index === layers.length - 1 : false;\n const handleKeyDown = useCallbackRef((event) => {\n if (event.key !== \"Escape\") {\n return;\n }\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n React.useEffect(() => {\n if (!isHighestLayer) {\n return;\n }\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [ownerDocument, isHighestLayer, handleKeyDown]);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents) {\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction useDismissableLayerSurface() {\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n React.useEffect(() => {\n if (!node) {\n return;\n }\n context.dismissableSurfaces.add(node);\n return () => {\n context.dismissableSurfaces.delete(node);\n };\n }, [node, context.dismissableSurfaces]);\n return setNode;\n}\nvar IS_TRUE = () => true;\nfunction usePointerDownOutside(onPointerDownOutside, args) {\n const {\n ownerDocument = globalThis?.document,\n deferPointerDownOutside = false,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside = IS_TRUE\n } = args;\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const isPointerDownOutsideRef = React.useRef(false);\n const interceptedOutsideInteractionEventsRef = React.useRef(/* @__PURE__ */ new Map());\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n function resetOutsideInteraction() {\n isPointerDownOutsideRef.current = false;\n isDeferredPointerDownOutsideRef.current = false;\n interceptedOutsideInteractionEventsRef.current.clear();\n }\n function isOutsideInteractionIntercepted() {\n return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);\n }\n function handleInteractionCapture(event) {\n if (!isPointerDownOutsideRef.current) {\n return;\n }\n const target = event.target;\n const isDismissableSurface = target instanceof Node && [...dismissableSurfaces].some((surface) => surface.contains(target));\n if (!isDismissableSurface) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, true);\n }\n if (event.type === \"click\") {\n window.setTimeout(() => {\n if (isPointerDownOutsideRef.current) {\n handleClickRef.current();\n }\n }, 0);\n }\n }\n function handleInteractionBubble(event) {\n if (isPointerDownOutsideRef.current) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, false);\n }\n }\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();\n resetOutsideInteraction();\n if (!wasOutsideInteractionIntercepted) {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n if (!shouldHandlePointerDownOutside(event.target)) {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n resetOutsideInteraction();\n isPointerInsideReactTreeRef.current = false;\n return;\n }\n const eventDetail = { originalEvent: event };\n isPointerDownOutsideRef.current = true;\n isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;\n interceptedOutsideInteractionEventsRef.current.clear();\n if (!deferPointerDownOutside || event.button !== 0) {\n handleAndDispatchPointerDownOutsideEvent2();\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n resetOutsideInteraction();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const outsideInteractionEvents = [\n \"pointerup\",\n \"mousedown\",\n \"mouseup\",\n \"touchstart\",\n \"touchend\",\n \"click\"\n ];\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.addEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.addEventListener(eventName, handleInteractionBubble);\n }\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.removeEventListener(eventName, handleInteractionBubble);\n }\n };\n }, [\n ownerDocument,\n handlePointerDownOutside,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root,\n useDismissableLayerSurface\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, setContainer);\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n const canUseCheckVisibility = typeof container.checkVisibility === \"function\" && container.checkVisibility({ checkVisibilityCSS: true });\n for (const element of elements) {\n const hidden = canUseCheckVisibility ? !element.checkVisibility({ checkVisibilityCSS: true }) : isHidden(element, { upTo: container });\n if (!hidden) {\n return element;\n }\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useStableComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const mountAnimationNameRef = React2.useRef(void 0);\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n if (state === \"mounted\") {\n prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);\n mountAnimationNameRef.current = void 0;\n } else {\n prevAnimationNameRef.current = \"none\";\n }\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n mountAnimationNameRef.current = currentAnimationName;\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) {\n const styles = getComputedStyle(node2);\n stylesRef.current = styles;\n mountAnimationNameRef.current = getAnimationName(styles);\n } else {\n stylesRef.current = null;\n }\n setNode(node2);\n }, [])\n };\n}\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction useStableComposedRefs(...refs) {\n const refsRef = React2.useRef(refs);\n refsRef.current = refs;\n return React2.useCallback((node) => {\n const currentRefs = refsRef.current;\n let hasCleanup = false;\n const cleanups = currentRefs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(currentRefs[i], null);\n }\n }\n };\n }\n }, []);\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nvar guards = null;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n if (!guards) {\n guards = { start: createFocusGuard(), end: createFocusGuard() };\n }\n const { start, end } = guards;\n if (document.body.firstElementChild !== start) {\n document.body.insertAdjacentElement(\"afterbegin\", start);\n }\n if (document.body.lastElementChild !== end) {\n document.body.insertAdjacentElement(\"beforeend\", end);\n }\n count++;\n return () => {\n if (count === 1) {\n guards?.start.remove();\n guards?.end.remove();\n guards = null;\n }\n count = Math.max(0, count - 1);\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer, useDismissableLayerSurface } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n const registerDismissableSurface = useDismissableLayerSurface();\n const composedRefs = useComposedRefs(forwardedRef, registerDismissableSurface);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: composedRefs,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n useFocusGuards();\n return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: forwardedRef,\n deferPointerDownOutside: true,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ) });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nvar WarningProvider = (props) => {\n return props.children;\n};\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nexport {\n DialogClose as Close,\n DialogContent as Content,\n DialogDescription as Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n DialogOverlay as Overlay,\n DialogPortal as Portal,\n Dialog as Root,\n DialogTitle as Title,\n DialogTrigger as Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";import{a as ae}from\"./chunk-NZJY6EH4.mjs\";import*as w from\"@radix-ui/react-dialog\";import*as t from\"react\";import{Primitive as D}from\"@radix-ui/react-primitive\";import{useId as H}from\"@radix-ui/react-id\";import{composeRefs as G}from\"@radix-ui/react-compose-refs\";var N='[cmdk-group=\"\"]',Y='[cmdk-group-items=\"\"]',be='[cmdk-group-heading=\"\"]',le='[cmdk-item=\"\"]',ce=`${le}:not([aria-disabled=\"true\"])`,Z=\"cmdk-item-select\",T=\"data-value\",Re=(r,o,n)=>ae(r,o,n),ue=t.createContext(void 0),K=()=>t.useContext(ue),de=t.createContext(void 0),ee=()=>t.useContext(de),fe=t.createContext(void 0),me=t.forwardRef((r,o)=>{let n=L(()=>{var e,a;return{search:\"\",value:(a=(e=r.value)!=null?e:r.defaultValue)!=null?a:\"\",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),u=L(()=>new Set),c=L(()=>new Map),d=L(()=>new Map),f=L(()=>new Set),p=pe(r),{label:b,children:m,value:R,onValueChange:x,filter:C,shouldFilter:S,loop:A,disablePointerSelection:ge=!1,vimBindings:j=!0,...O}=r,$=H(),q=H(),_=H(),I=t.useRef(null),v=ke();k(()=>{if(R!==void 0){let e=R.trim();n.current.value=e,E.emit()}},[R]),k(()=>{v(6,ne)},[]);let E=t.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>n.current,setState:(e,a,s)=>{var i,l,g,y;if(!Object.is(n.current[e],a)){if(n.current[e]=a,e===\"search\")J(),z(),v(1,W);else if(e===\"value\"){if(document.activeElement.hasAttribute(\"cmdk-input\")||document.activeElement.hasAttribute(\"cmdk-root\")){let h=document.getElementById(_);h?h.focus():(i=document.getElementById($))==null||i.focus()}if(v(7,()=>{var h;n.current.selectedItemId=(h=M())==null?void 0:h.id,E.emit()}),s||v(5,ne),((l=p.current)==null?void 0:l.value)!==void 0){let h=a!=null?a:\"\";(y=(g=p.current).onValueChange)==null||y.call(g,h);return}}E.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),U=t.useMemo(()=>({value:(e,a,s)=>{var i;a!==((i=d.current.get(e))==null?void 0:i.value)&&(d.current.set(e,{value:a,keywords:s}),n.current.filtered.items.set(e,te(a,s)),v(2,()=>{z(),E.emit()}))},item:(e,a)=>(u.current.add(e),a&&(c.current.has(a)?c.current.get(a).add(e):c.current.set(a,new Set([e]))),v(3,()=>{J(),z(),n.current.value||W(),E.emit()}),()=>{d.current.delete(e),u.current.delete(e),n.current.filtered.items.delete(e);let s=M();v(4,()=>{J(),(s==null?void 0:s.getAttribute(\"id\"))===e&&W(),E.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:b||r[\"aria-label\"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:$,inputId:_,labelId:q,listInnerRef:I}),[]);function te(e,a){var i,l;let s=(l=(i=p.current)==null?void 0:i.filter)!=null?l:Re;return e?s(e,n.current.search,a):0}function z(){if(!n.current.search||p.current.shouldFilter===!1)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach(i=>{let l=c.current.get(i),g=0;l.forEach(y=>{let h=e.get(y);g=Math.max(h,g)}),a.push([i,g])});let s=I.current;V().sort((i,l)=>{var h,F;let g=i.getAttribute(\"id\"),y=l.getAttribute(\"id\");return((h=e.get(y))!=null?h:0)-((F=e.get(g))!=null?F:0)}).forEach(i=>{let l=i.closest(Y);l?l.appendChild(i.parentElement===l?i:i.closest(`${Y} > *`)):s.appendChild(i.parentElement===s?i:i.closest(`${Y} > *`))}),a.sort((i,l)=>l[1]-i[1]).forEach(i=>{var g;let l=(g=I.current)==null?void 0:g.querySelector(`${N}[${T}=\"${encodeURIComponent(i[0])}\"]`);l==null||l.parentElement.appendChild(l)})}function W(){let e=V().find(s=>s.getAttribute(\"aria-disabled\")!==\"true\"),a=e==null?void 0:e.getAttribute(T);E.setState(\"value\",a||void 0)}function J(){var a,s,i,l;if(!n.current.search||p.current.shouldFilter===!1){n.current.filtered.count=u.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let g of u.current){let y=(s=(a=d.current.get(g))==null?void 0:a.value)!=null?s:\"\",h=(l=(i=d.current.get(g))==null?void 0:i.keywords)!=null?l:[],F=te(y,h);n.current.filtered.items.set(g,F),F>0&&e++}for(let[g,y]of c.current)for(let h of y)if(n.current.filtered.items.get(h)>0){n.current.filtered.groups.add(g);break}n.current.filtered.count=e}function ne(){var a,s,i;let e=M();e&&(((a=e.parentElement)==null?void 0:a.firstChild)===e&&((i=(s=e.closest(N))==null?void 0:s.querySelector(be))==null||i.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function M(){var e;return(e=I.current)==null?void 0:e.querySelector(`${le}[aria-selected=\"true\"]`)}function V(){var e;return Array.from(((e=I.current)==null?void 0:e.querySelectorAll(ce))||[])}function X(e){let s=V()[e];s&&E.setState(\"value\",s.getAttribute(T))}function Q(e){var g;let a=M(),s=V(),i=s.findIndex(y=>y===a),l=s[i+e];(g=p.current)!=null&&g.loop&&(l=i+e<0?s[s.length-1]:i+e===s.length?s[0]:s[i+e]),l&&E.setState(\"value\",l.getAttribute(T))}function re(e){let a=M(),s=a==null?void 0:a.closest(N),i;for(;s&&!i;)s=e>0?we(s,N):De(s,N),i=s==null?void 0:s.querySelector(ce);i?E.setState(\"value\",i.getAttribute(T)):Q(e)}let oe=()=>X(V().length-1),ie=e=>{e.preventDefault(),e.metaKey?oe():e.altKey?re(1):Q(1)},se=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?re(-1):Q(-1)};return t.createElement(D.div,{ref:o,tabIndex:-1,...O,\"cmdk-root\":\"\",onKeyDown:e=>{var s;(s=O.onKeyDown)==null||s.call(O,e);let a=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||a))switch(e.key){case\"n\":case\"j\":{j&&e.ctrlKey&&ie(e);break}case\"ArrowDown\":{ie(e);break}case\"p\":case\"k\":{j&&e.ctrlKey&&se(e);break}case\"ArrowUp\":{se(e);break}case\"Home\":{e.preventDefault(),X(0);break}case\"End\":{e.preventDefault(),oe();break}case\"Enter\":{e.preventDefault();let i=M();if(i){let l=new Event(Z);i.dispatchEvent(l)}}}}},t.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:U.inputId,id:U.labelId,style:Te},b),B(r,e=>t.createElement(de.Provider,{value:E},t.createElement(ue.Provider,{value:U},e))))}),he=t.forwardRef((r,o)=>{var _,I;let n=H(),u=t.useRef(null),c=t.useContext(fe),d=K(),f=pe(r),p=(I=(_=f.current)==null?void 0:_.forceMount)!=null?I:c==null?void 0:c.forceMount;k(()=>{if(!p)return d.item(n,c==null?void 0:c.id)},[p]);let b=ve(n,u,[r.value,r.children,u],r.keywords),m=ee(),R=P(v=>v.value&&v.value===b.current),x=P(v=>p||d.filter()===!1?!0:v.search?v.filtered.items.get(n)>0:!0);t.useEffect(()=>{let v=u.current;if(!(!v||r.disabled))return v.addEventListener(Z,C),()=>v.removeEventListener(Z,C)},[x,r.onSelect,r.disabled]);function C(){var v,E;S(),(E=(v=f.current).onSelect)==null||E.call(v,b.current)}function S(){m.setState(\"value\",b.current,!0)}if(!x)return null;let{disabled:A,value:ge,onSelect:j,forceMount:O,keywords:$,...q}=r;return t.createElement(D.div,{ref:G(u,o),...q,id:n,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":!!A,\"aria-selected\":!!R,\"data-disabled\":!!A,\"data-selected\":!!R,onPointerMove:A||d.getDisablePointerSelection()?void 0:S,onClick:A?void 0:C},r.children)}),Ee=t.forwardRef((r,o)=>{let{heading:n,children:u,forceMount:c,...d}=r,f=H(),p=t.useRef(null),b=t.useRef(null),m=H(),R=K(),x=P(S=>c||R.filter()===!1?!0:S.search?S.filtered.groups.has(f):!0);k(()=>R.group(f),[]),ve(f,p,[r.value,r.heading,b]);let C=t.useMemo(()=>({id:f,forceMount:c}),[c]);return t.createElement(D.div,{ref:G(p,o),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:x?void 0:!0},n&&t.createElement(\"div\",{ref:b,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:m},n),B(r,S=>t.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":n?m:void 0},t.createElement(fe.Provider,{value:C},S))))}),ye=t.forwardRef((r,o)=>{let{alwaysRender:n,...u}=r,c=t.useRef(null),d=P(f=>!f.search);return!n&&!d?null:t.createElement(D.div,{ref:G(c,o),...u,\"cmdk-separator\":\"\",role:\"separator\"})}),Se=t.forwardRef((r,o)=>{let{onValueChange:n,...u}=r,c=r.value!=null,d=ee(),f=P(m=>m.search),p=P(m=>m.selectedItemId),b=K();return t.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),t.createElement(D.input,{ref:o,...u,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":b.listId,\"aria-labelledby\":b.labelId,\"aria-activedescendant\":p,id:b.inputId,type:\"text\",value:c?r.value:f,onChange:m=>{c||d.setState(\"search\",m.target.value),n==null||n(m.target.value)}})}),Ce=t.forwardRef((r,o)=>{let{children:n,label:u=\"Suggestions\",...c}=r,d=t.useRef(null),f=t.useRef(null),p=P(m=>m.selectedItemId),b=K();return t.useEffect(()=>{if(f.current&&d.current){let m=f.current,R=d.current,x,C=new ResizeObserver(()=>{x=requestAnimationFrame(()=>{let S=m.offsetHeight;R.style.setProperty(\"--cmdk-list-height\",S.toFixed(1)+\"px\")})});return C.observe(m),()=>{cancelAnimationFrame(x),C.unobserve(m)}}},[]),t.createElement(D.div,{ref:G(d,o),...c,\"cmdk-list\":\"\",role:\"listbox\",tabIndex:-1,\"aria-activedescendant\":p,\"aria-label\":u,id:b.listId},B(r,m=>t.createElement(\"div\",{ref:G(f,b.listInnerRef),\"cmdk-list-sizer\":\"\"},m)))}),xe=t.forwardRef((r,o)=>{let{open:n,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return t.createElement(w.Root,{open:n,onOpenChange:u},t.createElement(w.Portal,{container:f},t.createElement(w.Overlay,{\"cmdk-overlay\":\"\",className:c}),t.createElement(w.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},t.createElement(me,{ref:o,...p}))))}),Ie=t.forwardRef((r,o)=>P(u=>u.filtered.count===0)?t.createElement(D.div,{ref:o,...r,\"cmdk-empty\":\"\",role:\"presentation\"}):null),Pe=t.forwardRef((r,o)=>{let{progress:n,children:u,label:c=\"Loading...\",...d}=r;return t.createElement(D.div,{ref:o,...d,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":n,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":c},B(r,f=>t.createElement(\"div\",{\"aria-hidden\":!0},f)))}),_e=Object.assign(me,{List:Ce,Item:he,Input:Se,Group:Ee,Separator:ye,Dialog:xe,Empty:Ie,Loading:Pe});function we(r,o){let n=r.nextElementSibling;for(;n;){if(n.matches(o))return n;n=n.nextElementSibling}}function De(r,o){let n=r.previousElementSibling;for(;n;){if(n.matches(o))return n;n=n.previousElementSibling}}function pe(r){let o=t.useRef(r);return k(()=>{o.current=r}),o}var k=typeof window==\"undefined\"?t.useEffect:t.useLayoutEffect;function L(r){let o=t.useRef();return o.current===void 0&&(o.current=r()),o}function P(r){let o=ee(),n=()=>r(o.snapshot());return t.useSyncExternalStore(o.subscribe,n,n)}function ve(r,o,n,u=[]){let c=t.useRef(),d=K();return k(()=>{var b;let f=(()=>{var m;for(let R of n){if(typeof R==\"string\")return R.trim();if(typeof R==\"object\"&&\"current\"in R)return R.current?(m=R.current.textContent)==null?void 0:m.trim():c.current}})(),p=u.map(m=>m.trim());d.value(r,f,p),(b=o.current)==null||b.setAttribute(T,f),c.current=f}),c}var ke=()=>{let[r,o]=t.useState(),n=L(()=>new Map);return k(()=>{n.current.forEach(u=>u()),n.current=new Map},[r]),(u,c)=>{n.current.set(u,c),o({})}};function Me(r){let o=r.type;return typeof o==\"function\"?o(r.props):\"render\"in o?o.render(r.props):r}function B({asChild:r,children:o},n){return r&&t.isValidElement(o)?t.cloneElement(Me(o),{ref:o.ref},n(o.props.children)):n(o)}var Te={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};export{_e as Command,xe as CommandDialog,Ie as CommandEmpty,Ee as CommandGroup,Se as CommandInput,he as CommandItem,Ce as CommandList,Pe as CommandLoading,me as CommandRoot,ye as CommandSeparator,Re as defaultFilter,P as useCommandState};\n","import * as React from 'react'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { Dialog, DialogContent } from './dialog.js'\n\nexport const Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nexport const CommandDialog = ({\n children,\n ...props\n}: React.ComponentProps<typeof Dialog>): React.ReactElement => (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n)\n\nexport const CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex shrink-0 items-center border-b border-border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n))\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nexport const CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n // `min-h-0` so the list — not the search input above it — is what gives\n // way when the popover is height-capped to the visible viewport.\n className={cn(\n 'max-h-[300px] min-h-0 overscroll-contain overflow-y-auto overflow-x-hidden',\n className,\n )}\n {...props}\n />\n))\nCommandList.displayName = CommandPrimitive.List.displayName\n\nexport const CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nexport const CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n))\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nexport const CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border/40', className)} {...props} />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nexport const CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className,\n )}\n {...props}\n />\n))\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nexport const CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>): React.ReactElement => (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n)\nCommandShortcut.displayName = 'CommandShortcut'\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-5fb4qj-_.js","names":[],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/copy.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n];\nconst Copy = createLucideIcon(\"copy\", __iconNode);\n\nexport { __iconNode, Copy as default };\n//# sourceMappingURL=copy.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAO,EAAiB,OAAQ,CAHpC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACvF,CAAC,OAAQ,CAAE,EAAG,0DAA2D,IAAK,QAAS,CAAC,CAEpD,CAAU"}