@burdenoff/microfe-store 2026.720.3 → 2026.721.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/generated/global-operations.d.ts +18 -0
- package/dist/generated/global-operations.js +16 -0
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +2 -0
- package/dist/generated/global-types.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 +469 -440
- package/dist/pages/ProductDetailPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { useStore as e } from "../providers/StoreProvider.js";
|
|
2
2
|
import { useCart as t } from "../hooks/useCart.js";
|
|
3
3
|
import { formatNumber as n, formatPrice as r } from "../utils/index.js";
|
|
4
|
-
import { useCreateReview as
|
|
4
|
+
import { useCreateReview as i, useDeleteReview as ee, useMarkReviewHelpful as te, useStoreProductDetails as ne, useUpdateReview as re } from "../hooks/useStoreGraphQL.js";
|
|
5
|
+
import { Markdown as ie } from "../node_modules/react-markdown/lib/index.js";
|
|
5
6
|
import { InstallAppModal as ae } from "../components/InstallAppModal.js";
|
|
6
7
|
import { useInstallations as oe } from "../hooks/useInstallations.js";
|
|
7
8
|
import { nativeConfirm as se, nativeImpact as ce, nativeNotify as le } from "../utils/nativeBridge.js";
|
|
8
|
-
import { useCallback as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { useEventBus as Te } from "@burdenoff/fe-libs/shared/events";
|
|
9
|
+
import { useCallback as a, useEffect as ue, useMemo as de, useRef as fe, useState as o } from "react";
|
|
10
|
+
import { AlertCircle as s, ArrowLeft as pe, Check as me, Loader2 as he, Package as c, ShieldCheck as l, ShoppingCart as ge, Star as u, ThumbsUp as d } from "lucide-react";
|
|
11
|
+
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
12
|
+
import { useLocation as _e, useNavigate as ve, useParams as ye } from "react-router-dom";
|
|
13
|
+
import { EmphasisPanel as be, GlassCard as h, IllustratedEmptyState as xe, NextSteps as Se, PagePurpose as Ce } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { useEventBus as we } from "@burdenoff/fe-libs/shared/events";
|
|
15
15
|
//#region src/pages/ProductDetailPage.tsx
|
|
16
|
-
var
|
|
16
|
+
var Te = (e, t) => ({
|
|
17
17
|
id: e.id,
|
|
18
18
|
publisherId: t?.id || "",
|
|
19
19
|
publisher: {
|
|
@@ -85,41 +85,41 @@ var Ee = (e, t) => ({
|
|
|
85
85
|
createdAt: e.createdAt,
|
|
86
86
|
updatedAt: e.updatedAt,
|
|
87
87
|
publishedAt: e.publishedAt
|
|
88
|
-
}),
|
|
88
|
+
}), Ee = ({ stars: e, percentage: t, count: r }) => /* @__PURE__ */ m("div", {
|
|
89
89
|
className: "flex items-center gap-2",
|
|
90
90
|
children: [
|
|
91
|
-
/* @__PURE__ */
|
|
91
|
+
/* @__PURE__ */ p("span", {
|
|
92
92
|
className: "w-3 text-xs text-text-muted",
|
|
93
93
|
children: e
|
|
94
94
|
}),
|
|
95
|
-
/* @__PURE__ */
|
|
95
|
+
/* @__PURE__ */ p("div", {
|
|
96
96
|
className: "h-2 flex-1 overflow-hidden rounded-full bg-bg-sunken",
|
|
97
|
-
children: /* @__PURE__ */
|
|
97
|
+
children: /* @__PURE__ */ p("div", {
|
|
98
98
|
className: "h-full rounded-full bg-status-warning-bg-subtle",
|
|
99
99
|
style: { width: `${t}%` }
|
|
100
100
|
})
|
|
101
101
|
}),
|
|
102
|
-
/* @__PURE__ */
|
|
102
|
+
/* @__PURE__ */ p("span", {
|
|
103
103
|
className: "w-12 text-right text-xs text-text-muted",
|
|
104
104
|
children: n(r)
|
|
105
105
|
})
|
|
106
106
|
]
|
|
107
|
-
}),
|
|
107
|
+
}), De = ({ review: e, onMarkHelpful: t, markingHelpful: n }) => /* @__PURE__ */ m("div", {
|
|
108
108
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop)]",
|
|
109
109
|
children: [
|
|
110
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ p("div", {
|
|
111
111
|
className: "mb-3 flex items-start justify-between",
|
|
112
|
-
children: /* @__PURE__ */
|
|
112
|
+
children: /* @__PURE__ */ m("div", {
|
|
113
113
|
className: "flex items-center gap-3",
|
|
114
|
-
children: [/* @__PURE__ */
|
|
114
|
+
children: [/* @__PURE__ */ p("div", {
|
|
115
115
|
className: "flex size-10 items-center justify-center rounded-full bg-bg-sunken text-text-muted",
|
|
116
|
-
children: /* @__PURE__ */
|
|
117
|
-
}), /* @__PURE__ */
|
|
116
|
+
children: /* @__PURE__ */ p(u, { className: "size-4 fill-current" })
|
|
117
|
+
}), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
118
118
|
className: "font-medium text-text-primary",
|
|
119
119
|
children: "Verified Buyer"
|
|
120
|
-
}), /* @__PURE__ */
|
|
120
|
+
}), /* @__PURE__ */ m("div", {
|
|
121
121
|
className: "flex items-center gap-2",
|
|
122
|
-
children: [/* @__PURE__ */
|
|
122
|
+
children: [/* @__PURE__ */ p("div", {
|
|
123
123
|
className: "flex gap-0.5",
|
|
124
124
|
children: [
|
|
125
125
|
1,
|
|
@@ -127,8 +127,8 @@ var Ee = (e, t) => ({
|
|
|
127
127
|
3,
|
|
128
128
|
4,
|
|
129
129
|
5
|
|
130
|
-
].map((t) => /* @__PURE__ */
|
|
131
|
-
}), /* @__PURE__ */
|
|
130
|
+
].map((t) => /* @__PURE__ */ p(u, { className: `size-3 ${t <= e.rating ? "fill-current text-status-warning-text" : "text-text-muted"}` }, t))
|
|
131
|
+
}), /* @__PURE__ */ p("span", {
|
|
132
132
|
className: "text-xs text-text-muted",
|
|
133
133
|
children: ((e) => {
|
|
134
134
|
try {
|
|
@@ -145,147 +145,147 @@ var Ee = (e, t) => ({
|
|
|
145
145
|
})] })]
|
|
146
146
|
})
|
|
147
147
|
}),
|
|
148
|
-
e.title && /* @__PURE__ */
|
|
148
|
+
e.title && /* @__PURE__ */ p("h4", {
|
|
149
149
|
className: "mb-2 font-medium text-text-primary",
|
|
150
150
|
children: e.title
|
|
151
151
|
}),
|
|
152
|
-
e.comment && /* @__PURE__ */
|
|
152
|
+
e.comment && /* @__PURE__ */ p("p", {
|
|
153
153
|
className: "mb-3 text-sm text-text-muted",
|
|
154
154
|
children: e.comment
|
|
155
155
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ p("div", {
|
|
157
157
|
className: "flex items-center justify-between",
|
|
158
|
-
children: /* @__PURE__ */
|
|
158
|
+
children: /* @__PURE__ */ m("button", {
|
|
159
159
|
type: "button",
|
|
160
160
|
onClick: () => t(e.id),
|
|
161
161
|
disabled: n,
|
|
162
162
|
"aria-label": "Mark this review as helpful",
|
|
163
163
|
className: "flex items-center gap-1 text-xs text-text-muted transition-colors hover:text-text-primary disabled:cursor-not-allowed disabled:opacity-60",
|
|
164
|
-
children: [/* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ p(d, { className: "size-3.5" }), /* @__PURE__ */ p("span", { children: n ? "Updating…" : `Helpful (${e.helpful})` })]
|
|
165
165
|
})
|
|
166
166
|
})
|
|
167
167
|
]
|
|
168
|
-
}),
|
|
168
|
+
}), Oe = () => /* @__PURE__ */ m("div", {
|
|
169
169
|
className: "h-full overflow-y-auto",
|
|
170
|
-
children: [/* @__PURE__ */
|
|
170
|
+
children: [/* @__PURE__ */ p("div", {
|
|
171
171
|
className: "sticky top-0 z-10 border-b border-border-default bg-bg-surface px-6 py-4",
|
|
172
|
-
children: /* @__PURE__ */
|
|
172
|
+
children: /* @__PURE__ */ m("div", {
|
|
173
173
|
className: "flex items-center gap-4",
|
|
174
174
|
children: [
|
|
175
|
-
/* @__PURE__ */
|
|
176
|
-
/* @__PURE__ */
|
|
177
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }),
|
|
176
|
+
/* @__PURE__ */ p("div", { className: "h-6 w-48 flex-1 animate-pulse rounded bg-bg-sunken" }),
|
|
177
|
+
/* @__PURE__ */ m("div", {
|
|
178
178
|
className: "flex gap-2",
|
|
179
|
-
children: [/* @__PURE__ */
|
|
179
|
+
children: [/* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-10 animate-pulse rounded-lg bg-bg-sunken" })]
|
|
180
180
|
})
|
|
181
181
|
]
|
|
182
182
|
})
|
|
183
|
-
}), /* @__PURE__ */
|
|
183
|
+
}), /* @__PURE__ */ m("div", {
|
|
184
184
|
className: "mx-auto max-w-6xl p-6",
|
|
185
185
|
children: [
|
|
186
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ m("div", {
|
|
187
187
|
className: "mb-8 flex flex-col gap-6 md:flex-row",
|
|
188
|
-
children: [/* @__PURE__ */
|
|
188
|
+
children: [/* @__PURE__ */ m("div", {
|
|
189
189
|
className: "flex gap-4 md:w-1/2",
|
|
190
|
-
children: [/* @__PURE__ */
|
|
190
|
+
children: [/* @__PURE__ */ p("div", { className: "size-28 animate-pulse rounded-2xl bg-bg-sunken" }), /* @__PURE__ */ m("div", {
|
|
191
191
|
className: "flex flex-1 flex-col justify-center gap-2",
|
|
192
192
|
children: [
|
|
193
|
-
/* @__PURE__ */
|
|
194
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ p("div", { className: "h-8 w-3/4 animate-pulse rounded bg-bg-sunken" }),
|
|
194
|
+
/* @__PURE__ */ m("div", {
|
|
195
195
|
className: "flex items-center gap-2",
|
|
196
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ p("div", { className: "h-4 w-32 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-4 animate-pulse rounded-full bg-bg-sunken" })]
|
|
197
197
|
}),
|
|
198
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ m("div", {
|
|
199
199
|
className: "flex gap-3",
|
|
200
|
-
children: [/* @__PURE__ */
|
|
200
|
+
children: [/* @__PURE__ */ p("div", { className: "h-5 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-5 w-24 animate-pulse rounded bg-bg-sunken" })]
|
|
201
201
|
})
|
|
202
202
|
]
|
|
203
203
|
})]
|
|
204
|
-
}), /* @__PURE__ */
|
|
204
|
+
}), /* @__PURE__ */ m("div", {
|
|
205
205
|
className: "flex flex-col gap-4 md:w-1/2 md:items-end",
|
|
206
|
-
children: [/* @__PURE__ */
|
|
206
|
+
children: [/* @__PURE__ */ m("div", {
|
|
207
207
|
className: "flex items-center gap-4",
|
|
208
208
|
children: [
|
|
209
|
-
/* @__PURE__ */
|
|
209
|
+
/* @__PURE__ */ m("div", {
|
|
210
210
|
className: "text-center",
|
|
211
|
-
children: [/* @__PURE__ */
|
|
211
|
+
children: [/* @__PURE__ */ p("div", { className: "h-10 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-20 animate-pulse rounded bg-bg-sunken" })]
|
|
212
212
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ p("div", { className: "h-12 w-px bg-border-default" }),
|
|
214
|
+
/* @__PURE__ */ m("div", {
|
|
215
215
|
className: "text-center",
|
|
216
|
-
children: [/* @__PURE__ */
|
|
216
|
+
children: [/* @__PURE__ */ p("div", { className: "h-8 w-16 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-16 animate-pulse rounded bg-bg-sunken" })]
|
|
217
217
|
}),
|
|
218
|
-
/* @__PURE__ */
|
|
219
|
-
/* @__PURE__ */
|
|
218
|
+
/* @__PURE__ */ p("div", { className: "h-12 w-px bg-border-default" }),
|
|
219
|
+
/* @__PURE__ */ m("div", {
|
|
220
220
|
className: "text-center",
|
|
221
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ p("div", { className: "h-8 w-20 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-3 w-12 animate-pulse rounded bg-bg-sunken" })]
|
|
222
222
|
})
|
|
223
223
|
]
|
|
224
|
-
}), /* @__PURE__ */
|
|
224
|
+
}), /* @__PURE__ */ m("div", {
|
|
225
225
|
className: "flex gap-3",
|
|
226
|
-
children: [/* @__PURE__ */
|
|
226
|
+
children: [/* @__PURE__ */ p("div", { className: "h-12 w-40 animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-12 animate-pulse rounded-lg bg-bg-sunken" })]
|
|
227
227
|
})]
|
|
228
228
|
})]
|
|
229
229
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ m("section", {
|
|
231
231
|
className: "mb-8",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
232
|
+
children: [/* @__PURE__ */ p("div", { className: "aspect-video animate-pulse rounded-lg bg-bg-sunken" }), /* @__PURE__ */ p("div", {
|
|
233
233
|
className: "mt-4 flex gap-4",
|
|
234
234
|
children: [...[
|
|
235
235
|
,
|
|
236
236
|
,
|
|
237
237
|
,
|
|
238
238
|
,
|
|
239
|
-
]].map((e, t) => /* @__PURE__ */
|
|
239
|
+
]].map((e, t) => /* @__PURE__ */ p("div", { className: "h-20 w-36 animate-pulse rounded-lg bg-bg-sunken" }, t))
|
|
240
240
|
})]
|
|
241
241
|
}),
|
|
242
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ m("section", {
|
|
243
243
|
className: "mb-8",
|
|
244
|
-
children: [/* @__PURE__ */
|
|
244
|
+
children: [/* @__PURE__ */ m("div", {
|
|
245
245
|
className: "mb-4 flex items-center gap-2",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
247
|
-
}), /* @__PURE__ */
|
|
246
|
+
children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-32 animate-pulse rounded bg-bg-sunken" })]
|
|
247
|
+
}), /* @__PURE__ */ m("div", {
|
|
248
248
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
249
|
-
children: [/* @__PURE__ */
|
|
249
|
+
children: [/* @__PURE__ */ m("div", {
|
|
250
250
|
className: "space-y-2",
|
|
251
251
|
children: [
|
|
252
|
-
/* @__PURE__ */
|
|
253
|
-
/* @__PURE__ */
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
/* @__PURE__ */
|
|
252
|
+
/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
|
|
253
|
+
/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }),
|
|
254
|
+
/* @__PURE__ */ p("div", { className: "h-4 w-3/4 rounded bg-bg-sunken" }),
|
|
255
|
+
/* @__PURE__ */ p("div", { className: "h-4 w-5/6 rounded bg-bg-sunken" })
|
|
256
256
|
]
|
|
257
|
-
}), /* @__PURE__ */
|
|
257
|
+
}), /* @__PURE__ */ p("div", {
|
|
258
258
|
className: "mt-4 flex gap-2",
|
|
259
259
|
children: [...[
|
|
260
260
|
,
|
|
261
261
|
,
|
|
262
262
|
,
|
|
263
263
|
,
|
|
264
|
-
]].map((e, t) => /* @__PURE__ */
|
|
264
|
+
]].map((e, t) => /* @__PURE__ */ p("div", { className: "h-6 w-16 rounded-full bg-bg-sunken" }, t))
|
|
265
265
|
})]
|
|
266
266
|
})]
|
|
267
267
|
}),
|
|
268
|
-
/* @__PURE__ */
|
|
268
|
+
/* @__PURE__ */ m("section", {
|
|
269
269
|
className: "mb-8",
|
|
270
270
|
children: [
|
|
271
|
-
/* @__PURE__ */
|
|
271
|
+
/* @__PURE__ */ m("div", {
|
|
272
272
|
className: "mb-4 flex items-center justify-between",
|
|
273
|
-
children: [/* @__PURE__ */
|
|
273
|
+
children: [/* @__PURE__ */ m("div", {
|
|
274
274
|
className: "flex items-center gap-2",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
276
|
-
}), /* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
|
|
276
|
+
}), /* @__PURE__ */ p("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
|
|
277
277
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ m("div", {
|
|
279
279
|
className: "mb-6 flex flex-col gap-6 md:flex-row",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
280
|
+
children: [/* @__PURE__ */ p("div", {
|
|
281
281
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4 md:w-64",
|
|
282
|
-
children: /* @__PURE__ */
|
|
282
|
+
children: /* @__PURE__ */ m("div", {
|
|
283
283
|
className: "flex items-center gap-6",
|
|
284
|
-
children: [/* @__PURE__ */
|
|
284
|
+
children: [/* @__PURE__ */ m("div", {
|
|
285
285
|
className: "text-center",
|
|
286
286
|
children: [
|
|
287
|
-
/* @__PURE__ */
|
|
288
|
-
/* @__PURE__ */
|
|
287
|
+
/* @__PURE__ */ p("div", { className: "h-12 w-16 rounded bg-bg-sunken" }),
|
|
288
|
+
/* @__PURE__ */ p("div", {
|
|
289
289
|
className: "my-1 flex justify-center gap-0.5",
|
|
290
290
|
children: [...[
|
|
291
291
|
,
|
|
@@ -293,11 +293,11 @@ var Ee = (e, t) => ({
|
|
|
293
293
|
,
|
|
294
294
|
,
|
|
295
295
|
,
|
|
296
|
-
]].map((e, t) => /* @__PURE__ */
|
|
296
|
+
]].map((e, t) => /* @__PURE__ */ p("div", { className: "size-4 rounded bg-bg-sunken" }, t))
|
|
297
297
|
}),
|
|
298
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ p("div", { className: "h-3 w-20 rounded bg-bg-sunken" })
|
|
299
299
|
]
|
|
300
|
-
}), /* @__PURE__ */
|
|
300
|
+
}), /* @__PURE__ */ p("div", {
|
|
301
301
|
className: "flex-1 space-y-1",
|
|
302
302
|
children: [...[
|
|
303
303
|
,
|
|
@@ -305,29 +305,29 @@ var Ee = (e, t) => ({
|
|
|
305
305
|
,
|
|
306
306
|
,
|
|
307
307
|
,
|
|
308
|
-
]].map((e, t) => /* @__PURE__ */
|
|
308
|
+
]].map((e, t) => /* @__PURE__ */ m("div", {
|
|
309
309
|
className: "flex items-center gap-2",
|
|
310
310
|
children: [
|
|
311
|
-
/* @__PURE__ */
|
|
312
|
-
/* @__PURE__ */
|
|
313
|
-
/* @__PURE__ */
|
|
311
|
+
/* @__PURE__ */ p("div", { className: "h-2 w-3 rounded bg-bg-sunken" }),
|
|
312
|
+
/* @__PURE__ */ p("div", { className: "h-2 flex-1 rounded-full bg-bg-sunken" }),
|
|
313
|
+
/* @__PURE__ */ p("div", { className: "h-2 w-8 rounded bg-bg-sunken" })
|
|
314
314
|
]
|
|
315
315
|
}, t))
|
|
316
316
|
})]
|
|
317
317
|
})
|
|
318
|
-
}), /* @__PURE__ */
|
|
318
|
+
}), /* @__PURE__ */ p("div", { className: "h-12 w-32 animate-pulse rounded-lg bg-bg-sunken" })]
|
|
319
319
|
}),
|
|
320
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ p("div", {
|
|
321
321
|
className: "space-y-4",
|
|
322
|
-
children: [...[, ,]].map((e, t) => /* @__PURE__ */
|
|
322
|
+
children: [...[, ,]].map((e, t) => /* @__PURE__ */ m("div", {
|
|
323
323
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
324
|
+
children: [/* @__PURE__ */ m("div", {
|
|
325
325
|
className: "mb-3 flex items-start gap-3",
|
|
326
|
-
children: [/* @__PURE__ */
|
|
326
|
+
children: [/* @__PURE__ */ p("div", { className: "size-10 rounded-full bg-bg-sunken" }), /* @__PURE__ */ m("div", {
|
|
327
327
|
className: "flex-1",
|
|
328
|
-
children: [/* @__PURE__ */
|
|
328
|
+
children: [/* @__PURE__ */ p("div", { className: "h-4 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ m("div", {
|
|
329
329
|
className: "mt-1 flex items-center gap-2",
|
|
330
|
-
children: [/* @__PURE__ */
|
|
330
|
+
children: [/* @__PURE__ */ p("div", {
|
|
331
331
|
className: "flex gap-0.5",
|
|
332
332
|
children: [...[
|
|
333
333
|
,
|
|
@@ -335,26 +335,26 @@ var Ee = (e, t) => ({
|
|
|
335
335
|
,
|
|
336
336
|
,
|
|
337
337
|
,
|
|
338
|
-
]].map((e, t) => /* @__PURE__ */
|
|
339
|
-
}), /* @__PURE__ */
|
|
338
|
+
]].map((e, t) => /* @__PURE__ */ p("div", { className: "size-3 rounded bg-bg-sunken" }, t))
|
|
339
|
+
}), /* @__PURE__ */ p("div", { className: "h-3 w-20 rounded bg-bg-sunken" })]
|
|
340
340
|
})]
|
|
341
341
|
})]
|
|
342
|
-
}), /* @__PURE__ */
|
|
342
|
+
}), /* @__PURE__ */ m("div", {
|
|
343
343
|
className: "space-y-2",
|
|
344
|
-
children: [/* @__PURE__ */
|
|
344
|
+
children: [/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
|
|
345
345
|
})]
|
|
346
346
|
}, t))
|
|
347
347
|
})
|
|
348
348
|
]
|
|
349
349
|
}),
|
|
350
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ m("section", {
|
|
351
351
|
className: "mb-8",
|
|
352
|
-
children: [/* @__PURE__ */
|
|
352
|
+
children: [/* @__PURE__ */ m("div", {
|
|
353
353
|
className: "mb-4 flex items-center gap-2",
|
|
354
|
-
children: [/* @__PURE__ */
|
|
355
|
-
}), /* @__PURE__ */
|
|
354
|
+
children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-48 animate-pulse rounded bg-bg-sunken" })]
|
|
355
|
+
}), /* @__PURE__ */ p("div", {
|
|
356
356
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
357
|
-
children: /* @__PURE__ */
|
|
357
|
+
children: /* @__PURE__ */ p("div", {
|
|
358
358
|
className: "grid gap-4 md:grid-cols-2",
|
|
359
359
|
children: [...[
|
|
360
360
|
,
|
|
@@ -363,37 +363,37 @@ var Ee = (e, t) => ({
|
|
|
363
363
|
,
|
|
364
364
|
,
|
|
365
365
|
,
|
|
366
|
-
]].map((e, t) => /* @__PURE__ */
|
|
366
|
+
]].map((e, t) => /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("div", { className: "h-3 w-16 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "mt-1 h-5 w-24 rounded bg-bg-sunken" })] }, t))
|
|
367
367
|
})
|
|
368
368
|
})]
|
|
369
369
|
}),
|
|
370
|
-
/* @__PURE__ */
|
|
370
|
+
/* @__PURE__ */ m("section", {
|
|
371
371
|
className: "mb-8",
|
|
372
|
-
children: [/* @__PURE__ */
|
|
372
|
+
children: [/* @__PURE__ */ m("div", {
|
|
373
373
|
className: "mb-4 flex items-center justify-between",
|
|
374
|
-
children: [/* @__PURE__ */
|
|
374
|
+
children: [/* @__PURE__ */ m("div", {
|
|
375
375
|
className: "flex items-center gap-2",
|
|
376
|
-
children: [/* @__PURE__ */
|
|
377
|
-
}), /* @__PURE__ */
|
|
378
|
-
}), /* @__PURE__ */
|
|
376
|
+
children: [/* @__PURE__ */ p("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-6 w-40 animate-pulse rounded bg-bg-sunken" })]
|
|
377
|
+
}), /* @__PURE__ */ p("div", { className: "h-4 w-16 animate-pulse rounded bg-bg-sunken" })]
|
|
378
|
+
}), /* @__PURE__ */ p("div", {
|
|
379
379
|
className: "grid gap-4 md:grid-cols-4",
|
|
380
380
|
children: [...[
|
|
381
381
|
,
|
|
382
382
|
,
|
|
383
383
|
,
|
|
384
384
|
,
|
|
385
|
-
]].map((e, t) => /* @__PURE__ */
|
|
385
|
+
]].map((e, t) => /* @__PURE__ */ p("div", {
|
|
386
386
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-3",
|
|
387
|
-
children: /* @__PURE__ */
|
|
387
|
+
children: /* @__PURE__ */ m("div", {
|
|
388
388
|
className: "flex items-center gap-3",
|
|
389
|
-
children: [/* @__PURE__ */
|
|
389
|
+
children: [/* @__PURE__ */ p("div", { className: "size-14 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ m("div", {
|
|
390
390
|
className: "flex-1",
|
|
391
391
|
children: [
|
|
392
|
-
/* @__PURE__ */
|
|
393
|
-
/* @__PURE__ */
|
|
394
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ p("div", { className: "h-4 w-24 rounded bg-bg-sunken" }),
|
|
393
|
+
/* @__PURE__ */ p("div", { className: "mt-1 h-3 w-16 rounded bg-bg-sunken" }),
|
|
394
|
+
/* @__PURE__ */ m("div", {
|
|
395
395
|
className: "mt-1 flex items-center gap-2",
|
|
396
|
-
children: [/* @__PURE__ */
|
|
396
|
+
children: [/* @__PURE__ */ p("div", { className: "h-3 w-8 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-3 w-12 rounded bg-bg-sunken" })]
|
|
397
397
|
})
|
|
398
398
|
]
|
|
399
399
|
})]
|
|
@@ -401,46 +401,46 @@ var Ee = (e, t) => ({
|
|
|
401
401
|
}, t))
|
|
402
402
|
})]
|
|
403
403
|
}),
|
|
404
|
-
/* @__PURE__ */
|
|
404
|
+
/* @__PURE__ */ m("section", {
|
|
405
405
|
className: "mb-8",
|
|
406
|
-
children: [/* @__PURE__ */
|
|
406
|
+
children: [/* @__PURE__ */ p("div", { className: "mb-4 h-6 w-36 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ m("div", {
|
|
407
407
|
className: "animate-pulse rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
408
|
-
children: [/* @__PURE__ */
|
|
408
|
+
children: [/* @__PURE__ */ m("div", {
|
|
409
409
|
className: "flex items-center gap-4",
|
|
410
|
-
children: [/* @__PURE__ */
|
|
410
|
+
children: [/* @__PURE__ */ p("div", { className: "size-12 rounded-lg bg-bg-sunken" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("div", {
|
|
411
411
|
className: "flex items-center gap-2",
|
|
412
|
-
children: [/* @__PURE__ */
|
|
413
|
-
}), /* @__PURE__ */
|
|
414
|
-
}), /* @__PURE__ */
|
|
412
|
+
children: [/* @__PURE__ */ p("div", { className: "h-5 w-32 rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "size-4 rounded-full bg-bg-sunken" })]
|
|
413
|
+
}), /* @__PURE__ */ p("div", { className: "mt-1 h-4 w-40 rounded bg-bg-sunken" })] })]
|
|
414
|
+
}), /* @__PURE__ */ m("div", {
|
|
415
415
|
className: "mt-3 space-y-2",
|
|
416
|
-
children: [/* @__PURE__ */
|
|
416
|
+
children: [/* @__PURE__ */ p("div", { className: "h-4 w-full rounded bg-bg-sunken" }), /* @__PURE__ */ p("div", { className: "h-4 w-2/3 rounded bg-bg-sunken" })]
|
|
417
417
|
})]
|
|
418
418
|
})]
|
|
419
419
|
})
|
|
420
420
|
]
|
|
421
421
|
})]
|
|
422
|
-
}),
|
|
422
|
+
}), ke = ({ error: e, onRetry: t, onBack: n }) => /* @__PURE__ */ p("div", {
|
|
423
423
|
className: "flex h-full items-center justify-center",
|
|
424
|
-
children: /* @__PURE__ */
|
|
424
|
+
children: /* @__PURE__ */ m("div", {
|
|
425
425
|
className: "text-center",
|
|
426
426
|
children: [
|
|
427
|
-
/* @__PURE__ */
|
|
428
|
-
/* @__PURE__ */
|
|
427
|
+
/* @__PURE__ */ p(s, { className: "mx-auto mb-4 size-12 text-status-error-text" }),
|
|
428
|
+
/* @__PURE__ */ p("h2", {
|
|
429
429
|
className: "mb-2 text-xl font-semibold text-text-primary",
|
|
430
430
|
children: "Failed to load product"
|
|
431
431
|
}),
|
|
432
|
-
/* @__PURE__ */
|
|
432
|
+
/* @__PURE__ */ p("p", {
|
|
433
433
|
className: "mb-4 text-text-muted",
|
|
434
434
|
children: e.message || "An error occurred while loading the product details."
|
|
435
435
|
}),
|
|
436
|
-
/* @__PURE__ */
|
|
436
|
+
/* @__PURE__ */ m("div", {
|
|
437
437
|
className: "flex justify-center gap-3",
|
|
438
|
-
children: [/* @__PURE__ */
|
|
438
|
+
children: [/* @__PURE__ */ p("button", {
|
|
439
439
|
type: "button",
|
|
440
440
|
onClick: t,
|
|
441
441
|
className: "rounded-lg bg-action-primary-bg px-4 py-2 text-action-primary-text transition-opacity hover:opacity-90",
|
|
442
442
|
children: "Try Again"
|
|
443
|
-
}), /* @__PURE__ */
|
|
443
|
+
}), /* @__PURE__ */ p("button", {
|
|
444
444
|
type: "button",
|
|
445
445
|
onClick: n,
|
|
446
446
|
className: "rounded-lg border border-border-default px-4 py-2 text-text-primary transition-colors hover:bg-bg-sunken",
|
|
@@ -449,78 +449,78 @@ var Ee = (e, t) => ({
|
|
|
449
449
|
})
|
|
450
450
|
]
|
|
451
451
|
})
|
|
452
|
-
}),
|
|
453
|
-
let { productId:
|
|
454
|
-
filter: de(() =>
|
|
455
|
-
productId:
|
|
456
|
-
workspaceId:
|
|
457
|
-
} : void 0, [
|
|
452
|
+
}), Ae = () => {
|
|
453
|
+
let { productId: s } = ye(), d = ve(), Ae = _e(), { basePath: g, workspaceId: _ } = e(), { addProduct: je, cartItems: Me, addingToCart: Ne, createOrder: Pe, checkingOut: Fe } = t(), { installations: Ie, refetch: Le } = oe({
|
|
454
|
+
filter: de(() => s && _ ? {
|
|
455
|
+
productId: s,
|
|
456
|
+
workspaceId: _
|
|
457
|
+
} : void 0, [s, _]),
|
|
458
458
|
limit: 1
|
|
459
|
-
}),
|
|
460
|
-
id:
|
|
461
|
-
slug:
|
|
459
|
+
}), Re = Ie.find((e) => e.productId === s && e.workspaceId === _ && e.status === "ACTIVE"), v = !!Re, y = Re?.version ?? null, { createReview: ze, loading: Be } = i(), { updateReview: Ve, loading: He } = re(), { deleteReview: Ue, loading: We } = ee(), { markHelpful: Ge, loading: Ke } = te(), b = we(), [x, qe] = o(!1), [S, Je] = o(!1), [Ye, C] = o(!1), [w, Xe] = o(1), [Ze, T] = o(null), [Qe, E] = o(null), [$e, D] = o("success"), [O, k] = o(!1), [A, j] = o(""), [M, et] = o(""), [N, P] = o(5), [tt, nt] = o(null), [rt, it] = o(!1), { data: at, loading: ot, error: st, refetch: F } = ne({
|
|
460
|
+
id: s,
|
|
461
|
+
slug: s,
|
|
462
462
|
includeReviews: !0,
|
|
463
463
|
reviewsLimit: 10,
|
|
464
464
|
includeRelated: !0,
|
|
465
465
|
relatedLimit: 4,
|
|
466
466
|
includeVersions: !0
|
|
467
|
-
}), I = at, L = I?.product, R = I?.publisher, z =
|
|
467
|
+
}), I = at, L = I?.product, R = I?.publisher, z = Me.some((e) => e.productId === L?.id), ct = (e) => {
|
|
468
468
|
let t = e.split(".");
|
|
469
469
|
for (; t.length < 3;) t.push("0");
|
|
470
470
|
return t.join(".");
|
|
471
|
-
}, lt = L?.manifestVersion ?? null, ut = !!(
|
|
471
|
+
}, lt = L?.manifestVersion ?? null, ut = !!(v && y && lt && ct(y) !== ct(lt)), dt = a(async () => {
|
|
472
472
|
if (L) {
|
|
473
|
-
if (
|
|
474
|
-
|
|
473
|
+
if (T(null), z) {
|
|
474
|
+
d(`${g}/cart`);
|
|
475
475
|
return;
|
|
476
476
|
}
|
|
477
477
|
try {
|
|
478
|
-
await
|
|
478
|
+
await je(Te(L, R), void 0, w);
|
|
479
479
|
} catch (e) {
|
|
480
|
-
console.error("Failed to add product to cart:", e),
|
|
480
|
+
console.error("Failed to add product to cart:", e), T("Failed to add this product to cart. Please try again.");
|
|
481
481
|
}
|
|
482
482
|
}
|
|
483
483
|
}, [
|
|
484
484
|
L,
|
|
485
485
|
R,
|
|
486
|
-
|
|
486
|
+
je,
|
|
487
487
|
z,
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
]), ft =
|
|
488
|
+
d,
|
|
489
|
+
g,
|
|
490
|
+
w
|
|
491
|
+
]), ft = a(async () => {
|
|
492
492
|
if (L) {
|
|
493
|
-
|
|
493
|
+
T(null), C(!0);
|
|
494
494
|
try {
|
|
495
495
|
let e = L.price || 0, t = {
|
|
496
496
|
productId: L.id,
|
|
497
497
|
name: L.name,
|
|
498
|
-
quantity:
|
|
498
|
+
quantity: w,
|
|
499
499
|
unitPrice: e,
|
|
500
|
-
subtotal: e *
|
|
500
|
+
subtotal: e * w,
|
|
501
501
|
itemType: L.nature?.toLowerCase() || "digital",
|
|
502
502
|
pricingModel: L.pricingModel || "PAID_ONETIME"
|
|
503
|
-
}, n = await
|
|
504
|
-
total: e *
|
|
503
|
+
}, n = await Pe({
|
|
504
|
+
total: e * w,
|
|
505
505
|
lineItems: [t],
|
|
506
506
|
billingAccountId: ""
|
|
507
507
|
});
|
|
508
|
-
n?.id ?
|
|
508
|
+
n?.id ? d(`/billing/checkout/store/${n.id}${Ae.search}`) : (console.error("Failed to create order"), T("Failed to create order. Please try again."), C(!1));
|
|
509
509
|
} catch (e) {
|
|
510
|
-
console.error("Buy Now error:", e),
|
|
510
|
+
console.error("Buy Now error:", e), T(e instanceof Error ? e.message : "Failed to start checkout"), C(!1);
|
|
511
511
|
}
|
|
512
512
|
}
|
|
513
513
|
}, [
|
|
514
514
|
L,
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
]), B =
|
|
515
|
+
w,
|
|
516
|
+
Pe,
|
|
517
|
+
d
|
|
518
|
+
]), B = a(() => {
|
|
519
519
|
L && it(!0);
|
|
520
520
|
}, [L]), pt = fe(L);
|
|
521
521
|
pt.current = L;
|
|
522
|
-
let mt = fe(
|
|
523
|
-
mt.current =
|
|
522
|
+
let mt = fe(b);
|
|
523
|
+
mt.current = b, ue(() => {
|
|
524
524
|
let e = pt.current;
|
|
525
525
|
e && mt.current.emit("store.product.viewed", {
|
|
526
526
|
productId: e.id,
|
|
@@ -529,91 +529,91 @@ var Ee = (e, t) => ({
|
|
|
529
529
|
pricingModel: e.pricingModel
|
|
530
530
|
});
|
|
531
531
|
}, [L?.id]);
|
|
532
|
-
let ht =
|
|
533
|
-
L && (
|
|
532
|
+
let ht = a((e, t) => {
|
|
533
|
+
L && (b.emit("store.product.installed", {
|
|
534
534
|
productId: L.id,
|
|
535
535
|
workspaceId: e
|
|
536
|
-
}), console.log(`Successfully installed ${L.name} to workspace ${t} (${e})`),
|
|
536
|
+
}), console.log(`Successfully installed ${L.name} to workspace ${t} (${e})`), Le());
|
|
537
537
|
}, [
|
|
538
538
|
L,
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
]), gt =
|
|
539
|
+
b,
|
|
540
|
+
Le
|
|
541
|
+
]), gt = a((e) => {
|
|
542
542
|
console.error("Installation failed:", e.message);
|
|
543
|
-
}, []), _t =
|
|
544
|
-
|
|
545
|
-
}, [I?.userReview]), vt =
|
|
543
|
+
}, []), _t = a(() => {
|
|
544
|
+
j(I?.userReview?.title ?? ""), et(I?.userReview?.comment ?? ""), P(I?.userReview?.rating ?? 5), E(null), D("success"), k(!0);
|
|
545
|
+
}, [I?.userReview]), vt = a(async () => {
|
|
546
546
|
if (!L) return;
|
|
547
547
|
if (N < 1 || N > 5) {
|
|
548
|
-
|
|
548
|
+
D("error"), E("Choose a rating from 1 to 5 stars.");
|
|
549
549
|
return;
|
|
550
550
|
}
|
|
551
551
|
let e = {
|
|
552
552
|
productId: L.id,
|
|
553
553
|
rating: N,
|
|
554
|
-
title:
|
|
555
|
-
comment:
|
|
554
|
+
title: A.trim() || void 0,
|
|
555
|
+
comment: M.trim() || void 0
|
|
556
556
|
}, t = I?.userReview ? {
|
|
557
|
-
data: await
|
|
557
|
+
data: await Ve(I.userReview.id, {
|
|
558
558
|
rating: e.rating,
|
|
559
559
|
title: e.title,
|
|
560
560
|
comment: e.comment
|
|
561
561
|
}),
|
|
562
562
|
errorMessage: null
|
|
563
|
-
} : await
|
|
563
|
+
} : await ze(e);
|
|
564
564
|
if (!t?.data) {
|
|
565
|
-
|
|
565
|
+
D("error"), E(t?.errorMessage ?? "We could not save your review. Please try again.");
|
|
566
566
|
return;
|
|
567
567
|
}
|
|
568
|
-
|
|
568
|
+
D("success"), E(I?.userReview ? "Your review was updated." : "Your review was submitted."), k(!1), b.emit("store.review.submitted", {
|
|
569
569
|
productId: L.id,
|
|
570
570
|
rating: N
|
|
571
571
|
}), await F();
|
|
572
572
|
}, [
|
|
573
|
-
|
|
574
|
-
|
|
573
|
+
b,
|
|
574
|
+
ze,
|
|
575
575
|
L,
|
|
576
576
|
I?.userReview,
|
|
577
577
|
F,
|
|
578
|
-
|
|
578
|
+
M,
|
|
579
579
|
N,
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
]), yt =
|
|
580
|
+
A,
|
|
581
|
+
Ve
|
|
582
|
+
]), yt = a(async () => {
|
|
583
583
|
if (I?.userReview && (ce("medium"), await se({
|
|
584
584
|
title: "Delete review",
|
|
585
585
|
message: "Are you sure you want to remove your review?",
|
|
586
586
|
okButtonTitle: "Delete",
|
|
587
587
|
cancelButtonTitle: "Cancel"
|
|
588
588
|
}) !== !1)) {
|
|
589
|
-
if (!await
|
|
590
|
-
|
|
589
|
+
if (!await Ue(I.userReview.id)) {
|
|
590
|
+
D("error"), E("We could not remove your review. Please try again."), le("error");
|
|
591
591
|
return;
|
|
592
592
|
}
|
|
593
|
-
|
|
593
|
+
D("success"), E("Your review was removed."), k(!1), j(""), et(""), P(5), le("success"), await F();
|
|
594
594
|
}
|
|
595
595
|
}, [
|
|
596
|
-
|
|
596
|
+
Ue,
|
|
597
597
|
I?.userReview,
|
|
598
598
|
F
|
|
599
|
-
]), bt =
|
|
600
|
-
nt(e), await
|
|
601
|
-
}, [
|
|
602
|
-
if (ot) return /* @__PURE__ */
|
|
603
|
-
if (st) return /* @__PURE__ */
|
|
599
|
+
]), bt = a(async (e) => {
|
|
600
|
+
nt(e), await Ge(e) && await F(), nt(null);
|
|
601
|
+
}, [Ge, F]);
|
|
602
|
+
if (ot) return /* @__PURE__ */ p(Oe, {});
|
|
603
|
+
if (st) return /* @__PURE__ */ p(ke, {
|
|
604
604
|
error: st,
|
|
605
605
|
onRetry: F,
|
|
606
|
-
onBack: () =>
|
|
606
|
+
onBack: () => d(`${g}/marketplace`)
|
|
607
607
|
});
|
|
608
|
-
if (!I?.product) return /* @__PURE__ */
|
|
608
|
+
if (!I?.product) return /* @__PURE__ */ p("div", {
|
|
609
609
|
className: "flex h-full items-center justify-center p-6",
|
|
610
|
-
children: /* @__PURE__ */
|
|
610
|
+
children: /* @__PURE__ */ p(xe, {
|
|
611
611
|
illustration: "empty-search",
|
|
612
612
|
title: "Product not found",
|
|
613
613
|
description: "The product you are looking for does not exist or has been removed.",
|
|
614
|
-
action: /* @__PURE__ */
|
|
614
|
+
action: /* @__PURE__ */ p("button", {
|
|
615
615
|
type: "button",
|
|
616
|
-
onClick: () =>
|
|
616
|
+
onClick: () => d(`${g}/marketplace`),
|
|
617
617
|
className: "rounded-lg bg-action-primary-bg px-4 py-2 text-action-primary-text transition-opacity hover:opacity-90",
|
|
618
618
|
children: "Back to Marketplace"
|
|
619
619
|
})
|
|
@@ -646,32 +646,32 @@ var Ee = (e, t) => ({
|
|
|
646
646
|
percentage: q > 0 ? U.oneStar / q * 100 : 0
|
|
647
647
|
}
|
|
648
648
|
] : [], J = K.requiredPermissions || [], Ct = K.integrationDeps || [], wt = () => K.pricingModel === "FREE" ? "Free" : K.pricingModel === "SUBSCRIPTION" ? `${r(K.price, K.currency)}/mo` : r(K.price, K.currency), Y = K.pricingModel === "FREE" || K.price === 0, X = K.nature === "PHYSICAL", Z = X && K.trackInventory === !0, Q = K.stockQuantity ?? 0, $ = Z && Q <= 0;
|
|
649
|
-
return /* @__PURE__ */
|
|
649
|
+
return /* @__PURE__ */ m("div", {
|
|
650
650
|
className: "h-full overflow-y-auto bg-bg-base",
|
|
651
651
|
children: [
|
|
652
|
-
/* @__PURE__ */
|
|
652
|
+
/* @__PURE__ */ p("div", {
|
|
653
653
|
className: "bg-bg-surface",
|
|
654
|
-
children: /* @__PURE__ */
|
|
654
|
+
children: /* @__PURE__ */ p("div", {
|
|
655
655
|
className: "mx-auto max-w-7xl",
|
|
656
|
-
children: /* @__PURE__ */
|
|
656
|
+
children: /* @__PURE__ */ m("div", {
|
|
657
657
|
className: "flex flex-col lg:flex-row",
|
|
658
|
-
children: [/* @__PURE__ */
|
|
658
|
+
children: [/* @__PURE__ */ m("div", {
|
|
659
659
|
className: "flex-1 px-6 py-8 lg:max-w-xl lg:py-12",
|
|
660
660
|
children: [
|
|
661
|
-
/* @__PURE__ */
|
|
661
|
+
/* @__PURE__ */ m("button", {
|
|
662
662
|
type: "button",
|
|
663
|
-
onClick: () =>
|
|
663
|
+
onClick: () => d(-1),
|
|
664
664
|
className: "mb-6 cursor-pointer inline-flex items-center gap-2 text-sm text-text-muted transition-colors hover:text-text-primary",
|
|
665
|
-
children: [/* @__PURE__ */
|
|
665
|
+
children: [/* @__PURE__ */ p(pe, { className: "size-4" }), "Back"]
|
|
666
666
|
}),
|
|
667
|
-
/* @__PURE__ */
|
|
667
|
+
/* @__PURE__ */ p("h1", {
|
|
668
668
|
className: "mb-3 text-4xl font-normal leading-tight text-text-primary lg:text-5xl",
|
|
669
669
|
children: K.name
|
|
670
670
|
}),
|
|
671
|
-
|
|
671
|
+
v && /* @__PURE__ */ m("div", {
|
|
672
672
|
className: "mb-4 inline-flex items-center gap-1.5 rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-medium text-status-success-text",
|
|
673
673
|
children: [
|
|
674
|
-
/* @__PURE__ */
|
|
674
|
+
/* @__PURE__ */ p("svg", {
|
|
675
675
|
className: "size-3.5",
|
|
676
676
|
viewBox: "0 0 16 16",
|
|
677
677
|
fill: "none",
|
|
@@ -680,128 +680,142 @@ var Ee = (e, t) => ({
|
|
|
680
680
|
strokeLinecap: "round",
|
|
681
681
|
strokeLinejoin: "round",
|
|
682
682
|
"aria-hidden": "true",
|
|
683
|
-
children: /* @__PURE__ */
|
|
683
|
+
children: /* @__PURE__ */ p("polyline", { points: "2,8 6,12 14,4" })
|
|
684
684
|
}),
|
|
685
685
|
"Installed",
|
|
686
|
-
|
|
686
|
+
y ? ` v${y}` : ""
|
|
687
687
|
]
|
|
688
688
|
}),
|
|
689
689
|
/* @__PURE__ */ p("div", {
|
|
690
690
|
className: "mb-2",
|
|
691
|
-
children:
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
691
|
+
children: (() => {
|
|
692
|
+
let e = R?.developerOrganization, t = e?.name || R?.name || K.authorName || "Unknown Publisher", n = e?.logoUrl || R?.logoUrl, r = e?.isVerified || R?.isVerified, i = R?.websiteUrl;
|
|
693
|
+
return /* @__PURE__ */ m("div", {
|
|
694
|
+
className: "flex items-center gap-2",
|
|
695
|
+
children: [
|
|
696
|
+
n && /* @__PURE__ */ p("img", {
|
|
697
|
+
src: n,
|
|
698
|
+
alt: t,
|
|
699
|
+
className: "size-5 rounded object-cover"
|
|
700
|
+
}),
|
|
701
|
+
i ? /* @__PURE__ */ p("a", {
|
|
702
|
+
href: i,
|
|
703
|
+
target: "_blank",
|
|
704
|
+
rel: "noreferrer",
|
|
705
|
+
className: "text-base font-medium text-text-link hover:underline",
|
|
706
|
+
children: t
|
|
707
|
+
}) : /* @__PURE__ */ p("span", {
|
|
708
|
+
className: "text-base font-medium text-text-primary",
|
|
709
|
+
children: t
|
|
710
|
+
}),
|
|
711
|
+
r && /* @__PURE__ */ p(l, { className: "size-4 text-status-success-text" })
|
|
712
|
+
]
|
|
713
|
+
});
|
|
714
|
+
})()
|
|
701
715
|
}),
|
|
702
|
-
/* @__PURE__ */
|
|
716
|
+
/* @__PURE__ */ m("p", {
|
|
703
717
|
className: "mb-6 text-sm text-text-muted",
|
|
704
718
|
children: [
|
|
705
|
-
K.category && /* @__PURE__ */
|
|
719
|
+
K.category && /* @__PURE__ */ p("span", { children: K.category }),
|
|
706
720
|
K.category && " · ",
|
|
707
721
|
n(K.downloads),
|
|
708
722
|
"+ downloads"
|
|
709
723
|
]
|
|
710
724
|
}),
|
|
711
|
-
/* @__PURE__ */
|
|
725
|
+
/* @__PURE__ */ m(be, {
|
|
712
726
|
className: "mb-6 p-5",
|
|
713
727
|
children: [
|
|
714
|
-
/* @__PURE__ */
|
|
728
|
+
/* @__PURE__ */ m("div", {
|
|
715
729
|
className: "mb-6 flex items-center gap-4",
|
|
716
730
|
children: [
|
|
717
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ p("div", {
|
|
718
732
|
className: "flex size-12 items-center justify-center overflow-hidden rounded-xl bg-bg-sunken",
|
|
719
|
-
children: K.icon ? /* @__PURE__ */
|
|
733
|
+
children: K.icon ? /* @__PURE__ */ p("img", {
|
|
720
734
|
src: K.icon,
|
|
721
735
|
alt: "",
|
|
722
736
|
className: "size-full object-cover"
|
|
723
|
-
}) : /* @__PURE__ */
|
|
737
|
+
}) : /* @__PURE__ */ p("span", {
|
|
724
738
|
className: "text-lg font-bold text-text-muted",
|
|
725
739
|
children: K.name.charAt(0)
|
|
726
740
|
})
|
|
727
741
|
}),
|
|
728
|
-
/* @__PURE__ */
|
|
742
|
+
/* @__PURE__ */ m("div", {
|
|
729
743
|
className: "flex items-center gap-1 border-l border-border-default pl-4",
|
|
730
744
|
children: [
|
|
731
|
-
/* @__PURE__ */
|
|
745
|
+
/* @__PURE__ */ p("span", {
|
|
732
746
|
className: "text-sm font-medium text-text-primary",
|
|
733
747
|
children: (K.rating || 0).toFixed(1)
|
|
734
748
|
}),
|
|
735
|
-
/* @__PURE__ */
|
|
736
|
-
/* @__PURE__ */
|
|
749
|
+
/* @__PURE__ */ p(u, { className: "size-4 fill-current text-status-warning-text" }),
|
|
750
|
+
/* @__PURE__ */ m("span", {
|
|
737
751
|
className: "ml-1 text-xs text-text-muted",
|
|
738
752
|
children: [n(xt || K.reviewCount), " reviews"]
|
|
739
753
|
})
|
|
740
754
|
]
|
|
741
755
|
}),
|
|
742
|
-
/* @__PURE__ */
|
|
756
|
+
/* @__PURE__ */ m("div", {
|
|
743
757
|
className: "border-l border-border-default pl-4",
|
|
744
|
-
children: [/* @__PURE__ */
|
|
758
|
+
children: [/* @__PURE__ */ m("span", {
|
|
745
759
|
className: "text-sm font-medium text-text-primary",
|
|
746
760
|
children: [n(K.downloads), "+"]
|
|
747
|
-
}), /* @__PURE__ */
|
|
761
|
+
}), /* @__PURE__ */ p("p", {
|
|
748
762
|
className: "text-xs text-text-muted",
|
|
749
763
|
children: "Downloads"
|
|
750
764
|
})]
|
|
751
765
|
}),
|
|
752
|
-
/* @__PURE__ */
|
|
766
|
+
/* @__PURE__ */ m("div", {
|
|
753
767
|
className: "border-l border-border-default pl-4",
|
|
754
|
-
children: [/* @__PURE__ */
|
|
768
|
+
children: [/* @__PURE__ */ p("span", {
|
|
755
769
|
className: "rounded bg-bg-sunken px-2 py-1 text-xs font-medium text-text-primary",
|
|
756
770
|
children: K.type
|
|
757
|
-
}), /* @__PURE__ */
|
|
771
|
+
}), /* @__PURE__ */ p("p", {
|
|
758
772
|
className: "mt-0.5 text-xs text-text-muted",
|
|
759
773
|
children: "Type"
|
|
760
774
|
})]
|
|
761
775
|
})
|
|
762
776
|
]
|
|
763
777
|
}),
|
|
764
|
-
|
|
778
|
+
Ze && /* @__PURE__ */ p("div", {
|
|
765
779
|
role: "alert",
|
|
766
780
|
className: "mb-4 rounded-lg border border-status-error-bg bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text",
|
|
767
|
-
children:
|
|
781
|
+
children: Ze
|
|
768
782
|
}),
|
|
769
|
-
X && /* @__PURE__ */
|
|
783
|
+
X && /* @__PURE__ */ m("div", {
|
|
770
784
|
className: "mb-4 flex flex-wrap items-center gap-4",
|
|
771
|
-
children: [Z && ($ ? /* @__PURE__ */
|
|
785
|
+
children: [Z && ($ ? /* @__PURE__ */ m("span", {
|
|
772
786
|
className: "inline-flex items-center gap-1.5 rounded-full bg-status-error-bg-subtle px-3 py-1 text-sm font-medium text-status-error-text",
|
|
773
|
-
children: [/* @__PURE__ */
|
|
774
|
-
}) : /* @__PURE__ */
|
|
787
|
+
children: [/* @__PURE__ */ p(c, { className: "size-4" }), "Out of stock"]
|
|
788
|
+
}) : /* @__PURE__ */ m("span", {
|
|
775
789
|
className: "inline-flex items-center gap-1.5 rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-medium text-status-success-text",
|
|
776
790
|
children: [
|
|
777
|
-
/* @__PURE__ */
|
|
791
|
+
/* @__PURE__ */ p(c, { className: "size-4" }),
|
|
778
792
|
n(Q),
|
|
779
793
|
" in stock"
|
|
780
794
|
]
|
|
781
|
-
})), !$ && /* @__PURE__ */
|
|
795
|
+
})), !$ && /* @__PURE__ */ m("div", {
|
|
782
796
|
className: "flex items-center gap-2",
|
|
783
|
-
children: [/* @__PURE__ */
|
|
797
|
+
children: [/* @__PURE__ */ p("span", {
|
|
784
798
|
className: "text-sm text-text-muted",
|
|
785
799
|
children: "Qty"
|
|
786
|
-
}), /* @__PURE__ */
|
|
800
|
+
}), /* @__PURE__ */ m("div", {
|
|
787
801
|
className: "flex items-center rounded-full border border-border-default",
|
|
788
802
|
children: [
|
|
789
|
-
/* @__PURE__ */
|
|
803
|
+
/* @__PURE__ */ p("button", {
|
|
790
804
|
type: "button",
|
|
791
|
-
onClick: () =>
|
|
792
|
-
disabled:
|
|
805
|
+
onClick: () => Xe((e) => Math.max(1, e - 1)),
|
|
806
|
+
disabled: w <= 1,
|
|
793
807
|
"aria-label": "Decrease quantity",
|
|
794
808
|
className: "cursor-pointer px-3 py-1.5 text-text-primary transition-colors hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-40",
|
|
795
809
|
children: "−"
|
|
796
810
|
}),
|
|
797
|
-
/* @__PURE__ */
|
|
811
|
+
/* @__PURE__ */ p("span", {
|
|
798
812
|
className: "min-w-8 px-2 text-center text-sm font-medium tabular-nums text-text-primary",
|
|
799
|
-
children:
|
|
813
|
+
children: w
|
|
800
814
|
}),
|
|
801
|
-
/* @__PURE__ */
|
|
815
|
+
/* @__PURE__ */ p("button", {
|
|
802
816
|
type: "button",
|
|
803
|
-
onClick: () =>
|
|
804
|
-
disabled: Z &&
|
|
817
|
+
onClick: () => Xe((e) => Z ? Math.min(Q, e + 1) : e + 1),
|
|
818
|
+
disabled: Z && w >= Q,
|
|
805
819
|
"aria-label": "Increase quantity",
|
|
806
820
|
className: "cursor-pointer px-3 py-1.5 text-text-primary transition-colors hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-40",
|
|
807
821
|
children: "+"
|
|
@@ -810,13 +824,13 @@ var Ee = (e, t) => ({
|
|
|
810
824
|
})]
|
|
811
825
|
})]
|
|
812
826
|
}),
|
|
813
|
-
/* @__PURE__ */
|
|
827
|
+
/* @__PURE__ */ m("div", {
|
|
814
828
|
className: "mb-6 flex items-center gap-3",
|
|
815
|
-
children: [
|
|
829
|
+
children: [v ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
|
|
816
830
|
type: "button",
|
|
817
831
|
disabled: !0,
|
|
818
832
|
className: "flex items-center gap-2 rounded-full bg-status-success-bg-subtle px-8 py-3 font-medium text-status-success-text cursor-default",
|
|
819
|
-
children: [/* @__PURE__ */
|
|
833
|
+
children: [/* @__PURE__ */ p("svg", {
|
|
820
834
|
className: "size-4",
|
|
821
835
|
viewBox: "0 0 16 16",
|
|
822
836
|
fill: "none",
|
|
@@ -825,60 +839,60 @@ var Ee = (e, t) => ({
|
|
|
825
839
|
strokeLinecap: "round",
|
|
826
840
|
strokeLinejoin: "round",
|
|
827
841
|
"aria-hidden": "true",
|
|
828
|
-
children: /* @__PURE__ */
|
|
842
|
+
children: /* @__PURE__ */ p("polyline", { points: "2,8 6,12 14,4" })
|
|
829
843
|
}), "Installed"]
|
|
830
|
-
}), ut && /* @__PURE__ */
|
|
844
|
+
}), ut && /* @__PURE__ */ m("button", {
|
|
831
845
|
type: "button",
|
|
832
846
|
onClick: B,
|
|
833
847
|
className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
|
|
834
848
|
children: ["Update to v", K.manifestVersion]
|
|
835
|
-
})] }) : !X && W && !Y ? /* @__PURE__ */
|
|
849
|
+
})] }) : !X && W && !Y ? /* @__PURE__ */ p("button", {
|
|
836
850
|
type: "button",
|
|
837
851
|
onClick: B,
|
|
838
852
|
className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
|
|
839
853
|
children: "Install to Workspace"
|
|
840
|
-
}) : !X && Y ? /* @__PURE__ */
|
|
854
|
+
}) : !X && Y ? /* @__PURE__ */ p("button", {
|
|
841
855
|
type: "button",
|
|
842
856
|
onClick: B,
|
|
843
857
|
className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
|
|
844
858
|
children: "Install"
|
|
845
|
-
}) : /* @__PURE__ */
|
|
859
|
+
}) : /* @__PURE__ */ p("button", {
|
|
846
860
|
type: "button",
|
|
847
861
|
onClick: ft,
|
|
848
|
-
disabled:
|
|
862
|
+
disabled: Ye || Fe || $,
|
|
849
863
|
className: "cursor-pointer flex items-center gap-2 rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90 disabled:opacity-70",
|
|
850
|
-
children:
|
|
851
|
-
}), !Y && (!W || X) && /* @__PURE__ */
|
|
864
|
+
children: Ye || Fe ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(he, { className: "size-4 animate-spin" }), "Processing…"] }) : $ ? "Out of stock" : `Buy ${wt()}`
|
|
865
|
+
}), !Y && (!W || X) && /* @__PURE__ */ m("button", {
|
|
852
866
|
type: "button",
|
|
853
867
|
onClick: dt,
|
|
854
|
-
disabled:
|
|
868
|
+
disabled: Ne || $,
|
|
855
869
|
className: "cursor-pointer flex items-center gap-2 rounded-full border border-border-default px-4 py-3 text-sm text-text-primary transition-colors hover:bg-bg-sunken disabled:opacity-50",
|
|
856
|
-
children: [
|
|
870
|
+
children: [Ne ? /* @__PURE__ */ p(he, { className: "size-4 animate-spin" }) : z ? /* @__PURE__ */ p(me, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ p(ge, { className: "size-4" }), z ? "In Cart" : "Add to Cart"]
|
|
857
871
|
})]
|
|
858
872
|
}),
|
|
859
|
-
X ? /* @__PURE__ */
|
|
873
|
+
X ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("p", {
|
|
860
874
|
className: "flex items-center gap-2 text-xs text-text-muted",
|
|
861
|
-
children: [/* @__PURE__ */
|
|
862
|
-
}), !Y && /* @__PURE__ */
|
|
875
|
+
children: [/* @__PURE__ */ p(c, { className: "size-4" }), K.requiresShipping === !1 ? "Available for pickup — no shipping required" : "Ships to your delivery address"]
|
|
876
|
+
}), !Y && /* @__PURE__ */ m("p", {
|
|
863
877
|
className: "text-xs text-text-tertiary",
|
|
864
878
|
children: [
|
|
865
879
|
"Returns and refunds are handled by ",
|
|
866
880
|
R?.name || "the seller",
|
|
867
881
|
" per their store policy."
|
|
868
882
|
]
|
|
869
|
-
})] }) : /* @__PURE__ */
|
|
870
|
-
/* @__PURE__ */
|
|
883
|
+
})] }) : /* @__PURE__ */ m(f, { children: [
|
|
884
|
+
/* @__PURE__ */ m("p", {
|
|
871
885
|
className: "flex items-center gap-2 text-xs text-text-muted",
|
|
872
|
-
children: [/* @__PURE__ */
|
|
886
|
+
children: [/* @__PURE__ */ p(c, { className: "size-4" }), "This app is available for your workspace"]
|
|
873
887
|
}),
|
|
874
|
-
!Y && !W && /* @__PURE__ */
|
|
888
|
+
!Y && !W && /* @__PURE__ */ p("p", {
|
|
875
889
|
className: "text-xs text-text-tertiary",
|
|
876
890
|
children: "All purchases are final. Digital app orders cannot be cancelled or refunded once completed."
|
|
877
891
|
}),
|
|
878
|
-
G && /* @__PURE__ */
|
|
892
|
+
G && /* @__PURE__ */ m("p", {
|
|
879
893
|
className: "mt-2 flex items-center gap-2 text-xs text-text-muted",
|
|
880
894
|
children: [
|
|
881
|
-
/* @__PURE__ */
|
|
895
|
+
/* @__PURE__ */ p(l, { className: "size-4 text-status-success-text" }),
|
|
882
896
|
"License: ",
|
|
883
897
|
G.status,
|
|
884
898
|
G.expiresAt && ` (Expires: ${new Date(G.expiresAt).toLocaleDateString()})`
|
|
@@ -888,33 +902,33 @@ var Ee = (e, t) => ({
|
|
|
888
902
|
]
|
|
889
903
|
})
|
|
890
904
|
]
|
|
891
|
-
}), /* @__PURE__ */
|
|
905
|
+
}), /* @__PURE__ */ p("div", {
|
|
892
906
|
className: "relative flex-1 overflow-hidden bg-bg-sunken lg:min-h-[500px]",
|
|
893
|
-
children: K.type === "WORKFLOW" ? /* @__PURE__ */
|
|
907
|
+
children: K.type === "WORKFLOW" ? /* @__PURE__ */ p("iframe", {
|
|
894
908
|
src: `${window.location.origin}/embed/workflow?productId=${encodeURIComponent(K.id)}&cta=false&theme=${document.documentElement.classList.contains("dark") ? "dark" : "light"}`,
|
|
895
909
|
title: `${K.name} workflow preview`,
|
|
896
910
|
loading: "lazy",
|
|
897
911
|
className: "size-full min-h-[300px] border-0 lg:min-h-[500px]"
|
|
898
|
-
}) : K.bannerUrl ? /* @__PURE__ */
|
|
912
|
+
}) : K.bannerUrl ? /* @__PURE__ */ p("img", {
|
|
899
913
|
src: K.bannerUrl,
|
|
900
914
|
alt: `${K.name} banner`,
|
|
901
915
|
className: "size-full object-cover"
|
|
902
|
-
}) : K.screenshots && K.screenshots.length > 0 ? /* @__PURE__ */
|
|
916
|
+
}) : K.screenshots && K.screenshots.length > 0 ? /* @__PURE__ */ p("img", {
|
|
903
917
|
src: K.screenshots[0],
|
|
904
918
|
alt: `${K.name} preview`,
|
|
905
919
|
className: "size-full object-cover"
|
|
906
|
-
}) : /* @__PURE__ */
|
|
920
|
+
}) : /* @__PURE__ */ m("div", {
|
|
907
921
|
className: "flex h-full min-h-[300px] flex-col items-center justify-center gap-3 p-8 text-center",
|
|
908
922
|
children: [
|
|
909
|
-
/* @__PURE__ */
|
|
923
|
+
/* @__PURE__ */ p("div", {
|
|
910
924
|
className: "flex size-20 items-center justify-center rounded-2xl bg-bg-surface text-3xl font-bold text-text-muted",
|
|
911
925
|
children: K.name.charAt(0)
|
|
912
926
|
}),
|
|
913
|
-
/* @__PURE__ */
|
|
927
|
+
/* @__PURE__ */ p("p", {
|
|
914
928
|
className: "text-sm text-text-muted",
|
|
915
929
|
children: "No preview available"
|
|
916
930
|
}),
|
|
917
|
-
/* @__PURE__ */
|
|
931
|
+
/* @__PURE__ */ p("p", {
|
|
918
932
|
className: "max-w-[200px] text-xs text-text-muted opacity-60",
|
|
919
933
|
children: "Upload screenshots in the Store Listing tab to show a preview here"
|
|
920
934
|
})
|
|
@@ -924,17 +938,17 @@ var Ee = (e, t) => ({
|
|
|
924
938
|
})
|
|
925
939
|
})
|
|
926
940
|
}),
|
|
927
|
-
K.screenshots && K.screenshots.length > 0 && /* @__PURE__ */
|
|
941
|
+
K.screenshots && K.screenshots.length > 0 && /* @__PURE__ */ p("div", {
|
|
928
942
|
className: "border-y border-border-default bg-bg-base",
|
|
929
|
-
children: /* @__PURE__ */
|
|
943
|
+
children: /* @__PURE__ */ m("div", {
|
|
930
944
|
className: "px-6 py-6",
|
|
931
|
-
children: [/* @__PURE__ */
|
|
945
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
932
946
|
className: "mb-4 text-sm font-semibold uppercase tracking-wider text-text-muted",
|
|
933
947
|
children: "Preview"
|
|
934
|
-
}), /* @__PURE__ */
|
|
948
|
+
}), /* @__PURE__ */ m("div", {
|
|
935
949
|
className: "flex gap-4 overflow-x-auto pb-2",
|
|
936
950
|
style: { scrollSnapType: "x mandatory" },
|
|
937
|
-
children: [K.screenshots.map((e, t) => /* @__PURE__ */
|
|
951
|
+
children: [K.screenshots.map((e, t) => /* @__PURE__ */ p("div", {
|
|
938
952
|
className: "relative flex-shrink-0 overflow-hidden rounded-2xl shadow-lg",
|
|
939
953
|
style: {
|
|
940
954
|
width: "72vw",
|
|
@@ -943,19 +957,19 @@ var Ee = (e, t) => ({
|
|
|
943
957
|
aspectRatio: "16/9",
|
|
944
958
|
scrollSnapAlign: "start"
|
|
945
959
|
},
|
|
946
|
-
children: /* @__PURE__ */
|
|
960
|
+
children: /* @__PURE__ */ p("img", {
|
|
947
961
|
src: e,
|
|
948
962
|
alt: `Screenshot ${t + 1}`,
|
|
949
963
|
className: "size-full object-cover"
|
|
950
964
|
})
|
|
951
|
-
}, t)), /* @__PURE__ */
|
|
965
|
+
}, t)), /* @__PURE__ */ p("div", { className: "flex-shrink-0 w-2" })]
|
|
952
966
|
})]
|
|
953
967
|
})
|
|
954
968
|
}),
|
|
955
|
-
/* @__PURE__ */
|
|
969
|
+
/* @__PURE__ */ m("main", {
|
|
956
970
|
className: "mx-auto max-w-7xl px-6 py-8",
|
|
957
971
|
children: [
|
|
958
|
-
/* @__PURE__ */
|
|
972
|
+
/* @__PURE__ */ m(Ce, {
|
|
959
973
|
className: "mb-6",
|
|
960
974
|
children: [
|
|
961
975
|
"Everything you need to decide whether to install ",
|
|
@@ -963,7 +977,7 @@ var Ee = (e, t) => ({
|
|
|
963
977
|
": what it does, screenshots, pricing, the permissions and integrations it needs, and real customer reviews. When you're ready, install it (free apps) or buy it, then add it to a workspace — and leave a review once you've used it."
|
|
964
978
|
]
|
|
965
979
|
}),
|
|
966
|
-
/* @__PURE__ */
|
|
980
|
+
/* @__PURE__ */ p(Se, {
|
|
967
981
|
className: "mb-8",
|
|
968
982
|
storageKey: "store-product-detail",
|
|
969
983
|
steps: [
|
|
@@ -972,13 +986,13 @@ var Ee = (e, t) => ({
|
|
|
972
986
|
label: "Install this app",
|
|
973
987
|
description: "It’s free — add it to a workspace in a couple of clicks.",
|
|
974
988
|
onClick: B,
|
|
975
|
-
done:
|
|
989
|
+
done: v
|
|
976
990
|
} : {
|
|
977
991
|
id: "buy",
|
|
978
992
|
label: W ? "Install to a workspace" : "Buy or add to cart",
|
|
979
993
|
description: W ? "You already own this — install it where you need it." : "Purchase now, or add it to your cart to check out later.",
|
|
980
994
|
onClick: W ? B : ft,
|
|
981
|
-
done:
|
|
995
|
+
done: v
|
|
982
996
|
},
|
|
983
997
|
...J.length > 0 ? [{
|
|
984
998
|
id: "permissions",
|
|
@@ -994,66 +1008,66 @@ var Ee = (e, t) => ({
|
|
|
994
1008
|
}
|
|
995
1009
|
]
|
|
996
1010
|
}),
|
|
997
|
-
/* @__PURE__ */
|
|
1011
|
+
/* @__PURE__ */ m("div", {
|
|
998
1012
|
className: "flex flex-col gap-8 lg:flex-row",
|
|
999
|
-
children: [/* @__PURE__ */
|
|
1013
|
+
children: [/* @__PURE__ */ m("div", {
|
|
1000
1014
|
className: "flex-1 lg:max-w-3xl",
|
|
1001
1015
|
children: [
|
|
1002
|
-
/* @__PURE__ */
|
|
1016
|
+
/* @__PURE__ */ m("section", {
|
|
1003
1017
|
className: "mb-8",
|
|
1004
1018
|
children: [
|
|
1005
|
-
/* @__PURE__ */
|
|
1019
|
+
/* @__PURE__ */ p("div", {
|
|
1006
1020
|
className: "mb-4 flex items-center justify-between text-left",
|
|
1007
|
-
children: /* @__PURE__ */
|
|
1021
|
+
children: /* @__PURE__ */ p("h2", {
|
|
1008
1022
|
className: "text-lg font-medium text-text-primary",
|
|
1009
1023
|
children: "About this app"
|
|
1010
1024
|
})
|
|
1011
1025
|
}),
|
|
1012
|
-
/* @__PURE__ */
|
|
1026
|
+
/* @__PURE__ */ m("div", {
|
|
1013
1027
|
className: "text-sm leading-relaxed text-text-secondary",
|
|
1014
|
-
children: [/* @__PURE__ */
|
|
1015
|
-
className:
|
|
1016
|
-
children: K.longDescription || K.description || "No description available."
|
|
1017
|
-
}), ((K.longDescription || K.description)?.length ?? 0) > 200 && /* @__PURE__ */
|
|
1028
|
+
children: [/* @__PURE__ */ p("div", {
|
|
1029
|
+
className: x ? "" : "line-clamp-4",
|
|
1030
|
+
children: /* @__PURE__ */ p(ie, { children: K.longDescription || K.description || "No description available." })
|
|
1031
|
+
}), ((K.longDescription || K.description)?.length ?? 0) > 200 && /* @__PURE__ */ p("button", {
|
|
1018
1032
|
type: "button",
|
|
1019
|
-
onClick: () =>
|
|
1033
|
+
onClick: () => qe(!x),
|
|
1020
1034
|
className: "cursor-pointer mt-3 text-sm font-medium text-text-link",
|
|
1021
|
-
children:
|
|
1035
|
+
children: x ? "Show less" : "Show more"
|
|
1022
1036
|
})]
|
|
1023
1037
|
}),
|
|
1024
|
-
K.tags && K.tags.length > 0 && /* @__PURE__ */
|
|
1038
|
+
K.tags && K.tags.length > 0 && /* @__PURE__ */ p("div", {
|
|
1025
1039
|
className: "mt-4 flex flex-wrap gap-2",
|
|
1026
|
-
children: K.tags.map((e) => /* @__PURE__ */
|
|
1040
|
+
children: K.tags.map((e) => /* @__PURE__ */ p("span", {
|
|
1027
1041
|
className: "rounded-full border border-border-seam px-3 py-1.5 text-xs text-text-muted transition-colors hover:bg-bg-sunken",
|
|
1028
1042
|
children: e
|
|
1029
1043
|
}, e))
|
|
1030
1044
|
})
|
|
1031
1045
|
]
|
|
1032
1046
|
}),
|
|
1033
|
-
/* @__PURE__ */
|
|
1047
|
+
/* @__PURE__ */ m("section", {
|
|
1034
1048
|
id: "ratings-reviews",
|
|
1035
1049
|
className: "mb-8 scroll-mt-6",
|
|
1036
1050
|
children: [
|
|
1037
|
-
/* @__PURE__ */
|
|
1051
|
+
/* @__PURE__ */ p("div", {
|
|
1038
1052
|
className: "mb-4 flex items-center justify-between text-left",
|
|
1039
|
-
children: /* @__PURE__ */
|
|
1053
|
+
children: /* @__PURE__ */ p("h2", {
|
|
1040
1054
|
className: "text-lg font-medium text-text-primary",
|
|
1041
1055
|
children: "Ratings & Reviews"
|
|
1042
1056
|
})
|
|
1043
1057
|
}),
|
|
1044
|
-
/* @__PURE__ */
|
|
1058
|
+
/* @__PURE__ */ m(h, {
|
|
1045
1059
|
treatment: "insight",
|
|
1046
1060
|
className: "p-5",
|
|
1047
|
-
children: [V && V.length > 0 ? /* @__PURE__ */
|
|
1061
|
+
children: [V && V.length > 0 ? /* @__PURE__ */ m("div", {
|
|
1048
1062
|
className: "flex items-start gap-8",
|
|
1049
|
-
children: [/* @__PURE__ */
|
|
1063
|
+
children: [/* @__PURE__ */ m("div", {
|
|
1050
1064
|
className: "text-center",
|
|
1051
1065
|
children: [
|
|
1052
|
-
/* @__PURE__ */
|
|
1066
|
+
/* @__PURE__ */ p("p", {
|
|
1053
1067
|
className: "text-5xl font-light tabular-nums text-text-primary",
|
|
1054
1068
|
children: (K.rating || 0).toFixed(1)
|
|
1055
1069
|
}),
|
|
1056
|
-
/* @__PURE__ */
|
|
1070
|
+
/* @__PURE__ */ p("div", {
|
|
1057
1071
|
className: "my-2 flex justify-center gap-0.5",
|
|
1058
1072
|
children: [
|
|
1059
1073
|
1,
|
|
@@ -1061,21 +1075,21 @@ var Ee = (e, t) => ({
|
|
|
1061
1075
|
3,
|
|
1062
1076
|
4,
|
|
1063
1077
|
5
|
|
1064
|
-
].map((e) => /* @__PURE__ */
|
|
1078
|
+
].map((e) => /* @__PURE__ */ p(u, { className: `size-4 ${e <= Math.round(K.rating || 0) ? "fill-current text-status-warning-text" : "text-text-muted"}` }, e))
|
|
1065
1079
|
}),
|
|
1066
|
-
/* @__PURE__ */
|
|
1080
|
+
/* @__PURE__ */ m("p", {
|
|
1067
1081
|
className: "text-sm text-text-muted",
|
|
1068
1082
|
children: [n(xt || K.reviewCount), " reviews"]
|
|
1069
1083
|
})
|
|
1070
1084
|
]
|
|
1071
|
-
}), St.length > 0 && /* @__PURE__ */
|
|
1085
|
+
}), St.length > 0 && /* @__PURE__ */ p("div", {
|
|
1072
1086
|
className: "flex-1 space-y-1.5",
|
|
1073
|
-
children: St.map((e) => /* @__PURE__ */
|
|
1087
|
+
children: St.map((e) => /* @__PURE__ */ p(Ee, { ...e }, e.stars))
|
|
1074
1088
|
})]
|
|
1075
|
-
}) : /* @__PURE__ */
|
|
1089
|
+
}) : /* @__PURE__ */ m("div", {
|
|
1076
1090
|
className: "flex flex-col items-center justify-center py-6 text-center",
|
|
1077
1091
|
children: [
|
|
1078
|
-
/* @__PURE__ */
|
|
1092
|
+
/* @__PURE__ */ p("div", {
|
|
1079
1093
|
className: "mb-3 flex gap-0.5",
|
|
1080
1094
|
children: [
|
|
1081
1095
|
1,
|
|
@@ -1083,37 +1097,37 @@ var Ee = (e, t) => ({
|
|
|
1083
1097
|
3,
|
|
1084
1098
|
4,
|
|
1085
1099
|
5
|
|
1086
|
-
].map((e) => /* @__PURE__ */
|
|
1100
|
+
].map((e) => /* @__PURE__ */ p(u, { className: "size-5 text-border-default" }, e))
|
|
1087
1101
|
}),
|
|
1088
|
-
/* @__PURE__ */
|
|
1102
|
+
/* @__PURE__ */ p("p", {
|
|
1089
1103
|
className: "font-medium text-text-primary",
|
|
1090
1104
|
children: "No reviews yet"
|
|
1091
1105
|
}),
|
|
1092
|
-
/* @__PURE__ */
|
|
1106
|
+
/* @__PURE__ */ p("p", {
|
|
1093
1107
|
className: "mt-1 text-sm text-text-muted",
|
|
1094
1108
|
children: "Be the first to share your experience with this app."
|
|
1095
1109
|
})
|
|
1096
1110
|
]
|
|
1097
|
-
}), /* @__PURE__ */
|
|
1111
|
+
}), /* @__PURE__ */ m("div", {
|
|
1098
1112
|
className: "mt-6 border-t border-border-seam pt-4",
|
|
1099
|
-
children: [
|
|
1100
|
-
role:
|
|
1101
|
-
className: `mb-3 rounded-lg px-3 py-2 text-sm ${
|
|
1102
|
-
children:
|
|
1103
|
-
}),
|
|
1113
|
+
children: [Qe && /* @__PURE__ */ p("p", {
|
|
1114
|
+
role: $e === "success" ? "status" : "alert",
|
|
1115
|
+
className: `mb-3 rounded-lg px-3 py-2 text-sm ${$e === "success" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"}`,
|
|
1116
|
+
children: Qe
|
|
1117
|
+
}), v || I?.userReview ? /* @__PURE__ */ m("div", {
|
|
1104
1118
|
className: "space-y-4",
|
|
1105
|
-
children: [/* @__PURE__ */
|
|
1119
|
+
children: [/* @__PURE__ */ p("button", {
|
|
1106
1120
|
type: "button",
|
|
1107
|
-
onClick: () =>
|
|
1121
|
+
onClick: () => O ? k(!1) : _t(),
|
|
1108
1122
|
className: "w-full cursor-pointer py-2 text-center text-sm font-medium text-text-primary transition-colors hover:text-text-link",
|
|
1109
|
-
children: I?.userReview ?
|
|
1110
|
-
}),
|
|
1123
|
+
children: I?.userReview ? O ? "Cancel review editing" : "Edit your review" : O ? "Cancel review" : "Write a Review"
|
|
1124
|
+
}), O && /* @__PURE__ */ m("div", {
|
|
1111
1125
|
className: "rounded-xl border border-border-seam bg-bg-sunken p-4",
|
|
1112
1126
|
children: [
|
|
1113
|
-
/* @__PURE__ */
|
|
1127
|
+
/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1114
1128
|
className: "text-sm font-medium text-text-primary",
|
|
1115
1129
|
children: "Your rating"
|
|
1116
|
-
}), /* @__PURE__ */
|
|
1130
|
+
}), /* @__PURE__ */ p("div", {
|
|
1117
1131
|
className: "mt-2 flex flex-wrap gap-2",
|
|
1118
1132
|
children: [
|
|
1119
1133
|
1,
|
|
@@ -1121,29 +1135,29 @@ var Ee = (e, t) => ({
|
|
|
1121
1135
|
3,
|
|
1122
1136
|
4,
|
|
1123
1137
|
5
|
|
1124
|
-
].map((e) => /* @__PURE__ */
|
|
1138
|
+
].map((e) => /* @__PURE__ */ m("button", {
|
|
1125
1139
|
type: "button",
|
|
1126
1140
|
onClick: () => P(e),
|
|
1127
1141
|
className: `cursor-pointer rounded-full border px-3 py-1.5 text-sm transition-colors ${N === e ? "border-action-primary-border bg-action-primary-bg text-action-primary-text" : "border-border-default bg-bg-surface text-text-primary hover:bg-bg-surface"}`,
|
|
1128
1142
|
children: [e, " ★"]
|
|
1129
1143
|
}, e))
|
|
1130
1144
|
})] }),
|
|
1131
|
-
/* @__PURE__ */
|
|
1145
|
+
/* @__PURE__ */ m("label", {
|
|
1132
1146
|
className: "mt-4 block text-sm font-medium text-text-primary",
|
|
1133
|
-
children: ["Title", /* @__PURE__ */
|
|
1147
|
+
children: ["Title", /* @__PURE__ */ p("input", {
|
|
1134
1148
|
"aria-label": "Review title",
|
|
1135
|
-
value:
|
|
1136
|
-
onChange: (e) =>
|
|
1149
|
+
value: A,
|
|
1150
|
+
onChange: (e) => j(e.target.value),
|
|
1137
1151
|
className: "mt-2 w-full rounded-lg border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary outline-none focus:border-action-primary-border",
|
|
1138
1152
|
placeholder: "Summarize your experience"
|
|
1139
1153
|
})]
|
|
1140
1154
|
}),
|
|
1141
|
-
/* @__PURE__ */
|
|
1155
|
+
/* @__PURE__ */ m("label", {
|
|
1142
1156
|
className: "mt-4 block text-sm font-medium text-text-primary",
|
|
1143
|
-
children: ["Review", /* @__PURE__ */
|
|
1157
|
+
children: ["Review", /* @__PURE__ */ p("textarea", {
|
|
1144
1158
|
"aria-label": "Review body",
|
|
1145
|
-
value:
|
|
1146
|
-
onChange: (e) =>
|
|
1159
|
+
value: M,
|
|
1160
|
+
onChange: (e) => et(e.target.value),
|
|
1147
1161
|
rows: 4,
|
|
1148
1162
|
required: !0,
|
|
1149
1163
|
"aria-required": "true",
|
|
@@ -1151,130 +1165,130 @@ var Ee = (e, t) => ({
|
|
|
1151
1165
|
placeholder: "What worked well? What should improve?"
|
|
1152
1166
|
})]
|
|
1153
1167
|
}),
|
|
1154
|
-
/* @__PURE__ */
|
|
1168
|
+
/* @__PURE__ */ m("div", {
|
|
1155
1169
|
className: "mt-4 flex flex-wrap gap-3",
|
|
1156
|
-
children: [/* @__PURE__ */
|
|
1170
|
+
children: [/* @__PURE__ */ p("button", {
|
|
1157
1171
|
type: "button",
|
|
1158
1172
|
onClick: vt,
|
|
1159
|
-
disabled:
|
|
1173
|
+
disabled: Be || He,
|
|
1160
1174
|
className: "cursor-pointer rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60",
|
|
1161
|
-
children:
|
|
1162
|
-
}), I?.userReview && /* @__PURE__ */
|
|
1175
|
+
children: Be || He ? "Saving..." : I?.userReview ? "Update Review" : "Submit Review"
|
|
1176
|
+
}), I?.userReview && /* @__PURE__ */ p("button", {
|
|
1163
1177
|
type: "button",
|
|
1164
1178
|
onClick: yt,
|
|
1165
|
-
disabled:
|
|
1179
|
+
disabled: We,
|
|
1166
1180
|
className: "cursor-pointer rounded-lg border border-status-error-border px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-60",
|
|
1167
|
-
children:
|
|
1181
|
+
children: We ? "Removing..." : "Delete Review"
|
|
1168
1182
|
})]
|
|
1169
1183
|
})
|
|
1170
1184
|
]
|
|
1171
1185
|
})]
|
|
1172
|
-
}) : /* @__PURE__ */
|
|
1186
|
+
}) : /* @__PURE__ */ p("p", {
|
|
1173
1187
|
className: "text-center text-sm text-text-muted",
|
|
1174
1188
|
children: "Install this app to leave a review."
|
|
1175
1189
|
})]
|
|
1176
1190
|
})]
|
|
1177
1191
|
}),
|
|
1178
|
-
V && V.length > 0 && /* @__PURE__ */
|
|
1192
|
+
V && V.length > 0 && /* @__PURE__ */ m("div", {
|
|
1179
1193
|
className: "mt-4 space-y-3",
|
|
1180
|
-
children: [/* @__PURE__ */
|
|
1194
|
+
children: [/* @__PURE__ */ p("ul", {
|
|
1181
1195
|
className: "space-y-3",
|
|
1182
|
-
children: (
|
|
1196
|
+
children: (S ? V : V.slice(0, 2)).map((e) => /* @__PURE__ */ p("li", { children: /* @__PURE__ */ p(De, {
|
|
1183
1197
|
review: e,
|
|
1184
1198
|
onMarkHelpful: bt,
|
|
1185
|
-
markingHelpful:
|
|
1199
|
+
markingHelpful: Ke && tt === e.id
|
|
1186
1200
|
}) }, e.id))
|
|
1187
|
-
}), V.length > 2 && /* @__PURE__ */
|
|
1201
|
+
}), V.length > 2 && /* @__PURE__ */ p("button", {
|
|
1188
1202
|
type: "button",
|
|
1189
|
-
onClick: () =>
|
|
1203
|
+
onClick: () => Je(!S),
|
|
1190
1204
|
className: "cursor-pointer text-sm font-medium text-text-link",
|
|
1191
|
-
children:
|
|
1205
|
+
children: S ? "Show less" : `Show all ${V.length} reviews`
|
|
1192
1206
|
})]
|
|
1193
1207
|
}),
|
|
1194
|
-
(!V || V.length === 0) && /* @__PURE__ */
|
|
1208
|
+
(!V || V.length === 0) && /* @__PURE__ */ p("p", {
|
|
1195
1209
|
className: "mt-4 text-sm text-text-muted",
|
|
1196
1210
|
children: "No reviews yet. Be the first to review!"
|
|
1197
1211
|
})
|
|
1198
1212
|
]
|
|
1199
1213
|
}),
|
|
1200
|
-
J.length > 0 && /* @__PURE__ */
|
|
1214
|
+
J.length > 0 && /* @__PURE__ */ m("section", {
|
|
1201
1215
|
id: "about-permissions",
|
|
1202
1216
|
className: "mb-8 scroll-mt-6",
|
|
1203
|
-
children: [/* @__PURE__ */
|
|
1217
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
1204
1218
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1205
1219
|
children: "Required Permissions"
|
|
1206
|
-
}), /* @__PURE__ */
|
|
1220
|
+
}), /* @__PURE__ */ p("div", {
|
|
1207
1221
|
className: "space-y-2",
|
|
1208
|
-
children: J.map((e) => /* @__PURE__ */
|
|
1222
|
+
children: J.map((e) => /* @__PURE__ */ m("div", {
|
|
1209
1223
|
className: "flex items-center gap-3 rounded-lg bg-bg-surface px-4 py-3",
|
|
1210
|
-
children: [/* @__PURE__ */
|
|
1224
|
+
children: [/* @__PURE__ */ p(l, { className: "size-5 text-status-success-text" }), /* @__PURE__ */ p("span", {
|
|
1211
1225
|
className: "text-sm text-text-primary",
|
|
1212
1226
|
children: e
|
|
1213
1227
|
})]
|
|
1214
1228
|
}, e))
|
|
1215
1229
|
})]
|
|
1216
1230
|
}),
|
|
1217
|
-
Ct.length > 0 && /* @__PURE__ */
|
|
1231
|
+
Ct.length > 0 && /* @__PURE__ */ m("section", {
|
|
1218
1232
|
className: "mb-8",
|
|
1219
|
-
children: [/* @__PURE__ */
|
|
1233
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
1220
1234
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1221
1235
|
children: "Integrations"
|
|
1222
|
-
}), /* @__PURE__ */
|
|
1236
|
+
}), /* @__PURE__ */ p("div", {
|
|
1223
1237
|
className: "flex flex-wrap gap-2",
|
|
1224
|
-
children: Ct.map((e) => /* @__PURE__ */
|
|
1238
|
+
children: Ct.map((e) => /* @__PURE__ */ p("span", {
|
|
1225
1239
|
className: "rounded-lg bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary",
|
|
1226
1240
|
children: e
|
|
1227
1241
|
}, e))
|
|
1228
1242
|
})]
|
|
1229
1243
|
}),
|
|
1230
|
-
/* @__PURE__ */
|
|
1244
|
+
/* @__PURE__ */ m("section", {
|
|
1231
1245
|
className: "mb-8",
|
|
1232
|
-
children: [/* @__PURE__ */
|
|
1246
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
1233
1247
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1234
1248
|
children: "Additional Information"
|
|
1235
|
-
}), /* @__PURE__ */
|
|
1249
|
+
}), /* @__PURE__ */ m(h, {
|
|
1236
1250
|
treatment: "metric",
|
|
1237
1251
|
className: "grid grid-cols-2 gap-6 p-5 md:grid-cols-3",
|
|
1238
1252
|
children: [
|
|
1239
|
-
K.manifestVersion && /* @__PURE__ */
|
|
1253
|
+
K.manifestVersion && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1240
1254
|
className: "text-xs text-text-muted",
|
|
1241
1255
|
children: "Version"
|
|
1242
|
-
}), /* @__PURE__ */
|
|
1256
|
+
}), /* @__PURE__ */ p("p", {
|
|
1243
1257
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1244
1258
|
children: K.manifestVersion
|
|
1245
1259
|
})] }),
|
|
1246
|
-
/* @__PURE__ */
|
|
1260
|
+
/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1247
1261
|
className: "text-xs text-text-muted",
|
|
1248
1262
|
children: "Type"
|
|
1249
|
-
}), /* @__PURE__ */
|
|
1263
|
+
}), /* @__PURE__ */ p("p", {
|
|
1250
1264
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1251
1265
|
children: K.type
|
|
1252
1266
|
})] }),
|
|
1253
|
-
K.publishedAt && /* @__PURE__ */
|
|
1267
|
+
K.publishedAt && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1254
1268
|
className: "text-xs text-text-muted",
|
|
1255
1269
|
children: "Published"
|
|
1256
|
-
}), /* @__PURE__ */
|
|
1270
|
+
}), /* @__PURE__ */ p("p", {
|
|
1257
1271
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1258
1272
|
children: new Date(K.publishedAt).toLocaleDateString()
|
|
1259
1273
|
})] }),
|
|
1260
|
-
/* @__PURE__ */
|
|
1274
|
+
/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1261
1275
|
className: "text-xs text-text-muted",
|
|
1262
1276
|
children: "Updated"
|
|
1263
|
-
}), /* @__PURE__ */
|
|
1277
|
+
}), /* @__PURE__ */ p("p", {
|
|
1264
1278
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1265
1279
|
children: new Date(K.updatedAt).toLocaleDateString()
|
|
1266
1280
|
})] }),
|
|
1267
|
-
K.license && /* @__PURE__ */
|
|
1281
|
+
K.license && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1268
1282
|
className: "text-xs text-text-muted",
|
|
1269
1283
|
children: "License"
|
|
1270
|
-
}), /* @__PURE__ */
|
|
1284
|
+
}), /* @__PURE__ */ p("p", {
|
|
1271
1285
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1272
1286
|
children: K.license
|
|
1273
1287
|
})] }),
|
|
1274
|
-
K.minPlatformVersion && /* @__PURE__ */
|
|
1288
|
+
K.minPlatformVersion && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
1275
1289
|
className: "text-xs text-text-muted",
|
|
1276
1290
|
children: "Min Platform Version"
|
|
1277
|
-
}), /* @__PURE__ */
|
|
1291
|
+
}), /* @__PURE__ */ p("p", {
|
|
1278
1292
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1279
1293
|
children: K.minPlatformVersion
|
|
1280
1294
|
})] })
|
|
@@ -1282,32 +1296,32 @@ var Ee = (e, t) => ({
|
|
|
1282
1296
|
})]
|
|
1283
1297
|
})
|
|
1284
1298
|
]
|
|
1285
|
-
}), /* @__PURE__ */
|
|
1299
|
+
}), /* @__PURE__ */ m("div", {
|
|
1286
1300
|
className: "w-full lg:w-80",
|
|
1287
1301
|
children: [
|
|
1288
|
-
(K.documentationUrl || K.repositoryUrl || R?.email) && /* @__PURE__ */
|
|
1302
|
+
(K.documentationUrl || K.repositoryUrl || R?.email) && /* @__PURE__ */ m(h, {
|
|
1289
1303
|
className: "mb-6 p-4",
|
|
1290
|
-
children: [/* @__PURE__ */
|
|
1304
|
+
children: [/* @__PURE__ */ p("h3", {
|
|
1291
1305
|
className: "font-medium text-text-primary",
|
|
1292
1306
|
children: "App support"
|
|
1293
|
-
}), /* @__PURE__ */
|
|
1307
|
+
}), /* @__PURE__ */ m("div", {
|
|
1294
1308
|
className: "mt-3 space-y-2 text-sm",
|
|
1295
1309
|
children: [
|
|
1296
|
-
K.documentationUrl && /* @__PURE__ */
|
|
1310
|
+
K.documentationUrl && /* @__PURE__ */ p("a", {
|
|
1297
1311
|
href: K.documentationUrl,
|
|
1298
1312
|
target: "_blank",
|
|
1299
1313
|
rel: "noreferrer",
|
|
1300
1314
|
className: "block text-text-link hover:underline",
|
|
1301
1315
|
children: "Documentation"
|
|
1302
1316
|
}),
|
|
1303
|
-
K.repositoryUrl && /* @__PURE__ */
|
|
1317
|
+
K.repositoryUrl && /* @__PURE__ */ p("a", {
|
|
1304
1318
|
href: K.repositoryUrl,
|
|
1305
1319
|
target: "_blank",
|
|
1306
1320
|
rel: "noreferrer",
|
|
1307
1321
|
className: "block text-text-link hover:underline",
|
|
1308
1322
|
children: "Source repository"
|
|
1309
1323
|
}),
|
|
1310
|
-
R?.email && /* @__PURE__ */
|
|
1324
|
+
R?.email && /* @__PURE__ */ p("a", {
|
|
1311
1325
|
href: `mailto:${R.email}`,
|
|
1312
1326
|
className: "block text-text-link hover:underline",
|
|
1313
1327
|
children: "Contact publisher"
|
|
@@ -1315,66 +1329,81 @@ var Ee = (e, t) => ({
|
|
|
1315
1329
|
]
|
|
1316
1330
|
})]
|
|
1317
1331
|
}),
|
|
1318
|
-
R && /* @__PURE__ */ p(
|
|
1332
|
+
R && /* @__PURE__ */ p(h, {
|
|
1319
1333
|
className: "mb-6 p-4",
|
|
1320
|
-
children:
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1334
|
+
children: (() => {
|
|
1335
|
+
let e = R.developerOrganization, t = e?.name || R.name, n = e?.logoUrl || R.logoUrl, r = e?.description || R.bio, i = e?.isVerified || R.isVerified;
|
|
1336
|
+
return /* @__PURE__ */ m(f, { children: [
|
|
1337
|
+
/* @__PURE__ */ m("div", {
|
|
1338
|
+
className: "flex items-center gap-2.5",
|
|
1339
|
+
children: [n ? /* @__PURE__ */ p("img", {
|
|
1340
|
+
src: n,
|
|
1341
|
+
alt: t,
|
|
1342
|
+
className: "size-8 rounded-lg object-cover"
|
|
1343
|
+
}) : /* @__PURE__ */ p("div", {
|
|
1344
|
+
className: "flex size-8 items-center justify-center rounded-lg bg-bg-sunken text-sm font-bold text-text-muted",
|
|
1345
|
+
children: t.charAt(0)
|
|
1346
|
+
}), /* @__PURE__ */ p("div", {
|
|
1347
|
+
className: "flex-1 min-w-0",
|
|
1348
|
+
children: /* @__PURE__ */ m("div", {
|
|
1349
|
+
className: "flex items-center gap-1.5",
|
|
1350
|
+
children: [/* @__PURE__ */ p("span", {
|
|
1351
|
+
className: "font-medium text-text-primary truncate",
|
|
1352
|
+
children: t
|
|
1353
|
+
}), i && /* @__PURE__ */ p(l, { className: "size-3.5 text-status-success-text shrink-0" })]
|
|
1354
|
+
})
|
|
1355
|
+
})]
|
|
1356
|
+
}),
|
|
1357
|
+
r && /* @__PURE__ */ p("p", {
|
|
1358
|
+
className: "mt-2 text-sm text-text-muted",
|
|
1359
|
+
children: r
|
|
1360
|
+
}),
|
|
1361
|
+
R.websiteUrl && /* @__PURE__ */ p("a", {
|
|
1362
|
+
href: R.websiteUrl,
|
|
1363
|
+
target: "_blank",
|
|
1364
|
+
rel: "noreferrer",
|
|
1365
|
+
className: "mt-3 inline-block text-sm text-text-link hover:underline",
|
|
1366
|
+
children: "Visit website"
|
|
1367
|
+
})
|
|
1368
|
+
] });
|
|
1369
|
+
})()
|
|
1341
1370
|
}),
|
|
1342
|
-
H && H.length > 0 && /* @__PURE__ */
|
|
1371
|
+
H && H.length > 0 && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("div", {
|
|
1343
1372
|
className: "mb-4 flex items-center justify-between text-left",
|
|
1344
|
-
children: /* @__PURE__ */
|
|
1373
|
+
children: /* @__PURE__ */ p("span", {
|
|
1345
1374
|
className: "font-medium text-text-primary",
|
|
1346
1375
|
children: "Similar apps"
|
|
1347
1376
|
})
|
|
1348
|
-
}), /* @__PURE__ */
|
|
1377
|
+
}), /* @__PURE__ */ p("div", {
|
|
1349
1378
|
className: "space-y-3",
|
|
1350
|
-
children: H.slice(0, 4).map((e) => /* @__PURE__ */
|
|
1379
|
+
children: H.slice(0, 4).map((e) => /* @__PURE__ */ m("button", {
|
|
1351
1380
|
type: "button",
|
|
1352
|
-
onClick: () =>
|
|
1381
|
+
onClick: () => d(`${g}/marketplace/product/${e.id}`),
|
|
1353
1382
|
className: "flex w-full cursor-pointer items-center gap-3 rounded-lg p-2 text-left transition-colors hover:bg-bg-sunken",
|
|
1354
|
-
children: [e.icon ? /* @__PURE__ */
|
|
1383
|
+
children: [e.icon ? /* @__PURE__ */ p("img", {
|
|
1355
1384
|
src: e.icon,
|
|
1356
1385
|
alt: e.name,
|
|
1357
1386
|
className: "size-12 rounded-xl object-cover"
|
|
1358
|
-
}) : /* @__PURE__ */
|
|
1387
|
+
}) : /* @__PURE__ */ p("div", {
|
|
1359
1388
|
className: "flex size-12 items-center justify-center rounded-xl bg-bg-sunken text-lg font-bold text-text-muted",
|
|
1360
1389
|
children: e.name.charAt(0)
|
|
1361
|
-
}), /* @__PURE__ */
|
|
1390
|
+
}), /* @__PURE__ */ m("div", {
|
|
1362
1391
|
className: "flex-1 overflow-hidden",
|
|
1363
1392
|
children: [
|
|
1364
|
-
/* @__PURE__ */
|
|
1393
|
+
/* @__PURE__ */ p("p", {
|
|
1365
1394
|
className: "truncate text-sm font-medium text-text-primary",
|
|
1366
1395
|
children: e.name
|
|
1367
1396
|
}),
|
|
1368
|
-
/* @__PURE__ */
|
|
1397
|
+
/* @__PURE__ */ p("p", {
|
|
1369
1398
|
className: "text-xs text-text-muted",
|
|
1370
1399
|
children: R?.name || "Unknown"
|
|
1371
1400
|
}),
|
|
1372
|
-
(e.reviewCount ?? 0) > 0 && /* @__PURE__ */
|
|
1401
|
+
(e.reviewCount ?? 0) > 0 && /* @__PURE__ */ m("div", {
|
|
1373
1402
|
className: "flex items-center gap-1",
|
|
1374
|
-
children: [/* @__PURE__ */
|
|
1403
|
+
children: [/* @__PURE__ */ p("span", {
|
|
1375
1404
|
className: "text-xs text-text-muted",
|
|
1376
1405
|
children: (e.rating || 0).toFixed(1)
|
|
1377
|
-
}), /* @__PURE__ */
|
|
1406
|
+
}), /* @__PURE__ */ p(u, { className: "size-3 fill-current text-status-warning-text" })]
|
|
1378
1407
|
})
|
|
1379
1408
|
]
|
|
1380
1409
|
})]
|
|
@@ -1385,7 +1414,7 @@ var Ee = (e, t) => ({
|
|
|
1385
1414
|
})
|
|
1386
1415
|
]
|
|
1387
1416
|
}),
|
|
1388
|
-
K && /* @__PURE__ */
|
|
1417
|
+
K && /* @__PURE__ */ p(ae, {
|
|
1389
1418
|
isOpen: rt,
|
|
1390
1419
|
onClose: () => it(!1),
|
|
1391
1420
|
app: {
|
|
@@ -1406,6 +1435,6 @@ var Ee = (e, t) => ({
|
|
|
1406
1435
|
});
|
|
1407
1436
|
};
|
|
1408
1437
|
//#endregion
|
|
1409
|
-
export {
|
|
1438
|
+
export { Ae as ProductDetailPage };
|
|
1410
1439
|
|
|
1411
1440
|
//# sourceMappingURL=ProductDetailPage.js.map
|