@burdenoff/microfe-store 2026.625.3 → 2026.625.5
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/StoreRoutes.js +3 -3
- package/dist/StoreRoutes.js.map +1 -1
- package/dist/components/AccessDenied.js +3 -3
- package/dist/components/AccessDenied.js.map +1 -1
- package/dist/components/InstallAppModal.js +255 -175
- package/dist/components/InstallAppModal.js.map +1 -1
- package/dist/components/cart/CartDrawer.js +10 -10
- package/dist/components/cart/CartDrawer.js.map +1 -1
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/errors/CombinedGraphQLErrors.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/errors/utils.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/utils.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/link/core/ApolloLink.js +2 -2
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/link/subscriptions/index.js +2 -2
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/link/utils/createOperation.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/graphql/print.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/caches.js +2 -2
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/checkDocument.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/getMainDefinition.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +9 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/getOperationDefinition.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js +8 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/globals/global.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js +10 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +8 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/makeUniqueId.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/memoize.js +2 -2
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/internal/stringifyForDisplay.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -0
- package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/invariant/index.js +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js +6 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js.map +1 -0
- package/dist/node_modules/{@wry → .bun/@wry_caches@1.0.1/node_modules/@wry}/caches/lib/weak.js +1 -1
- package/dist/node_modules/.bun/@wry_caches@1.0.1/node_modules/@wry/caches/lib/weak.js.map +1 -0
- package/dist/node_modules/{@wry → .bun/@wry_trie@0.5.0/node_modules/@wry}/trie/lib/index.js +1 -1
- package/dist/node_modules/.bun/@wry_trie@0.5.0/node_modules/@wry/trie/lib/index.js.map +1 -0
- package/dist/node_modules/{graphql-ws → .bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws}/dist/client.js +1 -1
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/client.js.map +1 -0
- package/dist/node_modules/{graphql-ws → .bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws}/dist/common-CGW11Fyb.js +1 -1
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/NotificationFactories.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/Observable.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/Subscriber.js +2 -2
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/Subscription.js +2 -2
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/config.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/observable/empty.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/scheduler/timeoutProvider.js +2 -2
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/symbol/observable.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/util/UnsubscriptionError.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +11 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/util/createErrorClass.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/util/errorContext.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js +8 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +8 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js +6 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/util/pipe.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/rxjs@7.8.2/node_modules/rxjs}/dist/esm5/internal/util/reportUnhandledError.js +1 -1
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -0
- package/dist/node_modules/{rxjs → .bun/tslib@2.8.1}/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/pages/AdminDashboardPage.js +89 -90
- package/dist/pages/AdminDashboardPage.js.map +1 -1
- package/dist/pages/AdminReviewModerationPage.js +56 -58
- package/dist/pages/AdminReviewModerationPage.js.map +1 -1
- package/dist/pages/AdminStoresPage.js +372 -391
- package/dist/pages/AdminStoresPage.js.map +1 -1
- package/dist/pages/AdminSubmissionsQueuePage.js +148 -134
- package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
- package/dist/pages/AppDetailPage.js +120 -123
- package/dist/pages/AppDetailPage.js.map +1 -1
- package/dist/pages/AppSettingsPage.js +297 -70
- package/dist/pages/AppSettingsPage.js.map +1 -1
- package/dist/pages/CartPage.js +76 -65
- package/dist/pages/CartPage.js.map +1 -1
- package/dist/pages/InstalledAppsPage.js +315 -106
- package/dist/pages/InstalledAppsPage.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +378 -368
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/dist/pages/MyLicensesPage.js +75 -67
- package/dist/pages/MyLicensesPage.js.map +1 -1
- package/dist/pages/OrderConfirmationPage.js +37 -38
- package/dist/pages/OrderConfirmationPage.js.map +1 -1
- package/dist/pages/OrdersPage.js +64 -53
- package/dist/pages/OrdersPage.js.map +1 -1
- package/dist/pages/ProductDetailPage.js +213 -215
- package/dist/pages/ProductDetailPage.js.map +1 -1
- package/dist/pages/ProductReviewsPage.js +2 -2
- package/dist/pages/ProductReviewsPage.js.map +1 -1
- package/dist/pages/PublisherDashboardPage.js +92 -93
- package/dist/pages/PublisherDashboardPage.js.map +1 -1
- package/dist/pages/PublisherRevenuePage.js +60 -61
- package/dist/pages/PublisherRevenuePage.js.map +1 -1
- package/dist/pages/PublisherSubmissionsPage.js +96 -97
- package/dist/pages/PublisherSubmissionsPage.js.map +1 -1
- package/dist/pages/PublisherSubmitPage.js +184 -189
- package/dist/pages/PublisherSubmitPage.js.map +1 -1
- package/dist/providers/StoreProvider.js +3 -3
- package/package.json +2 -2
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/utils.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +0 -9
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +0 -8
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +0 -10
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +0 -8
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +0 -1
- package/dist/node_modules/@apollo/client/version.js +0 -6
- package/dist/node_modules/@apollo/client/version.js.map +0 -1
- package/dist/node_modules/@wry/caches/lib/weak.js.map +0 -1
- package/dist/node_modules/@wry/trie/lib/index.js.map +0 -1
- package/dist/node_modules/graphql-ws/dist/client.js.map +0 -1
- package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -11
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -8
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -8
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -6
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
- /package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/caching/sizes.js +0 -0
|
@@ -9,7 +9,6 @@ import { useCallback as a, useEffect as le, useMemo as ue, useRef as de, useStat
|
|
|
9
9
|
import { AlertCircle as s, ArrowLeft as fe, Check as pe, Loader2 as me, Package as he, ShieldCheck as c, ShoppingCart as ge, Star as l, ThumbsUp as u } from "lucide-react";
|
|
10
10
|
import { Fragment as _e, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
11
11
|
import { useLocation as ve, useNavigate as ye, useParams as be } from "react-router-dom";
|
|
12
|
-
import { GlassCard as p } from "@burdenoff/fe-libs/ui";
|
|
13
12
|
import { useEventBus as xe } from "@burdenoff/fe-libs/shared/events";
|
|
14
13
|
//#region src/pages/ProductDetailPage.tsx
|
|
15
14
|
var Se = (e, t) => ({
|
|
@@ -104,7 +103,7 @@ var Se = (e, t) => ({
|
|
|
104
103
|
})
|
|
105
104
|
]
|
|
106
105
|
}), we = ({ review: e, onMarkHelpful: t, markingHelpful: n }) => /* @__PURE__ */ f("div", {
|
|
107
|
-
className: "rounded-lg border border-border-
|
|
106
|
+
className: "rounded-lg border border-border-default bg-bg-surface p-4",
|
|
108
107
|
children: [
|
|
109
108
|
/* @__PURE__ */ d("div", {
|
|
110
109
|
className: "mb-3 flex items-start justify-between",
|
|
@@ -244,7 +243,7 @@ var Se = (e, t) => ({
|
|
|
244
243
|
className: "mb-4 flex items-center gap-2",
|
|
245
244
|
children: [/* @__PURE__ */ d("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ d("div", { className: "h-6 w-32 animate-pulse rounded bg-bg-sunken" })]
|
|
246
245
|
}), /* @__PURE__ */ f("div", {
|
|
247
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
246
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-4",
|
|
248
247
|
children: [/* @__PURE__ */ f("div", {
|
|
249
248
|
className: "space-y-2",
|
|
250
249
|
children: [
|
|
@@ -277,7 +276,7 @@ var Se = (e, t) => ({
|
|
|
277
276
|
/* @__PURE__ */ f("div", {
|
|
278
277
|
className: "mb-6 flex flex-col gap-6 md:flex-row",
|
|
279
278
|
children: [/* @__PURE__ */ d("div", {
|
|
280
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
279
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-4 md:w-64",
|
|
281
280
|
children: /* @__PURE__ */ f("div", {
|
|
282
281
|
className: "flex items-center gap-6",
|
|
283
282
|
children: [/* @__PURE__ */ f("div", {
|
|
@@ -319,7 +318,7 @@ var Se = (e, t) => ({
|
|
|
319
318
|
/* @__PURE__ */ d("div", {
|
|
320
319
|
className: "space-y-4",
|
|
321
320
|
children: [...[, ,]].map((e, t) => /* @__PURE__ */ f("div", {
|
|
322
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
321
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-4",
|
|
323
322
|
children: [/* @__PURE__ */ f("div", {
|
|
324
323
|
className: "mb-3 flex items-start gap-3",
|
|
325
324
|
children: [/* @__PURE__ */ d("div", { className: "size-10 rounded-full bg-bg-sunken" }), /* @__PURE__ */ f("div", {
|
|
@@ -352,7 +351,7 @@ var Se = (e, t) => ({
|
|
|
352
351
|
className: "mb-4 flex items-center gap-2",
|
|
353
352
|
children: [/* @__PURE__ */ d("div", { className: "size-5 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ d("div", { className: "h-6 w-48 animate-pulse rounded bg-bg-sunken" })]
|
|
354
353
|
}), /* @__PURE__ */ d("div", {
|
|
355
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
354
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-4",
|
|
356
355
|
children: /* @__PURE__ */ d("div", {
|
|
357
356
|
className: "grid gap-4 md:grid-cols-2",
|
|
358
357
|
children: [...[
|
|
@@ -382,7 +381,7 @@ var Se = (e, t) => ({
|
|
|
382
381
|
,
|
|
383
382
|
,
|
|
384
383
|
]].map((e, t) => /* @__PURE__ */ d("div", {
|
|
385
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
384
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-3",
|
|
386
385
|
children: /* @__PURE__ */ f("div", {
|
|
387
386
|
className: "flex items-center gap-3",
|
|
388
387
|
children: [/* @__PURE__ */ d("div", { className: "size-14 rounded-xl bg-bg-sunken" }), /* @__PURE__ */ f("div", {
|
|
@@ -403,7 +402,7 @@ var Se = (e, t) => ({
|
|
|
403
402
|
/* @__PURE__ */ f("section", {
|
|
404
403
|
className: "mb-8",
|
|
405
404
|
children: [/* @__PURE__ */ d("div", { className: "mb-4 h-6 w-36 animate-pulse rounded bg-bg-sunken" }), /* @__PURE__ */ f("div", {
|
|
406
|
-
className: "animate-pulse rounded-lg border border-border-
|
|
405
|
+
className: "animate-pulse rounded-lg border border-border-default bg-bg-surface p-4",
|
|
407
406
|
children: [/* @__PURE__ */ f("div", {
|
|
408
407
|
className: "flex items-center gap-4",
|
|
409
408
|
children: [/* @__PURE__ */ d("div", { className: "size-12 rounded-lg bg-bg-sunken" }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("div", {
|
|
@@ -449,13 +448,13 @@ var Se = (e, t) => ({
|
|
|
449
448
|
]
|
|
450
449
|
})
|
|
451
450
|
}), De = () => {
|
|
452
|
-
let { productId: s } = be(), u = ye(), De = ve(), { basePath:
|
|
453
|
-
filter: ue(() => s &&
|
|
451
|
+
let { productId: s } = be(), u = ye(), De = ve(), { basePath: p, workspaceId: m } = e(), { addProduct: h, cartItems: Oe, addingToCart: ke, createOrder: Ae, checkingOut: je } = t(), { installations: Me, refetch: g } = ae({
|
|
452
|
+
filter: ue(() => s && m ? {
|
|
454
453
|
productId: s,
|
|
455
|
-
workspaceId:
|
|
456
|
-
} : void 0, [s,
|
|
454
|
+
workspaceId: m
|
|
455
|
+
} : void 0, [s, m]),
|
|
457
456
|
limit: 1
|
|
458
|
-
}),
|
|
457
|
+
}), Ne = Me.some((e) => e.productId === s && e.workspaceId === m && e.status === "ACTIVE"), { createReview: _, loading: v } = ee(), { updateReview: y, loading: Pe } = ie(), { deleteReview: b, loading: Fe } = te(), { markHelpful: Ie, loading: Le } = ne(), x = xe(), [S, Re] = o(!1), [C, ze] = o(!1), [Be, w] = o(!1), [Ve, T] = o(null), [E, D] = o(null), [He, O] = o("success"), [k, A] = o(!1), [j, M] = o(""), [N, P] = o(""), [F, I] = o(5), [Ue, L] = o(null), [We, R] = o(!1), { data: Ge, loading: Ke, error: z, refetch: B } = re({
|
|
459
458
|
id: s,
|
|
460
459
|
slug: s,
|
|
461
460
|
includeReviews: !0,
|
|
@@ -463,57 +462,57 @@ var Se = (e, t) => ({
|
|
|
463
462
|
includeRelated: !0,
|
|
464
463
|
relatedLimit: 4,
|
|
465
464
|
includeVersions: !0
|
|
466
|
-
}),
|
|
467
|
-
if (
|
|
468
|
-
if (
|
|
469
|
-
u(`${
|
|
465
|
+
}), V = Ge, H = V?.product, U = V?.publisher, W = Oe.some((e) => e.productId === H?.id), qe = a(async () => {
|
|
466
|
+
if (H) {
|
|
467
|
+
if (T(null), W) {
|
|
468
|
+
u(`${p}/cart`);
|
|
470
469
|
return;
|
|
471
470
|
}
|
|
472
471
|
try {
|
|
473
|
-
await
|
|
472
|
+
await h(Se(H, U), void 0, 1);
|
|
474
473
|
} catch (e) {
|
|
475
|
-
console.error("Failed to add product to cart:", e),
|
|
474
|
+
console.error("Failed to add product to cart:", e), T("Failed to add this product to cart. Please try again.");
|
|
476
475
|
}
|
|
477
476
|
}
|
|
478
477
|
}, [
|
|
478
|
+
H,
|
|
479
479
|
U,
|
|
480
|
+
h,
|
|
480
481
|
W,
|
|
481
|
-
Oe,
|
|
482
|
-
G,
|
|
483
482
|
u,
|
|
484
|
-
|
|
483
|
+
p
|
|
485
484
|
]), Je = a(async () => {
|
|
486
|
-
if (
|
|
487
|
-
|
|
485
|
+
if (H) {
|
|
486
|
+
T(null), w(!0);
|
|
488
487
|
try {
|
|
489
|
-
let e =
|
|
488
|
+
let e = H.price || 0, t = await Ae({
|
|
490
489
|
total: e,
|
|
491
490
|
lineItems: [{
|
|
492
|
-
productId:
|
|
493
|
-
name:
|
|
491
|
+
productId: H.id,
|
|
492
|
+
name: H.name,
|
|
494
493
|
quantity: 1,
|
|
495
494
|
unitPrice: e,
|
|
496
495
|
subtotal: e,
|
|
497
|
-
itemType:
|
|
498
|
-
pricingModel:
|
|
496
|
+
itemType: H.nature?.toLowerCase() || "digital",
|
|
497
|
+
pricingModel: H.pricingModel || "PAID_ONETIME"
|
|
499
498
|
}],
|
|
500
499
|
billingAccountId: ""
|
|
501
500
|
});
|
|
502
|
-
t?.id ? u(`/billing/checkout/store/${t.id}${De.search}`) : (console.error("Failed to create order"),
|
|
501
|
+
t?.id ? u(`/billing/checkout/store/${t.id}${De.search}`) : (console.error("Failed to create order"), T("Failed to create order. Please try again."), w(!1));
|
|
503
502
|
} catch (e) {
|
|
504
|
-
console.error("Buy Now error:", e),
|
|
503
|
+
console.error("Buy Now error:", e), T(e instanceof Error ? e.message : "Failed to start checkout"), w(!1);
|
|
505
504
|
}
|
|
506
505
|
}
|
|
507
506
|
}, [
|
|
508
|
-
|
|
507
|
+
H,
|
|
509
508
|
Ae,
|
|
510
509
|
u
|
|
511
510
|
]), Ye = a(() => {
|
|
512
|
-
|
|
513
|
-
}, [
|
|
514
|
-
Xe.current =
|
|
515
|
-
let Ze = de(
|
|
516
|
-
Ze.current =
|
|
511
|
+
H && R(!0);
|
|
512
|
+
}, [H]), Xe = de(H);
|
|
513
|
+
Xe.current = H;
|
|
514
|
+
let Ze = de(x);
|
|
515
|
+
Ze.current = x, le(() => {
|
|
517
516
|
let e = Xe.current;
|
|
518
517
|
e && Ze.current.emit("store.product.viewed", {
|
|
519
518
|
productId: e.id,
|
|
@@ -521,81 +520,81 @@ var Se = (e, t) => ({
|
|
|
521
520
|
productType: e.type,
|
|
522
521
|
pricingModel: e.pricingModel
|
|
523
522
|
});
|
|
524
|
-
}, [
|
|
523
|
+
}, [H?.id]);
|
|
525
524
|
let Qe = a((e, t) => {
|
|
526
|
-
|
|
527
|
-
productId:
|
|
525
|
+
H && (x.emit("store.product.installed", {
|
|
526
|
+
productId: H.id,
|
|
528
527
|
workspaceId: e
|
|
529
|
-
}), console.log(`Successfully installed ${
|
|
528
|
+
}), console.log(`Successfully installed ${H.name} to workspace ${t} (${e})`), g());
|
|
530
529
|
}, [
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
530
|
+
H,
|
|
531
|
+
x,
|
|
532
|
+
g
|
|
534
533
|
]), $e = a((e) => {
|
|
535
534
|
console.error("Installation failed:", e.message);
|
|
536
535
|
}, []), et = a(() => {
|
|
537
|
-
|
|
538
|
-
}, [
|
|
539
|
-
if (!
|
|
540
|
-
if (
|
|
541
|
-
|
|
536
|
+
M(V?.userReview?.title ?? ""), P(V?.userReview?.comment ?? ""), I(V?.userReview?.rating ?? 5), D(null), O("success"), A(!0);
|
|
537
|
+
}, [V?.userReview]), tt = a(async () => {
|
|
538
|
+
if (!H) return;
|
|
539
|
+
if (F < 1 || F > 5) {
|
|
540
|
+
O("error"), D("Choose a rating from 1 to 5 stars.");
|
|
542
541
|
return;
|
|
543
542
|
}
|
|
544
543
|
let e = {
|
|
545
|
-
productId:
|
|
546
|
-
rating:
|
|
547
|
-
title:
|
|
548
|
-
comment:
|
|
544
|
+
productId: H.id,
|
|
545
|
+
rating: F,
|
|
546
|
+
title: j.trim() || void 0,
|
|
547
|
+
comment: N.trim() || void 0
|
|
549
548
|
};
|
|
550
|
-
if (!(
|
|
549
|
+
if (!(V?.userReview ? await y(V.userReview.id, {
|
|
551
550
|
rating: e.rating,
|
|
552
551
|
title: e.title,
|
|
553
552
|
comment: e.comment
|
|
554
553
|
}) : await _(e))) {
|
|
555
|
-
|
|
554
|
+
O("error"), D("We could not save your review. Please try again.");
|
|
556
555
|
return;
|
|
557
556
|
}
|
|
558
|
-
|
|
559
|
-
productId:
|
|
560
|
-
rating:
|
|
561
|
-
}), await
|
|
557
|
+
O("success"), D(V?.userReview ? "Your review was updated." : "Your review was submitted."), A(!1), x.emit("store.review.submitted", {
|
|
558
|
+
productId: H.id,
|
|
559
|
+
rating: F
|
|
560
|
+
}), await B();
|
|
562
561
|
}, [
|
|
563
|
-
|
|
562
|
+
x,
|
|
564
563
|
_,
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
564
|
+
H,
|
|
565
|
+
V?.userReview,
|
|
566
|
+
B,
|
|
567
|
+
N,
|
|
568
|
+
F,
|
|
569
|
+
j,
|
|
570
|
+
y
|
|
572
571
|
]), nt = a(async () => {
|
|
573
|
-
if (
|
|
572
|
+
if (V?.userReview && (se("medium"), await oe({
|
|
574
573
|
title: "Delete review",
|
|
575
574
|
message: "Are you sure you want to remove your review?",
|
|
576
575
|
okButtonTitle: "Delete",
|
|
577
576
|
cancelButtonTitle: "Cancel"
|
|
578
577
|
}) !== !1)) {
|
|
579
|
-
if (!await
|
|
580
|
-
|
|
578
|
+
if (!await b(V.userReview.id)) {
|
|
579
|
+
O("error"), D("We could not remove your review. Please try again."), i("error");
|
|
581
580
|
return;
|
|
582
581
|
}
|
|
583
|
-
|
|
582
|
+
O("success"), D("Your review was removed."), A(!1), M(""), P(""), I(5), i("success"), await B();
|
|
584
583
|
}
|
|
585
584
|
}, [
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
585
|
+
b,
|
|
586
|
+
V?.userReview,
|
|
587
|
+
B
|
|
589
588
|
]), rt = a(async (e) => {
|
|
590
|
-
|
|
591
|
-
}, [
|
|
589
|
+
L(e), await Ie(e) && await B(), L(null);
|
|
590
|
+
}, [Ie, B]);
|
|
592
591
|
if (Ke) return /* @__PURE__ */ d(Te, {});
|
|
593
|
-
if (
|
|
594
|
-
error:
|
|
595
|
-
onRetry:
|
|
596
|
-
onBack: () => u(`${
|
|
592
|
+
if (z) return /* @__PURE__ */ d(Ee, {
|
|
593
|
+
error: z,
|
|
594
|
+
onRetry: B,
|
|
595
|
+
onBack: () => u(`${p}/marketplace`)
|
|
597
596
|
});
|
|
598
|
-
if (!
|
|
597
|
+
if (!V?.product) return /* @__PURE__ */ d("div", {
|
|
599
598
|
className: "flex h-full items-center justify-center",
|
|
600
599
|
children: /* @__PURE__ */ f("div", {
|
|
601
600
|
className: "text-center",
|
|
@@ -610,40 +609,40 @@ var Se = (e, t) => ({
|
|
|
610
609
|
}),
|
|
611
610
|
/* @__PURE__ */ d("button", {
|
|
612
611
|
type: "button",
|
|
613
|
-
onClick: () => u(`${
|
|
612
|
+
onClick: () => u(`${p}/marketplace`),
|
|
614
613
|
className: "rounded-lg bg-action-primary-bg px-4 py-2 text-action-primary-text transition-opacity hover:opacity-90",
|
|
615
614
|
children: "Back to Marketplace"
|
|
616
615
|
})
|
|
617
616
|
]
|
|
618
617
|
})
|
|
619
618
|
});
|
|
620
|
-
let { reviews:
|
|
619
|
+
let { reviews: G, reviewsCount: it, relatedProducts: K, ratingDistribution: q, isPurchased: J, userEntitlement: Y } = V, X = H, Z = q ? q.fiveStars + q.fourStars + q.threeStars + q.twoStars + q.oneStar : 0, at = q ? [
|
|
621
620
|
{
|
|
622
621
|
stars: 5,
|
|
623
|
-
count:
|
|
624
|
-
percentage:
|
|
622
|
+
count: q.fiveStars,
|
|
623
|
+
percentage: Z > 0 ? q.fiveStars / Z * 100 : 0
|
|
625
624
|
},
|
|
626
625
|
{
|
|
627
626
|
stars: 4,
|
|
628
|
-
count:
|
|
629
|
-
percentage:
|
|
627
|
+
count: q.fourStars,
|
|
628
|
+
percentage: Z > 0 ? q.fourStars / Z * 100 : 0
|
|
630
629
|
},
|
|
631
630
|
{
|
|
632
631
|
stars: 3,
|
|
633
|
-
count:
|
|
634
|
-
percentage:
|
|
632
|
+
count: q.threeStars,
|
|
633
|
+
percentage: Z > 0 ? q.threeStars / Z * 100 : 0
|
|
635
634
|
},
|
|
636
635
|
{
|
|
637
636
|
stars: 2,
|
|
638
|
-
count:
|
|
639
|
-
percentage:
|
|
637
|
+
count: q.twoStars,
|
|
638
|
+
percentage: Z > 0 ? q.twoStars / Z * 100 : 0
|
|
640
639
|
},
|
|
641
640
|
{
|
|
642
641
|
stars: 1,
|
|
643
|
-
count:
|
|
644
|
-
percentage:
|
|
642
|
+
count: q.oneStar,
|
|
643
|
+
percentage: Z > 0 ? q.oneStar / Z * 100 : 0
|
|
645
644
|
}
|
|
646
|
-
] : [],
|
|
645
|
+
] : [], Q = (X.requiredPermissions || []).filter((e) => e && e !== "[object Object]"), ot = X.integrationDeps || [], st = () => X.pricingModel === "FREE" ? "Free" : X.pricingModel === "SUBSCRIPTION" ? `${r(X.price, X.currency)}/mo` : r(X.price, X.currency), $ = X.pricingModel === "FREE" || X.price === 0;
|
|
647
646
|
return /* @__PURE__ */ f("div", {
|
|
648
647
|
className: "h-full overflow-y-auto bg-bg-base",
|
|
649
648
|
children: [
|
|
@@ -664,27 +663,27 @@ var Se = (e, t) => ({
|
|
|
664
663
|
}),
|
|
665
664
|
/* @__PURE__ */ d("h1", {
|
|
666
665
|
className: "mb-4 text-4xl font-normal leading-tight text-text-primary lg:text-5xl",
|
|
667
|
-
children:
|
|
666
|
+
children: X.name
|
|
668
667
|
}),
|
|
669
668
|
/* @__PURE__ */ f("div", {
|
|
670
669
|
className: "mb-2",
|
|
671
|
-
children: [
|
|
672
|
-
href:
|
|
670
|
+
children: [U?.websiteUrl ? /* @__PURE__ */ d("a", {
|
|
671
|
+
href: U.websiteUrl,
|
|
673
672
|
target: "_blank",
|
|
674
673
|
rel: "noreferrer",
|
|
675
674
|
className: "text-base font-medium text-text-link hover:underline",
|
|
676
|
-
children:
|
|
675
|
+
children: U.name
|
|
677
676
|
}) : /* @__PURE__ */ d("span", {
|
|
678
677
|
className: "text-base font-medium text-text-primary",
|
|
679
|
-
children:
|
|
680
|
-
}),
|
|
678
|
+
children: U?.name || X.authorName || "Unknown Publisher"
|
|
679
|
+
}), U?.isVerified && /* @__PURE__ */ d(c, { className: "ml-1.5 inline size-4 text-status-success-text" })]
|
|
681
680
|
}),
|
|
682
681
|
/* @__PURE__ */ f("p", {
|
|
683
682
|
className: "mb-6 text-sm text-text-muted",
|
|
684
683
|
children: [
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
n(
|
|
684
|
+
X.category && /* @__PURE__ */ d("span", { children: X.category }),
|
|
685
|
+
X.category && " · ",
|
|
686
|
+
n(X.downloads),
|
|
688
687
|
"+ downloads"
|
|
689
688
|
]
|
|
690
689
|
}),
|
|
@@ -693,13 +692,13 @@ var Se = (e, t) => ({
|
|
|
693
692
|
children: [
|
|
694
693
|
/* @__PURE__ */ d("div", {
|
|
695
694
|
className: "flex size-12 items-center justify-center overflow-hidden rounded-xl bg-bg-sunken",
|
|
696
|
-
children:
|
|
697
|
-
src:
|
|
695
|
+
children: X.icon ? /* @__PURE__ */ d("img", {
|
|
696
|
+
src: X.icon,
|
|
698
697
|
alt: "",
|
|
699
698
|
className: "size-full object-cover"
|
|
700
699
|
}) : /* @__PURE__ */ d("span", {
|
|
701
700
|
className: "text-lg font-bold text-text-muted",
|
|
702
|
-
children:
|
|
701
|
+
children: X.name.charAt(0)
|
|
703
702
|
})
|
|
704
703
|
}),
|
|
705
704
|
/* @__PURE__ */ f("div", {
|
|
@@ -707,12 +706,12 @@ var Se = (e, t) => ({
|
|
|
707
706
|
children: [
|
|
708
707
|
/* @__PURE__ */ d("span", {
|
|
709
708
|
className: "text-sm font-medium text-text-primary",
|
|
710
|
-
children: (
|
|
709
|
+
children: (X.rating || 0).toFixed(1)
|
|
711
710
|
}),
|
|
712
711
|
/* @__PURE__ */ d(l, { className: "size-4 fill-current text-status-warning-text" }),
|
|
713
712
|
/* @__PURE__ */ f("span", {
|
|
714
713
|
className: "ml-1 text-xs text-text-muted",
|
|
715
|
-
children: [n(it ||
|
|
714
|
+
children: [n(it || X.reviewCount), " reviews"]
|
|
716
715
|
})
|
|
717
716
|
]
|
|
718
717
|
}),
|
|
@@ -720,7 +719,7 @@ var Se = (e, t) => ({
|
|
|
720
719
|
className: "border-l border-border-default pl-4",
|
|
721
720
|
children: [/* @__PURE__ */ f("span", {
|
|
722
721
|
className: "text-sm font-medium text-text-primary",
|
|
723
|
-
children: [n(
|
|
722
|
+
children: [n(X.downloads), "+"]
|
|
724
723
|
}), /* @__PURE__ */ d("p", {
|
|
725
724
|
className: "text-xs text-text-muted",
|
|
726
725
|
children: "Downloads"
|
|
@@ -730,7 +729,7 @@ var Se = (e, t) => ({
|
|
|
730
729
|
className: "border-l border-border-default pl-4",
|
|
731
730
|
children: [/* @__PURE__ */ d("span", {
|
|
732
731
|
className: "rounded bg-bg-sunken px-2 py-1 text-xs font-medium text-text-primary",
|
|
733
|
-
children:
|
|
732
|
+
children: X.type
|
|
734
733
|
}), /* @__PURE__ */ d("p", {
|
|
735
734
|
className: "mt-0.5 text-xs text-text-muted",
|
|
736
735
|
children: "Type"
|
|
@@ -738,14 +737,14 @@ var Se = (e, t) => ({
|
|
|
738
737
|
})
|
|
739
738
|
]
|
|
740
739
|
}),
|
|
741
|
-
|
|
740
|
+
Ve && /* @__PURE__ */ d("div", {
|
|
742
741
|
role: "alert",
|
|
743
742
|
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",
|
|
744
|
-
children:
|
|
743
|
+
children: Ve
|
|
745
744
|
}),
|
|
746
745
|
/* @__PURE__ */ f("div", {
|
|
747
746
|
className: "mb-6 flex items-center gap-3",
|
|
748
|
-
children: [
|
|
747
|
+
children: [Ne ? /* @__PURE__ */ f("button", {
|
|
749
748
|
type: "button",
|
|
750
749
|
disabled: !0,
|
|
751
750
|
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",
|
|
@@ -760,7 +759,7 @@ var Se = (e, t) => ({
|
|
|
760
759
|
"aria-hidden": "true",
|
|
761
760
|
children: /* @__PURE__ */ d("polyline", { points: "2,8 6,12 14,4" })
|
|
762
761
|
}), "Installed"]
|
|
763
|
-
}) :
|
|
762
|
+
}) : J && !$ ? /* @__PURE__ */ d("button", {
|
|
764
763
|
type: "button",
|
|
765
764
|
onClick: Ye,
|
|
766
765
|
className: "cursor-pointer rounded-full bg-action-primary-bg px-8 py-3 font-medium text-action-primary-text transition-opacity hover:opacity-90",
|
|
@@ -773,36 +772,36 @@ var Se = (e, t) => ({
|
|
|
773
772
|
}) : /* @__PURE__ */ d("button", {
|
|
774
773
|
type: "button",
|
|
775
774
|
onClick: Je,
|
|
776
|
-
disabled:
|
|
775
|
+
disabled: Be || je,
|
|
777
776
|
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",
|
|
778
|
-
children:
|
|
779
|
-
}), !$ && !
|
|
777
|
+
children: Be || je ? /* @__PURE__ */ f(_e, { children: [/* @__PURE__ */ d(me, { className: "size-4 animate-spin" }), "Processing…"] }) : `Buy ${st()}`
|
|
778
|
+
}), !$ && !J && /* @__PURE__ */ f("button", {
|
|
780
779
|
type: "button",
|
|
781
780
|
onClick: qe,
|
|
782
|
-
disabled:
|
|
781
|
+
disabled: ke,
|
|
783
782
|
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",
|
|
784
|
-
children: [
|
|
783
|
+
children: [ke ? /* @__PURE__ */ d(me, { className: "size-4 animate-spin" }) : W ? /* @__PURE__ */ d(pe, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ d(ge, { className: "size-4" }), W ? "In Cart" : "Add to Cart"]
|
|
785
784
|
})]
|
|
786
785
|
}),
|
|
787
786
|
/* @__PURE__ */ f("p", {
|
|
788
787
|
className: "flex items-center gap-2 text-xs text-text-muted",
|
|
789
788
|
children: [/* @__PURE__ */ d(he, { className: "size-4" }), "This app is available for your workspace"]
|
|
790
789
|
}),
|
|
791
|
-
|
|
790
|
+
Y && /* @__PURE__ */ f("p", {
|
|
792
791
|
className: "mt-2 flex items-center gap-2 text-xs text-text-muted",
|
|
793
792
|
children: [
|
|
794
793
|
/* @__PURE__ */ d(c, { className: "size-4 text-status-success-text" }),
|
|
795
794
|
"License: ",
|
|
796
|
-
|
|
797
|
-
|
|
795
|
+
Y.status,
|
|
796
|
+
Y.expiresAt && ` (Expires: ${new Date(Y.expiresAt).toLocaleDateString()})`
|
|
798
797
|
]
|
|
799
798
|
})
|
|
800
799
|
]
|
|
801
800
|
}), /* @__PURE__ */ d("div", {
|
|
802
801
|
className: "relative flex-1 bg-bg-sunken lg:min-h-[500px]",
|
|
803
|
-
children:
|
|
804
|
-
src:
|
|
805
|
-
alt: `${
|
|
802
|
+
children: X.screenshots && X.screenshots.length > 0 ? /* @__PURE__ */ d("img", {
|
|
803
|
+
src: X.screenshots[0],
|
|
804
|
+
alt: `${X.name} screenshot`,
|
|
806
805
|
className: "size-full object-cover"
|
|
807
806
|
}) : /* @__PURE__ */ d("div", {
|
|
808
807
|
className: "flex h-full min-h-[300px] items-center justify-center",
|
|
@@ -810,7 +809,7 @@ var Se = (e, t) => ({
|
|
|
810
809
|
className: "text-center",
|
|
811
810
|
children: [/* @__PURE__ */ d("div", {
|
|
812
811
|
className: "mx-auto mb-4 flex size-24 items-center justify-center rounded-2xl bg-bg-surface text-4xl font-bold text-text-muted",
|
|
813
|
-
children:
|
|
812
|
+
children: X.name.charAt(0)
|
|
814
813
|
}), /* @__PURE__ */ d("p", {
|
|
815
814
|
className: "text-sm text-text-muted",
|
|
816
815
|
children: "No preview available"
|
|
@@ -828,11 +827,11 @@ var Se = (e, t) => ({
|
|
|
828
827
|
children: [/* @__PURE__ */ f("div", {
|
|
829
828
|
className: "flex-1 lg:max-w-3xl",
|
|
830
829
|
children: [
|
|
831
|
-
|
|
830
|
+
X.screenshots && X.screenshots.length > 1 && /* @__PURE__ */ d("section", {
|
|
832
831
|
className: "mb-8",
|
|
833
832
|
children: /* @__PURE__ */ d("div", {
|
|
834
833
|
className: "flex gap-4 overflow-x-auto pb-4",
|
|
835
|
-
children:
|
|
834
|
+
children: X.screenshots.map((e, t) => /* @__PURE__ */ d("div", {
|
|
836
835
|
className: "relative h-64 w-96 flex-shrink-0 overflow-hidden rounded-xl bg-bg-sunken",
|
|
837
836
|
children: /* @__PURE__ */ d("img", {
|
|
838
837
|
src: e,
|
|
@@ -855,19 +854,19 @@ var Se = (e, t) => ({
|
|
|
855
854
|
/* @__PURE__ */ f("div", {
|
|
856
855
|
className: "text-sm leading-relaxed text-text-secondary",
|
|
857
856
|
children: [/* @__PURE__ */ d("p", {
|
|
858
|
-
className:
|
|
859
|
-
children:
|
|
860
|
-
}), ((
|
|
857
|
+
className: S ? "" : "line-clamp-4",
|
|
858
|
+
children: X.longDescription || X.description || "No description available."
|
|
859
|
+
}), ((X.longDescription || X.description)?.length ?? 0) > 200 && /* @__PURE__ */ d("button", {
|
|
861
860
|
type: "button",
|
|
862
|
-
onClick: () =>
|
|
861
|
+
onClick: () => Re(!S),
|
|
863
862
|
className: "cursor-pointer mt-3 text-sm font-medium text-text-link",
|
|
864
|
-
children:
|
|
863
|
+
children: S ? "Show less" : "Show more"
|
|
865
864
|
})]
|
|
866
865
|
}),
|
|
867
|
-
|
|
866
|
+
X.tags && X.tags.length > 0 && /* @__PURE__ */ d("div", {
|
|
868
867
|
className: "mt-4 flex flex-wrap gap-2",
|
|
869
|
-
children:
|
|
870
|
-
className: "rounded-full border border-border-
|
|
868
|
+
children: X.tags.map((e) => /* @__PURE__ */ d("span", {
|
|
869
|
+
className: "rounded-full border border-border-default px-3 py-1.5 text-xs text-text-muted transition-colors hover:bg-bg-sunken",
|
|
871
870
|
children: e
|
|
872
871
|
}, e))
|
|
873
872
|
})
|
|
@@ -883,17 +882,16 @@ var Se = (e, t) => ({
|
|
|
883
882
|
children: "Ratings & Reviews"
|
|
884
883
|
})
|
|
885
884
|
}),
|
|
886
|
-
/* @__PURE__ */ f(
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
children: [K && K.length > 0 ? /* @__PURE__ */ f("div", {
|
|
885
|
+
/* @__PURE__ */ f("div", {
|
|
886
|
+
className: "rounded-xl border border-border-default bg-bg-surface p-5",
|
|
887
|
+
children: [G && G.length > 0 ? /* @__PURE__ */ f("div", {
|
|
890
888
|
className: "flex items-start gap-8",
|
|
891
889
|
children: [/* @__PURE__ */ f("div", {
|
|
892
890
|
className: "text-center",
|
|
893
891
|
children: [
|
|
894
892
|
/* @__PURE__ */ d("p", {
|
|
895
|
-
className: "text-5xl font-light
|
|
896
|
-
children: (
|
|
893
|
+
className: "text-5xl font-light text-text-primary",
|
|
894
|
+
children: (X.rating || 0).toFixed(1)
|
|
897
895
|
}),
|
|
898
896
|
/* @__PURE__ */ d("div", {
|
|
899
897
|
className: "my-2 flex justify-center gap-0.5",
|
|
@@ -903,11 +901,11 @@ var Se = (e, t) => ({
|
|
|
903
901
|
3,
|
|
904
902
|
4,
|
|
905
903
|
5
|
|
906
|
-
].map((e) => /* @__PURE__ */ d(l, { className: `size-4 ${e <= Math.round(
|
|
904
|
+
].map((e) => /* @__PURE__ */ d(l, { className: `size-4 ${e <= Math.round(X.rating || 0) ? "fill-current text-status-warning-text" : "text-text-muted"}` }, e))
|
|
907
905
|
}),
|
|
908
906
|
/* @__PURE__ */ f("p", {
|
|
909
907
|
className: "text-sm text-text-muted",
|
|
910
|
-
children: [n(it ||
|
|
908
|
+
children: [n(it || X.reviewCount), " reviews"]
|
|
911
909
|
})
|
|
912
910
|
]
|
|
913
911
|
}), at.length > 0 && /* @__PURE__ */ d("div", {
|
|
@@ -937,20 +935,20 @@ var Se = (e, t) => ({
|
|
|
937
935
|
})
|
|
938
936
|
]
|
|
939
937
|
}), /* @__PURE__ */ f("div", {
|
|
940
|
-
className: "mt-6 border-t border-border-
|
|
941
|
-
children: [
|
|
938
|
+
className: "mt-6 border-t border-border-default pt-4",
|
|
939
|
+
children: [E && /* @__PURE__ */ d("p", {
|
|
942
940
|
role: He === "success" ? "status" : "alert",
|
|
943
941
|
className: `mb-3 rounded-lg px-3 py-2 text-sm ${He === "success" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-status-error-bg-subtle text-status-error-text"}`,
|
|
944
|
-
children:
|
|
945
|
-
}),
|
|
942
|
+
children: E
|
|
943
|
+
}), J || V?.userReview ? /* @__PURE__ */ f("div", {
|
|
946
944
|
className: "space-y-4",
|
|
947
945
|
children: [/* @__PURE__ */ d("button", {
|
|
948
946
|
type: "button",
|
|
949
|
-
onClick: () =>
|
|
947
|
+
onClick: () => k ? A(!1) : et(),
|
|
950
948
|
className: "w-full cursor-pointer py-2 text-center text-sm font-medium text-text-primary transition-colors hover:text-text-link",
|
|
951
|
-
children:
|
|
952
|
-
}),
|
|
953
|
-
className: "rounded-xl border border-border-
|
|
949
|
+
children: V?.userReview ? k ? "Cancel review editing" : "Edit your review" : k ? "Cancel review" : "Write a Review"
|
|
950
|
+
}), k && /* @__PURE__ */ f("div", {
|
|
951
|
+
className: "rounded-xl border border-border-default bg-bg-sunken p-4",
|
|
954
952
|
children: [
|
|
955
953
|
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
956
954
|
className: "text-sm font-medium text-text-primary",
|
|
@@ -965,8 +963,8 @@ var Se = (e, t) => ({
|
|
|
965
963
|
5
|
|
966
964
|
].map((e) => /* @__PURE__ */ f("button", {
|
|
967
965
|
type: "button",
|
|
968
|
-
onClick: () =>
|
|
969
|
-
className: `cursor-pointer rounded-full border px-3 py-1.5 text-sm transition-colors ${
|
|
966
|
+
onClick: () => I(e),
|
|
967
|
+
className: `cursor-pointer rounded-full border px-3 py-1.5 text-sm transition-colors ${F === 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"}`,
|
|
970
968
|
children: [e, " ★"]
|
|
971
969
|
}, e))
|
|
972
970
|
})] }),
|
|
@@ -974,8 +972,8 @@ var Se = (e, t) => ({
|
|
|
974
972
|
className: "mt-4 block text-sm font-medium text-text-primary",
|
|
975
973
|
children: ["Title", /* @__PURE__ */ d("input", {
|
|
976
974
|
"aria-label": "Review title",
|
|
977
|
-
value:
|
|
978
|
-
onChange: (e) =>
|
|
975
|
+
value: j,
|
|
976
|
+
onChange: (e) => M(e.target.value),
|
|
979
977
|
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",
|
|
980
978
|
placeholder: "Summarize your experience"
|
|
981
979
|
})]
|
|
@@ -984,8 +982,8 @@ var Se = (e, t) => ({
|
|
|
984
982
|
className: "mt-4 block text-sm font-medium text-text-primary",
|
|
985
983
|
children: ["Review", /* @__PURE__ */ d("textarea", {
|
|
986
984
|
"aria-label": "Review body",
|
|
987
|
-
value:
|
|
988
|
-
onChange: (e) =>
|
|
985
|
+
value: N,
|
|
986
|
+
onChange: (e) => P(e.target.value),
|
|
989
987
|
rows: 4,
|
|
990
988
|
required: !0,
|
|
991
989
|
"aria-required": "true",
|
|
@@ -998,15 +996,15 @@ var Se = (e, t) => ({
|
|
|
998
996
|
children: [/* @__PURE__ */ d("button", {
|
|
999
997
|
type: "button",
|
|
1000
998
|
onClick: tt,
|
|
1001
|
-
disabled:
|
|
999
|
+
disabled: v || Pe,
|
|
1002
1000
|
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",
|
|
1003
|
-
children:
|
|
1004
|
-
}),
|
|
1001
|
+
children: v || Pe ? "Saving..." : V?.userReview ? "Update Review" : "Submit Review"
|
|
1002
|
+
}), V?.userReview && /* @__PURE__ */ d("button", {
|
|
1005
1003
|
type: "button",
|
|
1006
1004
|
onClick: nt,
|
|
1007
|
-
disabled:
|
|
1005
|
+
disabled: Fe,
|
|
1008
1006
|
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",
|
|
1009
|
-
children:
|
|
1007
|
+
children: Fe ? "Removing..." : "Delete Review"
|
|
1010
1008
|
})]
|
|
1011
1009
|
})
|
|
1012
1010
|
]
|
|
@@ -1017,36 +1015,36 @@ var Se = (e, t) => ({
|
|
|
1017
1015
|
})]
|
|
1018
1016
|
})]
|
|
1019
1017
|
}),
|
|
1020
|
-
|
|
1018
|
+
G && G.length > 0 && /* @__PURE__ */ f("div", {
|
|
1021
1019
|
className: "mt-4 space-y-3",
|
|
1022
1020
|
children: [/* @__PURE__ */ d("ul", {
|
|
1023
1021
|
className: "space-y-3",
|
|
1024
|
-
children: (
|
|
1022
|
+
children: (C ? G : G.slice(0, 2)).map((e) => /* @__PURE__ */ d("li", { children: /* @__PURE__ */ d(we, {
|
|
1025
1023
|
review: e,
|
|
1026
1024
|
onMarkHelpful: rt,
|
|
1027
|
-
markingHelpful:
|
|
1025
|
+
markingHelpful: Le && Ue === e.id
|
|
1028
1026
|
}) }, e.id))
|
|
1029
|
-
}),
|
|
1027
|
+
}), G.length > 2 && /* @__PURE__ */ d("button", {
|
|
1030
1028
|
type: "button",
|
|
1031
|
-
onClick: () =>
|
|
1029
|
+
onClick: () => ze(!C),
|
|
1032
1030
|
className: "cursor-pointer text-sm font-medium text-text-link",
|
|
1033
|
-
children:
|
|
1031
|
+
children: C ? "Show less" : `Show all ${G.length} reviews`
|
|
1034
1032
|
})]
|
|
1035
1033
|
}),
|
|
1036
|
-
(!
|
|
1034
|
+
(!G || G.length === 0) && /* @__PURE__ */ d("p", {
|
|
1037
1035
|
className: "mt-4 text-sm text-text-muted",
|
|
1038
1036
|
children: "No reviews yet. Be the first to review!"
|
|
1039
1037
|
})
|
|
1040
1038
|
]
|
|
1041
1039
|
}),
|
|
1042
|
-
|
|
1040
|
+
Q.length > 0 && /* @__PURE__ */ f("section", {
|
|
1043
1041
|
className: "mb-8",
|
|
1044
1042
|
children: [/* @__PURE__ */ d("h2", {
|
|
1045
1043
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1046
1044
|
children: "Required Permissions"
|
|
1047
1045
|
}), /* @__PURE__ */ d("div", {
|
|
1048
1046
|
className: "space-y-2",
|
|
1049
|
-
children:
|
|
1047
|
+
children: Q.map((e) => /* @__PURE__ */ f("div", {
|
|
1050
1048
|
className: "flex items-center gap-3 rounded-lg bg-bg-surface px-4 py-3",
|
|
1051
1049
|
children: [/* @__PURE__ */ d(c, { className: "size-5 text-status-success-text" }), /* @__PURE__ */ d("span", {
|
|
1052
1050
|
className: "text-sm text-text-primary",
|
|
@@ -1055,14 +1053,14 @@ var Se = (e, t) => ({
|
|
|
1055
1053
|
}, e))
|
|
1056
1054
|
})]
|
|
1057
1055
|
}),
|
|
1058
|
-
|
|
1056
|
+
ot.length > 0 && /* @__PURE__ */ f("section", {
|
|
1059
1057
|
className: "mb-8",
|
|
1060
1058
|
children: [/* @__PURE__ */ d("h2", {
|
|
1061
1059
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1062
1060
|
children: "Integrations"
|
|
1063
1061
|
}), /* @__PURE__ */ d("div", {
|
|
1064
1062
|
className: "flex flex-wrap gap-2",
|
|
1065
|
-
children:
|
|
1063
|
+
children: ot.map((e) => /* @__PURE__ */ d("span", {
|
|
1066
1064
|
className: "rounded-lg bg-bg-surface px-4 py-2 text-sm font-medium text-text-primary",
|
|
1067
1065
|
children: e
|
|
1068
1066
|
}, e))
|
|
@@ -1073,51 +1071,50 @@ var Se = (e, t) => ({
|
|
|
1073
1071
|
children: [/* @__PURE__ */ d("h2", {
|
|
1074
1072
|
className: "mb-4 text-lg font-medium text-text-primary",
|
|
1075
1073
|
children: "Additional Information"
|
|
1076
|
-
}), /* @__PURE__ */ f(
|
|
1077
|
-
|
|
1078
|
-
className: "grid grid-cols-2 gap-6 p-5 md:grid-cols-3",
|
|
1074
|
+
}), /* @__PURE__ */ f("div", {
|
|
1075
|
+
className: "grid grid-cols-2 gap-6 md:grid-cols-3",
|
|
1079
1076
|
children: [
|
|
1080
|
-
|
|
1077
|
+
X.manifestVersion && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1081
1078
|
className: "text-xs text-text-muted",
|
|
1082
1079
|
children: "Version"
|
|
1083
1080
|
}), /* @__PURE__ */ d("p", {
|
|
1084
1081
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1085
|
-
children:
|
|
1082
|
+
children: X.manifestVersion
|
|
1086
1083
|
})] }),
|
|
1087
1084
|
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1088
1085
|
className: "text-xs text-text-muted",
|
|
1089
1086
|
children: "Type"
|
|
1090
1087
|
}), /* @__PURE__ */ d("p", {
|
|
1091
1088
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1092
|
-
children:
|
|
1089
|
+
children: X.type
|
|
1093
1090
|
})] }),
|
|
1094
|
-
|
|
1091
|
+
X.publishedAt && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1095
1092
|
className: "text-xs text-text-muted",
|
|
1096
1093
|
children: "Published"
|
|
1097
1094
|
}), /* @__PURE__ */ d("p", {
|
|
1098
1095
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1099
|
-
children: new Date(
|
|
1096
|
+
children: new Date(X.publishedAt).toLocaleDateString()
|
|
1100
1097
|
})] }),
|
|
1101
1098
|
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1102
1099
|
className: "text-xs text-text-muted",
|
|
1103
1100
|
children: "Updated"
|
|
1104
1101
|
}), /* @__PURE__ */ d("p", {
|
|
1105
1102
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1106
|
-
children: new Date(
|
|
1103
|
+
children: new Date(X.updatedAt).toLocaleDateString()
|
|
1107
1104
|
})] }),
|
|
1108
|
-
|
|
1105
|
+
X.license && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1109
1106
|
className: "text-xs text-text-muted",
|
|
1110
1107
|
children: "License"
|
|
1111
1108
|
}), /* @__PURE__ */ d("p", {
|
|
1112
1109
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1113
|
-
children:
|
|
1110
|
+
children: X.license
|
|
1114
1111
|
})] }),
|
|
1115
|
-
|
|
1112
|
+
X.minPlatformVersion && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
1116
1113
|
className: "text-xs text-text-muted",
|
|
1117
1114
|
children: "Min Platform Version"
|
|
1118
1115
|
}), /* @__PURE__ */ d("p", {
|
|
1119
1116
|
className: "mt-1 text-sm font-medium text-text-primary",
|
|
1120
|
-
children:
|
|
1117
|
+
children: X.minPlatformVersion
|
|
1121
1118
|
})] })
|
|
1122
1119
|
]
|
|
1123
1120
|
})]
|
|
@@ -1126,38 +1123,38 @@ var Se = (e, t) => ({
|
|
|
1126
1123
|
}), /* @__PURE__ */ f("div", {
|
|
1127
1124
|
className: "w-full lg:w-80",
|
|
1128
1125
|
children: [
|
|
1129
|
-
(
|
|
1130
|
-
className: "mb-6 p-4",
|
|
1126
|
+
(X.documentationUrl || X.repositoryUrl || U?.email) && /* @__PURE__ */ f("div", {
|
|
1127
|
+
className: "mb-6 rounded-xl border border-border-default bg-bg-surface p-4",
|
|
1131
1128
|
children: [/* @__PURE__ */ d("h3", {
|
|
1132
1129
|
className: "font-medium text-text-primary",
|
|
1133
1130
|
children: "App support"
|
|
1134
1131
|
}), /* @__PURE__ */ f("div", {
|
|
1135
1132
|
className: "mt-3 space-y-2 text-sm",
|
|
1136
1133
|
children: [
|
|
1137
|
-
|
|
1138
|
-
href:
|
|
1134
|
+
X.documentationUrl && /* @__PURE__ */ d("a", {
|
|
1135
|
+
href: X.documentationUrl,
|
|
1139
1136
|
target: "_blank",
|
|
1140
1137
|
rel: "noreferrer",
|
|
1141
1138
|
className: "block text-text-link hover:underline",
|
|
1142
1139
|
children: "Documentation"
|
|
1143
1140
|
}),
|
|
1144
|
-
|
|
1145
|
-
href:
|
|
1141
|
+
X.repositoryUrl && /* @__PURE__ */ d("a", {
|
|
1142
|
+
href: X.repositoryUrl,
|
|
1146
1143
|
target: "_blank",
|
|
1147
1144
|
rel: "noreferrer",
|
|
1148
1145
|
className: "block text-text-link hover:underline",
|
|
1149
1146
|
children: "Source repository"
|
|
1150
1147
|
}),
|
|
1151
|
-
|
|
1152
|
-
href: `mailto:${
|
|
1148
|
+
U?.email && /* @__PURE__ */ d("a", {
|
|
1149
|
+
href: `mailto:${U.email}`,
|
|
1153
1150
|
className: "block text-text-link hover:underline",
|
|
1154
1151
|
children: "Contact publisher"
|
|
1155
1152
|
})
|
|
1156
1153
|
]
|
|
1157
1154
|
})]
|
|
1158
1155
|
}),
|
|
1159
|
-
|
|
1160
|
-
className: "mb-6 p-4",
|
|
1156
|
+
U && /* @__PURE__ */ f("div", {
|
|
1157
|
+
className: "mb-6 rounded-xl border border-border-default bg-bg-surface p-4",
|
|
1161
1158
|
children: [
|
|
1162
1159
|
/* @__PURE__ */ d("h3", {
|
|
1163
1160
|
className: "font-medium text-text-primary",
|
|
@@ -1165,14 +1162,14 @@ var Se = (e, t) => ({
|
|
|
1165
1162
|
}),
|
|
1166
1163
|
/* @__PURE__ */ d("p", {
|
|
1167
1164
|
className: "mt-2 text-sm text-text-primary",
|
|
1168
|
-
children:
|
|
1165
|
+
children: U.name
|
|
1169
1166
|
}),
|
|
1170
|
-
|
|
1167
|
+
U.bio && /* @__PURE__ */ d("p", {
|
|
1171
1168
|
className: "mt-2 text-sm text-text-muted",
|
|
1172
|
-
children:
|
|
1169
|
+
children: U.bio
|
|
1173
1170
|
}),
|
|
1174
|
-
|
|
1175
|
-
href:
|
|
1171
|
+
U.websiteUrl && /* @__PURE__ */ d("a", {
|
|
1172
|
+
href: U.websiteUrl,
|
|
1176
1173
|
target: "_blank",
|
|
1177
1174
|
rel: "noreferrer",
|
|
1178
1175
|
className: "mt-3 inline-block text-sm text-text-link hover:underline",
|
|
@@ -1180,7 +1177,7 @@ var Se = (e, t) => ({
|
|
|
1180
1177
|
})
|
|
1181
1178
|
]
|
|
1182
1179
|
}),
|
|
1183
|
-
|
|
1180
|
+
K && K.length > 0 && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("div", {
|
|
1184
1181
|
className: "mb-4 flex items-center justify-between text-left",
|
|
1185
1182
|
children: /* @__PURE__ */ d("span", {
|
|
1186
1183
|
className: "font-medium text-text-primary",
|
|
@@ -1188,9 +1185,9 @@ var Se = (e, t) => ({
|
|
|
1188
1185
|
})
|
|
1189
1186
|
}), /* @__PURE__ */ d("div", {
|
|
1190
1187
|
className: "space-y-3",
|
|
1191
|
-
children:
|
|
1188
|
+
children: K.slice(0, 4).map((e) => /* @__PURE__ */ f("button", {
|
|
1192
1189
|
type: "button",
|
|
1193
|
-
onClick: () => u(`${
|
|
1190
|
+
onClick: () => u(`${p}/marketplace/product/${e.id}`),
|
|
1194
1191
|
className: "flex w-full cursor-pointer items-center gap-3 rounded-lg p-2 text-left transition-colors hover:bg-bg-sunken",
|
|
1195
1192
|
children: [e.icon ? /* @__PURE__ */ d("img", {
|
|
1196
1193
|
src: e.icon,
|
|
@@ -1208,7 +1205,7 @@ var Se = (e, t) => ({
|
|
|
1208
1205
|
}),
|
|
1209
1206
|
/* @__PURE__ */ d("p", {
|
|
1210
1207
|
className: "text-xs text-text-muted",
|
|
1211
|
-
children:
|
|
1208
|
+
children: U?.name || "Unknown"
|
|
1212
1209
|
}),
|
|
1213
1210
|
(e.reviewCount ?? 0) > 0 && /* @__PURE__ */ f("div", {
|
|
1214
1211
|
className: "flex items-center gap-1",
|
|
@@ -1225,18 +1222,19 @@ var Se = (e, t) => ({
|
|
|
1225
1222
|
})]
|
|
1226
1223
|
})
|
|
1227
1224
|
}),
|
|
1228
|
-
|
|
1225
|
+
X && /* @__PURE__ */ d(ce, {
|
|
1229
1226
|
isOpen: We,
|
|
1230
|
-
onClose: () =>
|
|
1227
|
+
onClose: () => R(!1),
|
|
1231
1228
|
app: {
|
|
1232
|
-
id:
|
|
1233
|
-
name:
|
|
1234
|
-
slug:
|
|
1235
|
-
icon:
|
|
1236
|
-
type:
|
|
1237
|
-
version:
|
|
1229
|
+
id: X.id,
|
|
1230
|
+
name: X.name,
|
|
1231
|
+
slug: X.slug,
|
|
1232
|
+
icon: X.icon,
|
|
1233
|
+
type: X.type,
|
|
1234
|
+
version: X.manifestVersion,
|
|
1235
|
+
requiredPermissions: Q
|
|
1238
1236
|
},
|
|
1239
|
-
purchaseState:
|
|
1237
|
+
purchaseState: J && !$ ? "purchased" : "free",
|
|
1240
1238
|
onInstallSuccess: Qe,
|
|
1241
1239
|
onInstallError: $e
|
|
1242
1240
|
})
|