@burdenoff/microfe-store 2026.625.4 → 2026.626.1

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 (184) hide show
  1. package/dist/StoreRoutes.js +3 -3
  2. package/dist/StoreRoutes.js.map +1 -1
  3. package/dist/components/AccessDenied.js +3 -3
  4. package/dist/components/AccessDenied.js.map +1 -1
  5. package/dist/components/InstallAppModal.js +107 -120
  6. package/dist/components/InstallAppModal.js.map +1 -1
  7. package/dist/components/cart/CartDrawer.js +10 -10
  8. package/dist/components/cart/CartDrawer.js.map +1 -1
  9. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/errors/CombinedGraphQLErrors.js +1 -1
  10. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
  11. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/errors/utils.js +1 -1
  12. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
  13. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/link/core/ApolloLink.js +2 -2
  14. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -0
  15. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/link/subscriptions/index.js +2 -2
  16. package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -0
  17. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/link/utils/createOperation.js +1 -1
  18. package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -0
  19. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -0
  20. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/graphql/print.js +1 -1
  21. package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -0
  22. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/caches.js +2 -2
  23. package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -0
  24. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/checkDocument.js +1 -1
  25. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -0
  26. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/getMainDefinition.js +1 -1
  27. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -0
  28. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +9 -0
  29. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -0
  30. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/getOperationDefinition.js +1 -1
  31. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -0
  32. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +8 -0
  33. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -0
  34. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/globals/global.js +1 -1
  35. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -0
  36. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +10 -0
  37. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -0
  38. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +8 -0
  39. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -0
  40. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/makeUniqueId.js +1 -1
  41. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -0
  42. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/memoize.js +2 -2
  43. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -0
  44. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/internal/stringifyForDisplay.js +1 -1
  45. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -0
  46. package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/invariant/index.js +1 -1
  47. package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -0
  48. package/dist/node_modules/@apollo/client/version.js +6 -0
  49. package/dist/node_modules/@apollo/client/version.js.map +1 -0
  50. package/dist/node_modules/{.bun/@wry_caches@1.0.1/node_modules/@wry → @wry}/caches/lib/weak.js +1 -1
  51. package/dist/node_modules/@wry/caches/lib/weak.js.map +1 -0
  52. package/dist/node_modules/{.bun/@wry_trie@0.5.0/node_modules/@wry → @wry}/trie/lib/index.js +1 -1
  53. package/dist/node_modules/@wry/trie/lib/index.js.map +1 -0
  54. package/dist/node_modules/{.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws → graphql-ws}/dist/client.js +1 -1
  55. package/dist/node_modules/graphql-ws/dist/client.js.map +1 -0
  56. package/dist/node_modules/{.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws → graphql-ws}/dist/common-CGW11Fyb.js +1 -1
  57. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -0
  58. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/NotificationFactories.js +1 -1
  59. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -0
  60. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/Observable.js +1 -1
  61. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -0
  62. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/Subscriber.js +2 -2
  63. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -0
  64. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/Subscription.js +2 -2
  65. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -0
  66. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/config.js +1 -1
  67. package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -0
  68. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/observable/empty.js +1 -1
  69. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -0
  70. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/scheduler/timeoutProvider.js +2 -2
  71. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -0
  72. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/symbol/observable.js +1 -1
  73. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -0
  74. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/util/UnsubscriptionError.js +1 -1
  75. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -0
  76. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +11 -0
  77. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -0
  78. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/util/createErrorClass.js +1 -1
  79. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -0
  80. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/util/errorContext.js +1 -1
  81. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -0
  82. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +8 -0
  83. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -0
  84. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +8 -0
  85. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -0
  86. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +6 -0
  87. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -0
  88. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/util/pipe.js +1 -1
  89. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -0
  90. package/dist/node_modules/{.bun/rxjs@7.8.2/node_modules/rxjs → rxjs}/dist/esm5/internal/util/reportUnhandledError.js +1 -1
  91. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -0
  92. package/dist/node_modules/{.bun/tslib@2.8.1 → rxjs}/node_modules/tslib/tslib.es6.js +1 -1
  93. package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +1 -0
  94. package/dist/pages/AdminDashboardPage.js +118 -91
  95. package/dist/pages/AdminDashboardPage.js.map +1 -1
  96. package/dist/pages/AdminReviewModerationPage.js +67 -61
  97. package/dist/pages/AdminReviewModerationPage.js.map +1 -1
  98. package/dist/pages/AdminStoresPage.js +424 -371
  99. package/dist/pages/AdminStoresPage.js.map +1 -1
  100. package/dist/pages/AdminSubmissionsQueuePage.js +303 -286
  101. package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
  102. package/dist/pages/AppDetailPage.js +172 -135
  103. package/dist/pages/AppDetailPage.js.map +1 -1
  104. package/dist/pages/AppSettingsPage.js +83 -300
  105. package/dist/pages/AppSettingsPage.js.map +1 -1
  106. package/dist/pages/CartPage.js +71 -79
  107. package/dist/pages/CartPage.js.map +1 -1
  108. package/dist/pages/InstalledAppsPage.js +82 -119
  109. package/dist/pages/InstalledAppsPage.js.map +1 -1
  110. package/dist/pages/MarketplaceHomePage.js +196 -205
  111. package/dist/pages/MarketplaceHomePage.js.map +1 -1
  112. package/dist/pages/MyLicensesPage.js +70 -75
  113. package/dist/pages/MyLicensesPage.js.map +1 -1
  114. package/dist/pages/OrderConfirmationPage.js +70 -37
  115. package/dist/pages/OrderConfirmationPage.js.map +1 -1
  116. package/dist/pages/OrdersPage.js +60 -68
  117. package/dist/pages/OrdersPage.js.map +1 -1
  118. package/dist/pages/ProductDetailPage.js +807 -764
  119. package/dist/pages/ProductDetailPage.js.map +1 -1
  120. package/dist/pages/ProductReviewsPage.js +24 -19
  121. package/dist/pages/ProductReviewsPage.js.map +1 -1
  122. package/dist/pages/PublisherDashboardPage.js +134 -99
  123. package/dist/pages/PublisherDashboardPage.js.map +1 -1
  124. package/dist/pages/PublisherRevenuePage.js +65 -63
  125. package/dist/pages/PublisherRevenuePage.js.map +1 -1
  126. package/dist/pages/PublisherSubmissionsPage.js +120 -111
  127. package/dist/pages/PublisherSubmissionsPage.js.map +1 -1
  128. package/dist/pages/PublisherSubmitPage.js +197 -184
  129. package/dist/pages/PublisherSubmitPage.js.map +1 -1
  130. package/dist/providers/StoreProvider.js +3 -3
  131. package/package.json +2 -2
  132. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
  133. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/utils.js.map +0 -1
  134. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/core/ApolloLink.js.map +0 -1
  135. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/subscriptions/index.js.map +0 -1
  136. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/utils/createOperation.js.map +0 -1
  137. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/caching/sizes.js.map +0 -1
  138. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/graphql/print.js.map +0 -1
  139. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/caches.js.map +0 -1
  140. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +0 -1
  141. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +0 -1
  142. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +0 -9
  143. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +0 -1
  144. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +0 -1
  145. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js +0 -8
  146. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +0 -1
  147. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/global.js.map +0 -1
  148. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js +0 -10
  149. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +0 -1
  150. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +0 -8
  151. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +0 -1
  152. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +0 -1
  153. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/memoize.js.map +0 -1
  154. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +0 -1
  155. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/invariant/index.js.map +0 -1
  156. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js +0 -6
  157. package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js.map +0 -1
  158. package/dist/node_modules/.bun/@wry_caches@1.0.1/node_modules/@wry/caches/lib/weak.js.map +0 -1
  159. package/dist/node_modules/.bun/@wry_trie@0.5.0/node_modules/@wry/trie/lib/index.js.map +0 -1
  160. package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/client.js.map +0 -1
  161. package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +0 -1
  162. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +0 -1
  163. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
  164. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
  165. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
  166. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
  167. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
  168. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
  169. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
  170. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
  171. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -11
  172. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
  173. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
  174. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
  175. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -8
  176. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
  177. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -8
  178. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
  179. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -6
  180. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
  181. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
  182. package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
  183. package/dist/node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.js.map +0 -1
  184. /package/dist/node_modules/{.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo → @apollo}/client/utilities/caching/sizes.js +0 -0
@@ -1,12 +1,13 @@
1
1
  import { useStore as e } from "../providers/StoreProvider.js";
2
2
  import { formatPriceForModel as t } from "../utils/index.js";
3
3
  import { useCallback as n, useEffect as r, useState as i } from "react";
4
- import { ArrowLeft as a, Check as o, ChevronDown as s, ChevronUp as c, ExternalLink as l, PackageCheck as u, RefreshCw as d, X as f } from "lucide-react";
5
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
6
- import { useNavigate as h } from "react-router-dom";
7
- import { graphqlFetch as g } from "@burdenoff/fe-libs/shared/graphql";
4
+ import { ArrowLeft as a, Check as o, ChevronDown as s, ChevronUp as c, PackageCheck as l, RefreshCw as u, X as d } from "lucide-react";
5
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
6
+ import { useNavigate as m } from "react-router-dom";
7
+ import { graphqlFetch as h } from "@burdenoff/fe-libs/shared/graphql";
8
+ import { IllustratedEmptyState as g, NextSteps as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
8
9
  //#region src/pages/AdminSubmissionsQueuePage.tsx
9
- var _ = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendingReviewProducts(limit: $limit, offset: $offset) {\n totalCount\n products {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", v = "\n query AdminProducts($limit: Int, $offset: Int, $status: ProductStatus) {\n products(filter: { status: $status }, limit: $limit, offset: $offset) {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n publisher {\n id\n name\n email\n }\n }\n }\n", y = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", b = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", x = [
10
+ var y = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendingReviewProducts(limit: $limit, offset: $offset) {\n totalCount\n products {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", b = "\n query AdminProducts($limit: Int, $offset: Int, $status: ProductStatus) {\n products(filter: { status: $status }, limit: $limit, offset: $offset) {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n publisher {\n id\n name\n email\n }\n }\n }\n", x = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", S = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", C = [
10
11
  {
11
12
  label: "Pending review",
12
13
  value: "PENDING_REVIEW"
@@ -23,377 +24,393 @@ var _ = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendi
23
24
  label: "All",
24
25
  value: "ALL"
25
26
  }
26
- ], S = () => {
27
- let S = h(), { authToken: C, basePath: w } = e(), [T, E] = i([]), [D, O] = i(0), [k, A] = i(!1), [j, M] = i(null), [N, P] = i(null), [F, I] = i("PENDING_REVIEW"), [L, R] = i(null), [z, B] = i(""), [V, H] = i(null), U = n(async (e) => {
28
- A(!0), M(null);
27
+ ], w = () => {
28
+ let w = m(), { authToken: T, basePath: E } = e(), [D, O] = i([]), [k, A] = i(0), [j, M] = i(!1), [N, P] = i(null), [F, I] = i(null), [L, R] = i("PENDING_REVIEW"), [z, B] = i(null), [V, H] = i(""), [U, W] = i(null), G = n(async (e) => {
29
+ M(!0), P(null);
29
30
  try {
30
31
  if (e === "PENDING_REVIEW") {
31
- let e = await g({
32
+ let e = await h({
32
33
  gateway: "global",
33
- query: _,
34
+ query: y,
34
35
  variables: {
35
36
  limit: 100,
36
37
  offset: 0
37
38
  },
38
- authToken: C || void 0
39
+ authToken: T || void 0
39
40
  });
40
41
  if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load pending products");
41
- E(e.data?.pendingReviewProducts.products ?? []), O(e.data?.pendingReviewProducts.totalCount ?? 0);
42
+ O(e.data?.pendingReviewProducts.products ?? []), A(e.data?.pendingReviewProducts.totalCount ?? 0);
42
43
  } else {
43
- let t = await g({
44
+ let t = await h({
44
45
  gateway: "global",
45
- query: v,
46
+ query: b,
46
47
  variables: {
47
48
  limit: 100,
48
49
  offset: 0,
49
50
  ...e !== "ALL" && { status: e }
50
51
  },
51
- authToken: C || void 0
52
+ authToken: T || void 0
52
53
  });
53
54
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Failed to load products");
54
55
  let n = t.data?.products ?? [];
55
- E(n), O(n.length);
56
+ O(n), A(n.length);
56
57
  }
57
58
  } catch (e) {
58
- M(e instanceof Error ? e.message : "Failed to load products");
59
+ P(e instanceof Error ? e.message : "Failed to load products");
59
60
  } finally {
60
- A(!1);
61
+ M(!1);
61
62
  }
62
- }, [C]);
63
+ }, [T]);
63
64
  r(() => {
64
- U(F);
65
- }, [U, F]);
66
- let W = async (e) => {
67
- P(e), M(null);
65
+ G(L);
66
+ }, [G, L]);
67
+ let K = async (e) => {
68
+ I(e), P(null);
68
69
  try {
69
- let t = await g({
70
+ let t = await h({
70
71
  gateway: "global",
71
- query: y,
72
+ query: x,
72
73
  variables: {
73
74
  id: e,
74
75
  notes: null
75
76
  },
76
- authToken: C || void 0
77
+ authToken: T || void 0
77
78
  });
78
79
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
79
- await U(F);
80
+ await G(L);
80
81
  } catch (e) {
81
- M(e instanceof Error ? e.message : "Approval failed");
82
+ P(e instanceof Error ? e.message : "Approval failed");
82
83
  } finally {
83
- P(null);
84
+ I(null);
84
85
  }
85
- }, G = async (e) => {
86
- if (!z.trim()) {
87
- M("Rejection reason is required");
86
+ }, q = async (e) => {
87
+ if (!V.trim()) {
88
+ P("Rejection reason is required");
88
89
  return;
89
90
  }
90
- P(e), M(null);
91
+ I(e), P(null);
91
92
  try {
92
- let t = await g({
93
+ let t = await h({
93
94
  gateway: "global",
94
- query: b,
95
+ query: S,
95
96
  variables: {
96
97
  id: e,
97
- reason: z.trim()
98
+ reason: V.trim()
98
99
  },
99
- authToken: C || void 0
100
+ authToken: T || void 0
100
101
  });
101
102
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
102
- R(null), B(""), await U(F);
103
+ B(null), H(""), await G(L);
103
104
  } catch (e) {
104
- M(e instanceof Error ? e.message : "Rejection failed");
105
+ P(e instanceof Error ? e.message : "Rejection failed");
105
106
  } finally {
106
- P(null);
107
+ I(null);
107
108
  }
108
109
  };
109
- return /* @__PURE__ */ m("div", {
110
+ return /* @__PURE__ */ p("div", {
110
111
  className: "min-h-screen bg-surface-default",
111
- children: [/* @__PURE__ */ p("header", {
112
- className: "border-b border-border-default bg-surface-raised",
113
- children: /* @__PURE__ */ m("div", {
112
+ children: [/* @__PURE__ */ f("header", {
113
+ className: "border-b border-border-seam bg-surface-raised",
114
+ children: /* @__PURE__ */ p("div", {
114
115
  className: "mx-auto max-w-7xl px-6 py-4",
115
- children: [/* @__PURE__ */ m("div", {
116
+ children: [/* @__PURE__ */ p("div", {
116
117
  className: "flex items-center justify-between",
117
- children: [/* @__PURE__ */ m("div", {
118
+ children: [/* @__PURE__ */ p("div", {
118
119
  className: "flex items-center gap-3",
119
- children: [/* @__PURE__ */ m("button", {
120
+ children: [/* @__PURE__ */ p("button", {
120
121
  type: "button",
121
- onClick: () => S(`${w}/dashboard`),
122
+ onClick: () => w(`${E}/dashboard`),
122
123
  className: "inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-sm text-text-secondary hover:bg-surface-hover hover:text-text-primary",
123
- children: [/* @__PURE__ */ p(a, { className: "size-4" }), "Back"]
124
- }), /* @__PURE__ */ m("div", {
124
+ children: [/* @__PURE__ */ f(a, { className: "size-4" }), "Back"]
125
+ }), /* @__PURE__ */ p("div", {
125
126
  className: "flex items-center gap-2",
126
127
  children: [
127
- /* @__PURE__ */ p(u, { className: "size-5 text-text-primary" }),
128
- /* @__PURE__ */ p("h1", {
128
+ /* @__PURE__ */ f(l, { className: "size-5 text-text-primary" }),
129
+ /* @__PURE__ */ f("h1", {
129
130
  className: "text-xl font-semibold text-text-primary",
130
131
  children: "Submission queue"
131
132
  }),
132
- /* @__PURE__ */ p("span", {
133
+ /* @__PURE__ */ f("span", {
133
134
  className: "rounded-full bg-surface-accent-muted px-2 py-0.5 text-xs font-medium text-text-accent",
134
- children: D
135
+ children: k
135
136
  })
136
137
  ]
137
138
  })]
138
- }), /* @__PURE__ */ m("button", {
139
+ }), /* @__PURE__ */ p("button", {
139
140
  type: "button",
140
- onClick: () => void U(F),
141
+ onClick: () => void G(L),
141
142
  className: "inline-flex items-center gap-2 rounded-md border border-border-default bg-surface-default px-3 py-1.5 text-sm text-text-primary hover:bg-surface-hover",
142
- disabled: k,
143
- children: [/* @__PURE__ */ p(d, { className: `size-4 ${k ? "animate-spin" : ""}` }), "Refresh"]
143
+ disabled: j,
144
+ children: [/* @__PURE__ */ f(u, { className: `size-4 ${j ? "animate-spin" : ""}` }), "Refresh"]
144
145
  })]
145
- }), /* @__PURE__ */ p("div", {
146
+ }), /* @__PURE__ */ f("div", {
146
147
  className: "mt-4 flex gap-2",
147
- children: x.map((e) => /* @__PURE__ */ p("button", {
148
+ children: C.map((e) => /* @__PURE__ */ f("button", {
148
149
  type: "button",
149
- onClick: () => I(e.value),
150
- className: `rounded-full px-3 py-1 text-xs font-medium transition-colors ${F === e.value ? "bg-surface-accent text-text-on-accent" : "bg-surface-muted text-text-secondary hover:bg-surface-hover"}`,
150
+ onClick: () => R(e.value),
151
+ className: `rounded-full px-3 py-1 text-xs font-medium transition-colors ${L === e.value ? "bg-surface-accent text-text-on-accent" : "bg-surface-muted text-text-secondary hover:bg-surface-hover"}`,
151
152
  children: e.label
152
153
  }, e.value))
153
154
  })]
154
155
  })
155
- }), /* @__PURE__ */ m("main", {
156
+ }), /* @__PURE__ */ p("main", {
156
157
  className: "mx-auto max-w-7xl p-6",
157
- children: [j && /* @__PURE__ */ p("div", {
158
- role: "alert",
159
- className: "mb-4 rounded-md border border-border-danger bg-surface-danger-muted px-4 py-3 text-sm text-text-danger",
160
- children: j
161
- }), k && T.length === 0 ? /* @__PURE__ */ p("output", {
162
- className: "block py-16 text-center text-text-secondary",
163
- children: "Loading submissions"
164
- }) : T.length === 0 ? /* @__PURE__ */ p("div", {
165
- className: "py-16 text-center text-text-secondary",
166
- children: "No products matching the current filter."
167
- }) : /* @__PURE__ */ p("ul", {
168
- className: "space-y-3",
169
- children: T.map((e) => /* @__PURE__ */ m("li", {
170
- className: "overflow-hidden rounded-lg border border-border-default bg-surface-raised",
171
- children: [
172
- /* @__PURE__ */ m("div", {
173
- className: "flex items-start gap-4 p-4",
174
- children: [
175
- e.icon ? /* @__PURE__ */ p("img", {
176
- src: e.icon,
177
- alt: "",
178
- className: "size-14 flex-shrink-0 rounded-md object-cover"
179
- }) : /* @__PURE__ */ p("div", {
180
- className: "flex size-14 flex-shrink-0 items-center justify-center rounded-md bg-surface-muted text-xs text-text-secondary",
181
- children: e.type
182
- }),
183
- /* @__PURE__ */ m("div", {
184
- className: "min-w-0 flex-1",
158
+ children: [
159
+ /* @__PURE__ */ f(v, {
160
+ className: "mb-4",
161
+ children: "This is the marketplace gatekeeper. Every product a publisher submits lands here for review before customers can see it — open each one to inspect its details, pricing and publisher, then approve it to go live or reject it with a clear reason the publisher will read. Keeping this queue empty means new apps reach customers quickly."
162
+ }),
163
+ /* @__PURE__ */ f(_, {
164
+ storageKey: "store-admin-submissions",
165
+ steps: [
166
+ {
167
+ id: "review-pending",
168
+ label: "Review the pending queue",
169
+ description: "Start with submissions awaiting review and expand Details to inspect.",
170
+ onClick: () => R("PENDING_REVIEW")
171
+ },
172
+ {
173
+ id: "approve",
174
+ label: "Approve solid submissions",
175
+ description: "Approve a product to publish it instantly to the marketplace.",
176
+ done: L === "PUBLISHED" && D.length > 0
177
+ },
178
+ {
179
+ id: "reject-clear",
180
+ label: "Reject with a clear reason",
181
+ description: "Rejections require a reason publishers see it, so be specific."
182
+ }
183
+ ]
184
+ }),
185
+ N && /* @__PURE__ */ f("div", {
186
+ role: "alert",
187
+ className: "mb-4 rounded-md border border-border-danger bg-surface-danger-muted px-4 py-3 text-sm text-text-danger",
188
+ children: N
189
+ }),
190
+ j && D.length === 0 ? /* @__PURE__ */ f("output", {
191
+ className: "block py-16 text-center text-text-secondary",
192
+ children: "Loading submissions…"
193
+ }) : D.length === 0 ? /* @__PURE__ */ f(g, {
194
+ illustration: L === "PENDING_REVIEW" ? "empty-notifications" : "empty-data",
195
+ title: L === "PENDING_REVIEW" ? "Queue is clear" : "No products match this filter",
196
+ description: L === "PENDING_REVIEW" ? "There are no submissions awaiting review right now. New submissions will appear here as publishers send them in." : "Nothing matches the current status filter. Switch filters above to see products in other states."
197
+ }) : /* @__PURE__ */ f("ul", {
198
+ className: "space-y-3",
199
+ children: D.map((e) => /* @__PURE__ */ p("li", {
200
+ className: "overflow-hidden rounded-lg border border-border-seam bg-surface-raised transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop)]",
201
+ children: [
202
+ /* @__PURE__ */ p("div", {
203
+ className: "flex items-start gap-4 p-4",
204
+ children: [
205
+ e.icon ? /* @__PURE__ */ f("img", {
206
+ src: e.icon,
207
+ alt: "",
208
+ className: "size-14 flex-shrink-0 rounded-md object-cover"
209
+ }) : /* @__PURE__ */ f("div", {
210
+ className: "flex size-14 flex-shrink-0 items-center justify-center rounded-md bg-surface-muted text-xs text-text-secondary",
211
+ children: e.type
212
+ }),
213
+ /* @__PURE__ */ p("div", {
214
+ className: "min-w-0 flex-1",
215
+ children: [
216
+ /* @__PURE__ */ p("div", {
217
+ className: "flex items-center gap-2",
218
+ children: [
219
+ /* @__PURE__ */ f("h3", {
220
+ className: "truncate text-base font-semibold text-text-primary",
221
+ children: e.name
222
+ }),
223
+ /* @__PURE__ */ f("span", {
224
+ className: "rounded-full bg-surface-accent-muted px-2 py-0.5 text-xs font-medium text-text-accent",
225
+ children: e.type
226
+ }),
227
+ /* @__PURE__ */ f("span", {
228
+ className: "rounded-full bg-surface-muted px-2 py-0.5 text-xs font-medium text-text-secondary",
229
+ children: e.nature
230
+ })
231
+ ]
232
+ }),
233
+ /* @__PURE__ */ f("div", {
234
+ className: "mt-0.5 text-xs text-text-tertiary",
235
+ children: e.slug
236
+ }),
237
+ /* @__PURE__ */ p("div", {
238
+ className: "mt-1 flex items-center gap-3 text-xs text-text-secondary",
239
+ children: [
240
+ /* @__PURE__ */ p("span", { children: ["Publisher: ", e.publisher?.name ?? "Unknown"] }),
241
+ /* @__PURE__ */ p("span", { children: ["Price: ", t(e.price, e.currency, e.pricingModel)] }),
242
+ e.submittedAt && /* @__PURE__ */ p("span", { children: ["Submitted ", new Date(e.submittedAt).toLocaleString()] })
243
+ ]
244
+ }),
245
+ e.description && /* @__PURE__ */ f("p", {
246
+ className: "mt-2 line-clamp-2 text-sm text-text-secondary",
247
+ children: e.description
248
+ })
249
+ ]
250
+ }),
251
+ /* @__PURE__ */ p("div", {
252
+ className: "flex flex-shrink-0 flex-col gap-2",
253
+ children: [
254
+ /* @__PURE__ */ p("button", {
255
+ type: "button",
256
+ onClick: () => W(U === e.id ? null : e.id),
257
+ className: "inline-flex items-center gap-1 rounded-md border border-border-default px-3 py-1.5 text-xs text-text-secondary hover:bg-surface-hover",
258
+ children: [U === e.id ? /* @__PURE__ */ f(c, { className: "size-3.5" }) : /* @__PURE__ */ f(s, { className: "size-3.5" }), "Details"]
259
+ }),
260
+ /* @__PURE__ */ p("button", {
261
+ type: "button",
262
+ onClick: () => void K(e.id),
263
+ disabled: F === e.id,
264
+ className: "inline-flex items-center gap-1 rounded-md bg-surface-success px-3 py-1.5 text-xs font-medium text-text-on-success hover:bg-surface-success-hover disabled:opacity-60",
265
+ children: [/* @__PURE__ */ f(o, { className: "size-3.5" }), "Approve"]
266
+ }),
267
+ /* @__PURE__ */ p("button", {
268
+ type: "button",
269
+ onClick: () => {
270
+ B(e.id), H("");
271
+ },
272
+ disabled: F === e.id,
273
+ className: "inline-flex items-center gap-1 rounded-md border border-border-danger bg-surface-danger-muted px-3 py-1.5 text-xs font-medium text-text-danger hover:bg-surface-danger hover:text-text-on-danger disabled:opacity-60",
274
+ children: [/* @__PURE__ */ f(d, { className: "size-3.5" }), "Reject"]
275
+ })
276
+ ]
277
+ })
278
+ ]
279
+ }),
280
+ U === e.id && /* @__PURE__ */ f("div", {
281
+ className: "border-t border-border-seam bg-surface-muted p-4",
282
+ children: /* @__PURE__ */ p("dl", {
283
+ className: "grid grid-cols-2 gap-x-6 gap-y-3 text-xs sm:grid-cols-3",
185
284
  children: [
186
- /* @__PURE__ */ m("div", {
187
- className: "flex items-center gap-2",
285
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
286
+ className: "font-medium text-text-secondary",
287
+ children: "Slug"
288
+ }), /* @__PURE__ */ f("dd", {
289
+ className: "mt-0.5 font-mono text-text-primary",
290
+ children: e.slug
291
+ })] }),
292
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
293
+ className: "font-medium text-text-secondary",
294
+ children: "Type"
295
+ }), /* @__PURE__ */ f("dd", {
296
+ className: "mt-0.5 text-text-primary",
297
+ children: e.type
298
+ })] }),
299
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
300
+ className: "font-medium text-text-secondary",
301
+ children: "Nature"
302
+ }), /* @__PURE__ */ f("dd", {
303
+ className: "mt-0.5 text-text-primary",
304
+ children: e.nature
305
+ })] }),
306
+ e.category && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
307
+ className: "font-medium text-text-secondary",
308
+ children: "Category"
309
+ }), /* @__PURE__ */ f("dd", {
310
+ className: "mt-0.5 text-text-primary",
311
+ children: e.category
312
+ })] }),
313
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
314
+ className: "font-medium text-text-secondary",
315
+ children: "Pricing"
316
+ }), /* @__PURE__ */ p("dd", {
317
+ className: "mt-0.5 text-text-primary",
188
318
  children: [
189
- /* @__PURE__ */ p("h3", {
190
- className: "truncate text-base font-semibold text-text-primary",
191
- children: e.name
192
- }),
193
- /* @__PURE__ */ p("span", {
194
- className: "rounded-full bg-surface-accent-muted px-2 py-0.5 text-xs font-medium text-text-accent",
195
- children: e.type
196
- }),
319
+ t(e.price, e.currency, e.pricingModel),
320
+ " ",
197
321
  /* @__PURE__ */ p("span", {
198
- className: "rounded-full bg-surface-muted px-2 py-0.5 text-xs font-medium text-text-secondary",
199
- children: e.nature
322
+ className: "text-text-tertiary",
323
+ children: [
324
+ "(",
325
+ e.pricingModel,
326
+ ")"
327
+ ]
200
328
  })
201
329
  ]
202
- }),
203
- /* @__PURE__ */ p("div", {
204
- className: "mt-0.5 text-xs text-text-tertiary",
205
- children: e.slug
206
- }),
207
- /* @__PURE__ */ m("div", {
208
- className: "mt-1 flex items-center gap-3 text-xs text-text-secondary",
209
- children: [
210
- /* @__PURE__ */ m("span", { children: ["Publisher: ", e.publisher?.name ?? "Unknown"] }),
211
- /* @__PURE__ */ m("span", { children: ["Price: ", t(e.price, e.currency, e.pricingModel)] }),
212
- e.submittedAt && /* @__PURE__ */ m("span", { children: ["Submitted ", new Date(e.submittedAt).toLocaleString()] })
213
- ]
214
- }),
215
- e.description && /* @__PURE__ */ p("p", {
216
- className: "mt-2 line-clamp-2 text-sm text-text-secondary",
217
- children: e.description
330
+ })] }),
331
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
332
+ className: "font-medium text-text-secondary",
333
+ children: "Publisher"
334
+ }), /* @__PURE__ */ p("dd", {
335
+ className: "mt-0.5 text-text-primary",
336
+ children: [e.publisher?.name ?? "—", e.publisher?.email && /* @__PURE__ */ f("span", {
337
+ className: "block text-text-tertiary",
338
+ children: e.publisher.email
339
+ })]
340
+ })] }),
341
+ e.submittedBy && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
342
+ className: "font-medium text-text-secondary",
343
+ children: "Submitted by"
344
+ }), /* @__PURE__ */ f("dd", {
345
+ className: "mt-0.5 font-mono text-text-primary",
346
+ children: e.submittedBy
347
+ })] }),
348
+ e.submittedAt && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("dt", {
349
+ className: "font-medium text-text-secondary",
350
+ children: "Submitted at"
351
+ }), /* @__PURE__ */ f("dd", {
352
+ className: "mt-0.5 text-text-primary",
353
+ children: new Date(e.submittedAt).toLocaleString()
354
+ })] }),
355
+ e.description && /* @__PURE__ */ p("div", {
356
+ className: "col-span-2 sm:col-span-3",
357
+ children: [/* @__PURE__ */ f("dt", {
358
+ className: "font-medium text-text-secondary",
359
+ children: "Description"
360
+ }), /* @__PURE__ */ f("dd", {
361
+ className: "mt-0.5 whitespace-pre-wrap text-text-primary",
362
+ children: e.description
363
+ })]
218
364
  })
219
365
  ]
220
- }),
221
- /* @__PURE__ */ m("div", {
222
- className: "flex flex-shrink-0 flex-col gap-2",
223
- children: [
224
- e.productId && /* @__PURE__ */ m("a", {
225
- href: `/devportal/apps/${e.productId}`,
226
- target: "_blank",
227
- rel: "noreferrer",
228
- className: "inline-flex items-center gap-1 rounded-md border border-border-default px-3 py-1.5 text-xs text-text-secondary hover:bg-surface-hover",
229
- children: [/* @__PURE__ */ p(l, { className: "size-3.5" }), "View app"]
230
- }),
231
- /* @__PURE__ */ m("button", {
232
- type: "button",
233
- onClick: () => H(V === e.id ? null : e.id),
234
- className: "inline-flex items-center gap-1 rounded-md border border-border-default px-3 py-1.5 text-xs text-text-secondary hover:bg-surface-hover",
235
- children: [V === e.id ? /* @__PURE__ */ p(c, { className: "size-3.5" }) : /* @__PURE__ */ p(s, { className: "size-3.5" }), "Details"]
236
- }),
237
- /* @__PURE__ */ m("button", {
238
- type: "button",
239
- onClick: () => void W(e.id),
240
- disabled: N === e.id,
241
- className: "inline-flex items-center gap-1 rounded-md bg-surface-success px-3 py-1.5 text-xs font-medium text-text-on-success hover:bg-surface-success-hover disabled:opacity-60",
242
- children: [/* @__PURE__ */ p(o, { className: "size-3.5" }), "Approve"]
243
- }),
244
- /* @__PURE__ */ m("button", {
366
+ })
367
+ }),
368
+ z === e.id && /* @__PURE__ */ p("div", {
369
+ className: "border-t border-border-seam bg-surface-muted px-4 py-3",
370
+ children: [
371
+ /* @__PURE__ */ f("label", {
372
+ htmlFor: `reject-reason-${e.id}`,
373
+ className: "block text-xs font-medium text-text-secondary",
374
+ children: "Rejection reason (required)"
375
+ }),
376
+ /* @__PURE__ */ f("textarea", {
377
+ id: `reject-reason-${e.id}`,
378
+ "aria-label": "Rejection reason",
379
+ value: V,
380
+ onChange: (e) => H(e.target.value),
381
+ rows: 3,
382
+ required: !0,
383
+ "aria-required": "true",
384
+ className: "mt-1 w-full rounded-md border border-border-default bg-surface-default px-3 py-2 text-sm text-text-primary focus:border-border-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
385
+ placeholder: "Explain why this submission is being rejected…"
386
+ }),
387
+ /* @__PURE__ */ p("div", {
388
+ className: "mt-2 flex justify-end gap-2",
389
+ children: [/* @__PURE__ */ f("button", {
245
390
  type: "button",
246
391
  onClick: () => {
247
- R(e.id), B("");
392
+ B(null), H("");
248
393
  },
249
- disabled: N === e.id,
250
- className: "inline-flex items-center gap-1 rounded-md border border-border-danger bg-surface-danger-muted px-3 py-1.5 text-xs font-medium text-text-danger hover:bg-surface-danger hover:text-text-on-danger disabled:opacity-60",
251
- children: [/* @__PURE__ */ p(f, { className: "size-3.5" }), "Reject"]
252
- })
253
- ]
254
- })
255
- ]
256
- }),
257
- V === e.id && /* @__PURE__ */ p("div", {
258
- className: "border-t border-border-default bg-surface-muted p-4",
259
- children: /* @__PURE__ */ m("dl", {
260
- className: "grid grid-cols-2 gap-x-6 gap-y-3 text-xs sm:grid-cols-3",
261
- children: [
262
- /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
263
- className: "font-medium text-text-secondary",
264
- children: "Slug"
265
- }), /* @__PURE__ */ p("dd", {
266
- className: "mt-0.5 font-mono text-text-primary",
267
- children: e.slug
268
- })] }),
269
- /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
270
- className: "font-medium text-text-secondary",
271
- children: "Type"
272
- }), /* @__PURE__ */ p("dd", {
273
- className: "mt-0.5 text-text-primary",
274
- children: e.type
275
- })] }),
276
- /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
277
- className: "font-medium text-text-secondary",
278
- children: "Nature"
279
- }), /* @__PURE__ */ p("dd", {
280
- className: "mt-0.5 text-text-primary",
281
- children: e.nature
282
- })] }),
283
- e.category && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
284
- className: "font-medium text-text-secondary",
285
- children: "Category"
286
- }), /* @__PURE__ */ p("dd", {
287
- className: "mt-0.5 text-text-primary",
288
- children: e.category
289
- })] }),
290
- /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
291
- className: "font-medium text-text-secondary",
292
- children: "Pricing"
293
- }), /* @__PURE__ */ m("dd", {
294
- className: "mt-0.5 text-text-primary",
295
- children: [
296
- t(e.price, e.currency, e.pricingModel),
297
- " ",
298
- /* @__PURE__ */ m("span", {
299
- className: "text-text-tertiary",
300
- children: [
301
- "(",
302
- e.pricingModel,
303
- ")"
304
- ]
305
- })
306
- ]
307
- })] }),
308
- /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
309
- className: "font-medium text-text-secondary",
310
- children: "Publisher"
311
- }), /* @__PURE__ */ m("dd", {
312
- className: "mt-0.5 text-text-primary",
313
- children: [e.publisher?.name ?? "—", e.publisher?.email && /* @__PURE__ */ p("span", {
314
- className: "block text-text-tertiary",
315
- children: e.publisher.email
316
- })]
317
- })] }),
318
- e.productId && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
319
- className: "font-medium text-text-secondary",
320
- children: "Devportal app ID"
321
- }), /* @__PURE__ */ p("dd", {
322
- className: "mt-0.5 font-mono text-text-primary",
323
- children: e.productId
324
- })] }),
325
- e.submittedBy && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
326
- className: "font-medium text-text-secondary",
327
- children: "Submitted by"
328
- }), /* @__PURE__ */ p("dd", {
329
- className: "mt-0.5 font-mono text-text-primary",
330
- children: e.submittedBy
331
- })] }),
332
- e.submittedAt && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("dt", {
333
- className: "font-medium text-text-secondary",
334
- children: "Submitted at"
335
- }), /* @__PURE__ */ p("dd", {
336
- className: "mt-0.5 text-text-primary",
337
- children: new Date(e.submittedAt).toLocaleString()
338
- })] }),
339
- e.description && /* @__PURE__ */ m("div", {
340
- className: "col-span-2 sm:col-span-3",
341
- children: [/* @__PURE__ */ p("dt", {
342
- className: "font-medium text-text-secondary",
343
- children: "Description"
344
- }), /* @__PURE__ */ p("dd", {
345
- className: "mt-0.5 whitespace-pre-wrap text-text-primary",
346
- children: e.description
394
+ className: "rounded-md border border-border-default bg-surface-default px-3 py-1 text-xs text-text-primary hover:bg-surface-hover",
395
+ children: "Cancel"
396
+ }), /* @__PURE__ */ f("button", {
397
+ type: "button",
398
+ onClick: () => void q(e.id),
399
+ disabled: !V.trim() || F === e.id,
400
+ className: "rounded-md bg-surface-danger px-3 py-1 text-xs font-medium text-text-on-danger hover:bg-surface-danger-hover disabled:opacity-60",
401
+ children: "Submit rejection"
347
402
  })]
348
403
  })
349
404
  ]
350
405
  })
351
- }),
352
- L === e.id && /* @__PURE__ */ m("div", {
353
- className: "border-t border-border-default bg-surface-muted px-4 py-3",
354
- children: [
355
- /* @__PURE__ */ p("label", {
356
- htmlFor: `reject-reason-${e.id}`,
357
- className: "block text-xs font-medium text-text-secondary",
358
- children: "Rejection reason (required)"
359
- }),
360
- /* @__PURE__ */ p("textarea", {
361
- id: `reject-reason-${e.id}`,
362
- "aria-label": "Rejection reason",
363
- value: z,
364
- onChange: (e) => B(e.target.value),
365
- rows: 3,
366
- required: !0,
367
- "aria-required": "true",
368
- className: "mt-1 w-full rounded-md border border-border-default bg-surface-default px-3 py-2 text-sm text-text-primary focus:border-border-accent focus:outline-none",
369
- placeholder: "Explain why this submission is being rejected…"
370
- }),
371
- /* @__PURE__ */ m("div", {
372
- className: "mt-2 flex justify-end gap-2",
373
- children: [/* @__PURE__ */ p("button", {
374
- type: "button",
375
- onClick: () => {
376
- R(null), B("");
377
- },
378
- className: "rounded-md border border-border-default bg-surface-default px-3 py-1 text-xs text-text-primary hover:bg-surface-hover",
379
- children: "Cancel"
380
- }), /* @__PURE__ */ p("button", {
381
- type: "button",
382
- onClick: () => void G(e.id),
383
- disabled: !z.trim() || N === e.id,
384
- className: "rounded-md bg-surface-danger px-3 py-1 text-xs font-medium text-text-on-danger hover:bg-surface-danger-hover disabled:opacity-60",
385
- children: "Submit rejection"
386
- })]
387
- })
388
- ]
389
- })
390
- ]
391
- }, e.id))
392
- })]
406
+ ]
407
+ }, e.id))
408
+ })
409
+ ]
393
410
  })]
394
411
  });
395
412
  };
396
413
  //#endregion
397
- export { S as AdminSubmissionsQueuePage };
414
+ export { w as AdminSubmissionsQueuePage };
398
415
 
399
416
  //# sourceMappingURL=AdminSubmissionsQueuePage.js.map