@burdenoff/microfe-store 2026.830.1 → 2026.830.2
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/components/InstallAppModal.js +145 -150
- package/dist/components/InstallAppModal.js.map +1 -1
- package/dist/components/MarkdownEditor.js +71 -70
- package/dist/components/MarkdownEditor.js.map +1 -1
- package/dist/components/cart/CartDrawer.js +179 -175
- package/dist/components/cart/CartDrawer.js.map +1 -1
- package/dist/pages/AppDetailPage.js +110 -119
- package/dist/pages/AppDetailPage.js.map +1 -1
- package/dist/pages/AppSettingsPage.js +60 -59
- package/dist/pages/AppSettingsPage.js.map +1 -1
- package/dist/pages/CartPage.js +122 -121
- package/dist/pages/CartPage.js.map +1 -1
- package/dist/pages/InstalledAppsPage.js +188 -197
- package/dist/pages/InstalledAppsPage.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +559 -556
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/dist/pages/MyLicensesPage.js +68 -67
- package/dist/pages/MyLicensesPage.js.map +1 -1
- package/dist/pages/OrderConfirmationPage.js +117 -129
- package/dist/pages/OrderConfirmationPage.js.map +1 -1
- package/dist/pages/OrdersPage.js +87 -90
- package/dist/pages/OrdersPage.js.map +1 -1
- package/dist/pages/ProductDetailPage.js +600 -606
- package/dist/pages/ProductDetailPage.js.map +1 -1
- package/dist/shared/hooks/useTr.d.ts +16 -0
- package/dist/shared/hooks/useTr.js +14 -0
- package/dist/shared/hooks/useTr.js.map +1 -0
- package/dist/translations/en.d.ts +327 -10
- package/dist/translations/en.js +343 -26
- package/dist/translations/en.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,111 +1,112 @@
|
|
|
1
1
|
import { useStore as e } from "../providers/StoreProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { useTr as t } from "../shared/hooks/useTr.js";
|
|
3
|
+
import { useInstallation as n } from "../hooks/useInstallations.js";
|
|
4
|
+
import { useNavigate as r, useParams as i } from "react-router";
|
|
5
|
+
import { useI18n as a } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
|
+
import { ArrowLeft as o, Settings as s } from "lucide-react";
|
|
7
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
|
+
import { EmphasisPanel as u, IllustratedEmptyState as d, PagePurpose as f, ShowMore as p } from "@burdenoff/fe-libs/ui";
|
|
8
9
|
//#region src/pages/AppSettingsPage.tsx
|
|
9
|
-
var
|
|
10
|
-
let
|
|
11
|
-
return /* @__PURE__ */
|
|
10
|
+
var m = () => {
|
|
11
|
+
let m = r(), { basePath: h } = e(), { installationId: g } = i(), { installation: _, loading: v, error: y } = n(g), { t: b } = a(), x = t();
|
|
12
|
+
return /* @__PURE__ */ l("div", {
|
|
12
13
|
className: "flex h-full flex-col",
|
|
13
|
-
children: [/* @__PURE__ */
|
|
14
|
+
children: [/* @__PURE__ */ c("header", {
|
|
14
15
|
className: "border-b border-border-seam bg-bg-surface px-6 py-4",
|
|
15
|
-
children: /* @__PURE__ */
|
|
16
|
+
children: /* @__PURE__ */ l("div", {
|
|
16
17
|
className: "mx-auto flex max-w-4xl items-center gap-3",
|
|
17
|
-
children: [/* @__PURE__ */
|
|
18
|
+
children: [/* @__PURE__ */ c("button", {
|
|
18
19
|
type: "button",
|
|
19
|
-
onClick: () =>
|
|
20
|
+
onClick: () => m(-1),
|
|
20
21
|
"aria-label": "Go back",
|
|
21
22
|
className: "cursor-pointer rounded-lg p-2 text-text-muted hover:bg-bg-sunken hover:text-text-primary",
|
|
22
|
-
children: /* @__PURE__ */
|
|
23
|
-
}), /* @__PURE__ */
|
|
23
|
+
children: /* @__PURE__ */ c(o, { className: "size-5" })
|
|
24
|
+
}), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
|
|
24
25
|
className: "text-2xl font-bold text-text-primary",
|
|
25
|
-
children:
|
|
26
|
-
}), /* @__PURE__ */
|
|
26
|
+
children: b("pages.appSettings.title", { defaultValue: "App Settings" })
|
|
27
|
+
}), /* @__PURE__ */ c("p", {
|
|
27
28
|
className: "text-sm text-text-muted",
|
|
28
|
-
children:
|
|
29
|
+
children: b("pages.appSettings.subtitle", { defaultValue: "Review current installation configuration" })
|
|
29
30
|
})] })]
|
|
30
31
|
})
|
|
31
|
-
}), /* @__PURE__ */
|
|
32
|
+
}), /* @__PURE__ */ c("main", {
|
|
32
33
|
className: "flex-1 overflow-y-auto p-6",
|
|
33
|
-
children: /* @__PURE__ */
|
|
34
|
+
children: /* @__PURE__ */ l("div", {
|
|
34
35
|
className: "mx-auto max-w-4xl",
|
|
35
|
-
children: [/* @__PURE__ */
|
|
36
|
+
children: [/* @__PURE__ */ c(f, {
|
|
36
37
|
className: "mb-4",
|
|
37
38
|
children: "A read-only snapshot of how this app is configured in the workspace — its manifest, runtime metadata and context. Use it to verify what an installation is actually running (handy when an app behaves unexpectedly) before changing anything inside the product itself."
|
|
38
|
-
}),
|
|
39
|
+
}), v ? /* @__PURE__ */ c("p", {
|
|
39
40
|
role: "status",
|
|
40
41
|
className: "text-sm text-text-muted",
|
|
41
|
-
children: "Loading settings…"
|
|
42
|
-
}) :
|
|
42
|
+
children: x("pages.appSettings.loading", "Loading settings…")
|
|
43
|
+
}) : y ? /* @__PURE__ */ c("p", {
|
|
43
44
|
role: "alert",
|
|
44
45
|
className: "text-sm text-status-error-text",
|
|
45
|
-
children:
|
|
46
|
-
}) :
|
|
46
|
+
children: y.message
|
|
47
|
+
}) : _ ? /* @__PURE__ */ l(u, {
|
|
47
48
|
className: "space-y-4",
|
|
48
49
|
children: [
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
+
/* @__PURE__ */ l("div", {
|
|
50
51
|
className: "flex items-center gap-2",
|
|
51
|
-
children: [/* @__PURE__ */ s
|
|
52
|
+
children: [/* @__PURE__ */ c(s, { className: "size-5 text-text-primary" }), /* @__PURE__ */ c("h2", {
|
|
52
53
|
className: "text-lg font-semibold text-text-primary",
|
|
53
|
-
children:
|
|
54
|
+
children: b("pages.appSettings.configSnapshot", { defaultValue: "Configuration snapshot" })
|
|
54
55
|
})]
|
|
55
56
|
}),
|
|
56
|
-
/* @__PURE__ */
|
|
57
|
+
/* @__PURE__ */ c("p", {
|
|
57
58
|
className: "text-sm text-text-muted",
|
|
58
|
-
children:
|
|
59
|
+
children: b("pages.appSettings.configDescription", { defaultValue: "Store-level configuration for this installation is read-only here." })
|
|
59
60
|
}),
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
+
/* @__PURE__ */ c(p, {
|
|
61
62
|
collapsedHeight: 140,
|
|
62
|
-
label: "configuration details",
|
|
63
|
-
children: /* @__PURE__ */
|
|
63
|
+
label: x("pages.appSettings.configDetails", "configuration details"),
|
|
64
|
+
children: /* @__PURE__ */ l("div", {
|
|
64
65
|
className: "grid gap-4 lg:grid-cols-2",
|
|
65
|
-
children: [/* @__PURE__ */
|
|
66
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
|
|
66
67
|
className: "mb-2 text-sm font-medium text-text-primary",
|
|
67
|
-
children: "Manifest"
|
|
68
|
-
}), /* @__PURE__ */
|
|
68
|
+
children: x("pages.appSettings.manifest", "Manifest")
|
|
69
|
+
}), /* @__PURE__ */ c("pre", {
|
|
69
70
|
className: "overflow-x-auto whitespace-pre-wrap rounded-lg border border-border-seam bg-bg-sunken p-3 text-xs text-text-muted",
|
|
70
|
-
children: JSON.stringify(
|
|
71
|
-
})] }), /* @__PURE__ */
|
|
71
|
+
children: JSON.stringify(_.manifest ?? {}, null, 2)
|
|
72
|
+
})] }), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
|
|
72
73
|
className: "mb-2 text-sm font-medium text-text-primary",
|
|
73
|
-
children: "Metadata & Context"
|
|
74
|
-
}), /* @__PURE__ */
|
|
74
|
+
children: x("pages.appSettings.metadataContext", "Metadata & Context")
|
|
75
|
+
}), /* @__PURE__ */ c("pre", {
|
|
75
76
|
className: "overflow-x-auto whitespace-pre-wrap rounded-lg border border-border-seam bg-bg-sunken p-3 text-xs text-text-muted",
|
|
76
77
|
children: JSON.stringify({
|
|
77
|
-
metadata:
|
|
78
|
-
context:
|
|
79
|
-
version:
|
|
80
|
-
status:
|
|
78
|
+
metadata: _.metadata ?? {},
|
|
79
|
+
context: _.context ?? {},
|
|
80
|
+
version: _.version,
|
|
81
|
+
status: _.status
|
|
81
82
|
}, null, 2)
|
|
82
83
|
})] })]
|
|
83
84
|
})
|
|
84
85
|
}),
|
|
85
|
-
/* @__PURE__ */
|
|
86
|
+
/* @__PURE__ */ l("div", {
|
|
86
87
|
className: "flex flex-wrap gap-3",
|
|
87
|
-
children: [/* @__PURE__ */
|
|
88
|
+
children: [/* @__PURE__ */ c("button", {
|
|
88
89
|
type: "button",
|
|
89
|
-
onClick: () =>
|
|
90
|
+
onClick: () => m(`${h}/installed/${_.id}`),
|
|
90
91
|
className: "inline-flex cursor-pointer items-center gap-2 rounded-lg border border-border-default px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken",
|
|
91
|
-
children:
|
|
92
|
-
}), /* @__PURE__ */
|
|
92
|
+
children: b("pages.appSettings.viewInstallation", { defaultValue: "View Installation" })
|
|
93
|
+
}), /* @__PURE__ */ c("button", {
|
|
93
94
|
type: "button",
|
|
94
|
-
onClick: () =>
|
|
95
|
+
onClick: () => m(`${h}/marketplace/product/${_.productId}`),
|
|
95
96
|
className: "inline-flex cursor-pointer items-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-semibold text-action-primary-text hover:opacity-90",
|
|
96
|
-
children:
|
|
97
|
+
children: b("pages.appDetail.viewProduct", { defaultValue: "View Product" })
|
|
97
98
|
})]
|
|
98
99
|
})
|
|
99
100
|
]
|
|
100
|
-
}) : /* @__PURE__ */
|
|
101
|
+
}) : /* @__PURE__ */ c(d, {
|
|
101
102
|
illustration: "empty-generic",
|
|
102
|
-
title: "Installation not found",
|
|
103
|
-
description: "There's no configuration to show — this installation may have been removed. Return to your installed apps to pick another.",
|
|
104
|
-
action: /* @__PURE__ */
|
|
103
|
+
title: x("pages.appSettings.notFound", "Installation not found"),
|
|
104
|
+
description: x("pages.appSettings.notFoundDescription", "There's no configuration to show — this installation may have been removed. Return to your installed apps to pick another."),
|
|
105
|
+
action: /* @__PURE__ */ c("button", {
|
|
105
106
|
type: "button",
|
|
106
|
-
onClick: () =>
|
|
107
|
+
onClick: () => m(`${h}/installed`),
|
|
107
108
|
className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90",
|
|
108
|
-
children: "Back to installed apps"
|
|
109
|
+
children: x("pages.appSettings.backToInstalled", "Back to installed apps")
|
|
109
110
|
})
|
|
110
111
|
})]
|
|
111
112
|
})
|
|
@@ -113,6 +114,6 @@ var p = () => {
|
|
|
113
114
|
});
|
|
114
115
|
};
|
|
115
116
|
//#endregion
|
|
116
|
-
export {
|
|
117
|
+
export { m as AppSettingsPage };
|
|
117
118
|
|
|
118
119
|
//# sourceMappingURL=AppSettingsPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSettingsPage.js","names":[],"sources":["../../src/pages/AppSettingsPage.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport { ArrowLeft, Settings } from 'lucide-react';\nimport { useStore } from '../providers/StoreProvider';\nimport { useInstallation } from '../hooks/useInstallations';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { EmphasisPanel, ShowMore, PagePurpose, IllustratedEmptyState } from '@burdenoff/fe-libs/ui';\n\nexport const AppSettingsPage: FC = () => {\n const navigate = useNavigate();\n const { basePath } = useStore();\n const { installationId } = useParams<{ installationId: string }>();\n const { installation, loading, error } = useInstallation(installationId);\n const { t } = useI18n();\n\n return (\n <div className=\"flex h-full flex-col\">\n <header className=\"border-b border-border-seam bg-bg-surface px-6 py-4\">\n <div className=\"mx-auto flex max-w-4xl items-center gap-3\">\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n aria-label=\"Go back\"\n className=\"cursor-pointer rounded-lg p-2 text-text-muted hover:bg-bg-sunken hover:text-text-primary\"\n >\n <ArrowLeft className=\"size-5\" />\n </button>\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n {t('pages.appSettings.title', { defaultValue: 'App Settings' })}\n </h1>\n <p className=\"text-sm text-text-muted\">\n {t('pages.appSettings.subtitle', {\n defaultValue: 'Review current installation configuration',\n })}\n </p>\n </div>\n </div>\n </header>\n\n <main className=\"flex-1 overflow-y-auto p-6\">\n <div className=\"mx-auto max-w-4xl\">\n <PagePurpose className=\"mb-4\">\n A read-only snapshot of how this app is configured in the workspace — its manifest,\n runtime metadata and context. Use it to verify what an installation is actually running\n (handy when an app behaves unexpectedly) before changing anything inside the product\n itself.\n </PagePurpose>\n {loading ? (\n <p role=\"status\" className=\"text-sm text-text-muted\">\n Loading settings
|
|
1
|
+
{"version":3,"file":"AppSettingsPage.js","names":[],"sources":["../../src/pages/AppSettingsPage.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport { ArrowLeft, Settings } from 'lucide-react';\nimport { useStore } from '../providers/StoreProvider';\nimport { useInstallation } from '../hooks/useInstallations';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useTr } from '../shared/hooks/useTr';\nimport { EmphasisPanel, ShowMore, PagePurpose, IllustratedEmptyState } from '@burdenoff/fe-libs/ui';\n\nexport const AppSettingsPage: FC = () => {\n const navigate = useNavigate();\n const { basePath } = useStore();\n const { installationId } = useParams<{ installationId: string }>();\n const { installation, loading, error } = useInstallation(installationId);\n const { t } = useI18n();\n const tr = useTr();\n\n return (\n <div className=\"flex h-full flex-col\">\n <header className=\"border-b border-border-seam bg-bg-surface px-6 py-4\">\n <div className=\"mx-auto flex max-w-4xl items-center gap-3\">\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n aria-label=\"Go back\"\n className=\"cursor-pointer rounded-lg p-2 text-text-muted hover:bg-bg-sunken hover:text-text-primary\"\n >\n <ArrowLeft className=\"size-5\" />\n </button>\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n {t('pages.appSettings.title', { defaultValue: 'App Settings' })}\n </h1>\n <p className=\"text-sm text-text-muted\">\n {t('pages.appSettings.subtitle', {\n defaultValue: 'Review current installation configuration',\n })}\n </p>\n </div>\n </div>\n </header>\n\n <main className=\"flex-1 overflow-y-auto p-6\">\n <div className=\"mx-auto max-w-4xl\">\n <PagePurpose className=\"mb-4\">\n A read-only snapshot of how this app is configured in the workspace — its manifest,\n runtime metadata and context. Use it to verify what an installation is actually running\n (handy when an app behaves unexpectedly) before changing anything inside the product\n itself.\n </PagePurpose>\n {loading ? (\n <p role=\"status\" className=\"text-sm text-text-muted\">\n {tr('pages.appSettings.loading', 'Loading settings…')}\n </p>\n ) : error ? (\n <p role=\"alert\" className=\"text-sm text-status-error-text\">\n {error.message}\n </p>\n ) : !installation ? (\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title={tr('pages.appSettings.notFound', 'Installation not found')}\n description={tr(\n 'pages.appSettings.notFoundDescription',\n \"There's no configuration to show — this installation may have been removed. Return to your installed apps to pick another.\"\n )}\n action={\n <button\n type=\"button\"\n onClick={() => navigate(`${basePath}/installed`)}\n className=\"rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90\"\n >\n {tr('pages.appSettings.backToInstalled', 'Back to installed apps')}\n </button>\n }\n />\n ) : (\n <EmphasisPanel className=\"space-y-4\">\n <div className=\"flex items-center gap-2\">\n <Settings className=\"size-5 text-text-primary\" />\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {t('pages.appSettings.configSnapshot', {\n defaultValue: 'Configuration snapshot',\n })}\n </h2>\n </div>\n\n <p className=\"text-sm text-text-muted\">\n {t('pages.appSettings.configDescription', {\n defaultValue:\n 'Store-level configuration for this installation is read-only here.',\n })}\n </p>\n\n <ShowMore\n collapsedHeight={140}\n label={tr('pages.appSettings.configDetails', 'configuration details')}\n >\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <div>\n <p className=\"mb-2 text-sm font-medium text-text-primary\">\n {tr('pages.appSettings.manifest', 'Manifest')}\n </p>\n <pre className=\"overflow-x-auto whitespace-pre-wrap rounded-lg border border-border-seam bg-bg-sunken p-3 text-xs text-text-muted\">\n {JSON.stringify(installation.manifest ?? {}, null, 2)}\n </pre>\n </div>\n\n <div>\n <p className=\"mb-2 text-sm font-medium text-text-primary\">\n {tr('pages.appSettings.metadataContext', 'Metadata & Context')}\n </p>\n <pre className=\"overflow-x-auto whitespace-pre-wrap rounded-lg border border-border-seam bg-bg-sunken p-3 text-xs text-text-muted\">\n {JSON.stringify(\n {\n metadata: installation.metadata ?? {},\n context: installation.context ?? {},\n version: installation.version,\n status: installation.status,\n },\n null,\n 2\n )}\n </pre>\n </div>\n </div>\n </ShowMore>\n\n <div className=\"flex flex-wrap gap-3\">\n <button\n type=\"button\"\n onClick={() => navigate(`${basePath}/installed/${installation.id}`)}\n className=\"inline-flex cursor-pointer items-center gap-2 rounded-lg border border-border-default px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken\"\n >\n {t('pages.appSettings.viewInstallation', { defaultValue: 'View Installation' })}\n </button>\n <button\n type=\"button\"\n onClick={() =>\n navigate(`${basePath}/marketplace/product/${installation.productId}`)\n }\n className=\"inline-flex cursor-pointer items-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-semibold text-action-primary-text hover:opacity-90\"\n >\n {t('pages.appDetail.viewProduct', { defaultValue: 'View Product' })}\n </button>\n </div>\n </EmphasisPanel>\n )}\n </div>\n </main>\n </div>\n );\n};\n"],"mappings":"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"}
|