@burdenoff/microfe-store 2026.720.3 → 2026.720.4

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 (276) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/components/MarkdownEditor.js +5 -5
  3. package/dist/components/MarkdownEditor.js.map +1 -1
  4. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.js +63 -0
  5. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.js.map +1 -0
  6. package/dist/node_modules/@ungap/structured-clone/esm/index.js +8 -0
  7. package/dist/node_modules/@ungap/structured-clone/esm/index.js.map +1 -0
  8. package/dist/node_modules/@ungap/structured-clone/esm/serialize.js +93 -0
  9. package/dist/node_modules/@ungap/structured-clone/esm/serialize.js.map +1 -0
  10. package/dist/node_modules/bail/index.js +8 -0
  11. package/dist/node_modules/bail/index.js.map +1 -0
  12. package/dist/node_modules/comma-separated-tokens/index.js +9 -0
  13. package/dist/node_modules/comma-separated-tokens/index.js.map +1 -0
  14. package/dist/node_modules/decode-named-character-reference/index.dom.js +12 -0
  15. package/dist/node_modules/decode-named-character-reference/index.dom.js.map +1 -0
  16. package/dist/node_modules/devlop/lib/default.js +7 -0
  17. package/dist/node_modules/devlop/lib/default.js.map +1 -0
  18. package/dist/node_modules/estree-util-is-identifier-name/lib/index.js +9 -0
  19. package/dist/node_modules/estree-util-is-identifier-name/lib/index.js.map +1 -0
  20. package/dist/node_modules/extend/index.js +42 -0
  21. package/dist/node_modules/extend/index.js.map +1 -0
  22. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +255 -0
  23. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js.map +1 -0
  24. package/dist/node_modules/hast-util-whitespace/lib/index.js +12 -0
  25. package/dist/node_modules/hast-util-whitespace/lib/index.js.map +1 -0
  26. package/dist/node_modules/html-url-attributes/lib/index.js +38 -0
  27. package/dist/node_modules/html-url-attributes/lib/index.js.map +1 -0
  28. package/dist/node_modules/inline-style-parser/cjs/index.js +92 -0
  29. package/dist/node_modules/inline-style-parser/cjs/index.js.map +1 -0
  30. package/dist/node_modules/is-plain-obj/index.js +10 -0
  31. package/dist/node_modules/is-plain-obj/index.js.map +1 -0
  32. package/dist/node_modules/mdast-util-from-markdown/lib/index.js +559 -0
  33. package/dist/node_modules/mdast-util-from-markdown/lib/index.js.map +1 -0
  34. package/dist/node_modules/mdast-util-to-hast/lib/footer.js +105 -0
  35. package/dist/node_modules/mdast-util-to-hast/lib/footer.js.map +1 -0
  36. package/dist/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js +14 -0
  37. package/dist/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js.map +1 -0
  38. package/dist/node_modules/mdast-util-to-hast/lib/handlers/break.js +17 -0
  39. package/dist/node_modules/mdast-util-to-hast/lib/handlers/break.js.map +1 -0
  40. package/dist/node_modules/mdast-util-to-hast/lib/handlers/code.js +24 -0
  41. package/dist/node_modules/mdast-util-to-hast/lib/handlers/code.js.map +1 -0
  42. package/dist/node_modules/mdast-util-to-hast/lib/handlers/delete.js +14 -0
  43. package/dist/node_modules/mdast-util-to-hast/lib/handlers/delete.js.map +1 -0
  44. package/dist/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js +14 -0
  45. package/dist/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js.map +1 -0
  46. package/dist/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js +32 -0
  47. package/dist/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js.map +1 -0
  48. package/dist/node_modules/mdast-util-to-hast/lib/handlers/heading.js +14 -0
  49. package/dist/node_modules/mdast-util-to-hast/lib/handlers/heading.js.map +1 -0
  50. package/dist/node_modules/mdast-util-to-hast/lib/handlers/html.js +14 -0
  51. package/dist/node_modules/mdast-util-to-hast/lib/handlers/html.js.map +1 -0
  52. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js +23 -0
  53. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js.map +1 -0
  54. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image.js +17 -0
  55. package/dist/node_modules/mdast-util-to-hast/lib/handlers/image.js.map +1 -0
  56. package/dist/node_modules/mdast-util-to-hast/lib/handlers/index.js +58 -0
  57. package/dist/node_modules/mdast-util-to-hast/lib/handlers/index.js.map +1 -0
  58. package/dist/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js +19 -0
  59. package/dist/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js.map +1 -0
  60. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js +20 -0
  61. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js.map +1 -0
  62. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link.js +17 -0
  63. package/dist/node_modules/mdast-util-to-hast/lib/handlers/link.js.map +1 -0
  64. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list-item.js +61 -0
  65. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list-item.js.map +1 -0
  66. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list.js +22 -0
  67. package/dist/node_modules/mdast-util-to-hast/lib/handlers/list.js.map +1 -0
  68. package/dist/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js +14 -0
  69. package/dist/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js.map +1 -0
  70. package/dist/node_modules/mdast-util-to-hast/lib/handlers/root.js +12 -0
  71. package/dist/node_modules/mdast-util-to-hast/lib/handlers/root.js.map +1 -0
  72. package/dist/node_modules/mdast-util-to-hast/lib/handlers/strong.js +14 -0
  73. package/dist/node_modules/mdast-util-to-hast/lib/handlers/strong.js.map +1 -0
  74. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js +14 -0
  75. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js.map +1 -0
  76. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-row.js +26 -0
  77. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-row.js.map +1 -0
  78. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table.js +37 -0
  79. package/dist/node_modules/mdast-util-to-hast/lib/handlers/table.js.map +1 -0
  80. package/dist/node_modules/mdast-util-to-hast/lib/handlers/text.js +13 -0
  81. package/dist/node_modules/mdast-util-to-hast/lib/handlers/text.js.map +1 -0
  82. package/dist/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js +14 -0
  83. package/dist/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js.map +1 -0
  84. package/dist/node_modules/mdast-util-to-hast/lib/index.js +21 -0
  85. package/dist/node_modules/mdast-util-to-hast/lib/index.js.map +1 -0
  86. package/dist/node_modules/mdast-util-to-hast/lib/revert.js +22 -0
  87. package/dist/node_modules/mdast-util-to-hast/lib/revert.js.map +1 -0
  88. package/dist/node_modules/mdast-util-to-hast/lib/state.js +110 -0
  89. package/dist/node_modules/mdast-util-to-hast/lib/state.js.map +1 -0
  90. package/dist/node_modules/mdast-util-to-string/lib/index.js +26 -0
  91. package/dist/node_modules/mdast-util-to-string/lib/index.js.map +1 -0
  92. package/dist/node_modules/micromark/lib/constructs.js +82 -0
  93. package/dist/node_modules/micromark/lib/constructs.js.map +1 -0
  94. package/dist/node_modules/micromark/lib/create-tokenizer.js +179 -0
  95. package/dist/node_modules/micromark/lib/create-tokenizer.js.map +1 -0
  96. package/dist/node_modules/micromark/lib/initialize/content.js +36 -0
  97. package/dist/node_modules/micromark/lib/initialize/content.js.map +1 -0
  98. package/dist/node_modules/micromark/lib/initialize/document.js +104 -0
  99. package/dist/node_modules/micromark/lib/initialize/document.js.map +1 -0
  100. package/dist/node_modules/micromark/lib/initialize/flow.js +27 -0
  101. package/dist/node_modules/micromark/lib/initialize/flow.js.map +1 -0
  102. package/dist/node_modules/micromark/lib/initialize/text.js +88 -0
  103. package/dist/node_modules/micromark/lib/initialize/text.js.map +1 -0
  104. package/dist/node_modules/micromark/lib/parse.js +31 -0
  105. package/dist/node_modules/micromark/lib/parse.js.map +1 -0
  106. package/dist/node_modules/micromark/lib/postprocess.js +10 -0
  107. package/dist/node_modules/micromark/lib/postprocess.js.map +1 -0
  108. package/dist/node_modules/micromark/lib/preprocess.js +34 -0
  109. package/dist/node_modules/micromark/lib/preprocess.js.map +1 -0
  110. package/dist/node_modules/micromark-core-commonmark/lib/attention.js +116 -0
  111. package/dist/node_modules/micromark-core-commonmark/lib/attention.js.map +1 -0
  112. package/dist/node_modules/micromark-core-commonmark/lib/autolink.js +45 -0
  113. package/dist/node_modules/micromark-core-commonmark/lib/autolink.js.map +1 -0
  114. package/dist/node_modules/micromark-core-commonmark/lib/blank-line.js +20 -0
  115. package/dist/node_modules/micromark-core-commonmark/lib/blank-line.js.map +1 -0
  116. package/dist/node_modules/micromark-core-commonmark/lib/block-quote.js +40 -0
  117. package/dist/node_modules/micromark-core-commonmark/lib/block-quote.js.map +1 -0
  118. package/dist/node_modules/micromark-core-commonmark/lib/character-escape.js +19 -0
  119. package/dist/node_modules/micromark-core-commonmark/lib/character-escape.js.map +1 -0
  120. package/dist/node_modules/micromark-core-commonmark/lib/character-reference.js +31 -0
  121. package/dist/node_modules/micromark-core-commonmark/lib/character-reference.js.map +1 -0
  122. package/dist/node_modules/micromark-core-commonmark/lib/code-fenced.js +91 -0
  123. package/dist/node_modules/micromark-core-commonmark/lib/code-fenced.js.map +1 -0
  124. package/dist/node_modules/micromark-core-commonmark/lib/code-indented.js +45 -0
  125. package/dist/node_modules/micromark-core-commonmark/lib/code-indented.js.map +1 -0
  126. package/dist/node_modules/micromark-core-commonmark/lib/code-text.js +45 -0
  127. package/dist/node_modules/micromark-core-commonmark/lib/code-text.js.map +1 -0
  128. package/dist/node_modules/micromark-core-commonmark/lib/content.js +49 -0
  129. package/dist/node_modules/micromark-core-commonmark/lib/content.js.map +1 -0
  130. package/dist/node_modules/micromark-core-commonmark/lib/definition.js +62 -0
  131. package/dist/node_modules/micromark-core-commonmark/lib/definition.js.map +1 -0
  132. package/dist/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +19 -0
  133. package/dist/node_modules/micromark-core-commonmark/lib/hard-break-escape.js.map +1 -0
  134. package/dist/node_modules/micromark-core-commonmark/lib/heading-atx.js +69 -0
  135. package/dist/node_modules/micromark-core-commonmark/lib/heading-atx.js.map +1 -0
  136. package/dist/node_modules/micromark-core-commonmark/lib/html-flow.js +143 -0
  137. package/dist/node_modules/micromark-core-commonmark/lib/html-flow.js.map +1 -0
  138. package/dist/node_modules/micromark-core-commonmark/lib/html-text.js +102 -0
  139. package/dist/node_modules/micromark-core-commonmark/lib/html-text.js.map +1 -0
  140. package/dist/node_modules/micromark-core-commonmark/lib/label-end.js +160 -0
  141. package/dist/node_modules/micromark-core-commonmark/lib/label-end.js.map +1 -0
  142. package/dist/node_modules/micromark-core-commonmark/lib/label-start-image.js +25 -0
  143. package/dist/node_modules/micromark-core-commonmark/lib/label-start-image.js.map +1 -0
  144. package/dist/node_modules/micromark-core-commonmark/lib/label-start-link.js +22 -0
  145. package/dist/node_modules/micromark-core-commonmark/lib/label-start-link.js.map +1 -0
  146. package/dist/node_modules/micromark-core-commonmark/lib/line-ending.js +16 -0
  147. package/dist/node_modules/micromark-core-commonmark/lib/line-ending.js.map +1 -0
  148. package/dist/node_modules/micromark-core-commonmark/lib/list.js +80 -0
  149. package/dist/node_modules/micromark-core-commonmark/lib/list.js.map +1 -0
  150. package/dist/node_modules/micromark-core-commonmark/lib/setext-underline.js +61 -0
  151. package/dist/node_modules/micromark-core-commonmark/lib/setext-underline.js.map +1 -0
  152. package/dist/node_modules/micromark-core-commonmark/lib/thematic-break.js +27 -0
  153. package/dist/node_modules/micromark-core-commonmark/lib/thematic-break.js.map +1 -0
  154. package/dist/node_modules/micromark-factory-destination/index.js +28 -0
  155. package/dist/node_modules/micromark-factory-destination/index.js.map +1 -0
  156. package/dist/node_modules/micromark-factory-label/index.js +22 -0
  157. package/dist/node_modules/micromark-factory-label/index.js.map +1 -0
  158. package/dist/node_modules/micromark-factory-space/index.js +16 -0
  159. package/dist/node_modules/micromark-factory-space/index.js.map +1 -0
  160. package/dist/node_modules/micromark-factory-title/index.js +26 -0
  161. package/dist/node_modules/micromark-factory-title/index.js.map +1 -0
  162. package/dist/node_modules/micromark-factory-whitespace/index.js +14 -0
  163. package/dist/node_modules/micromark-factory-whitespace/index.js.map +1 -0
  164. package/dist/node_modules/micromark-util-character/index.js +26 -0
  165. package/dist/node_modules/micromark-util-character/index.js.map +1 -0
  166. package/dist/node_modules/micromark-util-chunked/index.js +13 -0
  167. package/dist/node_modules/micromark-util-chunked/index.js.map +1 -0
  168. package/dist/node_modules/micromark-util-classify-character/index.js +10 -0
  169. package/dist/node_modules/micromark-util-classify-character/index.js.map +1 -0
  170. package/dist/node_modules/micromark-util-combine-extensions/index.js +28 -0
  171. package/dist/node_modules/micromark-util-combine-extensions/index.js.map +1 -0
  172. package/dist/node_modules/micromark-util-decode-numeric-character-reference/index.js +9 -0
  173. package/dist/node_modules/micromark-util-decode-numeric-character-reference/index.js.map +1 -0
  174. package/dist/node_modules/micromark-util-decode-string/index.js +19 -0
  175. package/dist/node_modules/micromark-util-decode-string/index.js.map +1 -0
  176. package/dist/node_modules/micromark-util-html-tag-name/index.js +11 -0
  177. package/dist/node_modules/micromark-util-html-tag-name/index.js.map +1 -0
  178. package/dist/node_modules/micromark-util-normalize-identifier/index.js +8 -0
  179. package/dist/node_modules/micromark-util-normalize-identifier/index.js.map +1 -0
  180. package/dist/node_modules/micromark-util-resolve-all/index.js +13 -0
  181. package/dist/node_modules/micromark-util-resolve-all/index.js.map +1 -0
  182. package/dist/node_modules/micromark-util-sanitize-uri/index.js +20 -0
  183. package/dist/node_modules/micromark-util-sanitize-uri/index.js.map +1 -0
  184. package/dist/node_modules/micromark-util-subtokenize/index.js +37 -0
  185. package/dist/node_modules/micromark-util-subtokenize/index.js.map +1 -0
  186. package/dist/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +59 -0
  187. package/dist/node_modules/micromark-util-subtokenize/lib/splice-buffer.js.map +1 -0
  188. package/dist/node_modules/property-information/index.js +28 -0
  189. package/dist/node_modules/property-information/index.js.map +1 -0
  190. package/dist/node_modules/property-information/lib/aria.js +63 -0
  191. package/dist/node_modules/property-information/lib/aria.js.map +1 -0
  192. package/dist/node_modules/property-information/lib/find.js +33 -0
  193. package/dist/node_modules/property-information/lib/find.js.map +1 -0
  194. package/dist/node_modules/property-information/lib/hast-to-react.js +24 -0
  195. package/dist/node_modules/property-information/lib/hast-to-react.js.map +1 -0
  196. package/dist/node_modules/property-information/lib/html.js +328 -0
  197. package/dist/node_modules/property-information/lib/html.js.map +1 -0
  198. package/dist/node_modules/property-information/lib/normalize.js +8 -0
  199. package/dist/node_modules/property-information/lib/normalize.js.map +1 -0
  200. package/dist/node_modules/property-information/lib/svg.js +566 -0
  201. package/dist/node_modules/property-information/lib/svg.js.map +1 -0
  202. package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js +9 -0
  203. package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js.map +1 -0
  204. package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js +8 -0
  205. package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js.map +1 -0
  206. package/dist/node_modules/property-information/lib/util/create.js +16 -0
  207. package/dist/node_modules/property-information/lib/util/create.js.map +1 -0
  208. package/dist/node_modules/property-information/lib/util/defined-info.js +20 -0
  209. package/dist/node_modules/property-information/lib/util/defined-info.js.map +1 -0
  210. package/dist/node_modules/property-information/lib/util/info.js +11 -0
  211. package/dist/node_modules/property-information/lib/util/info.js.map +1 -0
  212. package/dist/node_modules/property-information/lib/util/merge.js +11 -0
  213. package/dist/node_modules/property-information/lib/util/merge.js.map +1 -0
  214. package/dist/node_modules/property-information/lib/util/schema.js +11 -0
  215. package/dist/node_modules/property-information/lib/util/schema.js.map +1 -0
  216. package/dist/node_modules/property-information/lib/util/types.js +18 -0
  217. package/dist/node_modules/property-information/lib/util/types.js.map +1 -0
  218. package/dist/node_modules/property-information/lib/xlink.js +21 -0
  219. package/dist/node_modules/property-information/lib/xlink.js.map +1 -0
  220. package/dist/node_modules/property-information/lib/xml.js +17 -0
  221. package/dist/node_modules/property-information/lib/xml.js.map +1 -0
  222. package/dist/node_modules/property-information/lib/xmlns.js +16 -0
  223. package/dist/node_modules/property-information/lib/xmlns.js.map +1 -0
  224. package/dist/node_modules/react-markdown/lib/index.js +142 -0
  225. package/dist/node_modules/react-markdown/lib/index.js.map +1 -0
  226. package/dist/node_modules/remark-parse/lib/index.js +18 -0
  227. package/dist/node_modules/remark-parse/lib/index.js.map +1 -0
  228. package/dist/node_modules/remark-rehype/lib/index.js +20 -0
  229. package/dist/node_modules/remark-rehype/lib/index.js.map +1 -0
  230. package/dist/node_modules/space-separated-tokens/index.js +8 -0
  231. package/dist/node_modules/space-separated-tokens/index.js.map +1 -0
  232. package/dist/node_modules/style-to-js/cjs/index.js +21 -0
  233. package/dist/node_modules/style-to-js/cjs/index.js.map +1 -0
  234. package/dist/node_modules/style-to-js/cjs/utilities.js +20 -0
  235. package/dist/node_modules/style-to-js/cjs/utilities.js.map +1 -0
  236. package/dist/node_modules/style-to-object/cjs/index.js +25 -0
  237. package/dist/node_modules/style-to-object/cjs/index.js.map +1 -0
  238. package/dist/node_modules/trim-lines/index.js +23 -0
  239. package/dist/node_modules/trim-lines/index.js.map +1 -0
  240. package/dist/node_modules/trough/lib/index.js +52 -0
  241. package/dist/node_modules/trough/lib/index.js.map +1 -0
  242. package/dist/node_modules/unified/lib/callable-instance.js +11 -0
  243. package/dist/node_modules/unified/lib/callable-instance.js.map +1 -0
  244. package/dist/node_modules/unified/lib/index.js +163 -0
  245. package/dist/node_modules/unified/lib/index.js.map +1 -0
  246. package/dist/node_modules/unist-util-is/lib/index.js +49 -0
  247. package/dist/node_modules/unist-util-is/lib/index.js.map +1 -0
  248. package/dist/node_modules/unist-util-position/lib/index.js +24 -0
  249. package/dist/node_modules/unist-util-position/lib/index.js.map +1 -0
  250. package/dist/node_modules/unist-util-stringify-position/lib/index.js +17 -0
  251. package/dist/node_modules/unist-util-stringify-position/lib/index.js.map +1 -0
  252. package/dist/node_modules/unist-util-visit/lib/index.js +14 -0
  253. package/dist/node_modules/unist-util-visit/lib/index.js.map +1 -0
  254. package/dist/node_modules/unist-util-visit-parents/lib/color.js +8 -0
  255. package/dist/node_modules/unist-util-visit-parents/lib/color.js.map +1 -0
  256. package/dist/node_modules/unist-util-visit-parents/lib/index.js +38 -0
  257. package/dist/node_modules/unist-util-visit-parents/lib/index.js.map +1 -0
  258. package/dist/node_modules/vfile/lib/index.js +91 -0
  259. package/dist/node_modules/vfile/lib/index.js.map +1 -0
  260. package/dist/node_modules/vfile/lib/minpath.browser.js +101 -0
  261. package/dist/node_modules/vfile/lib/minpath.browser.js.map +1 -0
  262. package/dist/node_modules/vfile/lib/minproc.browser.js +9 -0
  263. package/dist/node_modules/vfile/lib/minproc.browser.js.map +1 -0
  264. package/dist/node_modules/vfile/lib/minurl.browser.js +33 -0
  265. package/dist/node_modules/vfile/lib/minurl.browser.js.map +1 -0
  266. package/dist/node_modules/vfile/lib/minurl.shared.js +8 -0
  267. package/dist/node_modules/vfile/lib/minurl.shared.js.map +1 -0
  268. package/dist/node_modules/vfile-message/lib/index.js +26 -0
  269. package/dist/node_modules/vfile-message/lib/index.js.map +1 -0
  270. package/dist/pages/AdminSubmissionsQueuePage.js +174 -174
  271. package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
  272. package/dist/pages/MarketplaceHomePage.js +472 -422
  273. package/dist/pages/MarketplaceHomePage.js.map +1 -1
  274. package/dist/pages/ProductDetailPage.js +16 -16
  275. package/dist/pages/ProductDetailPage.js.map +1 -1
  276. package/package.json +1 -1
@@ -1,15 +1,15 @@
1
1
  import { useStore as e } from "../providers/StoreProvider.js";
2
2
  import { formatPriceForModel as t } from "../utils/index.js";
3
- import { InstallAppModal as n } from "../components/InstallAppModal.js";
4
- import { useCallback as r, useEffect as i, useState as a } from "react";
5
- import { Markdown as ee } from "@burdenoff/fe-libs/shared/components";
6
- import { ArrowLeft as te, Check as o, ChevronDown as s, ChevronUp as c, Clock as l, Download as u, ExternalLink as d, FileJson as f, FlaskConical as ne, GitBranch as p, Hash as re, PackageCheck as ie, RefreshCw as m, ShieldCheck as ae, Tag as oe, User as se, X as h } from "lucide-react";
3
+ import { Markdown as n } from "../node_modules/react-markdown/lib/index.js";
4
+ import { InstallAppModal as r } from "../components/InstallAppModal.js";
5
+ import { useCallback as i, useEffect as a, useState as o } from "react";
6
+ import { ArrowLeft as ee, Check as te, ChevronDown as s, ChevronUp as c, Clock as l, Download as u, ExternalLink as d, FileJson as f, FlaskConical as ne, GitBranch as p, Hash as re, PackageCheck as ie, RefreshCw as m, ShieldCheck as ae, Tag as oe, User as se, X as h } from "lucide-react";
7
7
  import { graphqlFetch as g } from "@burdenoff/fe-libs/shared/graphql";
8
8
  import { jsx as _, jsxs as v } from "react/jsx-runtime";
9
9
  import { useNavigate as ce } from "react-router-dom";
10
- import { IllustratedEmptyState as y, PagePurpose as le } from "@burdenoff/fe-libs/ui";
10
+ import { IllustratedEmptyState as le, PagePurpose as ue } from "@burdenoff/fe-libs/ui";
11
11
  //#region src/pages/AdminSubmissionsQueuePage.tsx
12
- var ue = "\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 zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", de = "\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 zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n", fe = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", pe = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", me = "\n mutation DelistProduct($id: ID!, $reason: String) {\n delistProduct(id: $id, reason: $reason) {\n id\n status\n }\n }\n", he = "\n query AdminAppPackageUrl($id: ID!) {\n application(id: $id) {\n id\n versions(first: 1) {\n edges {\n node {\n id\n packageUrl\n }\n }\n }\n }\n }\n", ge = "\n mutation RefreshApplicationVersionPackageUrl($id: ID!) {\n refreshApplicationVersionPackageUrl(id: $id)\n }\n", _e = "\n query AdminPendingVersionApps($limit: Int, $offset: Int) {\n applicationsWithPendingVersions(limit: $limit, offset: $offset) {\n totalCount\n edges {\n node {\n id\n name\n slug\n iconUrl\n shortDescription\n description\n versions(first: 5) {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n packageSize\n isLatest\n reviewNotes\n manifest\n createdAt\n }\n }\n }\n }\n }\n }\n }\n", ve = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", ye = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", be = [
12
+ var de = "\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 zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", fe = "\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 zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n", pe = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", me = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", he = "\n mutation DelistProduct($id: ID!, $reason: String) {\n delistProduct(id: $id, reason: $reason) {\n id\n status\n }\n }\n", ge = "\n query AdminAppPackageUrl($id: ID!) {\n application(id: $id) {\n id\n versions(first: 1) {\n edges {\n node {\n id\n packageUrl\n }\n }\n }\n }\n }\n", _e = "\n mutation RefreshApplicationVersionPackageUrl($id: ID!) {\n refreshApplicationVersionPackageUrl(id: $id)\n }\n", ve = "\n query AdminPendingVersionApps($limit: Int, $offset: Int) {\n applicationsWithPendingVersions(limit: $limit, offset: $offset) {\n totalCount\n edges {\n node {\n id\n name\n slug\n iconUrl\n shortDescription\n description\n versions(first: 5) {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n packageSize\n isLatest\n reviewNotes\n manifest\n createdAt\n }\n }\n }\n }\n }\n }\n }\n", ye = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", be = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", xe = [
13
13
  {
14
14
  label: "Pending review",
15
15
  value: "PENDING_REVIEW"
@@ -30,16 +30,16 @@ var ue = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
30
30
  label: "All",
31
31
  value: "ALL"
32
32
  }
33
- ], b = {
33
+ ], y = {
34
34
  NODE: "bg-[var(--color-status-info-bg-subtle)] text-[var(--color-status-info-text)]",
35
35
  WORKFLOW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
36
36
  INTEGRATION: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
37
37
  VIBEMODULE: "bg-[var(--color-surface-accent-muted)] text-[var(--color-text-accent)]"
38
- }, x = {
38
+ }, b = {
39
39
  PENDING_REVIEW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
40
40
  PUBLISHED: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
41
41
  REJECTED: "bg-[var(--color-status-error-bg-subtle)] text-[var(--color-status-error-text)]"
42
- }, S = new Set([
42
+ }, x = new Set([
43
43
  "NODE",
44
44
  "WORKFLOW",
45
45
  "VIBEMODULE",
@@ -47,13 +47,13 @@ var ue = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
47
47
  "DATASINK",
48
48
  "CONSOLE"
49
49
  ]);
50
- function xe(e) {
51
- return b[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
52
- }
53
50
  function Se(e) {
54
- return x[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
51
+ return y[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
52
+ }
53
+ function Ce(e) {
54
+ return b[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
55
55
  }
56
- function C(e) {
56
+ function S(e) {
57
57
  return e ? new Date(e).toLocaleString(void 0, {
58
58
  month: "short",
59
59
  day: "numeric",
@@ -62,122 +62,122 @@ function C(e) {
62
62
  minute: "2-digit"
63
63
  }) : "—";
64
64
  }
65
- var w = () => {
66
- let b = ce(), { authToken: x, basePath: w } = e(), [T, E] = a([]), [D, O] = a(0), [k, A] = a(!1), [j, M] = a(null), [N, P] = a(null), [F, Ce] = a("PENDING_REVIEW"), [we, I] = a(null), [L, R] = a(""), [z, B] = a(null), [V, H] = a(null), [U, Te] = a([]), [Ee, De] = a(0), [W, G] = a(null), [Oe, K] = a(null), [q, J] = a(""), [ke, Y] = a(null), [Ae, je] = a({}), [X, Me] = a(null), Z = r(async () => {
67
- A(!0), M(null);
65
+ var C = () => {
66
+ let y = ce(), { authToken: b, basePath: C } = e(), [w, T] = o([]), [E, D] = o(0), [O, k] = o(!1), [A, j] = o(null), [M, N] = o(null), [P, we] = o("PENDING_REVIEW"), [Te, F] = o(null), [I, L] = o(""), [R, z] = o(null), [B, V] = o(null), [H, Ee] = o([]), [U, De] = o(0), [W, G] = o(null), [K, q] = o(null), [J, Y] = o(""), [Oe, X] = o(null), [ke, Ae] = o({}), [Z, je] = o(null), Q = i(async () => {
67
+ k(!0), j(null);
68
68
  try {
69
69
  let e = await g({
70
70
  gateway: "global",
71
- query: _e,
71
+ query: ve,
72
72
  variables: {
73
73
  limit: 50,
74
74
  offset: 0
75
75
  },
76
- authToken: x || void 0
76
+ authToken: b || void 0
77
77
  });
78
78
  if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load version updates");
79
- Te((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
79
+ Ee((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
80
80
  } catch (e) {
81
- M(e instanceof Error ? e.message : "Failed to load version updates");
81
+ j(e instanceof Error ? e.message : "Failed to load version updates");
82
82
  } finally {
83
- A(!1);
83
+ k(!1);
84
84
  }
85
- }, [x]), Ne = async (e, t, n) => {
86
- G(e), M(null);
85
+ }, [b]), Me = async (e, t, n) => {
86
+ G(e), j(null);
87
87
  try {
88
88
  let t = await g({
89
89
  gateway: "global",
90
- query: ve,
90
+ query: ye,
91
91
  variables: {
92
92
  id: e,
93
93
  notes: n || null
94
94
  },
95
- authToken: x || void 0
95
+ authToken: b || void 0
96
96
  });
97
97
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
98
- await Z();
98
+ await Q();
99
99
  } catch (e) {
100
- M(e instanceof Error ? e.message : "Approval failed");
100
+ j(e instanceof Error ? e.message : "Approval failed");
101
101
  } finally {
102
102
  G(null);
103
103
  }
104
- }, Pe = async (e, t, n) => {
104
+ }, Ne = async (e, t, n) => {
105
105
  if (!n.trim()) {
106
- M("Rejection reason is required");
106
+ j("Rejection reason is required");
107
107
  return;
108
108
  }
109
- G(e), M(null);
109
+ G(e), j(null);
110
110
  try {
111
111
  let t = await g({
112
112
  gateway: "global",
113
- query: ye,
113
+ query: be,
114
114
  variables: {
115
115
  id: e,
116
116
  reason: n.trim()
117
117
  },
118
- authToken: x || void 0
118
+ authToken: b || void 0
119
119
  });
120
120
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
121
- K(null), J(""), Y(null), await Z();
121
+ q(null), Y(""), X(null), await Q();
122
122
  } catch (e) {
123
- M(e instanceof Error ? e.message : "Rejection failed");
123
+ j(e instanceof Error ? e.message : "Rejection failed");
124
124
  } finally {
125
125
  G(null);
126
126
  }
127
- }, Q = r(async (e) => {
127
+ }, $ = i(async (e) => {
128
128
  if (e === "VERSION_UPDATES") {
129
- await Z();
129
+ await Q();
130
130
  return;
131
131
  }
132
- A(!0), M(null);
132
+ k(!0), j(null);
133
133
  try {
134
134
  if (e === "PENDING_REVIEW") {
135
135
  let e = await g({
136
136
  gateway: "global",
137
- query: ue,
137
+ query: de,
138
138
  variables: {
139
139
  limit: 100,
140
140
  offset: 0
141
141
  },
142
- authToken: x || void 0
142
+ authToken: b || void 0
143
143
  });
144
144
  if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load pending products");
145
- E(e.data?.pendingReviewProducts.products ?? []), O(e.data?.pendingReviewProducts.totalCount ?? 0);
145
+ T(e.data?.pendingReviewProducts.products ?? []), D(e.data?.pendingReviewProducts.totalCount ?? 0);
146
146
  } else {
147
147
  let t = await g({
148
148
  gateway: "global",
149
- query: de,
149
+ query: fe,
150
150
  variables: {
151
151
  limit: 100,
152
152
  offset: 0,
153
153
  ...e !== "ALL" && { status: e }
154
154
  },
155
- authToken: x || void 0
155
+ authToken: b || void 0
156
156
  });
157
157
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Failed to load products");
158
158
  let n = t.data?.products ?? [];
159
- E(n), O(n.length);
159
+ T(n), D(n.length);
160
160
  }
161
161
  } catch (e) {
162
- M(e instanceof Error ? e.message : "Failed to load products");
162
+ j(e instanceof Error ? e.message : "Failed to load products");
163
163
  } finally {
164
- A(!1);
164
+ k(!1);
165
165
  }
166
- }, [x, Z]);
167
- i(() => {
168
- Q(F);
169
- }, [Q, F]), i(() => {
170
- Z();
171
- }, [Z]), i(() => {
172
- let e = T.filter((e) => S.has(e.type) && e.productId && !e.zipFileUrl);
166
+ }, [b, Q]);
167
+ a(() => {
168
+ $(P);
169
+ }, [$, P]), a(() => {
170
+ Q();
171
+ }, [Q]), a(() => {
172
+ let e = w.filter((e) => x.has(e.type) && e.productId && !e.zipFileUrl);
173
173
  e.length !== 0 && (async () => {
174
174
  let t = await Promise.allSettled(e.map((e) => g({
175
175
  gateway: "global",
176
- query: he,
176
+ query: ge,
177
177
  variables: { id: e.productId },
178
- authToken: x || void 0
178
+ authToken: b || void 0
179
179
  })));
180
- je((n) => {
180
+ Ae((n) => {
181
181
  let r = { ...n };
182
182
  return t.forEach((t, n) => {
183
183
  if (t.status === "fulfilled") {
@@ -190,84 +190,84 @@ var w = () => {
190
190
  }), r;
191
191
  });
192
192
  })();
193
- }, [T, x]);
194
- let Fe = async (e) => {
195
- Me(e);
193
+ }, [w, b]);
194
+ let Pe = async (e) => {
195
+ je(e);
196
196
  try {
197
197
  let t = (await g({
198
198
  gateway: "global",
199
- query: ge,
199
+ query: _e,
200
200
  variables: { id: e },
201
- authToken: x || void 0
201
+ authToken: b || void 0
202
202
  })).data?.refreshApplicationVersionPackageUrl;
203
- t ? window.open(t, "_blank", "noreferrer") : M("Could not generate a download URL. S3 credentials may not be configured.");
203
+ t ? window.open(t, "_blank", "noreferrer") : j("Could not generate a download URL. S3 credentials may not be configured.");
204
204
  } catch (e) {
205
- M(e instanceof Error ? e.message : "Failed to refresh download URL");
205
+ j(e instanceof Error ? e.message : "Failed to refresh download URL");
206
206
  } finally {
207
- Me(null);
207
+ je(null);
208
208
  }
209
- }, Ie = async (e) => {
210
- P(e), M(null);
209
+ }, Fe = async (e) => {
210
+ N(e), j(null);
211
211
  try {
212
212
  let t = await g({
213
213
  gateway: "global",
214
- query: fe,
214
+ query: pe,
215
215
  variables: {
216
216
  id: e,
217
217
  notes: null
218
218
  },
219
- authToken: x || void 0
219
+ authToken: b || void 0
220
220
  });
221
221
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
222
- await Q(F);
222
+ await $(P);
223
223
  } catch (e) {
224
- M(e instanceof Error ? e.message : "Approval failed");
224
+ j(e instanceof Error ? e.message : "Approval failed");
225
225
  } finally {
226
- P(null);
226
+ N(null);
227
227
  }
228
- }, Le = async (e) => {
229
- if (!L.trim()) {
230
- M("Rejection reason is required");
228
+ }, Ie = async (e) => {
229
+ if (!I.trim()) {
230
+ j("Rejection reason is required");
231
231
  return;
232
232
  }
233
- P(e), M(null);
233
+ N(e), j(null);
234
234
  try {
235
235
  let t = await g({
236
236
  gateway: "global",
237
- query: pe,
237
+ query: me,
238
238
  variables: {
239
239
  id: e,
240
- reason: L.trim()
240
+ reason: I.trim()
241
241
  },
242
- authToken: x || void 0
242
+ authToken: b || void 0
243
243
  });
244
244
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
245
- I(null), R(""), await Q(F);
245
+ F(null), L(""), await $(P);
246
246
  } catch (e) {
247
- M(e instanceof Error ? e.message : "Rejection failed");
247
+ j(e instanceof Error ? e.message : "Rejection failed");
248
248
  } finally {
249
- P(null);
249
+ N(null);
250
250
  }
251
- }, Re = async (e) => {
252
- P(e), M(null);
251
+ }, Le = async (e) => {
252
+ N(e), j(null);
253
253
  try {
254
254
  let t = await g({
255
255
  gateway: "global",
256
- query: me,
256
+ query: he,
257
257
  variables: {
258
258
  id: e,
259
- reason: L.trim() || void 0
259
+ reason: I.trim() || void 0
260
260
  },
261
- authToken: x || void 0
261
+ authToken: b || void 0
262
262
  });
263
263
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Delist failed");
264
- I(null), R(""), await Q(F);
264
+ F(null), L(""), await $(P);
265
265
  } catch (e) {
266
- M(e instanceof Error ? e.message : "Delist failed");
266
+ j(e instanceof Error ? e.message : "Delist failed");
267
267
  } finally {
268
- P(null);
268
+ N(null);
269
269
  }
270
- }, $ = T.filter((e) => e.status === "PENDING_REVIEW").length;
270
+ }, Re = w.filter((e) => e.status === "PENDING_REVIEW").length;
271
271
  return /* @__PURE__ */ v("div", {
272
272
  className: "min-h-screen bg-[var(--color-surface-default)]",
273
273
  children: [
@@ -282,9 +282,9 @@ var w = () => {
282
282
  children: [
283
283
  /* @__PURE__ */ v("button", {
284
284
  type: "button",
285
- onClick: () => b(`${w}/dashboard`),
285
+ onClick: () => y(`${C}/dashboard`),
286
286
  className: "inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-sm text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
287
- children: [/* @__PURE__ */ _(te, { className: "size-4 shrink-0" }), "Back"]
287
+ children: [/* @__PURE__ */ _(ee, { className: "size-4 shrink-0" }), "Back"]
288
288
  }),
289
289
  /* @__PURE__ */ _("div", { className: "h-5 w-px bg-[var(--color-border-seam)]" }),
290
290
  /* @__PURE__ */ _(ie, { className: "size-5 shrink-0 text-[var(--color-text-primary)]" }),
@@ -292,33 +292,33 @@ var w = () => {
292
292
  className: "text-lg font-semibold text-[var(--color-text-primary)] truncate",
293
293
  children: "Submission Queue"
294
294
  }),
295
- D > 0 && /* @__PURE__ */ _("span", {
295
+ E > 0 && /* @__PURE__ */ _("span", {
296
296
  className: "shrink-0 rounded-full bg-[var(--color-status-warning-bg-subtle)] px-2 py-0.5 text-xs font-semibold text-[var(--color-status-warning-text)]",
297
- children: D
297
+ children: E
298
298
  })
299
299
  ]
300
300
  }), /* @__PURE__ */ v("button", {
301
301
  type: "button",
302
- onClick: () => void Q(F),
302
+ onClick: () => void $(P),
303
303
  className: "shrink-0 inline-flex items-center gap-2 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-sm text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors disabled:opacity-50",
304
- disabled: k,
305
- children: [/* @__PURE__ */ _(m, { className: `size-4 ${k ? "animate-spin" : ""}` }), "Refresh"]
304
+ disabled: O,
305
+ children: [/* @__PURE__ */ _(m, { className: `size-4 ${O ? "animate-spin" : ""}` }), "Refresh"]
306
306
  })]
307
307
  }), /* @__PURE__ */ _("div", {
308
308
  className: "mt-3 flex gap-1.5 flex-wrap",
309
- children: be.map((e) => /* @__PURE__ */ v("button", {
309
+ children: xe.map((e) => /* @__PURE__ */ v("button", {
310
310
  type: "button",
311
- onClick: () => Ce(e.value),
312
- className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${F === e.value ? "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)]" : "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)]"}`,
311
+ onClick: () => we(e.value),
312
+ className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${P === e.value ? "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)]" : "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)]"}`,
313
313
  children: [
314
314
  e.label,
315
- e.value === "PENDING_REVIEW" && $ > 0 && F !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
315
+ e.value === "PENDING_REVIEW" && Re > 0 && P !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
316
316
  className: "ml-1.5 rounded-full bg-[var(--color-status-warning-text)] px-1.5 py-0.5 text-[10px] text-white",
317
- children: $
317
+ children: Re
318
318
  }),
319
- e.value === "VERSION_UPDATES" && Ee > 0 && F !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
319
+ e.value === "VERSION_UPDATES" && U > 0 && P !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
320
320
  className: "ml-1.5 rounded-full bg-[var(--color-status-info-text)] px-1.5 py-0.5 text-[10px] text-white",
321
- children: Ee
321
+ children: U
322
322
  })
323
323
  ]
324
324
  }, e.value))
@@ -328,25 +328,25 @@ var w = () => {
328
328
  /* @__PURE__ */ v("main", {
329
329
  className: "mx-auto max-w-5xl space-y-4 p-6",
330
330
  children: [
331
- /* @__PURE__ */ _(le, {
331
+ /* @__PURE__ */ _(ue, {
332
332
  className: "mb-2",
333
333
  children: "Every publisher submission lands here for your review. Inspect the manifest, permissions, and package details — then approve to publish or reject with a clear reason the developer will see."
334
334
  }),
335
- j && /* @__PURE__ */ _("div", {
335
+ A && /* @__PURE__ */ _("div", {
336
336
  role: "alert",
337
337
  className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-3 text-sm text-[var(--color-text-danger)]",
338
- children: j
338
+ children: A
339
339
  }),
340
- F === "VERSION_UPDATES" ? k && U.length === 0 ? /* @__PURE__ */ _("div", {
340
+ P === "VERSION_UPDATES" ? O && H.length === 0 ? /* @__PURE__ */ _("div", {
341
341
  className: "flex items-center justify-center py-24",
342
342
  children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
343
- }) : U.length === 0 ? /* @__PURE__ */ _(y, {
343
+ }) : H.length === 0 ? /* @__PURE__ */ _(le, {
344
344
  illustration: "empty-data",
345
345
  title: "No pending version updates",
346
346
  description: "All published apps are up to date. When a developer submits a new version, it will appear here for your review."
347
347
  }) : /* @__PURE__ */ _("ul", {
348
348
  className: "space-y-4",
349
- children: U.map((e) => {
349
+ children: H.map((e) => {
350
350
  let t = e.versions.edges.map((e) => e.node).filter((e) => e.status === "pending_review");
351
351
  return t.length === 0 ? null : /* @__PURE__ */ v("li", {
352
352
  className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)]",
@@ -414,23 +414,23 @@ var w = () => {
414
414
  }),
415
415
  /* @__PURE__ */ v("span", {
416
416
  className: "ml-auto flex items-center gap-1 text-xs text-[var(--color-text-secondary)]",
417
- children: [/* @__PURE__ */ _(l, { className: "size-3" }), C(t.createdAt)]
417
+ children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(t.createdAt)]
418
418
  })
419
419
  ]
420
420
  }),
421
- t.releaseNotes && /* @__PURE__ */ _(ee, {
421
+ t.releaseNotes && /* @__PURE__ */ _("div", {
422
422
  className: "text-sm text-[var(--color-text-secondary)]",
423
- children: t.releaseNotes
423
+ children: /* @__PURE__ */ _(n, { children: t.releaseNotes })
424
424
  }),
425
425
  /* @__PURE__ */ v("div", {
426
426
  className: "flex flex-wrap gap-2",
427
427
  children: [t.packageUrl && /* @__PURE__ */ v("button", {
428
428
  type: "button",
429
- onClick: () => void Fe(t.id),
430
- disabled: X === t.id,
429
+ onClick: () => void Pe(t.id),
430
+ disabled: Z === t.id,
431
431
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors disabled:opacity-50",
432
432
  children: [
433
- X === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }),
433
+ Z === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }),
434
434
  "Download Package",
435
435
  t.packageSize != null && /* @__PURE__ */ v("span", {
436
436
  className: "text-[var(--color-text-muted)]",
@@ -443,20 +443,20 @@ var w = () => {
443
443
  ]
444
444
  }), t.manifest && /* @__PURE__ */ v("button", {
445
445
  type: "button",
446
- onClick: () => B(z === t.id ? null : t.id),
446
+ onClick: () => z(R === t.id ? null : t.id),
447
447
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
448
448
  children: [
449
449
  /* @__PURE__ */ _(f, { className: "size-3.5" }),
450
- z === t.id ? "Hide manifest" : "View manifest",
451
- z === t.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
450
+ R === t.id ? "Hide manifest" : "View manifest",
451
+ R === t.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
452
452
  ]
453
453
  })]
454
454
  }),
455
- z === t.id && t.manifest && /* @__PURE__ */ _("pre", {
455
+ R === t.id && t.manifest && /* @__PURE__ */ _("pre", {
456
456
  className: "overflow-x-auto rounded-lg border border-[var(--color-border-seam)] bg-[var(--color-surface-default)] p-4 text-[11px] leading-relaxed text-[var(--color-text-primary)] max-h-48 overflow-y-auto",
457
457
  children: JSON.stringify(t.manifest, null, 2)
458
458
  }),
459
- Oe === t.id && ke === e.id && /* @__PURE__ */ v("div", {
459
+ K === t.id && Oe === e.id && /* @__PURE__ */ v("div", {
460
460
  className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)]/30 p-3 space-y-2",
461
461
  children: [
462
462
  /* @__PURE__ */ _("p", {
@@ -464,8 +464,8 @@ var w = () => {
464
464
  children: "Rejection reason (the developer will see this)"
465
465
  }),
466
466
  /* @__PURE__ */ _("textarea", {
467
- value: q,
468
- onChange: (e) => J(e.target.value),
467
+ value: J,
468
+ onChange: (e) => Y(e.target.value),
469
469
  rows: 2,
470
470
  className: "w-full rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-2 text-sm text-[var(--color-text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none",
471
471
  placeholder: "Be specific — what needs to change before this version can be approved…"
@@ -475,14 +475,14 @@ var w = () => {
475
475
  children: [/* @__PURE__ */ _("button", {
476
476
  type: "button",
477
477
  onClick: () => {
478
- K(null), J(""), Y(null);
478
+ q(null), Y(""), X(null);
479
479
  },
480
480
  className: "rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors",
481
481
  children: "Cancel"
482
482
  }), /* @__PURE__ */ _("button", {
483
483
  type: "button",
484
- onClick: () => void Pe(t.id, e.id, q),
485
- disabled: !q.trim() || W === t.id,
484
+ onClick: () => void Ne(t.id, e.id, J),
485
+ disabled: !J.trim() || W === t.id,
486
486
  className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
487
487
  children: "Submit rejection"
488
488
  })]
@@ -493,14 +493,14 @@ var w = () => {
493
493
  className: "flex items-center gap-2",
494
494
  children: [/* @__PURE__ */ v("button", {
495
495
  type: "button",
496
- onClick: () => void Ne(t.id, e.id, ""),
496
+ onClick: () => void Me(t.id, e.id, ""),
497
497
  disabled: W === t.id,
498
498
  className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
499
- children: [W === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(o, { className: "size-3.5" }), "Approve version"]
500
- }), Oe !== t.id && /* @__PURE__ */ v("button", {
499
+ children: [W === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(te, { className: "size-3.5" }), "Approve version"]
500
+ }), K !== t.id && /* @__PURE__ */ v("button", {
501
501
  type: "button",
502
502
  onClick: () => {
503
- K(t.id), J(""), Y(e.id);
503
+ q(t.id), Y(""), X(e.id);
504
504
  },
505
505
  disabled: W === t.id,
506
506
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-danger)] hover:bg-[var(--color-surface-danger)] hover:text-[var(--color-text-on-danger)] disabled:opacity-50 transition-colors",
@@ -512,16 +512,16 @@ var w = () => {
512
512
  })]
513
513
  }, e.id);
514
514
  })
515
- }) : k && T.length === 0 ? /* @__PURE__ */ _("div", {
515
+ }) : O && w.length === 0 ? /* @__PURE__ */ _("div", {
516
516
  className: "flex items-center justify-center py-24",
517
517
  children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
518
- }) : T.length === 0 ? /* @__PURE__ */ _(y, {
519
- illustration: F === "PENDING_REVIEW" ? "empty-notifications" : "empty-data",
520
- title: F === "PENDING_REVIEW" ? "Queue is clear" : "No products match this filter",
521
- description: F === "PENDING_REVIEW" ? "No submissions are awaiting review. New submissions will appear here as publishers send them in." : "Nothing matches the current filter. Try switching to a different status above."
518
+ }) : w.length === 0 ? /* @__PURE__ */ _(le, {
519
+ illustration: P === "PENDING_REVIEW" ? "empty-notifications" : "empty-data",
520
+ title: P === "PENDING_REVIEW" ? "Queue is clear" : "No products match this filter",
521
+ description: P === "PENDING_REVIEW" ? "No submissions are awaiting review. New submissions will appear here as publishers send them in." : "Nothing matches the current filter. Try switching to a different status above."
522
522
  }) : /* @__PURE__ */ _("ul", {
523
523
  className: "space-y-3",
524
- children: T.map((e) => /* @__PURE__ */ v("li", {
524
+ children: w.map((e) => /* @__PURE__ */ v("li", {
525
525
  className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)] transition-[box-shadow,border-color] hover:border-[var(--color-border-strong)] hover:shadow-[var(--shadow-elevation-2)]",
526
526
  children: [
527
527
  /* @__PURE__ */ v("div", {
@@ -544,11 +544,11 @@ var w = () => {
544
544
  children: e.name
545
545
  }),
546
546
  /* @__PURE__ */ _("span", {
547
- className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${xe(e.type)}`,
547
+ className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${Se(e.type)}`,
548
548
  children: e.type
549
549
  }),
550
550
  /* @__PURE__ */ _("span", {
551
- className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${Se(e.status)}`,
551
+ className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${Ce(e.status)}`,
552
552
  children: e.status.replace("_", " ")
553
553
  })
554
554
  ]
@@ -580,7 +580,7 @@ var w = () => {
580
580
  }),
581
581
  e.submittedAt && /* @__PURE__ */ v("span", {
582
582
  className: "flex items-center gap-1",
583
- children: [/* @__PURE__ */ _(l, { className: "size-3" }), C(e.submittedAt)]
583
+ children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(e.submittedAt)]
584
584
  }),
585
585
  /* @__PURE__ */ v("span", {
586
586
  className: "flex items-center gap-1",
@@ -607,13 +607,13 @@ var w = () => {
607
607
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
608
608
  children: [/* @__PURE__ */ _(d, { className: "size-3.5" }), "Devportal"]
609
609
  }),
610
- S.has(e.type) && (() => {
611
- let t = e.productId ? Ae[e.productId]?.versionId ?? U.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.id : void 0;
610
+ x.has(e.type) && (() => {
611
+ let t = e.productId ? ke[e.productId]?.versionId ?? H.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.id : void 0;
612
612
  if (!t && !e.zipFileUrl) return null;
613
- let n = X === t;
613
+ let n = Z === t;
614
614
  return t ? /* @__PURE__ */ v("button", {
615
615
  type: "button",
616
- onClick: () => void Fe(t),
616
+ onClick: () => void Pe(t),
617
617
  disabled: n,
618
618
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors disabled:opacity-50",
619
619
  children: [n ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
@@ -626,20 +626,20 @@ var w = () => {
626
626
  children: [/* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
627
627
  });
628
628
  })(),
629
- S.has(e.type) && /* @__PURE__ */ v("button", {
629
+ x.has(e.type) && /* @__PURE__ */ v("button", {
630
630
  type: "button",
631
- onClick: () => H(e),
631
+ onClick: () => V(e),
632
632
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-accent)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-accent)] hover:bg-[var(--color-surface-accent-muted)] transition-colors",
633
633
  children: [/* @__PURE__ */ _(ne, { className: "size-3.5" }), "Test in workspace"]
634
634
  }),
635
635
  /* @__PURE__ */ v("button", {
636
636
  type: "button",
637
- onClick: () => B(z === e.id ? null : e.id),
637
+ onClick: () => z(R === e.id ? null : e.id),
638
638
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
639
639
  children: [
640
640
  /* @__PURE__ */ _(f, { className: "size-3.5" }),
641
- z === e.id ? "Hide details" : "Inspect details",
642
- z === e.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
641
+ R === e.id ? "Hide details" : "Inspect details",
642
+ R === e.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
643
643
  ]
644
644
  })
645
645
  ]
@@ -648,33 +648,33 @@ var w = () => {
648
648
  children: [
649
649
  e.status !== "PUBLISHED" && /* @__PURE__ */ v("button", {
650
650
  type: "button",
651
- onClick: () => void Ie(e.id),
652
- disabled: N === e.id,
651
+ onClick: () => void Fe(e.id),
652
+ disabled: M === e.id,
653
653
  className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
654
- children: [/* @__PURE__ */ _(o, { className: "size-3.5" }), "Approve"]
654
+ children: [/* @__PURE__ */ _(te, { className: "size-3.5" }), "Approve"]
655
655
  }),
656
656
  e.status === "PENDING_REVIEW" && /* @__PURE__ */ v("button", {
657
657
  type: "button",
658
658
  onClick: () => {
659
- I(e.id), R("");
659
+ F(e.id), L("");
660
660
  },
661
- disabled: N === e.id,
661
+ disabled: M === e.id,
662
662
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-danger)] hover:bg-[var(--color-surface-danger)] hover:text-[var(--color-text-on-danger)] disabled:opacity-50 transition-colors",
663
663
  children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Reject"]
664
664
  }),
665
665
  e.status === "PUBLISHED" && /* @__PURE__ */ v("button", {
666
666
  type: "button",
667
667
  onClick: () => {
668
- I(e.id), R("");
668
+ F(e.id), L("");
669
669
  },
670
- disabled: N === e.id,
670
+ disabled: M === e.id,
671
671
  className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-warning)] bg-[var(--color-surface-warning-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-warning)] hover:bg-[var(--color-surface-warning)] hover:text-[var(--color-text-on-warning)] disabled:opacity-50 transition-colors",
672
672
  children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Delist"]
673
673
  })
674
674
  ]
675
675
  })]
676
676
  }),
677
- z === e.id && /* @__PURE__ */ v("div", {
677
+ R === e.id && /* @__PURE__ */ v("div", {
678
678
  className: "border-t border-[var(--color-border-seam)] bg-[var(--color-surface-muted)] p-5 space-y-5",
679
679
  children: [
680
680
  /* @__PURE__ */ v("div", {
@@ -765,7 +765,7 @@ var w = () => {
765
765
  })] })
766
766
  ]
767
767
  }),
768
- we === e.id && /* @__PURE__ */ v("div", {
768
+ Te === e.id && /* @__PURE__ */ v("div", {
769
769
  className: `border-t border-[var(--color-border-seam)] px-5 py-4 ${e.status === "PUBLISHED" ? "bg-[var(--color-surface-warning-muted)]/30" : "bg-[var(--color-surface-danger-muted)]/30"}`,
770
770
  children: [
771
771
  e.status === "PUBLISHED" ? /* @__PURE__ */ _("p", {
@@ -778,8 +778,8 @@ var w = () => {
778
778
  /* @__PURE__ */ _("textarea", {
779
779
  id: `reject-reason-${e.id}`,
780
780
  "aria-label": e.status === "PUBLISHED" ? "Delist reason" : "Rejection reason",
781
- value: L,
782
- onChange: (e) => R(e.target.value),
781
+ value: I,
782
+ onChange: (e) => L(e.target.value),
783
783
  rows: 3,
784
784
  required: e.status !== "PUBLISHED",
785
785
  "aria-required": e.status !== "PUBLISHED",
@@ -791,20 +791,20 @@ var w = () => {
791
791
  children: [/* @__PURE__ */ _("button", {
792
792
  type: "button",
793
793
  onClick: () => {
794
- I(null), R("");
794
+ F(null), L("");
795
795
  },
796
796
  className: "rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors",
797
797
  children: "Cancel"
798
798
  }), e.status === "PUBLISHED" ? /* @__PURE__ */ _("button", {
799
799
  type: "button",
800
- onClick: () => void Re(e.id),
801
- disabled: N === e.id,
800
+ onClick: () => void Le(e.id),
801
+ disabled: M === e.id,
802
802
  className: "rounded-md bg-[var(--color-surface-warning)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-warning)] hover:opacity-90 disabled:opacity-50 transition-opacity",
803
803
  children: "Confirm delist"
804
804
  }) : /* @__PURE__ */ _("button", {
805
805
  type: "button",
806
- onClick: () => void Le(e.id),
807
- disabled: !L.trim() || N === e.id,
806
+ onClick: () => void Ie(e.id),
807
+ disabled: !I.trim() || M === e.id,
808
808
  className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
809
809
  children: "Submit rejection"
810
810
  })]
@@ -816,20 +816,20 @@ var w = () => {
816
816
  })
817
817
  ]
818
818
  }),
819
- V && /* @__PURE__ */ _(n, {
819
+ B && /* @__PURE__ */ _(r, {
820
820
  isOpen: !0,
821
- onClose: () => H(null),
821
+ onClose: () => V(null),
822
822
  app: {
823
- id: V.id,
824
- name: V.name,
825
- slug: V.slug,
826
- icon: V.icon ?? void 0,
827
- type: V.type,
828
- permissions: V.requiredPermissions?.length ? V.requiredPermissions : void 0
823
+ id: B.id,
824
+ name: B.name,
825
+ slug: B.slug,
826
+ icon: B.icon ?? void 0,
827
+ type: B.type,
828
+ permissions: B.requiredPermissions?.length ? B.requiredPermissions : void 0
829
829
  },
830
830
  purchaseState: "free",
831
831
  onInstallSuccess: () => {
832
- H(null);
832
+ V(null);
833
833
  },
834
834
  onInstallError: () => {}
835
835
  })
@@ -837,6 +837,6 @@ var w = () => {
837
837
  });
838
838
  };
839
839
  //#endregion
840
- export { w as AdminSubmissionsQueuePage };
840
+ export { C as AdminSubmissionsQueuePage };
841
841
 
842
842
  //# sourceMappingURL=AdminSubmissionsQueuePage.js.map