@modern-admin/web 0.4.1 → 0.5.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 (285) hide show
  1. package/dist/standalone/assets/action-component-host-QVowRL_F.js +2 -0
  2. package/dist/standalone/assets/action-component-host-QVowRL_F.js.br +0 -0
  3. package/dist/standalone/assets/action-component-host-QVowRL_F.js.gz +0 -0
  4. package/dist/standalone/assets/{action-component-host-BrEZDHZt.js.map → action-component-host-QVowRL_F.js.map} +1 -1
  5. package/dist/standalone/assets/action-page-CET1s1MA.js +2 -0
  6. package/dist/standalone/assets/action-page-CET1s1MA.js.br +0 -0
  7. package/dist/standalone/assets/action-page-CET1s1MA.js.gz +0 -0
  8. package/dist/standalone/assets/{action-page-Bx7kzeK7.js.map → action-page-CET1s1MA.js.map} +1 -1
  9. package/dist/standalone/assets/ai-assistant-widget-pJHSP1PB.js +2 -0
  10. package/dist/standalone/assets/ai-assistant-widget-pJHSP1PB.js.br +0 -0
  11. package/dist/standalone/assets/ai-assistant-widget-pJHSP1PB.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-BbIXVrSu.js.map → ai-assistant-widget-pJHSP1PB.js.map} +1 -1
  13. package/dist/standalone/assets/audit-log-page-DoZPtbGo.js +2 -0
  14. package/dist/standalone/assets/audit-log-page-DoZPtbGo.js.br +0 -0
  15. package/dist/standalone/assets/audit-log-page-DoZPtbGo.js.gz +0 -0
  16. package/dist/standalone/assets/{audit-log-page-BoZh23oQ.js.map → audit-log-page-DoZPtbGo.js.map} +1 -1
  17. package/dist/standalone/assets/badge-8oeWEs3P.js +2 -0
  18. package/dist/standalone/assets/{badge-6nyM5Jft.js.map → badge-8oeWEs3P.js.map} +1 -1
  19. package/dist/standalone/assets/cache-page-CoKusfv-.js +2 -0
  20. package/dist/standalone/assets/cache-page-CoKusfv-.js.br +0 -0
  21. package/dist/standalone/assets/cache-page-CoKusfv-.js.gz +0 -0
  22. package/dist/standalone/assets/cache-page-CoKusfv-.js.map +1 -0
  23. package/dist/standalone/assets/calendar-DDv0Qalf.js +2 -0
  24. package/dist/standalone/assets/calendar-DDv0Qalf.js.br +0 -0
  25. package/dist/standalone/assets/calendar-DDv0Qalf.js.gz +0 -0
  26. package/dist/standalone/assets/{calendar-nvD_z7KQ.js.map → calendar-DDv0Qalf.js.map} +1 -1
  27. package/dist/standalone/assets/card-MNH_XK0V.js +2 -0
  28. package/dist/standalone/assets/card-MNH_XK0V.js.br +0 -0
  29. package/dist/standalone/assets/card-MNH_XK0V.js.gz +0 -0
  30. package/dist/standalone/assets/{card-4cS4uWCP.js.map → card-MNH_XK0V.js.map} +1 -1
  31. package/dist/standalone/assets/chart-widget-R2NG5T1y.js +2 -0
  32. package/dist/standalone/assets/chart-widget-R2NG5T1y.js.br +0 -0
  33. package/dist/standalone/assets/chart-widget-R2NG5T1y.js.gz +0 -0
  34. package/dist/standalone/assets/chart-widget-R2NG5T1y.js.map +1 -0
  35. package/dist/standalone/assets/command-Cw-hTtpk.js +2 -0
  36. package/dist/standalone/assets/command-Cw-hTtpk.js.br +0 -0
  37. package/dist/standalone/assets/command-Cw-hTtpk.js.gz +0 -0
  38. package/dist/standalone/assets/command-Cw-hTtpk.js.map +1 -0
  39. package/dist/standalone/assets/date-picker-DQ4XOgO6.js +2 -0
  40. package/dist/standalone/assets/date-picker-DQ4XOgO6.js.br +0 -0
  41. package/dist/standalone/assets/date-picker-DQ4XOgO6.js.gz +0 -0
  42. package/dist/standalone/assets/{date-picker-C4HcgidQ.js.map → date-picker-DQ4XOgO6.js.map} +1 -1
  43. package/dist/standalone/assets/dist-CmyV2PEd.js +2 -0
  44. package/dist/standalone/assets/dist-CmyV2PEd.js.br +0 -0
  45. package/dist/standalone/assets/dist-CmyV2PEd.js.gz +0 -0
  46. package/dist/standalone/assets/{dist-Dpg8xy_r.js.map → dist-CmyV2PEd.js.map} +1 -1
  47. package/dist/standalone/assets/dist-DI9XNddW.js +2 -0
  48. package/dist/standalone/assets/dist-DI9XNddW.js.br +0 -0
  49. package/dist/standalone/assets/dist-DI9XNddW.js.gz +0 -0
  50. package/dist/standalone/assets/{dist-BSbFjTlr.js.map → dist-DI9XNddW.js.map} +1 -1
  51. package/dist/standalone/assets/dist-jC1pK2zN.js +2 -0
  52. package/dist/standalone/assets/dist-jC1pK2zN.js.br +0 -0
  53. package/dist/standalone/assets/dist-jC1pK2zN.js.gz +0 -0
  54. package/dist/standalone/assets/{dist-BcL2U6dT.js.map → dist-jC1pK2zN.js.map} +1 -1
  55. package/dist/standalone/assets/edit-page-CVjik6T5.js +2 -0
  56. package/dist/standalone/assets/edit-page-CVjik6T5.js.br +0 -0
  57. package/dist/standalone/assets/edit-page-CVjik6T5.js.gz +0 -0
  58. package/dist/standalone/assets/{edit-page-CW7-FAPC.js.map → edit-page-CVjik6T5.js.map} +1 -1
  59. package/dist/standalone/assets/empty-DcETRWsu.js +2 -0
  60. package/dist/standalone/assets/empty-DcETRWsu.js.br +0 -0
  61. package/dist/standalone/assets/empty-DcETRWsu.js.gz +0 -0
  62. package/dist/standalone/assets/{empty-Cposcczv.js.map → empty-DcETRWsu.js.map} +1 -1
  63. package/dist/standalone/assets/floating-layer-DJGCYMex.js +2 -0
  64. package/dist/standalone/assets/floating-layer-DJGCYMex.js.br +0 -0
  65. package/dist/standalone/assets/floating-layer-DJGCYMex.js.gz +0 -0
  66. package/dist/standalone/assets/floating-layer-DJGCYMex.js.map +1 -0
  67. package/dist/standalone/assets/global-search-dialog-CT30gcRv.js +2 -0
  68. package/dist/standalone/assets/global-search-dialog-CT30gcRv.js.br +0 -0
  69. package/dist/standalone/assets/global-search-dialog-CT30gcRv.js.gz +0 -0
  70. package/dist/standalone/assets/{global-search-dialog-DLv_nIvM.js.map → global-search-dialog-CT30gcRv.js.map} +1 -1
  71. package/dist/standalone/assets/heavy-fields-ByzRCqe0.js +181 -0
  72. package/dist/standalone/assets/heavy-fields-ByzRCqe0.js.br +0 -0
  73. package/dist/standalone/assets/heavy-fields-ByzRCqe0.js.gz +0 -0
  74. package/dist/standalone/assets/{heavy-fields-BiCEgD2L.js.map → heavy-fields-ByzRCqe0.js.map} +1 -1
  75. package/dist/standalone/assets/home-page-B3WVGerG.js +3 -0
  76. package/dist/standalone/assets/home-page-B3WVGerG.js.br +0 -0
  77. package/dist/standalone/assets/home-page-B3WVGerG.js.gz +0 -0
  78. package/dist/standalone/assets/home-page-B3WVGerG.js.map +1 -0
  79. package/dist/standalone/assets/hooks-DHDUQgzs.js +186 -0
  80. package/dist/standalone/assets/hooks-DHDUQgzs.js.br +0 -0
  81. package/dist/standalone/assets/hooks-DHDUQgzs.js.gz +0 -0
  82. package/dist/standalone/assets/hooks-DHDUQgzs.js.map +1 -0
  83. package/dist/standalone/assets/icon-registry-O7MDzgTi.js +2 -0
  84. package/dist/standalone/assets/icon-registry-O7MDzgTi.js.br +0 -0
  85. package/dist/standalone/assets/icon-registry-O7MDzgTi.js.gz +0 -0
  86. package/dist/standalone/assets/icon-registry-O7MDzgTi.js.map +1 -0
  87. package/dist/standalone/assets/index-BvESJd1R.js +15 -0
  88. package/dist/standalone/assets/index-BvESJd1R.js.br +0 -0
  89. package/dist/standalone/assets/index-BvESJd1R.js.gz +0 -0
  90. package/dist/standalone/assets/index-BvESJd1R.js.map +1 -0
  91. package/dist/standalone/assets/index-DSYyF4Ah.css +2 -0
  92. package/dist/standalone/assets/index-DSYyF4Ah.css.br +0 -0
  93. package/dist/standalone/assets/index-DSYyF4Ah.css.gz +0 -0
  94. package/dist/standalone/assets/json-editor-DJ-yNmlx.js +2 -0
  95. package/dist/standalone/assets/json-editor-DJ-yNmlx.js.br +0 -0
  96. package/dist/standalone/assets/json-editor-DJ-yNmlx.js.gz +0 -0
  97. package/dist/standalone/assets/json-editor-DJ-yNmlx.js.map +1 -0
  98. package/dist/standalone/assets/property-renderer-DeykD9hp.js +7 -0
  99. package/dist/standalone/assets/property-renderer-DeykD9hp.js.br +0 -0
  100. package/dist/standalone/assets/property-renderer-DeykD9hp.js.gz +0 -0
  101. package/dist/standalone/assets/property-renderer-DeykD9hp.js.map +1 -0
  102. package/dist/standalone/assets/reference-BDP1QYCg.js +2 -0
  103. package/dist/standalone/assets/reference-BDP1QYCg.js.br +0 -0
  104. package/dist/standalone/assets/reference-BDP1QYCg.js.gz +0 -0
  105. package/dist/standalone/assets/reference-BDP1QYCg.js.map +1 -0
  106. package/dist/standalone/assets/revisions-button-CI74_D14.js +2 -0
  107. package/dist/standalone/assets/revisions-button-CI74_D14.js.br +0 -0
  108. package/dist/standalone/assets/revisions-button-CI74_D14.js.gz +0 -0
  109. package/dist/standalone/assets/{revisions-button-0WtL6bsZ.js.map → revisions-button-CI74_D14.js.map} +1 -1
  110. package/dist/standalone/assets/{richtext-render-DnVcQ34I.js → richtext-render-BHGG3eKV.js} +3 -3
  111. package/dist/standalone/assets/richtext-render-BHGG3eKV.js.br +0 -0
  112. package/dist/standalone/assets/richtext-render-BHGG3eKV.js.gz +0 -0
  113. package/dist/standalone/assets/{richtext-render-DnVcQ34I.js.map → richtext-render-BHGG3eKV.js.map} +1 -1
  114. package/dist/standalone/assets/select-BR1RMqsn.js +2 -0
  115. package/dist/standalone/assets/select-BR1RMqsn.js.br +0 -0
  116. package/dist/standalone/assets/select-BR1RMqsn.js.gz +0 -0
  117. package/dist/standalone/assets/select-BR1RMqsn.js.map +1 -0
  118. package/dist/standalone/assets/settings-page-CdIWVeh0.js +2 -0
  119. package/dist/standalone/assets/settings-page-CdIWVeh0.js.br +0 -0
  120. package/dist/standalone/assets/settings-page-CdIWVeh0.js.gz +0 -0
  121. package/dist/standalone/assets/{settings-page-DtguXLAP.js.map → settings-page-CdIWVeh0.js.map} +1 -1
  122. package/dist/standalone/assets/show-page-Dgw-9Pmn.js +2 -0
  123. package/dist/standalone/assets/show-page-Dgw-9Pmn.js.br +0 -0
  124. package/dist/standalone/assets/show-page-Dgw-9Pmn.js.gz +0 -0
  125. package/dist/standalone/assets/{show-page-Dnox2NwO.js.map → show-page-Dgw-9Pmn.js.map} +1 -1
  126. package/dist/standalone/assets/table-DzBSPeVH.js +2 -0
  127. package/dist/standalone/assets/table-DzBSPeVH.js.br +0 -0
  128. package/dist/standalone/assets/table-DzBSPeVH.js.gz +0 -0
  129. package/dist/standalone/assets/table-DzBSPeVH.js.map +1 -0
  130. package/dist/standalone/assets/tabs-Dr7UA219.js +2 -0
  131. package/dist/standalone/assets/tabs-Dr7UA219.js.br +0 -0
  132. package/dist/standalone/assets/tabs-Dr7UA219.js.gz +0 -0
  133. package/dist/standalone/assets/{tabs-DUS8e6dR.js.map → tabs-Dr7UA219.js.map} +1 -1
  134. package/dist/standalone/assets/textarea-T25SXcrC.js +2 -0
  135. package/dist/standalone/assets/{textarea-CX_0QVSz.js.map → textarea-T25SXcrC.js.map} +1 -1
  136. package/dist/standalone/assets/use-dashboard-charts-aymvhXUB.js +2 -0
  137. package/dist/standalone/assets/use-dashboard-charts-aymvhXUB.js.br +0 -0
  138. package/dist/standalone/assets/use-dashboard-charts-aymvhXUB.js.gz +0 -0
  139. package/dist/standalone/assets/{use-dashboard-charts-Cr3OUSL5.js.map → use-dashboard-charts-aymvhXUB.js.map} +1 -1
  140. package/dist/standalone/assets/useQueries-Dch5Ggjr.js +2 -0
  141. package/dist/standalone/assets/useQueries-Dch5Ggjr.js.br +0 -0
  142. package/dist/standalone/assets/useQueries-Dch5Ggjr.js.gz +0 -0
  143. package/dist/standalone/assets/useQueries-Dch5Ggjr.js.map +1 -0
  144. package/dist/standalone/assets/{user-directory-9COoW6AO.js → user-directory-C33bGZdb.js} +3 -3
  145. package/dist/standalone/assets/user-directory-C33bGZdb.js.br +0 -0
  146. package/dist/standalone/assets/user-directory-C33bGZdb.js.gz +0 -0
  147. package/dist/standalone/assets/{user-directory-9COoW6AO.js.map → user-directory-C33bGZdb.js.map} +1 -1
  148. package/dist/standalone/assets/{value-format-Cgau0meh.js → value-format-CLzWct9Y.js} +3 -3
  149. package/dist/standalone/assets/value-format-CLzWct9Y.js.br +0 -0
  150. package/dist/standalone/assets/value-format-CLzWct9Y.js.gz +0 -0
  151. package/dist/standalone/assets/{value-format-Cgau0meh.js.map → value-format-CLzWct9Y.js.map} +1 -1
  152. package/dist/standalone/assets/wizard-create-page-BtfveXmP.js +2 -0
  153. package/dist/standalone/assets/wizard-create-page-BtfveXmP.js.br +0 -0
  154. package/dist/standalone/assets/wizard-create-page-BtfveXmP.js.gz +0 -0
  155. package/dist/standalone/assets/{wizard-create-page-v2-Aw8Oj.js.map → wizard-create-page-BtfveXmP.js.map} +1 -1
  156. package/dist/standalone/assets/zod-N7mHo7BX.js +2 -0
  157. package/dist/standalone/assets/zod-N7mHo7BX.js.br +0 -0
  158. package/dist/standalone/assets/zod-N7mHo7BX.js.gz +0 -0
  159. package/dist/standalone/assets/{zod-BrelKLfy.js.map → zod-N7mHo7BX.js.map} +1 -1
  160. package/dist/standalone/index.html +10 -10
  161. package/dist/standalone/index.html.br +0 -0
  162. package/dist/standalone/index.html.gz +0 -0
  163. package/package.json +5 -5
  164. package/dist/standalone/assets/action-component-host-BrEZDHZt.js +0 -2
  165. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.br +0 -0
  166. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.gz +0 -0
  167. package/dist/standalone/assets/action-page-Bx7kzeK7.js +0 -2
  168. package/dist/standalone/assets/action-page-Bx7kzeK7.js.br +0 -0
  169. package/dist/standalone/assets/action-page-Bx7kzeK7.js.gz +0 -0
  170. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js +0 -2
  171. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.br +0 -0
  172. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.gz +0 -0
  173. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js +0 -2
  174. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.br +0 -0
  175. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.gz +0 -0
  176. package/dist/standalone/assets/badge-6nyM5Jft.js +0 -2
  177. package/dist/standalone/assets/calendar-nvD_z7KQ.js +0 -2
  178. package/dist/standalone/assets/calendar-nvD_z7KQ.js.br +0 -0
  179. package/dist/standalone/assets/calendar-nvD_z7KQ.js.gz +0 -0
  180. package/dist/standalone/assets/card-4cS4uWCP.js +0 -2
  181. package/dist/standalone/assets/card-4cS4uWCP.js.br +0 -0
  182. package/dist/standalone/assets/card-4cS4uWCP.js.gz +0 -0
  183. package/dist/standalone/assets/chart-widget-YeCL7jdB.js +0 -2
  184. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.br +0 -0
  185. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.gz +0 -0
  186. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.map +0 -1
  187. package/dist/standalone/assets/command-Sb0xL-se.js +0 -2
  188. package/dist/standalone/assets/command-Sb0xL-se.js.br +0 -0
  189. package/dist/standalone/assets/command-Sb0xL-se.js.gz +0 -0
  190. package/dist/standalone/assets/command-Sb0xL-se.js.map +0 -1
  191. package/dist/standalone/assets/date-picker-C4HcgidQ.js +0 -2
  192. package/dist/standalone/assets/date-picker-C4HcgidQ.js.br +0 -0
  193. package/dist/standalone/assets/date-picker-C4HcgidQ.js.gz +0 -0
  194. package/dist/standalone/assets/dist-BSbFjTlr.js +0 -2
  195. package/dist/standalone/assets/dist-BSbFjTlr.js.br +0 -0
  196. package/dist/standalone/assets/dist-BSbFjTlr.js.gz +0 -0
  197. package/dist/standalone/assets/dist-BcL2U6dT.js +0 -2
  198. package/dist/standalone/assets/dist-BcL2U6dT.js.br +0 -0
  199. package/dist/standalone/assets/dist-BcL2U6dT.js.gz +0 -0
  200. package/dist/standalone/assets/dist-Dpg8xy_r.js +0 -2
  201. package/dist/standalone/assets/dist-Dpg8xy_r.js.br +0 -0
  202. package/dist/standalone/assets/dist-Dpg8xy_r.js.gz +0 -0
  203. package/dist/standalone/assets/edit-page-CW7-FAPC.js +0 -2
  204. package/dist/standalone/assets/edit-page-CW7-FAPC.js.br +0 -0
  205. package/dist/standalone/assets/edit-page-CW7-FAPC.js.gz +0 -0
  206. package/dist/standalone/assets/empty-Cposcczv.js +0 -2
  207. package/dist/standalone/assets/empty-Cposcczv.js.br +0 -0
  208. package/dist/standalone/assets/empty-Cposcczv.js.gz +0 -0
  209. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js +0 -2
  210. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.br +0 -0
  211. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.gz +0 -0
  212. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js +0 -181
  213. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.br +0 -0
  214. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.gz +0 -0
  215. package/dist/standalone/assets/home-page-BSz1wGk0.js +0 -3
  216. package/dist/standalone/assets/home-page-BSz1wGk0.js.br +0 -0
  217. package/dist/standalone/assets/home-page-BSz1wGk0.js.gz +0 -0
  218. package/dist/standalone/assets/home-page-BSz1wGk0.js.map +0 -1
  219. package/dist/standalone/assets/icon-registry-BQU4fIc4.js +0 -2
  220. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.br +0 -0
  221. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.gz +0 -0
  222. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.map +0 -1
  223. package/dist/standalone/assets/index-95cwJ2RY.css +0 -2
  224. package/dist/standalone/assets/index-95cwJ2RY.css.br +0 -0
  225. package/dist/standalone/assets/index-95cwJ2RY.css.gz +0 -0
  226. package/dist/standalone/assets/index-BL8keDxQ.js +0 -15
  227. package/dist/standalone/assets/index-BL8keDxQ.js.br +0 -0
  228. package/dist/standalone/assets/index-BL8keDxQ.js.gz +0 -0
  229. package/dist/standalone/assets/index-BL8keDxQ.js.map +0 -1
  230. package/dist/standalone/assets/json-editor-CAIgxYb3.js +0 -2
  231. package/dist/standalone/assets/json-editor-CAIgxYb3.js.br +0 -0
  232. package/dist/standalone/assets/json-editor-CAIgxYb3.js.gz +0 -0
  233. package/dist/standalone/assets/json-editor-CAIgxYb3.js.map +0 -1
  234. package/dist/standalone/assets/property-renderer-B8Md-EqW.js +0 -7
  235. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.br +0 -0
  236. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.gz +0 -0
  237. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.map +0 -1
  238. package/dist/standalone/assets/reference-WPaf6IdD.js +0 -2
  239. package/dist/standalone/assets/reference-WPaf6IdD.js.br +0 -0
  240. package/dist/standalone/assets/reference-WPaf6IdD.js.gz +0 -0
  241. package/dist/standalone/assets/reference-WPaf6IdD.js.map +0 -1
  242. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js +0 -2
  243. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.br +0 -0
  244. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.gz +0 -0
  245. package/dist/standalone/assets/richtext-render-DnVcQ34I.js.br +0 -0
  246. package/dist/standalone/assets/richtext-render-DnVcQ34I.js.gz +0 -0
  247. package/dist/standalone/assets/router-wFvtgo77.js +0 -186
  248. package/dist/standalone/assets/router-wFvtgo77.js.br +0 -0
  249. package/dist/standalone/assets/router-wFvtgo77.js.gz +0 -0
  250. package/dist/standalone/assets/router-wFvtgo77.js.map +0 -1
  251. package/dist/standalone/assets/select-CR4acjX0.js +0 -2
  252. package/dist/standalone/assets/select-CR4acjX0.js.br +0 -0
  253. package/dist/standalone/assets/select-CR4acjX0.js.gz +0 -0
  254. package/dist/standalone/assets/select-CR4acjX0.js.map +0 -1
  255. package/dist/standalone/assets/settings-page-DtguXLAP.js +0 -2
  256. package/dist/standalone/assets/settings-page-DtguXLAP.js.br +0 -0
  257. package/dist/standalone/assets/settings-page-DtguXLAP.js.gz +0 -0
  258. package/dist/standalone/assets/show-page-Dnox2NwO.js +0 -2
  259. package/dist/standalone/assets/show-page-Dnox2NwO.js.br +0 -0
  260. package/dist/standalone/assets/show-page-Dnox2NwO.js.gz +0 -0
  261. package/dist/standalone/assets/tabs-DUS8e6dR.js +0 -2
  262. package/dist/standalone/assets/tabs-DUS8e6dR.js.br +0 -0
  263. package/dist/standalone/assets/tabs-DUS8e6dR.js.gz +0 -0
  264. package/dist/standalone/assets/textarea-CX_0QVSz.js +0 -2
  265. package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js +0 -2
  266. package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js.br +0 -0
  267. package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js.gz +0 -0
  268. package/dist/standalone/assets/useQueries-BCUhWYX4.js +0 -2
  269. package/dist/standalone/assets/useQueries-BCUhWYX4.js.br +0 -0
  270. package/dist/standalone/assets/useQueries-BCUhWYX4.js.gz +0 -0
  271. package/dist/standalone/assets/useQueries-BCUhWYX4.js.map +0 -1
  272. package/dist/standalone/assets/user-directory-9COoW6AO.js.br +0 -0
  273. package/dist/standalone/assets/user-directory-9COoW6AO.js.gz +0 -0
  274. package/dist/standalone/assets/value-format-Cgau0meh.js.br +0 -0
  275. package/dist/standalone/assets/value-format-Cgau0meh.js.gz +0 -0
  276. package/dist/standalone/assets/with-selector-NDLhu4dT.js +0 -2
  277. package/dist/standalone/assets/with-selector-NDLhu4dT.js.br +0 -0
  278. package/dist/standalone/assets/with-selector-NDLhu4dT.js.gz +0 -0
  279. package/dist/standalone/assets/with-selector-NDLhu4dT.js.map +0 -1
  280. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js +0 -2
  281. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.br +0 -0
  282. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.gz +0 -0
  283. package/dist/standalone/assets/zod-BrelKLfy.js +0 -2
  284. package/dist/standalone/assets/zod-BrelKLfy.js.br +0 -0
  285. package/dist/standalone/assets/zod-BrelKLfy.js.gz +0 -0
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{C as n,S as r,_ as i,b as a,d as o,h as s,i as c,l,m as u,o as d,p as f,r as p,s as m,u as h,x as g}from"./with-selector-NDLhu4dT.js";import{n as _,t as v}from"./dist-BSbFjTlr.js";import{n as y}from"./trash-2-DhyKQCKv.js";import{a as b,i as x,n as S,r as C,t as w}from"./dist-Dpg8xy_r.js";import{Dt as ee,Et as T,Tt as E,wt as D}from"./router-wFvtgo77.js";import{G as O,K as k,vt as A,yt as j}from"./index-BL8keDxQ.js";var M=e(n(),1),N=e(t(),1);function P(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var F=r(),I=[` `,`Enter`,`ArrowUp`,`ArrowDown`],L=[` `,`Enter`],R=`Select`,[z,B,V]=_(R),[H,U]=g(R,[V,b]),W=b(),[te,G]=H(R),[ne,re]=H(R),ie=`SelectProvider`;function ae(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:u,name:d,autoComplete:p,disabled:m,required:h,form:g,internal_do_not_use_render:_}=e,y=W(t),[b,S]=N.useState(null),[C,w]=N.useState(null),[ee,T]=N.useState(!1),E=v(u),[D,O]=f({prop:r,defaultProp:i??!1,onChange:a,caller:R}),[k,A]=f({prop:o,defaultProp:s,onChange:c,caller:R}),j=N.useRef(null),M=N.useRef(k);N.useEffect(()=>{let e=g?b?.ownerDocument.getElementById(g):b?.form;if(e instanceof HTMLFormElement){let t=()=>A(M.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,b,A]);let P=!b||!!g||!!b.closest(`form`),[I,L]=N.useState(new Set),B=l(),V=Array.from(I).map(e=>e.props.value).join(`;`),H=N.useCallback(e=>{L(t=>new Set(t).add(e))},[]),U=N.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),G={required:h,trigger:b,onTriggerChange:S,valueNode:C,onValueNodeChange:w,valueNodeHasChildren:ee,onValueNodeHasChildrenChange:T,contentId:B,value:k,onValueChange:A,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:j,disabled:m,name:d,autoComplete:p,form:g,nativeOptions:I,nativeSelectKey:V,isFormControl:P};return(0,F.jsx)(x,{...y,children:(0,F.jsx)(te,{scope:t,...G,children:(0,F.jsx)(z.Provider,{scope:t,children:(0,F.jsx)(ne,{scope:t,onNativeOptionAdd:H,onNativeOptionRemove:U,children:Qe(_)?_(G):n})})})})}ae.displayName=ie;var K=e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,F.jsx)(ae,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,F.jsxs)(F.Fragment,{children:[n,e?(0,F.jsx)(Ze,{__scopeSelect:t}):null]})})};K.displayName=R;var oe=`SelectTrigger`,se=N.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,c=W(n),l=G(oe,n),u=l.disabled||r,d=a(t,l.onTriggerChange),f=B(n),p=N.useRef(`touch`),[m,h,g]=$e(e=>{let t=f().filter(e=>!e.disabled),n=et(t,e,t.find(e=>e.value===l.value));n!==void 0&&l.onValueChange(n.value)}),_=e=>{u||(l.onOpenChange(!0),g()),e&&(l.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,F.jsx)(w,{asChild:!0,...c,children:(0,F.jsx)(o.button,{type:`button`,role:`combobox`,"aria-controls":l.open?l.contentId:void 0,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":`none`,dir:l.dir,"data-state":l.open?`open`:`closed`,disabled:u,"data-disabled":u?``:void 0,"data-placeholder":$(l.value)?``:void 0,...i,ref:d,onClick:s(i.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:s(i.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:s(i.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&I.includes(e.key)&&(_(),e.preventDefault())})})})});se.displayName=oe;var ce=`SelectValue`,le=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:s,placeholder:c=``,...l}=e,d=G(ce,n),{onValueNodeHasChildrenChange:f}=d,p=s!==void 0,m=a(t,d.onValueNodeChange);u(()=>{f(p)},[f,p]);let h=$(d.value);return(0,F.jsx)(o.span,{...l,asChild:!h&&l.asChild,ref:m,style:{pointerEvents:`none`},children:(0,F.jsx)(N.Fragment,{children:h?c:s},h?`placeholder`:`value`)})});le.displayName=ce;var ue=`SelectIcon`,de=N.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,F.jsx)(o.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});de.displayName=ue;var fe=`SelectPortal`,[pe,me]=H(fe,{forceMount:void 0}),he=e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,F.jsx)(pe,{scope:e.__scopeSelect,forceMount:n,children:(0,F.jsx)(p,{asChild:!0,...r})})};he.displayName=fe;var q=`SelectContent`,ge=N.forwardRef((e,t)=>{let n=me(q,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=G(q,e.__scopeSelect),[o,s]=N.useState();return u(()=>{s(new DocumentFragment)},[]),(0,F.jsx)(h,{present:r||a.open,children:({present:e})=>e?(0,F.jsx)(xe,{...i,ref:t}):(0,F.jsx)(_e,{...i,fragment:o})})});ge.displayName=q;var _e=N.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,F.jsx)(ve,{scope:n,children:(0,F.jsx)(z.Slot,{scope:n,children:(0,F.jsx)(`div`,{ref:t,children:r})})}),i):null});_e.displayName=`SelectContentFragment`;var J=10,[ve,Y]=H(q),ye=`SelectContentImpl`,be=i(`SelectContent.RemoveScroll`),xe=N.forwardRef((e,t)=>{let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:p,arrowPadding:m,collisionBoundary:h,collisionPadding:g,sticky:_,hideWhenDetached:v,avoidCollisions:y,...b}=e,x=G(q,n),[S,C]=N.useState(null),[w,O]=N.useState(null),k=a(t,C),[A,j]=N.useState(null),[M,P]=N.useState(null),I=B(n),[L,R]=N.useState(!1),z=N.useRef(!1);N.useEffect(()=>{if(S)return E(S)},[S]),ee();let V=N.useCallback(e=>{let[t,...n]=I().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[I,w]),H=N.useCallback(()=>V([A,S]),[V,A,S]);N.useEffect(()=>{L&&H()},[L,H]);let{onOpenChange:U,triggerPointerDownPosRef:W}=x;N.useEffect(()=>{if(S){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(S)||U(!1),document.removeEventListener(`pointermove`,t),W.current=null};return W.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[S,U,W]),N.useEffect(()=>{let e=()=>U(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[U]);let[te,ne]=$e(e=>{let t=I().filter(e=>!e.disabled),n=et(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),re=N.useCallback((e,t,n)=>{let r=!z.current&&!n;(x.value!==void 0&&x.value===t||r)&&(j(e),r&&(z.current=!0))},[x.value]),ie=N.useCallback(()=>S?.focus(),[S]),ae=N.useCallback((e,t,n)=>{let r=!z.current&&!n;(x.value!==void 0&&x.value===t||r)&&P(e)},[x.value]),K=r===`popper`?Te:Ce,oe=K===Te?{side:u,sideOffset:d,align:f,alignOffset:p,arrowPadding:m,collisionBoundary:h,collisionPadding:g,sticky:_,hideWhenDetached:v,avoidCollisions:y}:{};return(0,F.jsx)(ve,{scope:n,content:S,viewport:w,onViewportChange:O,itemRefCallback:re,selectedItem:A,onItemLeave:ie,itemTextRefCallback:ae,focusSelectedItem:H,selectedItemText:M,position:r,isPositioned:L,searchRef:te,children:(0,F.jsx)(D,{as:be,allowPinchZoom:!0,children:(0,F.jsx)(T,{asChild:!0,trapped:x.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:s(i,e=>{x.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,F.jsx)(c,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:(0,F.jsx)(K,{role:`listbox`,id:x.contentId,"data-state":x.open?`open`:`closed`,dir:x.dir,onContextMenu:e=>e.preventDefault(),...b,...oe,onPlaced:()=>R(!0),ref:k,style:{display:`flex`,flexDirection:`column`,outline:`none`,...b.style},onKeyDown:s(b.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ne(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=I().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})});xe.displayName=ye;var Se=`SelectItemAlignedPosition`,Ce=N.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,s=G(q,n),c=Y(q,n),[l,d]=N.useState(null),[f,p]=N.useState(null),m=a(t,p),h=B(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=c,S=N.useCallback(()=>{if(s.trigger&&s.valueNode&&l&&f&&v&&y&&b){let e=s.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),n=s.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(s.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-J,d=k(a,[J,Math.max(J,u-c)]);l.style.minWidth=s+`px`,l.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-J,d=k(a,[J,Math.max(J,u-c)]);l.style.minWidth=s+`px`,l.style.right=d+`px`}let a=h(),o=window.innerHeight-J*2,c=v.scrollHeight,u=window.getComputedStyle(f),d=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=d+p+c+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),ee=parseInt(C.paddingBottom,10),T=e.top+e.height/2-J,E=o-T,D=y.offsetHeight/2,O=y.offsetTop+D,A=d+p+O,j=x-A;if(A<=T){let e=a.length>0&&y===a[a.length-1].ref.current;l.style.bottom=`0px`;let t=f.clientHeight-v.offsetTop-v.offsetHeight,n=A+Math.max(E,D+(e?ee:0)+t+m);l.style.height=n+`px`}else{let e=a.length>0&&y===a[0].ref.current;l.style.top=`0px`;let t=Math.max(T,d+v.offsetTop+(e?w:0)+D)+j;l.style.height=t+`px`,v.scrollTop=A-T+v.offsetTop}l.style.margin=`${J}px 0`,l.style.minHeight=S+`px`,l.style.maxHeight=o+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,s.trigger,s.valueNode,l,f,v,y,b,s.dir,r]);u(()=>S(),[S]);let[C,w]=N.useState();return u(()=>{f&&w(window.getComputedStyle(f).zIndex)},[f]),(0,F.jsx)(Ee,{scope:n,contentWrapper:l,shouldExpandOnScrollRef:g,onScrollButtonChange:N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]),children:(0,F.jsx)(`div`,{ref:d,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,F.jsx)(o.div,{...i,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});Ce.displayName=Se;var we=`SelectPopperPosition`,Te=N.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=J,...a}=e,o=W(n);return(0,F.jsx)(C,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Te.displayName=we;var[Ee,De]=H(q,{}),Oe=`SelectViewport`,ke=N.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,c=Y(Oe,n),l=De(Oe,n),u=a(t,c.onViewportChange),d=N.useRef(0);return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,F.jsx)(z.Slot,{scope:n,children:(0,F.jsx)(o.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:u,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:s(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=l;if(r?.current&&n){let e=Math.abs(d.current-t.scrollTop);if(e>0){let r=window.innerHeight-J*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}d.current=t.scrollTop})})})]})});ke.displayName=Oe;var Ae=`SelectGroup`,[je,Me]=H(Ae),Ne=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=l();return(0,F.jsx)(je,{scope:n,id:i,children:(0,F.jsx)(o.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Ne.displayName=Ae;var Pe=`SelectLabel`,Fe=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Me(Pe,n);return(0,F.jsx)(o.div,{id:i.id,...r,ref:t})});Fe.displayName=Pe;var X=`SelectItem`,[Ie,Le]=H(X),Re=N.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:c,...u}=e,f=G(X,n),p=Y(X,n),m=f.value===r,[h,g]=N.useState(c??``),[_,v]=N.useState(!1),y=a(t,d(e=>p.itemRefCallback?.(e,r,i))),b=l(),x=N.useRef(`touch`),S=()=>{i||(f.onValueChange(r),f.onOpenChange(!1))};return(0,F.jsx)(Ie,{scope:n,value:r,disabled:i,textId:b,isSelected:m,onItemTextChange:N.useCallback(e=>{g(t=>t||(e?.textContent??``).trim())},[]),children:(0,F.jsx)(z.ItemSlot,{scope:n,value:r,disabled:i,textValue:h,children:(0,F.jsx)(o.div,{role:`option`,"aria-labelledby":b,"data-highlighted":_?``:void 0,"aria-selected":m&&_,"data-state":m?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...u,ref:y,onFocus:s(u.onFocus,()=>v(!0)),onBlur:s(u.onBlur,()=>v(!1)),onClick:s(u.onClick,()=>{x.current!==`mouse`&&S()}),onPointerUp:s(u.onPointerUp,()=>{x.current===`mouse`&&S()}),onPointerDown:s(u.onPointerDown,e=>{x.current=e.pointerType}),onPointerMove:s(u.onPointerMove,e=>{x.current=e.pointerType,i?p.onItemLeave?.():x.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:s(u.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:s(u.onKeyDown,e=>{i||e.target!==e.currentTarget||p.searchRef?.current!==``&&e.key===` `||(L.includes(e.key)&&S(),e.key===` `&&e.preventDefault())})})})})});Re.displayName=X;var Z=`SelectItemText`,ze=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...s}=e,c=G(Z,n),l=Y(Z,n),f=Le(Z,n),p=re(Z,n),[m,h]=N.useState(null),g=d(e=>l.itemTextRefCallback?.(e,f.value,f.disabled)),_=a(t,h,f.onItemTextChange,g),v=m?.textContent,y=N.useMemo(()=>(0,F.jsx)(`option`,{value:f.value,disabled:f.disabled,children:v},f.value),[f.disabled,f.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=p;return u(()=>(b(y),()=>x(y)),[b,x,y]),(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(o.span,{id:f.textId,...s,ref:_}),f.isSelected&&c.valueNode&&!c.valueNodeHasChildren&&!$(c.value)?M.createPortal(s.children,c.valueNode):null]})});ze.displayName=Z;var Be=`SelectItemIndicator`,Ve=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Le(Be,n).isSelected?(0,F.jsx)(o.span,{"aria-hidden":!0,...r,ref:t}):null});Ve.displayName=Be;var He=`SelectScrollUpButton`,Q=N.forwardRef((e,t)=>{let n=Y(He,e.__scopeSelect),r=De(He,e.__scopeSelect),[i,o]=N.useState(!1),s=a(t,r.onScrollButtonChange);return u(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;o(e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Ge,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Q.displayName=He;var Ue=`SelectScrollDownButton`,We=N.forwardRef((e,t)=>{let n=Y(Ue,e.__scopeSelect),r=De(Ue,e.__scopeSelect),[i,o]=N.useState(!1),s=a(t,r.onScrollButtonChange);return u(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;o(n)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Ge,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});We.displayName=Ue;var Ge=N.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Y(`SelectScrollButton`,n),c=N.useRef(null),l=B(n),d=N.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return N.useEffect(()=>()=>d(),[d]),u(()=>{l().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[l]),(0,F.jsx)(o.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:s(i.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(r,50))}),onPointerMove:s(i.onPointerMove,()=>{a.onItemLeave?.(),c.current===null&&(c.current=window.setInterval(r,50))}),onPointerLeave:s(i.onPointerLeave,()=>{d()})})}),Ke=`SelectSeparator`,qe=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,F.jsx)(o.div,{"aria-hidden":!0,...r,ref:t})});qe.displayName=Ke;var Je=`SelectArrow`,Ye=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=W(n);return Y(Je,n).position===`popper`?(0,F.jsx)(S,{...i,...r,ref:t}):null});Ye.displayName=Je;var Xe=`SelectBubbleInput`,Ze=N.forwardRef(({__scopeSelect:e,...t},n)=>{let r=G(Xe,e),{value:i,onValueChange:s,required:c,disabled:l,name:u,autoComplete:d,form:f}=r,{nativeOptions:p,nativeSelectKey:m}=r,h=N.useRef(null),g=a(n,h),_=i??``,v=P(_),y=Array.from(p).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=h.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==_&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,_),e.dispatchEvent(t)}},[v,_]),(0,F.jsxs)(o.select,{"aria-hidden":!0,required:c,tabIndex:-1,name:u,autoComplete:d,disabled:l,form:f,onChange:e=>s(e.target.value),...t,style:{...O,...t.style},ref:g,defaultValue:_,children:[$(i)&&!y?(0,F.jsx)(`option`,{value:``}):null,Array.from(p)]},m)});Ze.displayName=Xe;function Qe(e){return typeof e==`function`}function $(e){return e===``||e===void 0}function $e(e){let t=d(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function et(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=tt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function tt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function nt({onValueChange:e,...t}){let n=N.useCallback(t=>{t!==``&&e?.(t)},[e]);return(0,F.jsx)(K,{onValueChange:n,...t})}nt.displayName=`Select`;var rt=nt,it=le,at=N.forwardRef(({className:e,children:t,onMouseEnter:n,...r},i)=>(0,F.jsxs)(se,{ref:i,className:m(`flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),onMouseEnter:e=>{let t=e.currentTarget.querySelector(`span`);t&&t.scrollWidth>t.offsetWidth?e.currentTarget.title=t.textContent??``:e.currentTarget.removeAttribute(`title`),n?.(e)},...r,children:[t,(0,F.jsx)(de,{asChild:!0,children:(0,F.jsx)(A,{className:`h-4 w-4 opacity-50`})})]}));at.displayName=se.displayName;var ot=N.forwardRef(({className:e,...t},n)=>(0,F.jsx)(Q,{ref:n,className:m(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,F.jsx)(y,{className:`h-4 w-4`})}));ot.displayName=Q.displayName;var st=N.forwardRef(({className:e,...t},n)=>(0,F.jsx)(We,{ref:n,className:m(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,F.jsx)(A,{className:`h-4 w-4`})}));st.displayName=We.displayName;var ct=N.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,F.jsx)(he,{children:(0,F.jsxs)(ge,{ref:i,className:m(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,F.jsx)(ot,{}),(0,F.jsx)(ke,{className:m(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,F.jsx)(st,{})]})}));ct.displayName=ge.displayName;var lt=N.forwardRef(({className:e,...t},n)=>(0,F.jsx)(Fe,{ref:n,className:m(`px-2 py-1.5 text-sm font-semibold`,e),...t}));lt.displayName=Fe.displayName;var ut=N.forwardRef(({className:e,children:t,...n},r)=>(0,F.jsxs)(Re,{ref:r,className:m(`relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),title:typeof t==`string`?t:void 0,...n,children:[(0,F.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,F.jsx)(Ve,{children:(0,F.jsx)(j,{className:`h-4 w-4`})})}),(0,F.jsx)(ze,{children:(0,F.jsx)(`span`,{className:`block truncate`,children:t})})]}));ut.displayName=Re.displayName;var dt=N.forwardRef(({className:e,...t},n)=>(0,F.jsx)(qe,{ref:n,className:m(`-mx-1 my-1 h-px bg-muted`,e),...t}));dt.displayName=qe.displayName;var ft=N.forwardRef(({className:e,children:t,...n},r)=>(0,F.jsx)(`select`,{ref:r,className:m(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:t}));ft.displayName=`NativeSelect`;export{it as a,at as i,ct as n,P as o,ut as r,rt as t};
2
- //# sourceMappingURL=select-CR4acjX0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-CR4acjX0.js","names":["PopperPrimitive.Root","Select","Fragment2","SelectTrigger","PopperPrimitive.Anchor","SelectValue","PortalPrimitive","SelectContent","RemoveScroll","PopperPrimitive.Content","SelectLabel","SelectItem","SelectScrollUpButton","SelectScrollDownButton","SelectSeparator","PopperPrimitive.Arrow"],"sources":["../../../../../node_modules/.bun/@radix-ui+react-use-previous@1.1.2+93dbe784b8baa420/node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-select@2.3.3+ae2b4604ef263bc9/node_modules/@radix-ui/react-select/dist/index.mjs","../../../../ui/src/components/select.tsx"],"sourcesContent":["// src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment as Fragment2, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProviderImpl, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar PROVIDER_NAME = \"SelectProvider\";\nfunction SelectProvider(props) {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form,\n // @ts-expect-error internal render prop used by `Select` to compose its default parts\n internal_do_not_use_render\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const initialValueRef = React.useRef(value);\n React.useEffect(() => {\n const associatedForm = form ? trigger?.ownerDocument.getElementById(form) : trigger?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setValue(initialValueRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [form, trigger, setValue]);\n const isFormControl = trigger ? !!form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const contentId = useId();\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n const handleNativeOptionAdd = React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []);\n const handleNativeOptionRemove = React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []);\n const context = {\n required,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId,\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n name,\n autoComplete,\n form,\n nativeOptions: nativeOptionsSet,\n nativeSelectKey,\n isFormControl\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(SelectProviderImpl, { scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: __scopeSelect,\n onNativeOptionAdd: handleNativeOptionAdd,\n onNativeOptionRemove: handleNativeOptionRemove,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n ) }) }) });\n}\nSelectProvider.displayName = PROVIDER_NAME;\nvar Select = (props) => {\n const { __scopeSelect, children, ...providerProps } = props;\n return /* @__PURE__ */ jsx(\n SelectProvider,\n {\n __scopeSelect,\n ...providerProps,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment2, { children: [\n children,\n isFormControl ? /* @__PURE__ */ jsx(\n SelectBubbleInput,\n {\n __scopeSelect\n }\n ) : null\n ] })\n }\n );\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n const showPlaceholder = shouldShowPlaceholder(context.value);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n asChild: showPlaceholder ? false : valueProps.asChild,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: /* @__PURE__ */ jsx(React.Fragment, { children: showPlaceholder ? placeholder : children }, showPlaceholder ? \"placeholder\" : \"value\")\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar SelectPortal = (props) => {\n const { __scopeSelect, forceMount, ...portalProps } = props;\n return /* @__PURE__ */ jsx(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...portalProps }) });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeSelect);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => present ? /* @__PURE__ */ jsx(SelectContentImpl, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(SelectContentFragment, { ...contentProps, fragment }) });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar SelectContentFragment = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, children, fragment } = props;\n if (!fragment) return null;\n return ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { ref: forwardedRef, children }) }) }),\n fragment\n );\n});\nSelectContentFragment.displayName = \"SelectContentFragment\";\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect } = props;\n const {\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setContent);\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!event.composedPath().includes(content)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current?.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setContent);\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment2, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const handleItemRefCallback = useCallbackRef(\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const composedRefs = useComposedRefs(forwardedRef, handleItemRefCallback);\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n if (disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SELECTION_KEYS.includes(event.key)) {\n handleSelect();\n }\n if (event.key === \" \") {\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const handleItemTextRefCallback = useCallbackRef(\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const composedRefs = useComposedRefs(\n forwardedRef,\n setItemTextNode,\n itemContext.onItemTextChange,\n handleItemTextRefCallback\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment2, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren && !shouldShowPlaceholder(context.value) ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, ...props }, forwardedRef) => {\n const context = useSelectContext(BUBBLE_INPUT_NAME, __scopeSelect);\n const { value, onValueChange, required, disabled, name, autoComplete, form } = context;\n const { nativeOptions, nativeSelectKey } = context;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const selectValue = value ?? \"\";\n const prevValue = usePrevious(selectValue);\n const hasEmptyValueOption = Array.from(nativeOptions).some(\n (option) => (option.props.value ?? \"\") === \"\"\n );\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== selectValue && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, selectValue);\n select.dispatchEvent(event);\n }\n }, [prevValue, selectValue]);\n return /* @__PURE__ */ jsxs(\n Primitive.select,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n disabled,\n form,\n onChange: (event) => onValueChange(event.target.value),\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: selectValue,\n children: [\n shouldShowPlaceholder(value) && !hasEmptyValueOption ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptions)\n ]\n },\n nativeSelectKey\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nexport {\n SelectArrow as Arrow,\n SelectContent as Content,\n SelectGroup as Group,\n SelectIcon as Icon,\n SelectItem as Item,\n SelectItemIndicator as ItemIndicator,\n SelectItemText as ItemText,\n SelectLabel as Label,\n SelectPortal as Portal,\n Select as Root,\n SelectScrollDownButton as ScrollDownButton,\n SelectScrollUpButton as ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n SelectSeparator as Separator,\n SelectTrigger as Trigger,\n SelectValue as Value,\n SelectViewport as Viewport,\n createSelectScope,\n SelectBubbleInput as unstable_BubbleInput,\n SelectProvider as unstable_Provider,\n SelectBubbleInput as unstable_SelectBubbleInput,\n SelectProvider as unstable_SelectProvider\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\n\n/**\n * Thin wrapper around `SelectPrimitive.Root` that suppresses the spurious\n * empty-string callback Radix fires through its hidden bubble-input while\n * `SelectItem` nodes register lazily via Portal after an external `value`\n * change (e.g. `form.reset()` after an async data load). Without this guard\n * the externally-set value is immediately overwritten with `''`.\n *\n * The empty string is never a legitimate choice from a rendered `SelectItem`,\n * so dropping it is always safe. Call sites should NOT add their own\n * `if (v === '') return` guards — this component handles it centrally.\n */\nfunction SelectRoot({\n onValueChange,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>): React.ReactElement {\n const handleValueChange = React.useCallback(\n (value: string) => {\n if (value !== '') onValueChange?.(value)\n },\n [onValueChange],\n )\n return <SelectPrimitive.Root onValueChange={handleValueChange} {...props} />\n}\nSelectRoot.displayName = 'Select'\n\nexport const Select = SelectRoot\nexport const SelectGroup = SelectPrimitive.Group\nexport const SelectValue = SelectPrimitive.Value\n\nexport const SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, onMouseEnter, ...props }, ref) => {\n const handleMouseEnter = (e: React.MouseEvent<HTMLButtonElement>): void => {\n // Set native title only when the value span is actually clipped so the\n // tooltip doesn't appear redundantly on short values.\n const valueSpan = e.currentTarget.querySelector<HTMLElement>('span')\n if (valueSpan && valueSpan.scrollWidth > valueSpan.offsetWidth) {\n e.currentTarget.title = valueSpan.textContent ?? ''\n } else {\n e.currentTarget.removeAttribute('title')\n }\n onMouseEnter?.(e)\n }\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\n className,\n )}\n onMouseEnter={handleMouseEnter}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n})\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nexport const SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nexport const SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\nexport const SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nexport const SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold', className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nexport const SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n title={typeof children === 'string' ? children : undefined}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>\n <span className=\"block truncate\">{children}</span>\n </SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nexport const SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\n/**\n * Plain native `<select>` styled to match the rest of the kit. Useful when\n * you need a no-JS, SSR-friendly fallback or simple form posts. Most call\n * sites should prefer the Radix-based `Select` family above.\n */\nexport type NativeSelectProps = React.SelectHTMLAttributes<HTMLSelectElement>\n\nexport const NativeSelect = React.forwardRef<HTMLSelectElement, NativeSelectProps>(\n ({ className, children, ...props }, ref) => (\n <select\n ref={ref}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n </select>\n ),\n)\nNativeSelect.displayName = 'NativeSelect'\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n,s as r}from"./with-selector-NDLhu4dT.js";import{t as i}from"./bot-DFDgGfNj.js";import{t as a}from"./trash-2-DhyKQCKv.js";import{t as o}from"./copy-BexCWf4U.js";import{t as s}from"./key-round-CQLp1Ua9.js";import{t as c}from"./plus-Dk-FzitW.js";import{t as l}from"./save-Cd3oR3Sj.js";import{t as u}from"./square-pen-DGT7ekeJ.js";import{t as d}from"./triangle-alert-CyaaNWN8.js";import{t as f}from"./x-C3kLunD6.js";import{s as p}from"./dist-Dpg8xy_r.js";import{t as m}from"./textarea-CX_0QVSz.js";import{a as h,i as g,n as _,r as v,t as y}from"./select-CR4acjX0.js";import{a as b,c as x,i as S,l as C,o as w,r as T,s as E,t as D}from"./json-editor-CAIgxYb3.js";import{a as O,c as ee,i as k,o as te,r as ne,s as A,t as re}from"./empty-Cposcczv.js";import{F as ie,at as j,et as M,ht as N,i as P,n as F,ot as I,q as ae,rt as L}from"./router-wFvtgo77.js";import{t as R}from"./badge-6nyM5Jft.js";import{a as oe,i as se,n as ce,r as le,t as ue}from"./card-4cS4uWCP.js";import{F as z,I as B,L as V,N as H,P as U,Q as W,R as G,Y as K,ft as de,i as q,o as fe,pt as pe,q as J,r as me,yt as he}from"./index-BL8keDxQ.js";var Y=e(t(),1),X=n();function Z({icon:e,title:t,description:n,action:i,bodyClassName:a,children:o}){return(0,X.jsxs)(ue,{children:[(0,X.jsxs)(se,{className:r(`flex-col items-start gap-2`,i&&`sm:flex-row sm:items-center sm:justify-between`),children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,X.jsxs)(oe,{className:`flex items-center gap-2`,children:[(0,X.jsx)(e,{className:`size-5`}),t]}),n?(0,X.jsx)(le,{children:n}):null]}),i]}),(0,X.jsx)(ce,{className:r(`min-w-0`,a),children:o})]})}function ge({children:e}){return(0,X.jsx)(`div`,{className:`-mx-6 overflow-x-auto sm:mx-0`,children:e})}function _e({icon:e,title:t,description:n}){return(0,X.jsx)(re,{className:`border-0`,children:(0,X.jsxs)(k,{children:[(0,X.jsx)(O,{children:(0,X.jsx)(e,{})}),(0,X.jsx)(te,{children:t}),n?(0,X.jsx)(ne,{children:n}):null]})})}function ve({isLoading:e,error:t,isEmpty:n,loadingLabel:r,empty:i,children:a}){return e?(0,X.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r}):t?(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:t instanceof Error?t.message:String(t)}):n?(0,X.jsx)(_e,{...i}):(0,X.jsx)(X.Fragment,{children:a})}function ye(){let e=L(),t=q(),{t:n}=M(),r=I({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings()}),[a,o]=Y.useState({enabled:!0,model:`google/gemini-3.1-flash-lite-preview`,apiKey:``,systemPrompt:``});Y.useEffect(()=>{r.data&&o({enabled:r.data.enabled,model:r.data.model,apiKey:``,systemPrompt:r.data.systemPrompt})},[r.data]);let c=j({mutationFn:async()=>e.updateAiAssistantSettings({enabled:a.enabled,model:a.model,...a.apiKey.trim()?{apiKey:a.apiKey.trim()}:{},systemPrompt:a.systemPrompt}),onSuccess:()=>{r.refetch(),o(e=>({...e,apiKey:``})),t.success({message:n(`aiAssistant:settings.saved`)})},onError:e=>{t.error({message:e instanceof Error?e.message:String(e)})}});if(r.isLoading)return(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`common:loading`)});if(r.error)return(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:r.error instanceof Error?r.error.message:String(r.error)});let u=r.data;return u?(0,X.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,X.jsxs)(Z,{icon:i,title:n(`aiAssistant:settings.title`),description:n(`aiAssistant:settings.description`),bodyClassName:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(R,{variant:u.enabled?`secondary`:`outline`,children:u.enabled?n(`aiAssistant:settings.enabled`):n(`aiAssistant:settings.disabled`)}),(0,X.jsx)(R,{variant:u.configured?`secondary`:`outline`,children:u.configured?n(`aiAssistant:settings.configured`):n(`aiAssistant:settings.apiKeyRequired`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.readOnly`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.provider`,{provider:u.provider})})]}),(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border p-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-enabled`,children:n(`aiAssistant:settings.enableLabel`)}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.enableHint`)})]}),(0,X.jsx)(ee,{id:`ai-assistant-enabled`,checked:a.enabled,disabled:!u.canManage||c.isPending,onCheckedChange:e=>o(t=>({...t,enabled:e}))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,X.jsx)(K,{id:`ai-assistant-model`,value:a.model,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,model:e.target.value})),placeholder:`google/gemini-3.1-flash-lite-preview`})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(J,{htmlFor:`ai-assistant-api-key`,className:`flex items-center gap-2`,children:[(0,X.jsx)(s,{className:`size-4`}),n(`aiAssistant:settings.apiKeyLabel`)]}),(0,X.jsx)(K,{id:`ai-assistant-api-key`,type:`password`,value:a.apiKey,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,apiKey:e.target.value})),placeholder:u.maskedApiKey??`sk-or-v1-...`}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.apiKeyHint`)})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-system-prompt`,children:n(`aiAssistant:settings.systemPromptLabel`)}),(0,X.jsx)(m,{id:`ai-assistant-system-prompt`,value:a.systemPrompt,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,systemPrompt:e.target.value})),rows:8,placeholder:n(`aiAssistant:settings.systemPromptPlaceholder`)})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border p-3 text-sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`font-medium`,children:n(`aiAssistant:settings.accessTitle`)}),(0,X.jsx)(`div`,{className:`text-muted-foreground`,children:n(`aiAssistant:settings.accessDescription`)})]}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.futureToolsReady`)})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsxs)(p,{onClick:()=>c.mutate(),disabled:!u.canManage||c.isPending||!a.model.trim(),children:[(0,X.jsx)(l,{className:`size-4`}),c.isPending?n(`aiAssistant:settings.saving`):n(`aiAssistant:settings.save`)]})})]})}):(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`aiAssistant:settings.empty`)})}var Q=[`modern-admin`,`api-keys`],be=[`modern-admin`,`webhooks`],xe=[{key:`api-keys`,labelKey:`settings:apiKeys.title`,icon:s},{key:`webhooks`,labelKey:`settings:webhooks.title`,icon:W},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function Se({section:e}){let{t}=M(),n=P(),i=ie(),a=Y.useMemo(()=>[...xe.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...fe().map(e=>({key:e.key,labelKey:e.labelKey,icon:e.icon,isExtension:!0}))],[i.apiKeys,i.webhooks,i.aiAssistant]),o=[`api-keys`,`webhooks`,`ai-assistant`],s=e=>o.includes(e),c=e??null,l=c&&a.some(e=>e.key===c)?c:a[0]?.key??null;return l===null?(0,X.jsx)(`div`,{className:`rounded-md border border-dashed bg-card p-8 text-center text-sm text-muted-foreground`,children:t(`settings:noSectionsConfigured`)}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 lg:grid lg:grid-cols-[14rem_minmax(0,1fr)]`,children:[(0,X.jsx)(`div`,{className:`lg:hidden`,children:(0,X.jsxs)(y,{value:l??``,onValueChange:e=>n({name:`settings`,section:e}),children:[(0,X.jsx)(g,{className:`w-full`,children:(0,X.jsx)(h,{})}),(0,X.jsx)(_,{children:a.map(({key:e,labelKey:n,icon:r})=>(0,X.jsx)(v,{value:e,children:(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(r,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]})},e))})]})}),(0,X.jsx)(`aside`,{className:`hidden lg:block`,children:(0,X.jsx)(`nav`,{className:`flex flex-col gap-1`,children:a.map(({key:e,labelKey:n,icon:i})=>(0,X.jsxs)(F,{to:{name:`settings`,section:e},className:r(`flex items-center gap-2 rounded-md px-3 py-2 text-sm hover:bg-accent`,l===e&&`bg-accent font-medium`),children:[(0,X.jsx)(i,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]},e))})}),(0,X.jsxs)(`section`,{className:`min-w-0`,children:[l&&s(l)&&l===`api-keys`&&(0,X.jsx)(Ce,{}),l&&s(l)&&l===`webhooks`&&(0,X.jsx)(Ae,{}),l&&s(l)&&l===`ai-assistant`&&(0,X.jsx)(ye,{}),l&&!s(l)&&(()=>{let e=fe().find(e=>e.key===l);return e?(0,X.jsx)(e.component,{}):null})()]})]})}function Ce(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[l,d]=Y.useState(!1),[f,m]=Y.useState(null),[h,g]=Y.useState(null),_=I({queryKey:Q,queryFn:()=>t.listApiKeys()}),v=j({mutationFn:e=>t.deleteApiKey(e),onSuccess:()=>{n.invalidateQueries({queryKey:Q}),r.success({key:`settings:apiKeys.notice.revoked`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.updateApiKey(e.id,{enabled:e.enabled}),onSuccess:()=>n.invalidateQueries({queryKey:Q}),onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=()=>{m(null),d(!0)},D=e=>{m(e),d(!0)},O=async t=>{await i.confirm({title:e(`settings:apiKeys.confirmRevoke.title`),description:e(`settings:apiKeys.confirmRevoke.description`,{name:t.name??t.id}),confirmLabel:e(`settings:apiKeys.actions.revoke`),destructive:!0})&&v.mutate(t.id)},k=_.data?.keys??[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:s,title:e(`settings:apiKeys.title`),description:e(`settings:apiKeys.description`),action:(0,X.jsxs)(p,{onClick:C,size:`sm`,children:[(0,X.jsx)(c,{className:`size-4`}),(0,X.jsx)(`span`,{children:e(`settings:apiKeys.actions.create`)})]}),children:(0,X.jsx)(ve,{isLoading:_.isLoading,error:_.error,isEmpty:k.length===0,loadingLabel:e(`common:loading`),empty:{icon:s,title:e(`settings:apiKeys.empty.title`),description:e(`settings:apiKeys.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.name`)}),(0,X.jsx)(w,{className:`hidden sm:table-cell`,children:e(`settings:apiKeys.columns.start`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.permissions`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.expiresAt`)}),(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:apiKeys.columns.actions`)})]})}),(0,X.jsx)(S,{children:k.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`font-medium`,children:(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[(0,X.jsx)(`span`,{children:t.name??t.id}),t.lastRequest&&(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings:apiKeys.lastUsed`,{date:$(t.lastRequest)})})]})}),(0,X.jsx)(b,{className:`hidden font-mono text-xs sm:table-cell`,children:t.start?`${t.start}…`:`—`}),(0,X.jsx)(b,{className:`hidden md:table-cell`,children:(0,X.jsx)(De,{permissions:t.permissions})}),(0,X.jsx)(b,{className:`hidden md:table-cell text-xs`,children:t.expiresAt?$(t.expiresAt):e(`settings:apiKeys.expiresNever`)}),(0,X.jsx)(b,{children:(0,X.jsx)(ee,{checked:t.enabled,onCheckedChange:e=>y.mutate({id:t.id,enabled:e}),"aria-label":e(`settings:apiKeys.columns.enabled`)})}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>D(t),"aria-label":e(`settings:apiKeys.actions.edit`),children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>O(t),"aria-label":e(`settings:apiKeys.actions.revoke`),disabled:v.isPending,children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),(0,X.jsx)(Oe,{open:l,onOpenChange:d,editing:f,resources:o,onCreated:e=>{d(!1),g(e),n.invalidateQueries({queryKey:Q})},onUpdated:()=>{d(!1),n.invalidateQueries({queryKey:Q})}},f?.id??`new`),(0,X.jsx)(Fe,{secret:h,onClose:()=>g(null)})]})}var we=e=>({byResource:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,new Set(t)]))}),Te=e=>{let t={};for(let[n,r]of Object.entries(e.byResource))r.size!==0&&(t[n]=Array.from(r));return t};function Ee({resources:e,state:t,onChange:n}){let{t:i}=M(),a=(e,r)=>{let i=new Set(t.byResource[e]??[]);i.has(r)?i.delete(r):i.add(r),n({byResource:{...t.byResource,[e]:i}})},o=(e,r)=>{let i=t.byResource[e]??new Set,a=r.every(e=>i.has(e)),o=new Set(a?[]:r);n({byResource:{...t.byResource,[e]:o}})},s=Y.useMemo(()=>e.filter(e=>(e.actions??[]).length>0),[e]),c=s.length>0&&s.every(e=>{let n=(e.actions??[]).map(e=>e.name),r=t.byResource[e.id]??new Set;return n.every(e=>r.has(e))});return e.length===0?(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`settings:apiKeys.permissions.noResources`)}):(0,X.jsxs)(`div`,{className:`rounded-md border border-border`,children:[s.length>0&&(0,X.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-border bg-muted/30 px-3 py-2`,children:(0,X.jsx)(p,{type:`button`,variant:`outline`,size:`sm`,className:`h-8`,onClick:()=>{let r=!c,i={...t.byResource};for(let t of e){let e=(t.actions??[]).map(e=>e.name);i[t.id]=r?new Set(e):new Set}n({byResource:i})},children:c?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(f,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.clearAllResources`)]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(he,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.selectAllResources`)]})})}),(0,X.jsx)(`div`,{className:`max-h-[24rem] overflow-y-auto`,children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{className:`sticky top-0 bg-card`,children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{className:`w-[14rem]`,children:i(`settings:apiKeys.permissions.resource`)}),(0,X.jsx)(w,{children:i(`settings:apiKeys.permissions.actions`)})]})}),(0,X.jsx)(S,{children:e.map(e=>{let n=(e.actions??[]).map(e=>e.name),s=t.byResource[e.id]??new Set,c=n.length>0&&n.every(e=>s.has(e));return(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`align-top`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.id}),(0,X.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 self-start text-xs text-primary hover:underline`,onClick:()=>o(e.id,n),children:[c?(0,X.jsx)(f,{className:`size-3`}):(0,X.jsx)(he,{className:`size-3`}),i(c?`settings:apiKeys.permissions.clearAll`:`settings:apiKeys.permissions.selectAll`)]})]})}),(0,X.jsx)(b,{children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(t=>{let n=s.has(t);return(0,X.jsxs)(`label`,{className:r(`inline-flex cursor-pointer items-center gap-1.5 rounded-md border border-border px-2 py-1 text-xs`,n&&`border-primary bg-primary/10 text-primary`),children:[(0,X.jsx)(C,{checked:n,onCheckedChange:()=>a(e.id,t),className:`size-3.5`}),(0,X.jsx)(`span`,{children:t})]},t)})})})]},e.id)})})]})})]})}function De({permissions:e}){let{t}=M(),n=Object.entries(e);if(n.length===0)return(0,X.jsx)(R,{variant:`outline`,children:t(`settings:apiKeys.permissions.none`)});let r=n.reduce((e,[,t])=>e+t.length,0);return(0,X.jsx)(R,{variant:`secondary`,children:t(`settings:apiKeys.permissions.summary`,{resources:n.length,actions:r})})}function Oe({open:e,onOpenChange:t,editing:n,resources:r,onCreated:i,onUpdated:a}){let{t:o}=M(),s=L(),c=q(),l=!!n,[u,d]=Y.useState(n?.name??``),[f,m]=Y.useState(()=>{if(!n?.expiresAt)return``;let e=new Date(n.expiresAt).getTime()-Date.now();return e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``}),[h,g]=Y.useState(()=>we(n?.permissions??{})),_=j({mutationFn:async()=>{let e=Te(h);if(l&&n){let t=f.trim()===``?null:Number(f);return{record:(await s.updateApiKey(n.id,{name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})).record}}let t=f.trim()===``?null:Number(f);return s.createApiKey({name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})},onSuccess:e=>{l?(c.success({key:`settings:apiKeys.notice.updated`}),a(e.record)):e.key&&i({key:e.key,record:e.record})},onError:e=>c.error({message:e instanceof Error?e.message:String(e)})});Y.useEffect(()=>{if(e)if(d(n?.name??``),g(we(n?.permissions??{})),!n?.expiresAt)m(``);else{let e=new Date(n.expiresAt).getTime()-Date.now();m(e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``)}},[e,n]);let v=Object.values(h.byResource).reduce((e,t)=>e+(t?.size??0),0);return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:o(l?`settings:apiKeys.editor.titleEdit`:`settings:apiKeys.editor.titleCreate`)}),(0,X.jsx)(z,{children:o(`settings:apiKeys.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u.trim()&&_.mutate()},children:[(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,X.jsx)(K,{id:`api-key-name`,value:u,onChange:e=>d(e.target.value),placeholder:o(`settings:apiKeys.editor.namePlaceholder`),required:!0,maxLength:64})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,X.jsx)(K,{id:`api-key-expires`,type:`number`,min:1,max:3650,value:f,onChange:e=>m(e.target.value),placeholder:o(`settings:apiKeys.editor.expiresPlaceholder`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.expiresHint`)})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(J,{children:o(`settings:apiKeys.editor.permissions`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.selectedActions`,{count:v})})]}),(0,X.jsx)(Ee,{resources:r,state:h,onChange:g})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:o(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:_.isPending||!u.trim()||v===0,children:_.isPending?o(`common:saving`):o(l?`common:save`:`settings:apiKeys.actions.create`)})]})]})]})})}var ke=[`record.created`,`record.updated`,`record.deleted`,`*`];function Ae(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[s,l]=Y.useState(!1),[d,f]=Y.useState(null),[m,h]=Y.useState(null),g=I({queryKey:be,queryFn:()=>t.listWebhooks()}),_=I({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`],queryFn:()=>t.listWebhookDeliveries(m),enabled:!!m}),v=j({mutationFn:e=>t.deleteWebhook(e),onSuccess:()=>{n.invalidateQueries({queryKey:be}),r.success({key:`settings:webhooks.notice.deleted`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.testWebhook(e),onSuccess:()=>{m&&n.invalidateQueries({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`]}),r.success({key:`settings:webhooks.notice.testQueued`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=g.data?.webhooks??[],D=async t=>{await i.confirm({title:e(`settings:webhooks.confirmDelete.title`),description:e(`settings:webhooks.confirmDelete.description`,{name:t.name}),confirmLabel:e(`common:delete`),destructive:!0})&&v.mutate(t.id)};return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.title`),description:e(`settings:webhooks.description`),action:(0,X.jsxs)(p,{size:`sm`,onClick:()=>{f(null),l(!0)},children:[(0,X.jsx)(c,{className:`size-4`}),e(`settings:webhooks.actions.create`)]}),children:(0,X.jsx)(ve,{isLoading:g.isLoading,error:g.error,isEmpty:C.length===0,loadingLabel:e(`common:loading`),empty:{icon:W,title:e(`settings:webhooks.empty.title`),description:e(`settings:webhooks.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.columns.name`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.resource`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.events`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:webhooks.columns.actions`)})]})}),(0,X.jsx)(S,{children:C.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsxs)(b,{children:[(0,X.jsx)(`button`,{type:`button`,className:`text-left font-medium hover:underline`,onClick:()=>h(t.id),children:t.name}),(0,X.jsx)(`div`,{className:`max-w-xs truncate text-xs text-muted-foreground`,children:t.url})]}),(0,X.jsx)(b,{children:Me(o,t.resourceId,e(`settings:webhooks.editor.allResources`))}),(0,X.jsx)(b,{className:`max-w-xs`,children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.events.map(e=>(0,X.jsx)(R,{variant:`outline`,children:e},e))})}),(0,X.jsx)(b,{children:t.enabled?e(`common:yes`):e(`common:no`)}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>y.mutate(t.id),children:e(`settings:webhooks.actions.test`)}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>{f(t),l(!0)},children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>void D(t),children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),m&&(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.deliveries.title`),children:_.isLoading?(0,X.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground`,children:e(`common:loading`)}):(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.status`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.event`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.attempt`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.response`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.createdAt`)})]})}),(0,X.jsx)(S,{children:(_.data?.deliveries??[]).map(e=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{children:e.status}),(0,X.jsx)(b,{children:e.event}),(0,X.jsx)(b,{children:e.attempt}),(0,X.jsx)(b,{className:`max-w-sm truncate`,children:e.responseStatus??e.error??e.responseBody??`—`}),(0,X.jsx)(b,{children:$(e.createdAt)})]},e.id))})]})})}),(0,X.jsx)(je,{open:s,onOpenChange:l,webhook:d,resources:o},d?.id??`new`)]})}function je({open:e,onOpenChange:t,webhook:n,resources:r}){let{t:i}=M(),a=L(),o=N(),s=q(),[c,l]=Y.useState(n?.name??``),[u,d]=Y.useState(n?.url??``),[f,m]=Y.useState(n?.resourceId??``),[b,x]=Y.useState(n?.enabled??!0),[S,w]=Y.useState(n?.secret??``),[T,E]=Y.useState(n?.events??[`record.created`,`record.updated`]),[O,k]=Y.useState(n?.headers??{}),[te,ne]=Y.useState(n?.filters??{}),[re,ie]=Y.useState(n?.payloadFields??[]),P=r.find(e=>e.id===f),F=j({mutationFn:e=>n?a.updateWebhook(n.id,e):a.createWebhook(e),onSuccess:()=>{o.invalidateQueries({queryKey:be}),s.success({key:`settings:webhooks.notice.saved`}),t(!1)},onError:e=>s.error({message:e instanceof Error?e.message:String(e)})}),I=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:i(n?`settings:webhooks.editor.titleEdit`:`settings:webhooks.editor.titleCreate`)}),(0,X.jsx)(z,{children:i(`settings:webhooks.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),F.mutate({name:c.trim(),url:u.trim(),events:T,resourceId:f||null,enabled:b,...S.trim()?{secret:S.trim()}:{},headers:Pe(O),filters:Pe(te),payloadFields:re})},children:[(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.name`)}),(0,X.jsx)(K,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.url`)}),(0,X.jsx)(K,{value:u,onChange:e=>d(e.target.value),required:!0,type:`url`})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.resource`)}),(0,X.jsxs)(y,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),ie([])},children:[(0,X.jsx)(g,{children:(0,X.jsx)(h,{})}),(0,X.jsxs)(_,{children:[(0,X.jsx)(v,{value:`__all__`,children:i(`settings:webhooks.editor.allResources`)}),r.map(e=>(0,X.jsxs)(v,{value:e.id,children:[e.name,e.name!==e.id&&(0,X.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.secret`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,X.jsx)(K,{value:S,onChange:e=>w(e.target.value),type:`password`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(ee,{checked:b,onCheckedChange:x}),(0,X.jsx)(J,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.events`)}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ke.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,X.jsx)(C,{checked:T.includes(e),onCheckedChange:()=>I(e)}),e]},e))})]}),P&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.payloadFieldsHint`),ariaLabel:i(`settings:webhooks.editor.payloadFields`),side:`right`})]}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:P.properties.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,X.jsx)(C,{checked:re.includes(e.path),onCheckedChange:()=>ie(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path])}),e.label]},e.path))})]}),(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.headers`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,X.jsx)(D,{value:O,onChange:e=>k(Ne(e))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.filters`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,X.jsx)(D,{value:te,onChange:e=>ne(Ne(e))})]})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:i(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:F.isPending||!c.trim()||!u.trim()||T.length===0,children:F.isPending?i(`common:saving`):i(`common:save`)})]})]})]})})}var Me=(e,t,n)=>t?e.find(e=>e.id===t)?.name??t:n,Ne=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:{},Pe=e=>{let t={};for(let[n,r]of Object.entries(e))r!=null&&r!==``&&(t[n]=String(r));return t};function Fe({secret:e,onClose:t}){let{t:n}=M(),r=q(),[i,a]=Y.useState(!1),[s,c]=Y.useState(!1);return Y.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,X.jsx)(H,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,X.jsxs)(U,{className:`max-w-lg`,children:[(0,X.jsxs)(V,{children:[(0,X.jsxs)(G,{className:`flex items-center gap-2`,children:[(0,X.jsx)(W,{className:`size-5`}),n(`settings:apiKeys.created.title`)]}),(0,X.jsx)(z,{children:n(`settings:apiKeys.created.description`)})]}),(0,X.jsx)(`div`,{className:`rounded-md border border-amber-300/60 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-300/30 dark:bg-amber-950/40 dark:text-amber-200`,children:(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(d,{className:`mt-0.5 size-4`}),(0,X.jsx)(`p`,{children:n(`settings:apiKeys.created.warning`)})]})}),(0,X.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1`,children:[(0,X.jsx)(K,{readOnly:!0,type:i?`text`:`password`,value:e?.key??``,className:`pr-10 font-mono text-xs`,onFocus:e=>e.currentTarget.select()}),(0,X.jsx)(p,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2`,onClick:()=>a(e=>!e),"aria-label":n(i?`settings:apiKeys.created.hide`:`settings:apiKeys.created.reveal`),children:i?(0,X.jsx)(pe,{className:`size-4`}):(0,X.jsx)(de,{className:`size-4`})})]}),(0,X.jsxs)(p,{type:`button`,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e.key),c(!0),r.success({key:`settings:apiKeys.notice.copied`}),setTimeout(()=>c(!1),1500)}catch{r.error({key:`settings:apiKeys.notice.copyFailed`})}},variant:`secondary`,children:[s?(0,X.jsx)(he,{className:`size-4`}):(0,X.jsx)(o,{className:`size-4`}),(0,X.jsx)(`span`,{className:`hidden sm:inline`,children:n(s?`settings:apiKeys.created.copied`:`settings:apiKeys.created.copy`)})]})]}),(0,X.jsx)(B,{children:(0,X.jsx)(p,{onClick:t,children:n(`common:done`)})})]})})}var $=e=>{try{return new Date(e).toLocaleString()}catch{return String(e)}};export{Se as SettingsPage};
2
- //# sourceMappingURL=settings-page-DtguXLAP.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n}from"./with-selector-NDLhu4dT.js";import{t as r}from"./trash-2-DhyKQCKv.js";import{t as i}from"./circle-alert-0EyKeic4.js";import{t as a}from"./pencil-BO-k3yTG.js";import{t as o}from"./zap-b3saQVKc.js";import{s}from"./dist-Dpg8xy_r.js";import{Ct as c,F as l,K as u,N as d,U as f,et as p,i as m,n as h,q as g,z as _}from"./router-wFvtgo77.js";import{c as v,l as y,n as b,o as x,r as S,s as C}from"./action-component-host-BrEZDHZt.js";import{a as w,i as T,n as E,t as D}from"./card-4cS4uWCP.js";import{i as O,n as k,r as A,t as j}from"./tabs-DUS8e6dR.js";import{a as M,c as N,l as P,o as F,r as I,s as L,t as R}from"./property-renderer-B8Md-EqW.js";import{t as z}from"./revisions-button-0WtL6bsZ.js";import{_ as B,b as V,i as H,n as U,r as W,v as G,x as K,y as q}from"./index-BL8keDxQ.js";var J=e(t(),1),Y=n();function X({parentRecordId:e,related:t,active:n}){let[r,i]=J.useState({perPage:10}),[a,o]=J.useState(n);return J.useEffect(()=>{n&&o(!0)},[n]),a?(0,Y.jsx)(I,{resourceId:t.resourceId,query:r,onQueryChange:i,lockedFilters:{[t.foreignKey]:e},embedPadding:!1,features:{breadcrumbs:!1,title:!1,create:!1,export:!1,card:!1}}):null}function Z({resource:e,recordId:t}){let{t:n}=p(),r=g(),i=e.showRelatedResources!==!1,a=J.useMemo(()=>i?N(e,r):[],[i,e,r]),[o,s]=J.useState(()=>a[0]?`${a[0].resourceId}::${a[0].foreignKey}`:``);if(J.useEffect(()=>{a.length!==0&&(a.some(e=>`${e.resourceId}::${e.foreignKey}`===o)||s(`${a[0].resourceId}::${a[0].foreignKey}`))},[o,a]),a.length===0)return null;let c=e=>e.label??r.find(t=>t.id===e.resourceId)?.name??e.resourceId;return(0,Y.jsxs)(D,{children:[(0,Y.jsx)(T,{children:(0,Y.jsx)(w,{className:`text-base`,children:n(`common:relatedRecords`)})}),(0,Y.jsx)(E,{children:(0,Y.jsxs)(j,{value:o,onValueChange:s,children:[(0,Y.jsx)(A,{className:`w-full justify-start`,children:a.map(e=>{let t=`${e.resourceId}::${e.foreignKey}`;return(0,Y.jsx)(O,{value:t,children:c(e)},t)})}),a.map(e=>{let n=`${e.resourceId}::${e.foreignKey}`;return(0,Y.jsx)(k,{value:n,className:`mt-4`,children:(0,Y.jsx)(X,{parentRecordId:t,related:e,active:o===n})},n)})]})})]})}function Q({error:e,t}){let{status:n,message:r}=c(e),a=t(n===404?`errors:notFound`:n===403?`errors:forbidden`:`errors:server`);return(0,Y.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4 dark:bg-destructive/15`,children:[(0,Y.jsx)(i,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,Y.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,Y.jsx)(`p`,{className:`font-semibold text-destructive`,children:a}),(0,Y.jsx)(`p`,{className:`text-destructive/90`,children:r})]})]})}function $({resourceId:e,recordId:t}){let n=u(e),i=f(e,t),c=d(e),g=_(e),O=l(),{t:k}=p(),A=m(),j=W(),N=H(),I=F(e),J=i.data?.record,X=C((n?.actions??[]).filter(e=>e.actionType===`record`&&![`show`,`edit`,`delete`].includes(e.name)),J),$=x(`edit`,J),ee=x(`delete`,J);U(`mod+e`,()=>{!i.data||!$||A({name:`edit`,resourceId:e,recordId:t})},{description:k(`common:edit`)});let te=async()=>{await j.confirm({title:k(`common:confirmDelete`),confirmLabel:k(`common:delete`),destructive:!0})&&(await c.mutateAsync(t),A({name:`list`,resourceId:e}))};if(!n)return(0,Y.jsx)(`div`,{className:`p-6`,children:k(`common:loading`)});let ne=G(),re=i.data?.record?.title||t;return(0,Y.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,Y.jsx)(v,{items:[y(k(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},{label:re}]}),(0,Y.jsxs)(D,{children:[(0,Y.jsxs)(T,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,Y.jsxs)(w,{className:`truncate`,children:[n.name,` #`,t]}),i.data&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[O.history&&(0,Y.jsx)(z,{resourceId:e,recordId:t}),$&&(0,Y.jsxs)(q,{children:[(0,Y.jsx)(K,{asChild:!0,children:(0,Y.jsx)(s,{variant:`outline-primary`,size:`sm`,asChild:!0,children:(0,Y.jsxs)(h,{to:{name:`edit`,resourceId:e,recordId:t},"aria-label":k(`common:edit`),children:[(0,Y.jsx)(a,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:k(`common:edit`)})]})})}),(0,Y.jsxs)(V,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{children:k(`common:edit`)}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,Y.jsx)(B,{children:ne}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`+`}),(0,Y.jsx)(B,{children:`E`})]})]})]}),ee&&(0,Y.jsxs)(s,{variant:`outline-destructive`,size:`sm`,disabled:c.isPending,onClick:()=>void te(),"aria-label":k(`common:delete`),children:[(0,Y.jsx)(r,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:k(`common:delete`)})]}),X.length>0&&(0,Y.jsx)(S,{actions:X,onAction:async e=>{if(M(e)){I(e,{recordId:t});return}await L(e,j)&&g.mutateAsync({recordId:t,actionName:e.name}).then(e=>b(N,e.notice)).catch(e=>N.error({message:e.message}))},t:k,trigger:(0,Y.jsxs)(s,{variant:`outline`,size:`sm`,disabled:g.isPending,"aria-label":k(`common:actions`),children:[(0,Y.jsx)(o,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:k(`common:actions`)})]})})]})]}),(0,Y.jsx)(E,{children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[i.isLoading&&(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:k(`common:loading`)}),i.isError&&(0,Y.jsx)(Q,{error:i.error,t:k}),i.data&&(0,Y.jsx)(`dl`,{className:`[column-fill:_balance] md:columns-2`,children:P(n.properties,`show`,n.propertyOrder?.show).map(e=>(0,Y.jsxs)(`div`,{className:`mb-8 break-inside-avoid`,children:[(0,Y.jsx)(`dt`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`mt-1`,children:(0,Y.jsx)(R,{property:e,value:i.data.record.params[e.path],view:`show`,populated:i.data.record.populated})})]},e.path))})]})})]}),i.data&&(0,Y.jsx)(Z,{resource:n,recordId:t})]})}export{$ as ResourceShowPage};
2
- //# sourceMappingURL=show-page-Dnox2NwO.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n,d as r,h as i,l as a,p as o,s,u as c,x as l}from"./with-selector-NDLhu4dT.js";import{t as u}from"./dist-BSbFjTlr.js";import{B as d,V as f,z as p}from"./index-BL8keDxQ.js";var m=e(t(),1),h=n(),g=`Tabs`,[_,v]=l(g,[f]),y=f(),[b,x]=_(g),S=m.forwardRef((e,t)=>{let{__scopeTabs:n,value:i,onValueChange:s,defaultValue:c,orientation:l=`horizontal`,dir:d,activationMode:f=`automatic`,...p}=e,m=u(d),[_,v]=o({prop:i,onChange:s,defaultProp:c??``,caller:g});return(0,h.jsx)(b,{scope:n,baseId:a(),value:_,onValueChange:v,orientation:l,dir:m,activationMode:f,children:(0,h.jsx)(r.div,{dir:m,"data-orientation":l,...p,ref:t})})});S.displayName=g;var C=`TabsList`,w=m.forwardRef((e,t)=>{let{__scopeTabs:n,loop:i=!0,...a}=e,o=x(C,n),s=y(n);return(0,h.jsx)(d,{asChild:!0,...s,orientation:o.orientation,dir:o.dir,loop:i,children:(0,h.jsx)(r.div,{role:`tablist`,"aria-orientation":o.orientation,...a,ref:t})})});w.displayName=C;var T=`TabsTrigger`,E=m.forwardRef((e,t)=>{let{__scopeTabs:n,value:a,disabled:o=!1,...s}=e,c=x(T,n),l=y(n),u=k(c.baseId,a),d=A(c.baseId,a),f=a===c.value;return(0,h.jsx)(p,{asChild:!0,...l,focusable:!o,active:f,children:(0,h.jsx)(r.button,{type:`button`,role:`tab`,"aria-selected":f,"aria-controls":d,"data-state":f?`active`:`inactive`,"data-disabled":o?``:void 0,disabled:o,id:u,...s,ref:t,onMouseDown:i(e.onMouseDown,e=>{!o&&e.button===0&&e.ctrlKey===!1?c.onValueChange(a):e.preventDefault()}),onKeyDown:i(e.onKeyDown,e=>{o||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&c.onValueChange(a)}),onFocus:i(e.onFocus,()=>{let e=c.activationMode!==`manual`;!f&&!o&&e&&c.onValueChange(a)})})})});E.displayName=T;var D=`TabsContent`,O=m.forwardRef((e,t)=>{let{__scopeTabs:n,value:i,forceMount:a,children:o,...s}=e,l=x(D,n),u=k(l.baseId,i),d=A(l.baseId,i),f=i===l.value,p=m.useRef(f);return m.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,h.jsx)(c,{present:a||f,children:({present:n})=>(0,h.jsx)(r.div,{"data-state":f?`active`:`inactive`,"data-orientation":l.orientation,role:`tabpanel`,"aria-labelledby":u,hidden:!n,id:d,tabIndex:0,...s,ref:t,style:{...e.style,animationDuration:p.current?`0s`:void 0},children:n&&o})})});O.displayName=D;function k(e,t){return`${e}-trigger-${t}`}function A(e,t){return`${e}-content-${t}`}var j=S,M=w,N=E,P=O,F=j,I=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(M,{ref:n,className:s(`flex h-10 w-full items-center justify-start gap-1 overflow-x-auto border-b border-border text-muted-foreground`,e),...t}));I.displayName=M.displayName;var L=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(N,{ref:n,className:s(`relative -mb-px inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap border-b-2 border-transparent px-4 py-2 text-sm font-medium ring-offset-background transition-all`,`hover:text-foreground`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,`disabled:pointer-events-none disabled:opacity-50`,`data-[state=active]:border-primary data-[state=active]:text-foreground`,e),...t}));L.displayName=N.displayName;var R=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(P,{ref:n,className:s(`mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));R.displayName=P.displayName;export{L as i,R as n,I as r,F as t};
2
- //# sourceMappingURL=tabs-DUS8e6dR.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n,s as r}from"./with-selector-NDLhu4dT.js";var i=e(t(),1),a=n(),o=i.forwardRef(({className:e,...t},n)=>(0,a.jsx)(`textarea`,{ref:n,className:r(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...t}));o.displayName=`Textarea`;export{o as t};
2
- //# sourceMappingURL=textarea-CX_0QVSz.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{_ as n,a as r,c as i,d as a,l as o,m as s,o as c,p as l,t as u,u as d,v as f,y as p}from"./schemas-twnCb1uT.js";import{t as m}from"./uuid-DLSnbsz2.js";var h=u([`kpi`,`line`,`area`,`bar`]),g=u([`count`,`sum`,`avg`,`min`,`max`]),_=u([`day`,`week`,`month`,`year`,`all`]);u([`7d`,`30d`,`90d`,`1y`,`all`,`custom`]);var v=u([`half`,`full`]),y=i(`preset`,[a({preset:u([`7d`,`30d`,`90d`,`1y`,`all`])}),a({preset:o(`custom`),from:f(),to:f()})]),b=a({op:u([`divide`,`multiply`,`add`,`subtract`]),value:d().finite()}),x=a({style:u([`number`,`currency`,`percent`]).default(`number`),currency:s().length(3).optional(),decimals:d().int().min(0).max(6).optional(),prefix:s().max(8).optional(),suffix:s().max(8).optional(),compact:c().optional()}),S=a({color:s().regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/).optional()}),C=a({id:n(),title:s().max(120).default(``),resource:s().min(1),visualisation:h,dateField:s().min(1),step:_,metric:g,field:s().min(1).optional(),groupBy:s().min(1).optional(),topN:d().int().min(1).max(50).default(10),groupByLabelResource:s().min(1).optional(),width:v.default(`half`),filters:l(s(),s()).default({}),quickFilters:r(s()).default([]),timeRange:y,series:l(s(),S).optional(),transform:r(b).max(8).default([]),format:x.optional(),comparePrevious:c().default(!1),groupId:n().optional(),order:d().int().default(0),createdAt:p(),updatedAt:p()}).refine(e=>e.metric===`count`||!!e.field,{message:`field is required when metric is not count`,path:[`field`]}).refine(e=>e.visualisation!==`kpi`||e.step===`all`,{message:`KPI charts must use step 'all'`,path:[`step`]}).refine(e=>e.visualisation===`kpi`||e.step!==`all`,{message:`non-KPI charts cannot use step 'all'`,path:[`step`]}),w=a({id:n(),name:s().min(1).max(120),order:d().int().default(0),createdAt:p(),updatedAt:p()}),T=a({version:o(1),charts:r(C),groups:r(w).default([])}),E={version:1,charts:[],groups:[]},D=e(t(),1),O=`modern-admin:dashboard:v1:`,k=`__anon__`,A=new class{load(e){if(typeof window>`u`)return E;try{let t=window.localStorage.getItem(O+(e||k));if(!t)return E;let n=JSON.parse(t),r=T.safeParse(n);return r.success?r.data:E}catch{return E}}save(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(O+(e||k),JSON.stringify(t))}catch{}}},j=class{client;constructor(e){this.client=e}async load(e){try{return(await this.client.loadDashboard()).dashboard}catch{return E}}async save(e,t){try{await this.client.saveDashboard(t)}catch{}}};function M(e,t=new Date){if(e.preset===`custom`)return{from:e.from,to:e.to};let n=e.preset===`7d`?7:e.preset===`30d`?30:e.preset===`90d`?90:e.preset===`1y`?365:3650,r=new Date(t),i=new Date(t);return i.setDate(i.getDate()-n),{from:N(i),to:N(r)}}var N=e=>e.toISOString().slice(0,10),P=new Set;function F(){for(let e of P)try{e()}catch{}}function I(e){let{userId:t,store:n=A}=e,[r,i]=(0,D.useState)([]),[a,o]=(0,D.useState)([]),[s,c]=(0,D.useState)(!0),[l,u]=(0,D.useState)(0);(0,D.useEffect)(()=>{if(!t){i([]),c(!1);return}let e=!1;return c(!0),Promise.resolve(n.load(t)).then(t=>{e||(i(t.charts),o([...t.groups].sort(L)),c(!1))}),()=>{e=!0}},[t,n,l]),(0,D.useEffect)(()=>{let e=()=>u(e=>e+1);return P.add(e),()=>{P.delete(e)}},[]);let d=(0,D.useCallback)((e,r)=>{i(e),o([...r].sort(L)),t&&Promise.resolve(n.save(t,{version:1,charts:e,groups:r}))},[t,n]);return{charts:r,groups:a,isLoading:s,addChart:(0,D.useCallback)(e=>{let t=new Date().toISOString(),n=e.groupId??a[0]?.id,i={...e,id:m(),title:e.title??``,filters:e.filters??{},...n?{groupId:n}:{},createdAt:t,updatedAt:t};d([...r,i],a)},[r,a,d]),updateChart:(0,D.useCallback)((e,t)=>{d(r.map(n=>n.id===e?{...n,...t,id:e,title:t.title??``,filters:t.filters??{},createdAt:n.createdAt,updatedAt:new Date().toISOString()}:n),a)},[r,a,d]),removeChart:(0,D.useCallback)(e=>{d(r.filter(t=>t.id!==e),a)},[r,a,d]),addGroup:(0,D.useCallback)(e=>{let t=new Date().toISOString(),n=m(),i={id:n,name:e.name,order:e.order??a.length,createdAt:t,updatedAt:t},o=a.length===0?r.map(e=>e.groupId?e:{...e,groupId:n,updatedAt:t}):r;return d(o,[...a,i]),n},[r,a,d]),updateGroup:(0,D.useCallback)((e,t)=>{let n=new Date().toISOString();d(r,a.map(r=>r.id===e?{...r,...t.name===void 0?{}:{name:t.name},...t.order===void 0?{}:{order:t.order},updatedAt:n}:r))},[r,a,d]),removeGroup:(0,D.useCallback)(e=>{d(r.filter(t=>t.groupId!==e),a.filter(t=>t.id!==e))},[r,a,d])}}function L(e,t){return e.order===t.order?e.createdAt.localeCompare(t.createdAt):e.order-t.order}export{C as a,I as i,F as n,M as r,j as t};
2
- //# sourceMappingURL=use-dashboard-charts-Cr3OUSL5.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n,_ as r,b as i,d as a,h as o,i as s,l as c,p as l,r as u,s as d,u as f,x as p}from"./with-selector-NDLhu4dT.js";import{a as m,i as ee,n as te,r as h,t as g}from"./dist-Dpg8xy_r.js";import{Dt as ne,Et as re,Tt as ie,_t as _,bt as v,ct as y,dt as ae,ft as oe,gt as b,ht as x,lt as S,mt as C,pt as w,st as T,ut as E,vt as D,wt as se,xt as ce,yt as le}from"./router-wFvtgo77.js";var O=e(t(),1),k=n(),A=`Popover`,[j,ue]=p(A,[m]),M=m(),[N,P]=j(A),F=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=M(t),u=O.useRef(null),[d,f]=O.useState(!1),[p,m]=l({prop:r,defaultProp:i??!1,onChange:a,caller:A});return(0,k.jsx)(ee,{...s,children:(0,k.jsx)(N,{scope:t,contentId:c(),triggerRef:u,open:p,onOpenChange:m,onOpenToggle:O.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:d,onCustomAnchorAdd:O.useCallback(()=>f(!0),[]),onCustomAnchorRemove:O.useCallback(()=>f(!1),[]),modal:o,children:n})})};F.displayName=A;var I=`PopoverAnchor`,L=O.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=P(I,n),a=M(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return O.useEffect(()=>(o(),()=>s()),[o,s]),(0,k.jsx)(g,{...a,...r,ref:t})});L.displayName=I;var R=`PopoverTrigger`,z=O.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,s=P(R,n),c=M(n),l=i(t,s.triggerRef),u=(0,k.jsx)(a.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":J(s.open),...r,ref:l,onClick:o(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?u:(0,k.jsx)(g,{asChild:!0,...c,children:u})});z.displayName=R;var B=`PopoverPortal`,[V,H]=j(B,{forceMount:void 0}),U=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=P(B,t);return(0,k.jsx)(V,{scope:t,forceMount:n,children:(0,k.jsx)(f,{present:n||a.open,children:(0,k.jsx)(u,{asChild:!0,container:i,children:r})})})};U.displayName=B;var W=`PopoverContent`,G=O.forwardRef((e,t)=>{let n=H(W,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=P(W,e.__scopePopover);return(0,k.jsx)(f,{present:r||a.open,children:a.modal?(0,k.jsx)(fe,{...i,ref:t}):(0,k.jsx)(pe,{...i,ref:t})})});G.displayName=W;var de=r(`PopoverContent.RemoveScroll`),fe=O.forwardRef((e,t)=>{let n=P(W,e.__scopePopover),r=O.useRef(null),a=i(t,r),s=O.useRef(!1);return O.useEffect(()=>{let e=r.current;if(e)return ie(e)},[]),(0,k.jsx)(se,{as:de,allowPinchZoom:!0,children:(0,k.jsx)(K,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:o(e.onCloseAutoFocus,e=>{e.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:o(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;s.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:o(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),pe=O.forwardRef((e,t)=>{let n=P(W,e.__scopePopover),r=O.useRef(!1),i=O.useRef(!1);return(0,k.jsx)(K,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),K=O.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,...f}=e,p=P(W,n),m=M(n);return ne(),(0,k.jsx)(re,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,k.jsx)(s,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:d,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>p.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,k.jsx)(h,{"data-state":J(p.open),role:`dialog`,id:p.contentId,...m,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),q=`PopoverClose`,me=O.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=P(q,n);return(0,k.jsx)(a.button,{type:`button`,...r,ref:t,onClick:o(e.onClick,()=>i.onOpenChange(!1))})});me.displayName=q;var he=`PopoverArrow`,ge=O.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=M(n);return(0,k.jsx)(te,{...i,...r,ref:t})});ge.displayName=he;function J(e){return e?`open`:`closed`}var _e=F,ve=L,ye=z,Y=U,X=G,be=_e,xe=ye,Se=ve,Z=O.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,...r},i)=>(0,k.jsx)(Y,{children:(0,k.jsx)(X,{ref:i,align:t,sideOffset:n,className:d(`z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2`,e),...r})}));Z.displayName=X.displayName;function Q(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function Ce(e,t,n){let r=e.slice(0);return r[t]=n,r}var we=class extends ce{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,_.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!v(e,n)});!o&&!s||(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Q(e,n).forEach(e=>{e.destroy()}),Q(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=le(this.#a,t(e))),this.#a}return e}#f(){return this.#r?.combine!==void 0&&this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new b(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=Ce(this.#t,n,t),this.#h())}#h(){if(this.hasListeners()){let e=this.#u(this.#t,this.#l),t=this.#f(),n=this.#a,r=t?n:this.#d(e,this.#r?.combine);(t||n!==r)&&_.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}};function $({queries:e,...t},n){let r=x(n),i=C(),a=w(),o=O.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);o.forEach(e=>{T(e);let t=r.getQueryCache().get(e.queryHash);E(e,a,t)}),oe(a);let[s]=O.useState(()=>new we(r,o,t)),[c,l,u]=s.getOptimisticResult(o,t.combine),d=!i&&t.subscribed!==!1;O.useSyncExternalStore(O.useCallback(e=>d?s.subscribe(_.batchCalls(e)):D,[s,d]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),O.useEffect(()=>{s.setQueries(o,t)},[o,t,s]);let f=c.some((e,t)=>S(o[t],e))?c.flatMap((e,t)=>{let n=o[t];return n&&S(n,e)?y(n,new b(r,n),a):[]}):[];if(f.length>0)throw Promise.all(f);let p=c.find((e,t)=>{let n=o[t];return n&&ae({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(p?.error)throw p.error;return l(u())}export{xe as a,Z as i,be as n,Se as r,$ as t};
2
- //# sourceMappingURL=useQueries-BCUhWYX4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useQueries-BCUhWYX4.js","names":["Popover","PopperPrimitive.Root","PopoverAnchor","PopperPrimitive.Anchor","PopoverTrigger","PortalPrimitive","PopoverContent","RemoveScroll","PopperPrimitive.Content","PopperPrimitive.Arrow","#client","#options","#queries","#observers","#result","#onUpdate","#findMatchingObservers","#observerMatches","#notify","#combineResult","#trackResult","#lastQueryHashes","#combinedResult","#lastResult","#lastCombine","#shouldSkipCombine"],"sources":["../../../../../node_modules/.bun/@radix-ui+react-popover@1.1.19+ae2b4604ef263bc9/node_modules/@radix-ui/react-popover/dist/index.mjs","../../../../ui/src/components/popover.tsx","../../../../../node_modules/.bun/@tanstack+query-core@5.101.2/node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../../../node_modules/.bun/@tanstack+react-query@5.101.2+e14d3f224186685e/node_modules/@tanstack/react-query/build/modern/useQueries.js"],"sourcesContent":["\"use client\";\n\n// src/popover.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 { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__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 return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\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 PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__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 asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n deferPointerDownOutside: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\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);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cn } from '../lib/utils.js'\n\nexport const Popover = PopoverPrimitive.Root\nexport const PopoverTrigger = PopoverPrimitive.Trigger\nexport const PopoverAnchor = PopoverPrimitive.Anchor\n\nexport const PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #shouldSkipCombine() {\n return this.#options?.combine !== void 0 && this.#observers.some((observer, index) => {\n return observer.options.suspense && this.#result[index]?.data === void 0;\n });\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const shouldSkipCombine = this.#shouldSkipCombine();\n const previousResult = this.#combinedResult;\n const newResult = shouldSkipCombine ? previousResult : this.#combineResult(newTracked, this.#options?.combine);\n if (shouldSkipCombine || previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map"],"x_google_ignoreList":[0,2,3],"mappings":"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"}