@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.
- package/dist/_virtual/_rolldown/runtime.js +20 -0
- package/dist/components/MarkdownEditor.js +5 -5
- package/dist/components/MarkdownEditor.js.map +1 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.js +63 -0
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.js +8 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.js +93 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.js.map +1 -0
- package/dist/node_modules/bail/index.js +8 -0
- package/dist/node_modules/bail/index.js.map +1 -0
- package/dist/node_modules/comma-separated-tokens/index.js +9 -0
- package/dist/node_modules/comma-separated-tokens/index.js.map +1 -0
- package/dist/node_modules/decode-named-character-reference/index.dom.js +12 -0
- package/dist/node_modules/decode-named-character-reference/index.dom.js.map +1 -0
- package/dist/node_modules/devlop/lib/default.js +7 -0
- package/dist/node_modules/devlop/lib/default.js.map +1 -0
- package/dist/node_modules/estree-util-is-identifier-name/lib/index.js +9 -0
- package/dist/node_modules/estree-util-is-identifier-name/lib/index.js.map +1 -0
- package/dist/node_modules/extend/index.js +42 -0
- package/dist/node_modules/extend/index.js.map +1 -0
- package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +255 -0
- package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js.map +1 -0
- package/dist/node_modules/hast-util-whitespace/lib/index.js +12 -0
- package/dist/node_modules/hast-util-whitespace/lib/index.js.map +1 -0
- package/dist/node_modules/html-url-attributes/lib/index.js +38 -0
- package/dist/node_modules/html-url-attributes/lib/index.js.map +1 -0
- package/dist/node_modules/inline-style-parser/cjs/index.js +92 -0
- package/dist/node_modules/inline-style-parser/cjs/index.js.map +1 -0
- package/dist/node_modules/is-plain-obj/index.js +10 -0
- package/dist/node_modules/is-plain-obj/index.js.map +1 -0
- package/dist/node_modules/mdast-util-from-markdown/lib/index.js +559 -0
- package/dist/node_modules/mdast-util-from-markdown/lib/index.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/footer.js +105 -0
- package/dist/node_modules/mdast-util-to-hast/lib/footer.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/break.js +17 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/break.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/code.js +24 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/code.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/delete.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/delete.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js +32 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/heading.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/heading.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/html.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/html.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js +23 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/image.js +17 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/image.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/index.js +58 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/index.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js +19 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js +20 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/link.js +17 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/link.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/list-item.js +61 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/list-item.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/list.js +22 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/list.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/root.js +12 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/root.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/strong.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/strong.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-row.js +26 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table-row.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table.js +37 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/table.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/text.js +13 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/text.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js +14 -0
- package/dist/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/index.js +21 -0
- package/dist/node_modules/mdast-util-to-hast/lib/index.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/revert.js +22 -0
- package/dist/node_modules/mdast-util-to-hast/lib/revert.js.map +1 -0
- package/dist/node_modules/mdast-util-to-hast/lib/state.js +110 -0
- package/dist/node_modules/mdast-util-to-hast/lib/state.js.map +1 -0
- package/dist/node_modules/mdast-util-to-string/lib/index.js +26 -0
- package/dist/node_modules/mdast-util-to-string/lib/index.js.map +1 -0
- package/dist/node_modules/micromark/lib/constructs.js +82 -0
- package/dist/node_modules/micromark/lib/constructs.js.map +1 -0
- package/dist/node_modules/micromark/lib/create-tokenizer.js +179 -0
- package/dist/node_modules/micromark/lib/create-tokenizer.js.map +1 -0
- package/dist/node_modules/micromark/lib/initialize/content.js +36 -0
- package/dist/node_modules/micromark/lib/initialize/content.js.map +1 -0
- package/dist/node_modules/micromark/lib/initialize/document.js +104 -0
- package/dist/node_modules/micromark/lib/initialize/document.js.map +1 -0
- package/dist/node_modules/micromark/lib/initialize/flow.js +27 -0
- package/dist/node_modules/micromark/lib/initialize/flow.js.map +1 -0
- package/dist/node_modules/micromark/lib/initialize/text.js +88 -0
- package/dist/node_modules/micromark/lib/initialize/text.js.map +1 -0
- package/dist/node_modules/micromark/lib/parse.js +31 -0
- package/dist/node_modules/micromark/lib/parse.js.map +1 -0
- package/dist/node_modules/micromark/lib/postprocess.js +10 -0
- package/dist/node_modules/micromark/lib/postprocess.js.map +1 -0
- package/dist/node_modules/micromark/lib/preprocess.js +34 -0
- package/dist/node_modules/micromark/lib/preprocess.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/attention.js +116 -0
- package/dist/node_modules/micromark-core-commonmark/lib/attention.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/autolink.js +45 -0
- package/dist/node_modules/micromark-core-commonmark/lib/autolink.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/blank-line.js +20 -0
- package/dist/node_modules/micromark-core-commonmark/lib/blank-line.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/block-quote.js +40 -0
- package/dist/node_modules/micromark-core-commonmark/lib/block-quote.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/character-escape.js +19 -0
- package/dist/node_modules/micromark-core-commonmark/lib/character-escape.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/character-reference.js +31 -0
- package/dist/node_modules/micromark-core-commonmark/lib/character-reference.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-fenced.js +91 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-fenced.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-indented.js +45 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-indented.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-text.js +45 -0
- package/dist/node_modules/micromark-core-commonmark/lib/code-text.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/content.js +49 -0
- package/dist/node_modules/micromark-core-commonmark/lib/content.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/definition.js +62 -0
- package/dist/node_modules/micromark-core-commonmark/lib/definition.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +19 -0
- package/dist/node_modules/micromark-core-commonmark/lib/hard-break-escape.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/heading-atx.js +69 -0
- package/dist/node_modules/micromark-core-commonmark/lib/heading-atx.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/html-flow.js +143 -0
- package/dist/node_modules/micromark-core-commonmark/lib/html-flow.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/html-text.js +102 -0
- package/dist/node_modules/micromark-core-commonmark/lib/html-text.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-end.js +160 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-end.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-start-image.js +25 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-start-image.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-start-link.js +22 -0
- package/dist/node_modules/micromark-core-commonmark/lib/label-start-link.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/line-ending.js +16 -0
- package/dist/node_modules/micromark-core-commonmark/lib/line-ending.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/list.js +80 -0
- package/dist/node_modules/micromark-core-commonmark/lib/list.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/setext-underline.js +61 -0
- package/dist/node_modules/micromark-core-commonmark/lib/setext-underline.js.map +1 -0
- package/dist/node_modules/micromark-core-commonmark/lib/thematic-break.js +27 -0
- package/dist/node_modules/micromark-core-commonmark/lib/thematic-break.js.map +1 -0
- package/dist/node_modules/micromark-factory-destination/index.js +28 -0
- package/dist/node_modules/micromark-factory-destination/index.js.map +1 -0
- package/dist/node_modules/micromark-factory-label/index.js +22 -0
- package/dist/node_modules/micromark-factory-label/index.js.map +1 -0
- package/dist/node_modules/micromark-factory-space/index.js +16 -0
- package/dist/node_modules/micromark-factory-space/index.js.map +1 -0
- package/dist/node_modules/micromark-factory-title/index.js +26 -0
- package/dist/node_modules/micromark-factory-title/index.js.map +1 -0
- package/dist/node_modules/micromark-factory-whitespace/index.js +14 -0
- package/dist/node_modules/micromark-factory-whitespace/index.js.map +1 -0
- package/dist/node_modules/micromark-util-character/index.js +26 -0
- package/dist/node_modules/micromark-util-character/index.js.map +1 -0
- package/dist/node_modules/micromark-util-chunked/index.js +13 -0
- package/dist/node_modules/micromark-util-chunked/index.js.map +1 -0
- package/dist/node_modules/micromark-util-classify-character/index.js +10 -0
- package/dist/node_modules/micromark-util-classify-character/index.js.map +1 -0
- package/dist/node_modules/micromark-util-combine-extensions/index.js +28 -0
- package/dist/node_modules/micromark-util-combine-extensions/index.js.map +1 -0
- package/dist/node_modules/micromark-util-decode-numeric-character-reference/index.js +9 -0
- package/dist/node_modules/micromark-util-decode-numeric-character-reference/index.js.map +1 -0
- package/dist/node_modules/micromark-util-decode-string/index.js +19 -0
- package/dist/node_modules/micromark-util-decode-string/index.js.map +1 -0
- package/dist/node_modules/micromark-util-html-tag-name/index.js +11 -0
- package/dist/node_modules/micromark-util-html-tag-name/index.js.map +1 -0
- package/dist/node_modules/micromark-util-normalize-identifier/index.js +8 -0
- package/dist/node_modules/micromark-util-normalize-identifier/index.js.map +1 -0
- package/dist/node_modules/micromark-util-resolve-all/index.js +13 -0
- package/dist/node_modules/micromark-util-resolve-all/index.js.map +1 -0
- package/dist/node_modules/micromark-util-sanitize-uri/index.js +20 -0
- package/dist/node_modules/micromark-util-sanitize-uri/index.js.map +1 -0
- package/dist/node_modules/micromark-util-subtokenize/index.js +37 -0
- package/dist/node_modules/micromark-util-subtokenize/index.js.map +1 -0
- package/dist/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +59 -0
- package/dist/node_modules/micromark-util-subtokenize/lib/splice-buffer.js.map +1 -0
- package/dist/node_modules/property-information/index.js +28 -0
- package/dist/node_modules/property-information/index.js.map +1 -0
- package/dist/node_modules/property-information/lib/aria.js +63 -0
- package/dist/node_modules/property-information/lib/aria.js.map +1 -0
- package/dist/node_modules/property-information/lib/find.js +33 -0
- package/dist/node_modules/property-information/lib/find.js.map +1 -0
- package/dist/node_modules/property-information/lib/hast-to-react.js +24 -0
- package/dist/node_modules/property-information/lib/hast-to-react.js.map +1 -0
- package/dist/node_modules/property-information/lib/html.js +328 -0
- package/dist/node_modules/property-information/lib/html.js.map +1 -0
- package/dist/node_modules/property-information/lib/normalize.js +8 -0
- package/dist/node_modules/property-information/lib/normalize.js.map +1 -0
- package/dist/node_modules/property-information/lib/svg.js +566 -0
- package/dist/node_modules/property-information/lib/svg.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js +9 -0
- package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js +8 -0
- package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/create.js +16 -0
- package/dist/node_modules/property-information/lib/util/create.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/defined-info.js +20 -0
- package/dist/node_modules/property-information/lib/util/defined-info.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/info.js +11 -0
- package/dist/node_modules/property-information/lib/util/info.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/merge.js +11 -0
- package/dist/node_modules/property-information/lib/util/merge.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/schema.js +11 -0
- package/dist/node_modules/property-information/lib/util/schema.js.map +1 -0
- package/dist/node_modules/property-information/lib/util/types.js +18 -0
- package/dist/node_modules/property-information/lib/util/types.js.map +1 -0
- package/dist/node_modules/property-information/lib/xlink.js +21 -0
- package/dist/node_modules/property-information/lib/xlink.js.map +1 -0
- package/dist/node_modules/property-information/lib/xml.js +17 -0
- package/dist/node_modules/property-information/lib/xml.js.map +1 -0
- package/dist/node_modules/property-information/lib/xmlns.js +16 -0
- package/dist/node_modules/property-information/lib/xmlns.js.map +1 -0
- package/dist/node_modules/react-markdown/lib/index.js +142 -0
- package/dist/node_modules/react-markdown/lib/index.js.map +1 -0
- package/dist/node_modules/remark-parse/lib/index.js +18 -0
- package/dist/node_modules/remark-parse/lib/index.js.map +1 -0
- package/dist/node_modules/remark-rehype/lib/index.js +20 -0
- package/dist/node_modules/remark-rehype/lib/index.js.map +1 -0
- package/dist/node_modules/space-separated-tokens/index.js +8 -0
- package/dist/node_modules/space-separated-tokens/index.js.map +1 -0
- package/dist/node_modules/style-to-js/cjs/index.js +21 -0
- package/dist/node_modules/style-to-js/cjs/index.js.map +1 -0
- package/dist/node_modules/style-to-js/cjs/utilities.js +20 -0
- package/dist/node_modules/style-to-js/cjs/utilities.js.map +1 -0
- package/dist/node_modules/style-to-object/cjs/index.js +25 -0
- package/dist/node_modules/style-to-object/cjs/index.js.map +1 -0
- package/dist/node_modules/trim-lines/index.js +23 -0
- package/dist/node_modules/trim-lines/index.js.map +1 -0
- package/dist/node_modules/trough/lib/index.js +52 -0
- package/dist/node_modules/trough/lib/index.js.map +1 -0
- package/dist/node_modules/unified/lib/callable-instance.js +11 -0
- package/dist/node_modules/unified/lib/callable-instance.js.map +1 -0
- package/dist/node_modules/unified/lib/index.js +163 -0
- package/dist/node_modules/unified/lib/index.js.map +1 -0
- package/dist/node_modules/unist-util-is/lib/index.js +49 -0
- package/dist/node_modules/unist-util-is/lib/index.js.map +1 -0
- package/dist/node_modules/unist-util-position/lib/index.js +24 -0
- package/dist/node_modules/unist-util-position/lib/index.js.map +1 -0
- package/dist/node_modules/unist-util-stringify-position/lib/index.js +17 -0
- package/dist/node_modules/unist-util-stringify-position/lib/index.js.map +1 -0
- package/dist/node_modules/unist-util-visit/lib/index.js +14 -0
- package/dist/node_modules/unist-util-visit/lib/index.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.js +8 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.js +38 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.js.map +1 -0
- package/dist/node_modules/vfile/lib/index.js +91 -0
- package/dist/node_modules/vfile/lib/index.js.map +1 -0
- package/dist/node_modules/vfile/lib/minpath.browser.js +101 -0
- package/dist/node_modules/vfile/lib/minpath.browser.js.map +1 -0
- package/dist/node_modules/vfile/lib/minproc.browser.js +9 -0
- package/dist/node_modules/vfile/lib/minproc.browser.js.map +1 -0
- package/dist/node_modules/vfile/lib/minurl.browser.js +33 -0
- package/dist/node_modules/vfile/lib/minurl.browser.js.map +1 -0
- package/dist/node_modules/vfile/lib/minurl.shared.js +8 -0
- package/dist/node_modules/vfile/lib/minurl.shared.js.map +1 -0
- package/dist/node_modules/vfile-message/lib/index.js +26 -0
- package/dist/node_modules/vfile-message/lib/index.js.map +1 -0
- package/dist/pages/AdminSubmissionsQueuePage.js +174 -174
- package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +472 -422
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/dist/pages/ProductDetailPage.js +16 -16
- package/dist/pages/ProductDetailPage.js.map +1 -1
- 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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { ArrowLeft as
|
|
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
|
|
10
|
+
import { IllustratedEmptyState as le, PagePurpose as ue } from "@burdenoff/fe-libs/ui";
|
|
11
11
|
//#region src/pages/AdminSubmissionsQueuePage.tsx
|
|
12
|
-
var
|
|
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
|
-
],
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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
|
|
66
|
-
let
|
|
67
|
-
|
|
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:
|
|
71
|
+
query: ve,
|
|
72
72
|
variables: {
|
|
73
73
|
limit: 50,
|
|
74
74
|
offset: 0
|
|
75
75
|
},
|
|
76
|
-
authToken:
|
|
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
|
-
|
|
79
|
+
Ee((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
|
|
80
80
|
} catch (e) {
|
|
81
|
-
|
|
81
|
+
j(e instanceof Error ? e.message : "Failed to load version updates");
|
|
82
82
|
} finally {
|
|
83
|
-
|
|
83
|
+
k(!1);
|
|
84
84
|
}
|
|
85
|
-
}, [
|
|
86
|
-
G(e),
|
|
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:
|
|
90
|
+
query: ye,
|
|
91
91
|
variables: {
|
|
92
92
|
id: e,
|
|
93
93
|
notes: n || null
|
|
94
94
|
},
|
|
95
|
-
authToken:
|
|
95
|
+
authToken: b || void 0
|
|
96
96
|
});
|
|
97
97
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
98
|
-
await
|
|
98
|
+
await Q();
|
|
99
99
|
} catch (e) {
|
|
100
|
-
|
|
100
|
+
j(e instanceof Error ? e.message : "Approval failed");
|
|
101
101
|
} finally {
|
|
102
102
|
G(null);
|
|
103
103
|
}
|
|
104
|
-
},
|
|
104
|
+
}, Ne = async (e, t, n) => {
|
|
105
105
|
if (!n.trim()) {
|
|
106
|
-
|
|
106
|
+
j("Rejection reason is required");
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
|
-
G(e),
|
|
109
|
+
G(e), j(null);
|
|
110
110
|
try {
|
|
111
111
|
let t = await g({
|
|
112
112
|
gateway: "global",
|
|
113
|
-
query:
|
|
113
|
+
query: be,
|
|
114
114
|
variables: {
|
|
115
115
|
id: e,
|
|
116
116
|
reason: n.trim()
|
|
117
117
|
},
|
|
118
|
-
authToken:
|
|
118
|
+
authToken: b || void 0
|
|
119
119
|
});
|
|
120
120
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
121
|
-
|
|
121
|
+
q(null), Y(""), X(null), await Q();
|
|
122
122
|
} catch (e) {
|
|
123
|
-
|
|
123
|
+
j(e instanceof Error ? e.message : "Rejection failed");
|
|
124
124
|
} finally {
|
|
125
125
|
G(null);
|
|
126
126
|
}
|
|
127
|
-
},
|
|
127
|
+
}, $ = i(async (e) => {
|
|
128
128
|
if (e === "VERSION_UPDATES") {
|
|
129
|
-
await
|
|
129
|
+
await Q();
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
|
|
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:
|
|
137
|
+
query: de,
|
|
138
138
|
variables: {
|
|
139
139
|
limit: 100,
|
|
140
140
|
offset: 0
|
|
141
141
|
},
|
|
142
|
-
authToken:
|
|
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
|
-
|
|
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:
|
|
149
|
+
query: fe,
|
|
150
150
|
variables: {
|
|
151
151
|
limit: 100,
|
|
152
152
|
offset: 0,
|
|
153
153
|
...e !== "ALL" && { status: e }
|
|
154
154
|
},
|
|
155
|
-
authToken:
|
|
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
|
-
|
|
159
|
+
T(n), D(n.length);
|
|
160
160
|
}
|
|
161
161
|
} catch (e) {
|
|
162
|
-
|
|
162
|
+
j(e instanceof Error ? e.message : "Failed to load products");
|
|
163
163
|
} finally {
|
|
164
|
-
|
|
164
|
+
k(!1);
|
|
165
165
|
}
|
|
166
|
-
}, [
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}, [
|
|
170
|
-
|
|
171
|
-
}, [
|
|
172
|
-
let e =
|
|
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:
|
|
176
|
+
query: ge,
|
|
177
177
|
variables: { id: e.productId },
|
|
178
|
-
authToken:
|
|
178
|
+
authToken: b || void 0
|
|
179
179
|
})));
|
|
180
|
-
|
|
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
|
-
}, [
|
|
194
|
-
let
|
|
195
|
-
|
|
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:
|
|
199
|
+
query: _e,
|
|
200
200
|
variables: { id: e },
|
|
201
|
-
authToken:
|
|
201
|
+
authToken: b || void 0
|
|
202
202
|
})).data?.refreshApplicationVersionPackageUrl;
|
|
203
|
-
t ? window.open(t, "_blank", "noreferrer") :
|
|
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
|
-
|
|
205
|
+
j(e instanceof Error ? e.message : "Failed to refresh download URL");
|
|
206
206
|
} finally {
|
|
207
|
-
|
|
207
|
+
je(null);
|
|
208
208
|
}
|
|
209
|
-
},
|
|
210
|
-
|
|
209
|
+
}, Fe = async (e) => {
|
|
210
|
+
N(e), j(null);
|
|
211
211
|
try {
|
|
212
212
|
let t = await g({
|
|
213
213
|
gateway: "global",
|
|
214
|
-
query:
|
|
214
|
+
query: pe,
|
|
215
215
|
variables: {
|
|
216
216
|
id: e,
|
|
217
217
|
notes: null
|
|
218
218
|
},
|
|
219
|
-
authToken:
|
|
219
|
+
authToken: b || void 0
|
|
220
220
|
});
|
|
221
221
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
222
|
-
await
|
|
222
|
+
await $(P);
|
|
223
223
|
} catch (e) {
|
|
224
|
-
|
|
224
|
+
j(e instanceof Error ? e.message : "Approval failed");
|
|
225
225
|
} finally {
|
|
226
|
-
|
|
226
|
+
N(null);
|
|
227
227
|
}
|
|
228
|
-
},
|
|
229
|
-
if (!
|
|
230
|
-
|
|
228
|
+
}, Ie = async (e) => {
|
|
229
|
+
if (!I.trim()) {
|
|
230
|
+
j("Rejection reason is required");
|
|
231
231
|
return;
|
|
232
232
|
}
|
|
233
|
-
|
|
233
|
+
N(e), j(null);
|
|
234
234
|
try {
|
|
235
235
|
let t = await g({
|
|
236
236
|
gateway: "global",
|
|
237
|
-
query:
|
|
237
|
+
query: me,
|
|
238
238
|
variables: {
|
|
239
239
|
id: e,
|
|
240
|
-
reason:
|
|
240
|
+
reason: I.trim()
|
|
241
241
|
},
|
|
242
|
-
authToken:
|
|
242
|
+
authToken: b || void 0
|
|
243
243
|
});
|
|
244
244
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
245
|
-
|
|
245
|
+
F(null), L(""), await $(P);
|
|
246
246
|
} catch (e) {
|
|
247
|
-
|
|
247
|
+
j(e instanceof Error ? e.message : "Rejection failed");
|
|
248
248
|
} finally {
|
|
249
|
-
|
|
249
|
+
N(null);
|
|
250
250
|
}
|
|
251
|
-
},
|
|
252
|
-
|
|
251
|
+
}, Le = async (e) => {
|
|
252
|
+
N(e), j(null);
|
|
253
253
|
try {
|
|
254
254
|
let t = await g({
|
|
255
255
|
gateway: "global",
|
|
256
|
-
query:
|
|
256
|
+
query: he,
|
|
257
257
|
variables: {
|
|
258
258
|
id: e,
|
|
259
|
-
reason:
|
|
259
|
+
reason: I.trim() || void 0
|
|
260
260
|
},
|
|
261
|
-
authToken:
|
|
261
|
+
authToken: b || void 0
|
|
262
262
|
});
|
|
263
263
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Delist failed");
|
|
264
|
-
|
|
264
|
+
F(null), L(""), await $(P);
|
|
265
265
|
} catch (e) {
|
|
266
|
-
|
|
266
|
+
j(e instanceof Error ? e.message : "Delist failed");
|
|
267
267
|
} finally {
|
|
268
|
-
|
|
268
|
+
N(null);
|
|
269
269
|
}
|
|
270
|
-
},
|
|
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: () =>
|
|
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__ */ _(
|
|
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
|
-
|
|
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:
|
|
297
|
+
children: E
|
|
298
298
|
})
|
|
299
299
|
]
|
|
300
300
|
}), /* @__PURE__ */ v("button", {
|
|
301
301
|
type: "button",
|
|
302
|
-
onClick: () => void
|
|
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:
|
|
305
|
-
children: [/* @__PURE__ */ _(m, { className: `size-4 ${
|
|
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:
|
|
309
|
+
children: xe.map((e) => /* @__PURE__ */ v("button", {
|
|
310
310
|
type: "button",
|
|
311
|
-
onClick: () =>
|
|
312
|
-
className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${
|
|
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" &&
|
|
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" &&
|
|
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:
|
|
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__ */ _(
|
|
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
|
-
|
|
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:
|
|
338
|
+
children: A
|
|
339
339
|
}),
|
|
340
|
-
|
|
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
|
-
}) :
|
|
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:
|
|
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" }),
|
|
417
|
+
children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(t.createdAt)]
|
|
418
418
|
})
|
|
419
419
|
]
|
|
420
420
|
}),
|
|
421
|
-
t.releaseNotes && /* @__PURE__ */ _(
|
|
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
|
|
430
|
-
disabled:
|
|
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
|
-
|
|
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: () =>
|
|
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
|
-
|
|
451
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
468
|
-
onChange: (e) =>
|
|
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
|
-
|
|
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
|
|
485
|
-
disabled: !
|
|
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
|
|
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__ */ _(
|
|
500
|
-
}),
|
|
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
|
-
|
|
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
|
-
}) :
|
|
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
|
-
}) :
|
|
519
|
-
illustration:
|
|
520
|
-
title:
|
|
521
|
-
description:
|
|
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:
|
|
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 ${
|
|
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 ${
|
|
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" }),
|
|
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
|
-
|
|
611
|
-
let t = e.productId ?
|
|
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 =
|
|
613
|
+
let n = Z === t;
|
|
614
614
|
return t ? /* @__PURE__ */ v("button", {
|
|
615
615
|
type: "button",
|
|
616
|
-
onClick: () => void
|
|
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
|
-
|
|
629
|
+
x.has(e.type) && /* @__PURE__ */ v("button", {
|
|
630
630
|
type: "button",
|
|
631
|
-
onClick: () =>
|
|
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: () =>
|
|
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
|
-
|
|
642
|
-
|
|
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
|
|
652
|
-
disabled:
|
|
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__ */ _(
|
|
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
|
-
|
|
659
|
+
F(e.id), L("");
|
|
660
660
|
},
|
|
661
|
-
disabled:
|
|
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
|
-
|
|
668
|
+
F(e.id), L("");
|
|
669
669
|
},
|
|
670
|
-
disabled:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
782
|
-
onChange: (e) =>
|
|
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
|
-
|
|
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
|
|
801
|
-
disabled:
|
|
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
|
|
807
|
-
disabled: !
|
|
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
|
-
|
|
819
|
+
B && /* @__PURE__ */ _(r, {
|
|
820
820
|
isOpen: !0,
|
|
821
|
-
onClose: () =>
|
|
821
|
+
onClose: () => V(null),
|
|
822
822
|
app: {
|
|
823
|
-
id:
|
|
824
|
-
name:
|
|
825
|
-
slug:
|
|
826
|
-
icon:
|
|
827
|
-
type:
|
|
828
|
-
permissions:
|
|
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
|
-
|
|
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 {
|
|
840
|
+
export { C as AdminSubmissionsQueuePage };
|
|
841
841
|
|
|
842
842
|
//# sourceMappingURL=AdminSubmissionsQueuePage.js.map
|