@burdenoff/microfe-store 2026.720.2 → 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.d.ts +12 -0
- package/dist/components/MarkdownEditor.js +117 -0
- package/dist/components/MarkdownEditor.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- 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/AdminStoresPage.js +203 -207
- package/dist/pages/AdminStoresPage.js.map +1 -1
- package/dist/pages/AdminSubmissionsQueuePage.js +173 -172
- 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 +104 -103
- package/dist/pages/ProductDetailPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,14 +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 {
|
|
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";
|
|
6
7
|
import { graphqlFetch as g } from "@burdenoff/fe-libs/shared/graphql";
|
|
7
8
|
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
8
|
-
import { useNavigate as
|
|
9
|
-
import { IllustratedEmptyState as
|
|
9
|
+
import { useNavigate as ce } from "react-router-dom";
|
|
10
|
+
import { IllustratedEmptyState as le, PagePurpose as ue } from "@burdenoff/fe-libs/ui";
|
|
10
11
|
//#region src/pages/AdminSubmissionsQueuePage.tsx
|
|
11
|
-
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 = [
|
|
12
13
|
{
|
|
13
14
|
label: "Pending review",
|
|
14
15
|
value: "PENDING_REVIEW"
|
|
@@ -29,16 +30,16 @@ var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
|
|
|
29
30
|
label: "All",
|
|
30
31
|
value: "ALL"
|
|
31
32
|
}
|
|
32
|
-
],
|
|
33
|
+
], y = {
|
|
33
34
|
NODE: "bg-[var(--color-status-info-bg-subtle)] text-[var(--color-status-info-text)]",
|
|
34
35
|
WORKFLOW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
|
|
35
36
|
INTEGRATION: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
|
|
36
37
|
VIBEMODULE: "bg-[var(--color-surface-accent-muted)] text-[var(--color-text-accent)]"
|
|
37
|
-
},
|
|
38
|
+
}, b = {
|
|
38
39
|
PENDING_REVIEW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
|
|
39
40
|
PUBLISHED: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
|
|
40
41
|
REJECTED: "bg-[var(--color-status-error-bg-subtle)] text-[var(--color-status-error-text)]"
|
|
41
|
-
},
|
|
42
|
+
}, x = new Set([
|
|
42
43
|
"NODE",
|
|
43
44
|
"WORKFLOW",
|
|
44
45
|
"VIBEMODULE",
|
|
@@ -46,13 +47,13 @@ var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
|
|
|
46
47
|
"DATASINK",
|
|
47
48
|
"CONSOLE"
|
|
48
49
|
]);
|
|
49
|
-
function
|
|
50
|
-
return
|
|
50
|
+
function Se(e) {
|
|
51
|
+
return y[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
|
|
51
52
|
}
|
|
52
|
-
function
|
|
53
|
-
return
|
|
53
|
+
function Ce(e) {
|
|
54
|
+
return b[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
|
|
54
55
|
}
|
|
55
|
-
function
|
|
56
|
+
function S(e) {
|
|
56
57
|
return e ? new Date(e).toLocaleString(void 0, {
|
|
57
58
|
month: "short",
|
|
58
59
|
day: "numeric",
|
|
@@ -61,122 +62,122 @@ function C(e) {
|
|
|
61
62
|
minute: "2-digit"
|
|
62
63
|
}) : "—";
|
|
63
64
|
}
|
|
64
|
-
var
|
|
65
|
-
let
|
|
66
|
-
|
|
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);
|
|
67
68
|
try {
|
|
68
69
|
let e = await g({
|
|
69
70
|
gateway: "global",
|
|
70
|
-
query:
|
|
71
|
+
query: ve,
|
|
71
72
|
variables: {
|
|
72
73
|
limit: 50,
|
|
73
74
|
offset: 0
|
|
74
75
|
},
|
|
75
|
-
authToken:
|
|
76
|
+
authToken: b || void 0
|
|
76
77
|
});
|
|
77
78
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load version updates");
|
|
78
|
-
|
|
79
|
+
Ee((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
|
|
79
80
|
} catch (e) {
|
|
80
|
-
|
|
81
|
+
j(e instanceof Error ? e.message : "Failed to load version updates");
|
|
81
82
|
} finally {
|
|
82
|
-
|
|
83
|
+
k(!1);
|
|
83
84
|
}
|
|
84
|
-
}, [
|
|
85
|
-
|
|
85
|
+
}, [b]), Me = async (e, t, n) => {
|
|
86
|
+
G(e), j(null);
|
|
86
87
|
try {
|
|
87
88
|
let t = await g({
|
|
88
89
|
gateway: "global",
|
|
89
|
-
query:
|
|
90
|
+
query: ye,
|
|
90
91
|
variables: {
|
|
91
92
|
id: e,
|
|
92
93
|
notes: n || null
|
|
93
94
|
},
|
|
94
|
-
authToken:
|
|
95
|
+
authToken: b || void 0
|
|
95
96
|
});
|
|
96
97
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
97
98
|
await Q();
|
|
98
99
|
} catch (e) {
|
|
99
|
-
|
|
100
|
+
j(e instanceof Error ? e.message : "Approval failed");
|
|
100
101
|
} finally {
|
|
101
|
-
|
|
102
|
+
G(null);
|
|
102
103
|
}
|
|
103
|
-
},
|
|
104
|
+
}, Ne = async (e, t, n) => {
|
|
104
105
|
if (!n.trim()) {
|
|
105
|
-
|
|
106
|
+
j("Rejection reason is required");
|
|
106
107
|
return;
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
+
G(e), j(null);
|
|
109
110
|
try {
|
|
110
111
|
let t = await g({
|
|
111
112
|
gateway: "global",
|
|
112
|
-
query:
|
|
113
|
+
query: be,
|
|
113
114
|
variables: {
|
|
114
115
|
id: e,
|
|
115
116
|
reason: n.trim()
|
|
116
117
|
},
|
|
117
|
-
authToken:
|
|
118
|
+
authToken: b || void 0
|
|
118
119
|
});
|
|
119
120
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
120
121
|
q(null), Y(""), X(null), await Q();
|
|
121
122
|
} catch (e) {
|
|
122
|
-
|
|
123
|
+
j(e instanceof Error ? e.message : "Rejection failed");
|
|
123
124
|
} finally {
|
|
124
|
-
|
|
125
|
+
G(null);
|
|
125
126
|
}
|
|
126
|
-
}, $ =
|
|
127
|
+
}, $ = i(async (e) => {
|
|
127
128
|
if (e === "VERSION_UPDATES") {
|
|
128
129
|
await Q();
|
|
129
130
|
return;
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
+
k(!0), j(null);
|
|
132
133
|
try {
|
|
133
134
|
if (e === "PENDING_REVIEW") {
|
|
134
135
|
let e = await g({
|
|
135
136
|
gateway: "global",
|
|
136
|
-
query:
|
|
137
|
+
query: de,
|
|
137
138
|
variables: {
|
|
138
139
|
limit: 100,
|
|
139
140
|
offset: 0
|
|
140
141
|
},
|
|
141
|
-
authToken:
|
|
142
|
+
authToken: b || void 0
|
|
142
143
|
});
|
|
143
144
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load pending products");
|
|
144
|
-
|
|
145
|
+
T(e.data?.pendingReviewProducts.products ?? []), D(e.data?.pendingReviewProducts.totalCount ?? 0);
|
|
145
146
|
} else {
|
|
146
147
|
let t = await g({
|
|
147
148
|
gateway: "global",
|
|
148
|
-
query:
|
|
149
|
+
query: fe,
|
|
149
150
|
variables: {
|
|
150
151
|
limit: 100,
|
|
151
152
|
offset: 0,
|
|
152
153
|
...e !== "ALL" && { status: e }
|
|
153
154
|
},
|
|
154
|
-
authToken:
|
|
155
|
+
authToken: b || void 0
|
|
155
156
|
});
|
|
156
157
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Failed to load products");
|
|
157
158
|
let n = t.data?.products ?? [];
|
|
158
|
-
|
|
159
|
+
T(n), D(n.length);
|
|
159
160
|
}
|
|
160
161
|
} catch (e) {
|
|
161
|
-
|
|
162
|
+
j(e instanceof Error ? e.message : "Failed to load products");
|
|
162
163
|
} finally {
|
|
163
|
-
|
|
164
|
+
k(!1);
|
|
164
165
|
}
|
|
165
|
-
}, [
|
|
166
|
-
|
|
167
|
-
$(
|
|
168
|
-
}, [$,
|
|
166
|
+
}, [b, Q]);
|
|
167
|
+
a(() => {
|
|
168
|
+
$(P);
|
|
169
|
+
}, [$, P]), a(() => {
|
|
169
170
|
Q();
|
|
170
|
-
}, [Q]),
|
|
171
|
-
let e =
|
|
171
|
+
}, [Q]), a(() => {
|
|
172
|
+
let e = w.filter((e) => x.has(e.type) && e.productId && !e.zipFileUrl);
|
|
172
173
|
e.length !== 0 && (async () => {
|
|
173
174
|
let t = await Promise.allSettled(e.map((e) => g({
|
|
174
175
|
gateway: "global",
|
|
175
|
-
query:
|
|
176
|
+
query: ge,
|
|
176
177
|
variables: { id: e.productId },
|
|
177
|
-
authToken:
|
|
178
|
+
authToken: b || void 0
|
|
178
179
|
})));
|
|
179
|
-
|
|
180
|
+
Ae((n) => {
|
|
180
181
|
let r = { ...n };
|
|
181
182
|
return t.forEach((t, n) => {
|
|
182
183
|
if (t.status === "fulfilled") {
|
|
@@ -189,84 +190,84 @@ var w = () => {
|
|
|
189
190
|
}), r;
|
|
190
191
|
});
|
|
191
192
|
})();
|
|
192
|
-
}, [
|
|
193
|
-
let
|
|
194
|
-
|
|
193
|
+
}, [w, b]);
|
|
194
|
+
let Pe = async (e) => {
|
|
195
|
+
je(e);
|
|
195
196
|
try {
|
|
196
197
|
let t = (await g({
|
|
197
198
|
gateway: "global",
|
|
198
|
-
query:
|
|
199
|
+
query: _e,
|
|
199
200
|
variables: { id: e },
|
|
200
|
-
authToken:
|
|
201
|
+
authToken: b || void 0
|
|
201
202
|
})).data?.refreshApplicationVersionPackageUrl;
|
|
202
|
-
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.");
|
|
203
204
|
} catch (e) {
|
|
204
|
-
|
|
205
|
+
j(e instanceof Error ? e.message : "Failed to refresh download URL");
|
|
205
206
|
} finally {
|
|
206
|
-
|
|
207
|
+
je(null);
|
|
207
208
|
}
|
|
208
|
-
},
|
|
209
|
-
|
|
209
|
+
}, Fe = async (e) => {
|
|
210
|
+
N(e), j(null);
|
|
210
211
|
try {
|
|
211
212
|
let t = await g({
|
|
212
213
|
gateway: "global",
|
|
213
|
-
query:
|
|
214
|
+
query: pe,
|
|
214
215
|
variables: {
|
|
215
216
|
id: e,
|
|
216
217
|
notes: null
|
|
217
218
|
},
|
|
218
|
-
authToken:
|
|
219
|
+
authToken: b || void 0
|
|
219
220
|
});
|
|
220
221
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
221
|
-
await $(
|
|
222
|
+
await $(P);
|
|
222
223
|
} catch (e) {
|
|
223
|
-
|
|
224
|
+
j(e instanceof Error ? e.message : "Approval failed");
|
|
224
225
|
} finally {
|
|
225
|
-
|
|
226
|
+
N(null);
|
|
226
227
|
}
|
|
227
|
-
},
|
|
228
|
-
if (!
|
|
229
|
-
|
|
228
|
+
}, Ie = async (e) => {
|
|
229
|
+
if (!I.trim()) {
|
|
230
|
+
j("Rejection reason is required");
|
|
230
231
|
return;
|
|
231
232
|
}
|
|
232
|
-
|
|
233
|
+
N(e), j(null);
|
|
233
234
|
try {
|
|
234
235
|
let t = await g({
|
|
235
236
|
gateway: "global",
|
|
236
|
-
query:
|
|
237
|
+
query: me,
|
|
237
238
|
variables: {
|
|
238
239
|
id: e,
|
|
239
|
-
reason:
|
|
240
|
+
reason: I.trim()
|
|
240
241
|
},
|
|
241
|
-
authToken:
|
|
242
|
+
authToken: b || void 0
|
|
242
243
|
});
|
|
243
244
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
244
|
-
|
|
245
|
+
F(null), L(""), await $(P);
|
|
245
246
|
} catch (e) {
|
|
246
|
-
|
|
247
|
+
j(e instanceof Error ? e.message : "Rejection failed");
|
|
247
248
|
} finally {
|
|
248
|
-
|
|
249
|
+
N(null);
|
|
249
250
|
}
|
|
250
|
-
},
|
|
251
|
-
|
|
251
|
+
}, Le = async (e) => {
|
|
252
|
+
N(e), j(null);
|
|
252
253
|
try {
|
|
253
254
|
let t = await g({
|
|
254
255
|
gateway: "global",
|
|
255
|
-
query:
|
|
256
|
+
query: he,
|
|
256
257
|
variables: {
|
|
257
258
|
id: e,
|
|
258
|
-
reason:
|
|
259
|
+
reason: I.trim() || void 0
|
|
259
260
|
},
|
|
260
|
-
authToken:
|
|
261
|
+
authToken: b || void 0
|
|
261
262
|
});
|
|
262
263
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Delist failed");
|
|
263
|
-
|
|
264
|
+
F(null), L(""), await $(P);
|
|
264
265
|
} catch (e) {
|
|
265
|
-
|
|
266
|
+
j(e instanceof Error ? e.message : "Delist failed");
|
|
266
267
|
} finally {
|
|
267
|
-
|
|
268
|
+
N(null);
|
|
268
269
|
}
|
|
269
|
-
},
|
|
270
|
+
}, Re = w.filter((e) => e.status === "PENDING_REVIEW").length;
|
|
270
271
|
return /* @__PURE__ */ v("div", {
|
|
271
272
|
className: "min-h-screen bg-[var(--color-surface-default)]",
|
|
272
273
|
children: [
|
|
@@ -281,43 +282,43 @@ var w = () => {
|
|
|
281
282
|
children: [
|
|
282
283
|
/* @__PURE__ */ v("button", {
|
|
283
284
|
type: "button",
|
|
284
|
-
onClick: () =>
|
|
285
|
+
onClick: () => y(`${C}/dashboard`),
|
|
285
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",
|
|
286
287
|
children: [/* @__PURE__ */ _(ee, { className: "size-4 shrink-0" }), "Back"]
|
|
287
288
|
}),
|
|
288
289
|
/* @__PURE__ */ _("div", { className: "h-5 w-px bg-[var(--color-border-seam)]" }),
|
|
289
|
-
/* @__PURE__ */ _(
|
|
290
|
+
/* @__PURE__ */ _(ie, { className: "size-5 shrink-0 text-[var(--color-text-primary)]" }),
|
|
290
291
|
/* @__PURE__ */ _("h1", {
|
|
291
292
|
className: "text-lg font-semibold text-[var(--color-text-primary)] truncate",
|
|
292
293
|
children: "Submission Queue"
|
|
293
294
|
}),
|
|
294
|
-
|
|
295
|
+
E > 0 && /* @__PURE__ */ _("span", {
|
|
295
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)]",
|
|
296
|
-
children:
|
|
297
|
+
children: E
|
|
297
298
|
})
|
|
298
299
|
]
|
|
299
300
|
}), /* @__PURE__ */ v("button", {
|
|
300
301
|
type: "button",
|
|
301
|
-
onClick: () => void $(
|
|
302
|
+
onClick: () => void $(P),
|
|
302
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",
|
|
303
|
-
disabled:
|
|
304
|
-
children: [/* @__PURE__ */ _(m, { className: `size-4 ${
|
|
304
|
+
disabled: O,
|
|
305
|
+
children: [/* @__PURE__ */ _(m, { className: `size-4 ${O ? "animate-spin" : ""}` }), "Refresh"]
|
|
305
306
|
})]
|
|
306
307
|
}), /* @__PURE__ */ _("div", {
|
|
307
308
|
className: "mt-3 flex gap-1.5 flex-wrap",
|
|
308
|
-
children:
|
|
309
|
+
children: xe.map((e) => /* @__PURE__ */ v("button", {
|
|
309
310
|
type: "button",
|
|
310
|
-
onClick: () =>
|
|
311
|
-
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)]"}`,
|
|
312
313
|
children: [
|
|
313
314
|
e.label,
|
|
314
|
-
e.value === "PENDING_REVIEW" &&
|
|
315
|
+
e.value === "PENDING_REVIEW" && Re > 0 && P !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
|
|
315
316
|
className: "ml-1.5 rounded-full bg-[var(--color-status-warning-text)] px-1.5 py-0.5 text-[10px] text-white",
|
|
316
|
-
children:
|
|
317
|
+
children: Re
|
|
317
318
|
}),
|
|
318
|
-
e.value === "VERSION_UPDATES" &&
|
|
319
|
+
e.value === "VERSION_UPDATES" && U > 0 && P !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
|
|
319
320
|
className: "ml-1.5 rounded-full bg-[var(--color-status-info-text)] px-1.5 py-0.5 text-[10px] text-white",
|
|
320
|
-
children:
|
|
321
|
+
children: U
|
|
321
322
|
})
|
|
322
323
|
]
|
|
323
324
|
}, e.value))
|
|
@@ -327,25 +328,25 @@ var w = () => {
|
|
|
327
328
|
/* @__PURE__ */ v("main", {
|
|
328
329
|
className: "mx-auto max-w-5xl space-y-4 p-6",
|
|
329
330
|
children: [
|
|
330
|
-
/* @__PURE__ */ _(
|
|
331
|
+
/* @__PURE__ */ _(ue, {
|
|
331
332
|
className: "mb-2",
|
|
332
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."
|
|
333
334
|
}),
|
|
334
|
-
|
|
335
|
+
A && /* @__PURE__ */ _("div", {
|
|
335
336
|
role: "alert",
|
|
336
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)]",
|
|
337
|
-
children:
|
|
338
|
+
children: A
|
|
338
339
|
}),
|
|
339
|
-
|
|
340
|
+
P === "VERSION_UPDATES" ? O && H.length === 0 ? /* @__PURE__ */ _("div", {
|
|
340
341
|
className: "flex items-center justify-center py-24",
|
|
341
342
|
children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
|
|
342
|
-
}) :
|
|
343
|
+
}) : H.length === 0 ? /* @__PURE__ */ _(le, {
|
|
343
344
|
illustration: "empty-data",
|
|
344
345
|
title: "No pending version updates",
|
|
345
346
|
description: "All published apps are up to date. When a developer submits a new version, it will appear here for your review."
|
|
346
347
|
}) : /* @__PURE__ */ _("ul", {
|
|
347
348
|
className: "space-y-4",
|
|
348
|
-
children:
|
|
349
|
+
children: H.map((e) => {
|
|
349
350
|
let t = e.versions.edges.map((e) => e.node).filter((e) => e.status === "pending_review");
|
|
350
351
|
return t.length === 0 ? null : /* @__PURE__ */ v("li", {
|
|
351
352
|
className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)]",
|
|
@@ -413,19 +414,19 @@ var w = () => {
|
|
|
413
414
|
}),
|
|
414
415
|
/* @__PURE__ */ v("span", {
|
|
415
416
|
className: "ml-auto flex items-center gap-1 text-xs text-[var(--color-text-secondary)]",
|
|
416
|
-
children: [/* @__PURE__ */ _(l, { className: "size-3" }),
|
|
417
|
+
children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(t.createdAt)]
|
|
417
418
|
})
|
|
418
419
|
]
|
|
419
420
|
}),
|
|
420
|
-
t.releaseNotes && /* @__PURE__ */ _("
|
|
421
|
+
t.releaseNotes && /* @__PURE__ */ _("div", {
|
|
421
422
|
className: "text-sm text-[var(--color-text-secondary)]",
|
|
422
|
-
children: t.releaseNotes
|
|
423
|
+
children: /* @__PURE__ */ _(n, { children: t.releaseNotes })
|
|
423
424
|
}),
|
|
424
425
|
/* @__PURE__ */ v("div", {
|
|
425
426
|
className: "flex flex-wrap gap-2",
|
|
426
427
|
children: [t.packageUrl && /* @__PURE__ */ v("button", {
|
|
427
428
|
type: "button",
|
|
428
|
-
onClick: () => void
|
|
429
|
+
onClick: () => void Pe(t.id),
|
|
429
430
|
disabled: Z === t.id,
|
|
430
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",
|
|
431
432
|
children: [
|
|
@@ -442,20 +443,20 @@ var w = () => {
|
|
|
442
443
|
]
|
|
443
444
|
}), t.manifest && /* @__PURE__ */ v("button", {
|
|
444
445
|
type: "button",
|
|
445
|
-
onClick: () =>
|
|
446
|
+
onClick: () => z(R === t.id ? null : t.id),
|
|
446
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",
|
|
447
448
|
children: [
|
|
448
449
|
/* @__PURE__ */ _(f, { className: "size-3.5" }),
|
|
449
|
-
|
|
450
|
-
|
|
450
|
+
R === t.id ? "Hide manifest" : "View manifest",
|
|
451
|
+
R === t.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
|
|
451
452
|
]
|
|
452
453
|
})]
|
|
453
454
|
}),
|
|
454
|
-
|
|
455
|
+
R === t.id && t.manifest && /* @__PURE__ */ _("pre", {
|
|
455
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",
|
|
456
457
|
children: JSON.stringify(t.manifest, null, 2)
|
|
457
458
|
}),
|
|
458
|
-
|
|
459
|
+
K === t.id && Oe === e.id && /* @__PURE__ */ v("div", {
|
|
459
460
|
className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)]/30 p-3 space-y-2",
|
|
460
461
|
children: [
|
|
461
462
|
/* @__PURE__ */ _("p", {
|
|
@@ -480,8 +481,8 @@ var w = () => {
|
|
|
480
481
|
children: "Cancel"
|
|
481
482
|
}), /* @__PURE__ */ _("button", {
|
|
482
483
|
type: "button",
|
|
483
|
-
onClick: () => void
|
|
484
|
-
disabled: !J.trim() ||
|
|
484
|
+
onClick: () => void Ne(t.id, e.id, J),
|
|
485
|
+
disabled: !J.trim() || W === t.id,
|
|
485
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",
|
|
486
487
|
children: "Submit rejection"
|
|
487
488
|
})]
|
|
@@ -492,16 +493,16 @@ var w = () => {
|
|
|
492
493
|
className: "flex items-center gap-2",
|
|
493
494
|
children: [/* @__PURE__ */ v("button", {
|
|
494
495
|
type: "button",
|
|
495
|
-
onClick: () => void
|
|
496
|
-
disabled:
|
|
496
|
+
onClick: () => void Me(t.id, e.id, ""),
|
|
497
|
+
disabled: W === t.id,
|
|
497
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",
|
|
498
|
-
children: [
|
|
499
|
-
}),
|
|
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", {
|
|
500
501
|
type: "button",
|
|
501
502
|
onClick: () => {
|
|
502
503
|
q(t.id), Y(""), X(e.id);
|
|
503
504
|
},
|
|
504
|
-
disabled:
|
|
505
|
+
disabled: W === t.id,
|
|
505
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",
|
|
506
507
|
children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Reject version"]
|
|
507
508
|
})]
|
|
@@ -511,16 +512,16 @@ var w = () => {
|
|
|
511
512
|
})]
|
|
512
513
|
}, e.id);
|
|
513
514
|
})
|
|
514
|
-
}) :
|
|
515
|
+
}) : O && w.length === 0 ? /* @__PURE__ */ _("div", {
|
|
515
516
|
className: "flex items-center justify-center py-24",
|
|
516
517
|
children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
|
|
517
|
-
}) :
|
|
518
|
-
illustration:
|
|
519
|
-
title:
|
|
520
|
-
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."
|
|
521
522
|
}) : /* @__PURE__ */ _("ul", {
|
|
522
523
|
className: "space-y-3",
|
|
523
|
-
children:
|
|
524
|
+
children: w.map((e) => /* @__PURE__ */ v("li", {
|
|
524
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)]",
|
|
525
526
|
children: [
|
|
526
527
|
/* @__PURE__ */ v("div", {
|
|
@@ -543,11 +544,11 @@ var w = () => {
|
|
|
543
544
|
children: e.name
|
|
544
545
|
}),
|
|
545
546
|
/* @__PURE__ */ _("span", {
|
|
546
|
-
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)}`,
|
|
547
548
|
children: e.type
|
|
548
549
|
}),
|
|
549
550
|
/* @__PURE__ */ _("span", {
|
|
550
|
-
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)}`,
|
|
551
552
|
children: e.status.replace("_", " ")
|
|
552
553
|
})
|
|
553
554
|
]
|
|
@@ -557,7 +558,7 @@ var w = () => {
|
|
|
557
558
|
children: [
|
|
558
559
|
/* @__PURE__ */ v("span", {
|
|
559
560
|
className: "flex items-center gap-1",
|
|
560
|
-
children: [/* @__PURE__ */ _(
|
|
561
|
+
children: [/* @__PURE__ */ _(re, { className: "size-3" }), /* @__PURE__ */ _("span", {
|
|
561
562
|
className: "font-mono",
|
|
562
563
|
children: e.slug
|
|
563
564
|
})]
|
|
@@ -565,7 +566,7 @@ var w = () => {
|
|
|
565
566
|
e.publisher && /* @__PURE__ */ v("span", {
|
|
566
567
|
className: "flex items-center gap-1",
|
|
567
568
|
children: [
|
|
568
|
-
/* @__PURE__ */ _(
|
|
569
|
+
/* @__PURE__ */ _(se, { className: "size-3" }),
|
|
569
570
|
e.publisher.name,
|
|
570
571
|
e.publisher.email && /* @__PURE__ */ v("span", {
|
|
571
572
|
className: "text-[var(--color-text-muted)]",
|
|
@@ -579,11 +580,11 @@ var w = () => {
|
|
|
579
580
|
}),
|
|
580
581
|
e.submittedAt && /* @__PURE__ */ v("span", {
|
|
581
582
|
className: "flex items-center gap-1",
|
|
582
|
-
children: [/* @__PURE__ */ _(l, { className: "size-3" }),
|
|
583
|
+
children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(e.submittedAt)]
|
|
583
584
|
}),
|
|
584
585
|
/* @__PURE__ */ v("span", {
|
|
585
586
|
className: "flex items-center gap-1",
|
|
586
|
-
children: [/* @__PURE__ */ _(
|
|
587
|
+
children: [/* @__PURE__ */ _(oe, { className: "size-3" }), t(e.price, e.currency, e.pricingModel)]
|
|
587
588
|
})
|
|
588
589
|
]
|
|
589
590
|
}),
|
|
@@ -606,13 +607,13 @@ var w = () => {
|
|
|
606
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",
|
|
607
608
|
children: [/* @__PURE__ */ _(d, { className: "size-3.5" }), "Devportal"]
|
|
608
609
|
}),
|
|
609
|
-
|
|
610
|
-
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;
|
|
611
612
|
if (!t && !e.zipFileUrl) return null;
|
|
612
613
|
let n = Z === t;
|
|
613
614
|
return t ? /* @__PURE__ */ v("button", {
|
|
614
615
|
type: "button",
|
|
615
|
-
onClick: () => void
|
|
616
|
+
onClick: () => void Pe(t),
|
|
616
617
|
disabled: n,
|
|
617
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",
|
|
618
619
|
children: [n ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
|
|
@@ -625,20 +626,20 @@ var w = () => {
|
|
|
625
626
|
children: [/* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
|
|
626
627
|
});
|
|
627
628
|
})(),
|
|
628
|
-
|
|
629
|
+
x.has(e.type) && /* @__PURE__ */ v("button", {
|
|
629
630
|
type: "button",
|
|
630
|
-
onClick: () =>
|
|
631
|
+
onClick: () => V(e),
|
|
631
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",
|
|
632
|
-
children: [/* @__PURE__ */ _(
|
|
633
|
+
children: [/* @__PURE__ */ _(ne, { className: "size-3.5" }), "Test in workspace"]
|
|
633
634
|
}),
|
|
634
635
|
/* @__PURE__ */ v("button", {
|
|
635
636
|
type: "button",
|
|
636
|
-
onClick: () =>
|
|
637
|
+
onClick: () => z(R === e.id ? null : e.id),
|
|
637
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",
|
|
638
639
|
children: [
|
|
639
640
|
/* @__PURE__ */ _(f, { className: "size-3.5" }),
|
|
640
|
-
|
|
641
|
-
|
|
641
|
+
R === e.id ? "Hide details" : "Inspect details",
|
|
642
|
+
R === e.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
|
|
642
643
|
]
|
|
643
644
|
})
|
|
644
645
|
]
|
|
@@ -647,33 +648,33 @@ var w = () => {
|
|
|
647
648
|
children: [
|
|
648
649
|
e.status !== "PUBLISHED" && /* @__PURE__ */ v("button", {
|
|
649
650
|
type: "button",
|
|
650
|
-
onClick: () => void
|
|
651
|
-
disabled:
|
|
651
|
+
onClick: () => void Fe(e.id),
|
|
652
|
+
disabled: M === e.id,
|
|
652
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",
|
|
653
|
-
children: [/* @__PURE__ */ _(
|
|
654
|
+
children: [/* @__PURE__ */ _(te, { className: "size-3.5" }), "Approve"]
|
|
654
655
|
}),
|
|
655
656
|
e.status === "PENDING_REVIEW" && /* @__PURE__ */ v("button", {
|
|
656
657
|
type: "button",
|
|
657
658
|
onClick: () => {
|
|
658
|
-
|
|
659
|
+
F(e.id), L("");
|
|
659
660
|
},
|
|
660
|
-
disabled:
|
|
661
|
+
disabled: M === e.id,
|
|
661
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",
|
|
662
663
|
children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Reject"]
|
|
663
664
|
}),
|
|
664
665
|
e.status === "PUBLISHED" && /* @__PURE__ */ v("button", {
|
|
665
666
|
type: "button",
|
|
666
667
|
onClick: () => {
|
|
667
|
-
|
|
668
|
+
F(e.id), L("");
|
|
668
669
|
},
|
|
669
|
-
disabled:
|
|
670
|
+
disabled: M === e.id,
|
|
670
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",
|
|
671
672
|
children: [/* @__PURE__ */ _(h, { className: "size-3.5" }), "Delist"]
|
|
672
673
|
})
|
|
673
674
|
]
|
|
674
675
|
})]
|
|
675
676
|
}),
|
|
676
|
-
|
|
677
|
+
R === e.id && /* @__PURE__ */ v("div", {
|
|
677
678
|
className: "border-t border-[var(--color-border-seam)] bg-[var(--color-surface-muted)] p-5 space-y-5",
|
|
678
679
|
children: [
|
|
679
680
|
/* @__PURE__ */ v("div", {
|
|
@@ -747,7 +748,7 @@ var w = () => {
|
|
|
747
748
|
}),
|
|
748
749
|
e.requiredPermissions && e.requiredPermissions.length > 0 && /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ v("h4", {
|
|
749
750
|
className: "mb-2 flex items-center gap-1.5 text-xs font-semibold text-[var(--color-text-secondary)] uppercase tracking-wide",
|
|
750
|
-
children: [/* @__PURE__ */ _(
|
|
751
|
+
children: [/* @__PURE__ */ _(ae, { className: "size-3.5 text-[var(--color-status-success-text)]" }), "Required Permissions"]
|
|
751
752
|
}), /* @__PURE__ */ _("div", {
|
|
752
753
|
className: "flex flex-wrap gap-1.5",
|
|
753
754
|
children: e.requiredPermissions.map((e) => /* @__PURE__ */ _("span", {
|
|
@@ -764,7 +765,7 @@ var w = () => {
|
|
|
764
765
|
})] })
|
|
765
766
|
]
|
|
766
767
|
}),
|
|
767
|
-
|
|
768
|
+
Te === e.id && /* @__PURE__ */ v("div", {
|
|
768
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"}`,
|
|
769
770
|
children: [
|
|
770
771
|
e.status === "PUBLISHED" ? /* @__PURE__ */ _("p", {
|
|
@@ -777,8 +778,8 @@ var w = () => {
|
|
|
777
778
|
/* @__PURE__ */ _("textarea", {
|
|
778
779
|
id: `reject-reason-${e.id}`,
|
|
779
780
|
"aria-label": e.status === "PUBLISHED" ? "Delist reason" : "Rejection reason",
|
|
780
|
-
value:
|
|
781
|
-
onChange: (e) =>
|
|
781
|
+
value: I,
|
|
782
|
+
onChange: (e) => L(e.target.value),
|
|
782
783
|
rows: 3,
|
|
783
784
|
required: e.status !== "PUBLISHED",
|
|
784
785
|
"aria-required": e.status !== "PUBLISHED",
|
|
@@ -790,20 +791,20 @@ var w = () => {
|
|
|
790
791
|
children: [/* @__PURE__ */ _("button", {
|
|
791
792
|
type: "button",
|
|
792
793
|
onClick: () => {
|
|
793
|
-
|
|
794
|
+
F(null), L("");
|
|
794
795
|
},
|
|
795
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",
|
|
796
797
|
children: "Cancel"
|
|
797
798
|
}), e.status === "PUBLISHED" ? /* @__PURE__ */ _("button", {
|
|
798
799
|
type: "button",
|
|
799
|
-
onClick: () => void
|
|
800
|
-
disabled:
|
|
800
|
+
onClick: () => void Le(e.id),
|
|
801
|
+
disabled: M === e.id,
|
|
801
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",
|
|
802
803
|
children: "Confirm delist"
|
|
803
804
|
}) : /* @__PURE__ */ _("button", {
|
|
804
805
|
type: "button",
|
|
805
|
-
onClick: () => void
|
|
806
|
-
disabled: !
|
|
806
|
+
onClick: () => void Ie(e.id),
|
|
807
|
+
disabled: !I.trim() || M === e.id,
|
|
807
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",
|
|
808
809
|
children: "Submit rejection"
|
|
809
810
|
})]
|
|
@@ -815,20 +816,20 @@ var w = () => {
|
|
|
815
816
|
})
|
|
816
817
|
]
|
|
817
818
|
}),
|
|
818
|
-
|
|
819
|
+
B && /* @__PURE__ */ _(r, {
|
|
819
820
|
isOpen: !0,
|
|
820
|
-
onClose: () =>
|
|
821
|
+
onClose: () => V(null),
|
|
821
822
|
app: {
|
|
822
|
-
id:
|
|
823
|
-
name:
|
|
824
|
-
slug:
|
|
825
|
-
icon:
|
|
826
|
-
type:
|
|
827
|
-
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
|
|
828
829
|
},
|
|
829
830
|
purchaseState: "free",
|
|
830
831
|
onInstallSuccess: () => {
|
|
831
|
-
|
|
832
|
+
V(null);
|
|
832
833
|
},
|
|
833
834
|
onInstallError: () => {}
|
|
834
835
|
})
|
|
@@ -836,6 +837,6 @@ var w = () => {
|
|
|
836
837
|
});
|
|
837
838
|
};
|
|
838
839
|
//#endregion
|
|
839
|
-
export {
|
|
840
|
+
export { C as AdminSubmissionsQueuePage };
|
|
840
841
|
|
|
841
842
|
//# sourceMappingURL=AdminSubmissionsQueuePage.js.map
|