@replicated/portal-components 0.0.19 → 0.0.21
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/components/metadata/registry.json +2 -2
- package/components/metadata/registry.md +2 -2
- package/dist/actions/change-team.js +66 -7
- package/dist/actions/change-team.js.map +1 -1
- package/dist/actions/index.d.mts +3 -1
- package/dist/actions/index.d.ts +3 -1
- package/dist/actions/index.js +182 -465
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/install-actions.d.mts +3 -1
- package/dist/actions/install-actions.d.ts +3 -1
- package/dist/actions/install-actions.js +58 -5
- package/dist/actions/install-actions.js.map +1 -1
- package/dist/actions/service-account.d.mts +3 -1
- package/dist/actions/service-account.d.ts +3 -1
- package/dist/actions/service-account.js +58 -5
- package/dist/actions/service-account.js.map +1 -1
- package/dist/actions/support-bundles.d.mts +3 -1
- package/dist/actions/support-bundles.d.ts +3 -1
- package/dist/actions/support-bundles.js +58 -5
- package/dist/actions/support-bundles.js.map +1 -1
- package/dist/actions/team-settings.d.mts +3 -1
- package/dist/actions/team-settings.d.ts +3 -1
- package/dist/actions/team-settings.js +91 -27
- package/dist/actions/team-settings.js.map +1 -1
- package/dist/actions/trial-signup.d.mts +24 -0
- package/dist/actions/trial-signup.d.ts +24 -0
- package/dist/actions/trial-signup.js +482 -0
- package/dist/actions/trial-signup.js.map +1 -0
- package/dist/actions/user-settings.d.mts +3 -1
- package/dist/actions/user-settings.d.ts +3 -1
- package/dist/actions/user-settings.js +58 -5
- package/dist/actions/user-settings.js.map +1 -1
- package/dist/airgap-instances.d.mts +3 -1
- package/dist/airgap-instances.d.ts +3 -1
- package/dist/airgap-instances.js +41 -112
- package/dist/airgap-instances.js.map +1 -1
- package/dist/branding-BsMSywts.d.mts +36 -0
- package/dist/branding-BsMSywts.d.ts +36 -0
- package/dist/error-page.js +10 -2
- package/dist/error-page.js.map +1 -1
- package/dist/error.js +10 -2
- package/dist/error.js.map +1 -1
- package/dist/esm/actions/change-team.js +66 -7
- package/dist/esm/actions/change-team.js.map +1 -1
- package/dist/esm/actions/index.js +181 -462
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/install-actions.js +58 -5
- package/dist/esm/actions/install-actions.js.map +1 -1
- package/dist/esm/actions/service-account.js +58 -5
- package/dist/esm/actions/service-account.js.map +1 -1
- package/dist/esm/actions/support-bundles.js +58 -5
- package/dist/esm/actions/support-bundles.js.map +1 -1
- package/dist/esm/actions/team-settings.js +91 -27
- package/dist/esm/actions/team-settings.js.map +1 -1
- package/dist/esm/actions/trial-signup.js +478 -0
- package/dist/esm/actions/trial-signup.js.map +1 -0
- package/dist/esm/actions/user-settings.js +58 -5
- package/dist/esm/actions/user-settings.js.map +1 -1
- package/dist/esm/airgap-instances.js +40 -112
- package/dist/esm/airgap-instances.js.map +1 -1
- package/dist/esm/error-page.js +10 -2
- package/dist/esm/error-page.js.map +1 -1
- package/dist/esm/error.js +10 -2
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/helm-install-wizard.js +118 -79
- package/dist/esm/helm-install-wizard.js.map +1 -1
- package/dist/esm/index.js +706 -438
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/install-actions.js +40 -5
- package/dist/esm/install-actions.js.map +1 -1
- package/dist/esm/install-card.js +9 -6
- package/dist/esm/install-card.js.map +1 -1
- package/dist/esm/install-targets.js +9 -2
- package/dist/esm/install-targets.js.map +1 -1
- package/dist/esm/instance-card.js +39 -111
- package/dist/esm/instance-card.js.map +1 -1
- package/dist/esm/join-team.js +9 -3
- package/dist/esm/join-team.js.map +1 -1
- package/dist/esm/license-card.js +24 -22
- package/dist/esm/license-card.js.map +1 -1
- package/dist/esm/license-details.js +128 -334
- package/dist/esm/license-details.js.map +1 -1
- package/dist/esm/linux-install-wizard.js +95 -41
- package/dist/esm/linux-install-wizard.js.map +1 -1
- package/dist/esm/login.js +20 -4
- package/dist/esm/login.js.map +1 -1
- package/dist/esm/middleware.js +33 -0
- package/dist/esm/middleware.js.map +1 -0
- package/dist/esm/online-instance-list.js +40 -112
- package/dist/esm/online-instance-list.js.map +1 -1
- package/dist/esm/release-history-panel.js +27 -14
- package/dist/esm/release-history-panel.js.map +1 -1
- package/dist/esm/saml-callback-client.js +82 -0
- package/dist/esm/saml-callback-client.js.map +1 -0
- package/dist/esm/saml-handlers.js +138 -0
- package/dist/esm/saml-handlers.js.map +1 -0
- package/dist/esm/security-card.js +53 -38
- package/dist/esm/security-card.js.map +1 -1
- package/dist/esm/service-accounts-tab.js +800 -0
- package/dist/esm/service-accounts-tab.js.map +1 -0
- package/dist/esm/support-bundle-collection-card.js +48 -24
- package/dist/esm/support-bundle-collection-card.js.map +1 -1
- package/dist/esm/support-bundles-card.js +10 -5
- package/dist/esm/support-bundles-card.js.map +1 -1
- package/dist/esm/support-card.js +37 -5
- package/dist/esm/support-card.js.map +1 -1
- package/dist/esm/team-selection.js +5 -1
- package/dist/esm/team-selection.js.map +1 -1
- package/dist/esm/team-settings-card.js +5 -2
- package/dist/esm/team-settings-card.js.map +1 -1
- package/dist/esm/team-settings.js +7 -2
- package/dist/esm/team-settings.js.map +1 -1
- package/dist/esm/top-nav-user-menu.js +5 -1
- package/dist/esm/top-nav-user-menu.js.map +1 -1
- package/dist/esm/top-nav.js +175 -62
- package/dist/esm/top-nav.js.map +1 -1
- package/dist/esm/trial-signup.js +256 -0
- package/dist/esm/trial-signup.js.map +1 -0
- package/dist/esm/update-layout.js +175 -62
- package/dist/esm/update-layout.js.map +1 -1
- package/dist/esm/updates-card.js +15 -4
- package/dist/esm/updates-card.js.map +1 -1
- package/dist/esm/upload-support-bundle-modal.js +9 -4
- package/dist/esm/upload-support-bundle-modal.js.map +1 -1
- package/dist/esm/user-settings-card.js +5 -2
- package/dist/esm/user-settings-card.js.map +1 -1
- package/dist/esm/user-settings.js +12 -6
- package/dist/esm/user-settings.js.map +1 -1
- package/dist/esm/utils/index.js +204 -13
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/fetch-license-iTyF7_GY.d.mts +81 -0
- package/dist/fetch-license-iTyF7_GY.d.ts +81 -0
- package/dist/helm-install-wizard.d.mts +11 -3
- package/dist/helm-install-wizard.d.ts +11 -3
- package/dist/helm-install-wizard.js +118 -79
- package/dist/helm-install-wizard.js.map +1 -1
- package/dist/{index-BAiVrSSR.d.mts → index-DyzJ0yKD.d.mts} +48 -50
- package/dist/{index-DWt-N5od.d.ts → index-sMbq94M7.d.ts} +48 -50
- package/dist/index.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +726 -438
- package/dist/index.js.map +1 -1
- package/dist/install-actions.d.mts +4 -2
- package/dist/install-actions.d.ts +4 -2
- package/dist/install-actions.js +40 -5
- package/dist/install-actions.js.map +1 -1
- package/dist/install-card.d.mts +2 -3
- package/dist/install-card.d.ts +2 -3
- package/dist/install-card.js +9 -6
- package/dist/install-card.js.map +1 -1
- package/dist/install-targets.js +9 -2
- package/dist/install-targets.js.map +1 -1
- package/dist/instance-card.d.mts +3 -1
- package/dist/instance-card.d.ts +3 -1
- package/dist/instance-card.js +40 -111
- package/dist/instance-card.js.map +1 -1
- package/dist/join-team.js +9 -3
- package/dist/join-team.js.map +1 -1
- package/dist/license-card.d.mts +2 -3
- package/dist/license-card.d.ts +2 -3
- package/dist/license-card.js +24 -22
- package/dist/license-card.js.map +1 -1
- package/dist/license-details.js +128 -334
- package/dist/license-details.js.map +1 -1
- package/dist/linux-install-wizard.d.mts +9 -3
- package/dist/linux-install-wizard.d.ts +9 -3
- package/dist/linux-install-wizard.js +95 -41
- package/dist/linux-install-wizard.js.map +1 -1
- package/dist/login.d.mts +4 -0
- package/dist/login.d.ts +4 -0
- package/dist/login.js +20 -4
- package/dist/login.js.map +1 -1
- package/dist/middleware.d.mts +13 -0
- package/dist/middleware.d.ts +13 -0
- package/dist/middleware.js +35 -0
- package/dist/middleware.js.map +1 -0
- package/dist/online-instance-list.d.mts +3 -1
- package/dist/online-instance-list.d.ts +3 -1
- package/dist/online-instance-list.js +41 -112
- package/dist/online-instance-list.js.map +1 -1
- package/dist/pending-installations.d.mts +3 -1
- package/dist/pending-installations.d.ts +3 -1
- package/dist/release-history-panel.js +27 -14
- package/dist/release-history-panel.js.map +1 -1
- package/dist/saml-callback-client.d.mts +36 -0
- package/dist/saml-callback-client.d.ts +36 -0
- package/dist/saml-callback-client.js +88 -0
- package/dist/saml-callback-client.js.map +1 -0
- package/dist/saml-handlers.d.mts +50 -0
- package/dist/saml-handlers.d.ts +50 -0
- package/dist/saml-handlers.js +141 -0
- package/dist/saml-handlers.js.map +1 -0
- package/dist/security-card.d.mts +3 -1
- package/dist/security-card.d.ts +3 -1
- package/dist/security-card.js +53 -38
- package/dist/security-card.js.map +1 -1
- package/dist/service-accounts-tab.d.mts +51 -0
- package/dist/service-accounts-tab.d.ts +51 -0
- package/dist/service-accounts-tab.js +802 -0
- package/dist/service-accounts-tab.js.map +1 -0
- package/dist/styles.css +375 -127
- package/dist/support-bundle-collection-card.d.mts +1 -1
- package/dist/support-bundle-collection-card.d.ts +1 -1
- package/dist/support-bundle-collection-card.js +47 -23
- package/dist/support-bundle-collection-card.js.map +1 -1
- package/dist/support-bundles-card.d.mts +4 -2
- package/dist/support-bundles-card.d.ts +4 -2
- package/dist/support-bundles-card.js +10 -5
- package/dist/support-bundles-card.js.map +1 -1
- package/dist/support-card.js +37 -5
- package/dist/support-card.js.map +1 -1
- package/dist/team-selection.js +5 -1
- package/dist/team-selection.js.map +1 -1
- package/dist/team-settings-card.js +5 -2
- package/dist/team-settings-card.js.map +1 -1
- package/dist/team-settings.js +7 -2
- package/dist/team-settings.js.map +1 -1
- package/dist/{top-nav-IRIn66wS.d.ts → top-nav-BUQAGoG1.d.mts} +14 -2
- package/dist/{top-nav-IRIn66wS.d.mts → top-nav-CEqw0KpO.d.ts} +14 -2
- package/dist/top-nav-user-menu.js +5 -1
- package/dist/top-nav-user-menu.js.map +1 -1
- package/dist/top-nav.d.mts +2 -1
- package/dist/top-nav.d.ts +2 -1
- package/dist/top-nav.js +175 -62
- package/dist/top-nav.js.map +1 -1
- package/dist/trial-signup.d.mts +31 -0
- package/dist/trial-signup.d.ts +31 -0
- package/dist/trial-signup.js +258 -0
- package/dist/trial-signup.js.map +1 -0
- package/dist/update-layout.js +175 -62
- package/dist/update-layout.js.map +1 -1
- package/dist/updates-card.js +15 -4
- package/dist/updates-card.js.map +1 -1
- package/dist/upload-support-bundle-modal.js +9 -4
- package/dist/upload-support-bundle-modal.js.map +1 -1
- package/dist/user-settings-card.js +5 -2
- package/dist/user-settings-card.js.map +1 -1
- package/dist/user-settings.js +12 -6
- package/dist/user-settings.js.map +1 -1
- package/dist/utils/index.d.mts +74 -16
- package/dist/utils/index.d.ts +74 -16
- package/dist/utils/index.js +215 -12
- package/dist/utils/index.js.map +1 -1
- package/package.json +37 -2
package/dist/install-card.d.mts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
import './actions/change-team.mjs';
|
|
2
|
+
import { L as License } from './fetch-license-iTyF7_GY.mjs';
|
|
4
3
|
|
|
5
4
|
interface InstallCardProps {
|
|
6
|
-
fetchInstallOptionsAction: () => Promise<
|
|
5
|
+
fetchInstallOptionsAction: () => Promise<License>;
|
|
7
6
|
initialShowLinux?: boolean;
|
|
8
7
|
initialShowHelm?: boolean;
|
|
9
8
|
pollIntervalMs?: number;
|
package/dist/install-card.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
import './actions/change-team.js';
|
|
2
|
+
import { L as License } from './fetch-license-iTyF7_GY.js';
|
|
4
3
|
|
|
5
4
|
interface InstallCardProps {
|
|
6
|
-
fetchInstallOptionsAction: () => Promise<
|
|
5
|
+
fetchInstallOptionsAction: () => Promise<License>;
|
|
7
6
|
initialShowLinux?: boolean;
|
|
8
7
|
initialShowHelm?: boolean;
|
|
9
8
|
pollIntervalMs?: number;
|
package/dist/install-card.js
CHANGED
|
@@ -14,6 +14,9 @@ var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
|
14
14
|
* This file is generated by tsup. Do not edit manually.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
|
|
18
|
+
// src/utils/constants.ts
|
|
19
|
+
var DEFAULT_SECONDARY_COLOR = "#6366f1";
|
|
17
20
|
var LinuxIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
18
21
|
"svg",
|
|
19
22
|
{
|
|
@@ -49,7 +52,7 @@ var headingClass = "text-lg font-semibold text-gray-900";
|
|
|
49
52
|
var contentClass = "mt-4 flex-1 space-y-3";
|
|
50
53
|
var itemClass = "flex items-center gap-3 text-sm text-gray-600";
|
|
51
54
|
var iconClass = "h-5 w-5 text-gray-500";
|
|
52
|
-
var footerClass = "mt-6 flex justify-end text-sm font-semibold
|
|
55
|
+
var footerClass = "mt-6 flex justify-end text-sm font-semibold hover:opacity-80";
|
|
53
56
|
var InstallCard = ({
|
|
54
57
|
fetchInstallOptionsAction,
|
|
55
58
|
initialShowLinux = true,
|
|
@@ -64,11 +67,11 @@ var InstallCard = ({
|
|
|
64
67
|
return;
|
|
65
68
|
}
|
|
66
69
|
try {
|
|
67
|
-
const
|
|
68
|
-
setShowLinux(
|
|
69
|
-
setShowHelm(
|
|
70
|
+
const license = await fetchInstallOptionsAction();
|
|
71
|
+
setShowLinux(license.isEmbeddedClusterDownloadEnabled || false);
|
|
72
|
+
setShowHelm(license.isHelmInstallEnabled || false);
|
|
70
73
|
} catch (error) {
|
|
71
|
-
console.error("[install-card] Failed to fetch install options", error);
|
|
74
|
+
console.error("[install-card] Failed to fetch license for install options", error);
|
|
72
75
|
}
|
|
73
76
|
};
|
|
74
77
|
fetchOptions();
|
|
@@ -99,7 +102,7 @@ var InstallCard = ({
|
|
|
99
102
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Deploy via Helm" })
|
|
100
103
|
] }) : null
|
|
101
104
|
] }),
|
|
102
|
-
/* @__PURE__ */ jsxRuntime.jsx("footer", { className: footerClass, children: /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href: "/install", children: "View install guide \u2192" }) })
|
|
105
|
+
/* @__PURE__ */ jsxRuntime.jsx("footer", { className: footerClass, children: /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href: "/install", style: { color: `var(--portal-branding-secondary, ${DEFAULT_SECONDARY_COLOR})` }, children: "View install guide \u2192" }) })
|
|
103
106
|
] });
|
|
104
107
|
};
|
|
105
108
|
InstallCard.displayName = "InstallCard";
|
package/dist/install-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/install-card.tsx"],"names":["jsx","useState","useEffect","jsxs","Link"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/utils/constants.ts","../src/components/install-card.tsx"],"names":["jsx","useState","useEffect","jsxs","Link"],"mappings":"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","file":"install-card.js","sourcesContent":["/**\n * Default globe favicon matching the CiGlobe icon (Circum Icons)\n * Used as fallback when custom branding doesn't provide a favicon\n */\nexport const DEFAULT_FAVICON = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='10'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E\";\n\n/**\n * Default primary brand color\n */\nexport const DEFAULT_PRIMARY_COLOR = \"#4f46e5\";\n\n/**\n * Default secondary brand color\n */\nexport const DEFAULT_SECONDARY_COLOR = \"#6366f1\";\n\n/**\n * Check if the API origin is HTTP (used for repldev environments)\n * This determines cookie security settings for cross-origin iframes\n * @returns true if the API origin starts with http:// (not https://)\n */\nexport const isHttpApiOrigin = (): boolean => {\n return process.env.REPLICATED_APP_ORIGIN?.startsWith('http://') || false;\n};\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport type { SVGProps } from \"react\";\nimport Link from \"next/link\";\nimport type { License } from \"../actions\";\nimport { DEFAULT_SECONDARY_COLOR } from \"../utils/constants\";\n\nconst LinuxIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M21.75 17.25v-.228a4.5 4.5 0 00-.12-1.03l-2.268-9.64a3.375 3.375 0 00-3.285-2.602H7.923a3.375 3.375 0 00-3.285 2.602l-2.268 9.64a4.5 4.5 0 00-.12 1.03v.228m19.5 0a3 3 0 01-3 3H5.25a3 3 0 01-3-3m19.5 0a3 3 0 00-3-3H5.25a3 3 0 00-3 3m16.5 0h.008v.008h-.008v-.008zm-3 0h.008v.008h-.008v-.008z\" />\n </svg>\n);\n\nconst HelmIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M6.75 7.5l3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0021 18V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v12a2.25 2.25 0 002.25 2.25z\" />\n </svg>\n);\n\nconst baseCardClass =\n \"flex h-full flex-col rounded-xl border border-gray-200 bg-white p-6 shadow-[0_16px_32px_rgba(15,23,42,0.05)]\";\nconst headingClass = \"text-lg font-semibold text-gray-900\";\nconst contentClass = \"mt-4 flex-1 space-y-3\";\nconst itemClass = \"flex items-center gap-3 text-sm text-gray-600\";\nconst iconClass = \"h-5 w-5 text-gray-500\";\nconst footerClass =\n \"mt-6 flex justify-end text-sm font-semibold hover:opacity-80\";\n\nexport interface InstallCardProps {\n fetchInstallOptionsAction: () => Promise<License>;\n initialShowLinux?: boolean;\n initialShowHelm?: boolean;\n pollIntervalMs?: number;\n}\n\nexport const InstallCard = ({ \n fetchInstallOptionsAction,\n initialShowLinux = true, \n initialShowHelm = true,\n pollIntervalMs = 2000\n}: InstallCardProps) => {\n const [showLinux, setShowLinux] = useState(initialShowLinux);\n const [showHelm, setShowHelm] = useState(initialShowHelm);\n\n useEffect(() => {\n const fetchOptions = async () => {\n // Skip if tab is not visible\n if (document.hidden) {\n return;\n }\n \n try {\n const license = await fetchInstallOptionsAction();\n setShowLinux(license.isEmbeddedClusterDownloadEnabled || false);\n setShowHelm(license.isHelmInstallEnabled || false);\n } catch (error) {\n console.error(\"[install-card] Failed to fetch license for install options\", error);\n }\n };\n\n // Fetch immediately\n fetchOptions();\n\n // Set up polling interval\n const intervalId = setInterval(fetchOptions, pollIntervalMs);\n\n // Also fetch when tab becomes visible again\n const handleVisibilityChange = () => {\n if (!document.hidden) {\n fetchOptions();\n }\n };\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n // Cleanup on unmount\n return () => {\n clearInterval(intervalId);\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, [fetchInstallOptionsAction, pollIntervalMs]);\n\n // If neither option is enabled, don't render anything\n if (!showLinux && !showHelm) {\n return null;\n }\n\n return (\n <section className={baseCardClass} aria-labelledby=\"install-card-heading\">\n <header>\n <h2 id=\"install-card-heading\" className={headingClass}>\n Install\n </h2>\n </header>\n <div className={contentClass}>\n {showLinux ? (\n <div className={itemClass}>\n <LinuxIcon className={iconClass} />\n <span>Deploy to Linux</span>\n </div>\n ) : null}\n {showHelm ? (\n <div className={itemClass}>\n <HelmIcon className={iconClass} />\n <span>Deploy via Helm</span>\n </div>\n ) : null}\n </div>\n <footer className={footerClass}>\n <Link href=\"/install\" style={{ color: `var(--portal-branding-secondary, ${DEFAULT_SECONDARY_COLOR})` }}>\n View install guide →\n </Link>\n </footer>\n </section>\n );\n};\n\nInstallCard.displayName = \"InstallCard\";\n"]}
|
package/dist/install-targets.js
CHANGED
|
@@ -8,6 +8,9 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
8
8
|
* This file is generated by tsup. Do not edit manually.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
|
|
12
|
+
// src/utils/constants.ts
|
|
13
|
+
var DEFAULT_SECONDARY_COLOR = "#6366f1";
|
|
11
14
|
var targetButtonBase = "flex w-full items-center justify-between rounded-2xl px-4 py-3 text-left text-sm font-medium transition";
|
|
12
15
|
var InstallTargets = ({
|
|
13
16
|
options,
|
|
@@ -33,10 +36,14 @@ var InstallTargets = ({
|
|
|
33
36
|
{
|
|
34
37
|
type: "button",
|
|
35
38
|
onClick: () => handleSelect(option.id),
|
|
36
|
-
className: `${targetButtonBase} ${isActive ? "bg-
|
|
39
|
+
className: `${targetButtonBase} ${isActive ? "bg-white text-gray-600" : "bg-white text-gray-600 hover:bg-gray-50"}`,
|
|
40
|
+
style: isActive ? {
|
|
41
|
+
backgroundColor: `var(--portal-branding-primary-light, ${DEFAULT_SECONDARY_COLOR}20)`,
|
|
42
|
+
color: `var(--portal-branding-primary, ${DEFAULT_SECONDARY_COLOR})`
|
|
43
|
+
} : void 0,
|
|
37
44
|
children: [
|
|
38
45
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: option.label }),
|
|
39
|
-
isActive ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs
|
|
46
|
+
isActive ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs", style: { color: `var(--portal-branding-primary, ${DEFAULT_SECONDARY_COLOR})` }, children: "Selected" }) : option.description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-400", children: option.description }) : null
|
|
40
47
|
]
|
|
41
48
|
},
|
|
42
49
|
option.id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/install-targets.tsx"],"names":["useState","jsx","jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/utils/constants.ts","../src/components/install-targets.tsx"],"names":["useState","jsx","jsxs"],"mappings":";;;;;;;;;;;;AAcO,IAAM,uBAAA,GAA0B,SAAA;ACTvC,IAAM,gBAAA,GACJ,yGAAA;AAeK,IAAM,iBAAiB,CAAC;AAAA,EAC7B,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,MAAM,CAAC,YAAY,aAAa,CAAA,GAAIA,eAAS,OAAA,CAAQ,CAAC,GAAG,EAAE,CAAA;AAE3D,EAAA,MAAM,aAAa,QAAA,IAAY,UAAA;AAE/B,EAAA,MAAM,YAAA,GAAe,CAAC,EAAA,KAAe;AACnC,IAAA,IAAI,CAAC,QAAQ,IAAA,CAAK,CAAC,WAAW,MAAA,CAAO,EAAA,KAAO,EAAE,CAAA,EAAG;AAC/C,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB;AAEA,IAAA,QAAA,GAAW,EAAE,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,uBACEC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,IAAA,MAAM,QAAA,GAAW,OAAO,EAAA,KAAO,UAAA;AAC/B,IAAA,uBACEC,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,YAAA,CAAa,MAAA,CAAO,EAAE,CAAA;AAAA,QACrC,WAAW,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAC5B,QAAA,GACI,2BACA,yCACN,CAAA,CAAA;AAAA,QACA,OAAO,QAAA,GAAW;AAAA,UAChB,eAAA,EAAiB,wCAAwC,uBAAuB,CAAA,GAAA,CAAA;AAAA,UAChF,KAAA,EAAO,kCAAkC,uBAAuB,CAAA,CAAA;AAAA,SAClE,GAAI,MAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAD,cAAA,CAAC,MAAA,EAAA,EAAM,iBAAO,KAAA,EAAM,CAAA;AAAA,UACnB,QAAA,kCACE,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,+BAAA,EAAkC,uBAAuB,CAAA,CAAA,CAAA,IAAO,QAAA,EAAA,UAAA,EAAQ,CAAA,GAChH,OAAO,WAAA,mBACTA,cAAA,CAAC,UAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,MAAA,CAAO,WAAA,EAAY,CAAA,GAC1D;AAAA;AAAA,OAAA;AAAA,MAlBC,MAAA,CAAO;AAAA,KAmBd;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"install-targets.js","sourcesContent":["/**\n * Default globe favicon matching the CiGlobe icon (Circum Icons)\n * Used as fallback when custom branding doesn't provide a favicon\n */\nexport const DEFAULT_FAVICON = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='10'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E\";\n\n/**\n * Default primary brand color\n */\nexport const DEFAULT_PRIMARY_COLOR = \"#4f46e5\";\n\n/**\n * Default secondary brand color\n */\nexport const DEFAULT_SECONDARY_COLOR = \"#6366f1\";\n\n/**\n * Check if the API origin is HTTP (used for repldev environments)\n * This determines cookie security settings for cross-origin iframes\n * @returns true if the API origin starts with http:// (not https://)\n */\nexport const isHttpApiOrigin = (): boolean => {\n return process.env.REPLICATED_APP_ORIGIN?.startsWith('http://') || false;\n};\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { DEFAULT_SECONDARY_COLOR } from \"../utils/constants\";\n\nconst targetButtonBase =\n \"flex w-full items-center justify-between rounded-2xl px-4 py-3 text-left text-sm font-medium transition\";\n\nexport interface InstallTargetOption {\n id: string;\n label: string;\n description?: string;\n}\n\nexport interface InstallTargetsProps {\n options: InstallTargetOption[];\n activeId?: string;\n onChange?: (targetId: string) => void;\n className?: string;\n}\n\nexport const InstallTargets = ({\n options,\n activeId,\n onChange,\n className\n}: InstallTargetsProps) => {\n const [internalId, setInternalId] = useState(options[0]?.id);\n\n const selectedId = activeId ?? internalId;\n\n const handleSelect = (id: string) => {\n if (!options.find((option) => option.id === id)) {\n return;\n }\n\n if (!activeId) {\n setInternalId(id);\n }\n\n onChange?.(id);\n };\n\n return (\n <div className={className}>\n <div className=\"flex flex-col gap-2\">\n {options.map((option) => {\n const isActive = option.id === selectedId;\n return (\n <button\n key={option.id}\n type=\"button\"\n onClick={() => handleSelect(option.id)}\n className={`${targetButtonBase} ${\n isActive\n ? \"bg-white text-gray-600\"\n : \"bg-white text-gray-600 hover:bg-gray-50\"\n }`}\n style={isActive ? {\n backgroundColor: `var(--portal-branding-primary-light, ${DEFAULT_SECONDARY_COLOR}20)`,\n color: `var(--portal-branding-primary, ${DEFAULT_SECONDARY_COLOR})`\n } : undefined}\n >\n <span>{option.label}</span>\n {isActive ? (\n <span className=\"text-xs\" style={{ color: `var(--portal-branding-primary, ${DEFAULT_SECONDARY_COLOR})` }}>Selected</span>\n ) : option.description ? (\n <span className=\"text-xs text-gray-400\">{option.description}</span>\n ) : null}\n </button>\n );\n })}\n </div>\n </div>\n );\n};\n\nInstallTargets.displayName = \"InstallTargets\";\n"]}
|
package/dist/instance-card.d.mts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { Instance } from './install-actions.mjs';
|
|
3
|
-
import { C as ChannelRelease, I as InstallOptions, S as SecurityReleaseImage, G as GetSecurityInfoDiffResult } from './index-
|
|
3
|
+
import { C as ChannelRelease, I as InstallOptions, S as SecurityReleaseImage, G as GetSecurityInfoDiffResult } from './index-DyzJ0yKD.mjs';
|
|
4
|
+
import './fetch-license-iTyF7_GY.mjs';
|
|
4
5
|
import './actions/change-team.mjs';
|
|
6
|
+
import './actions/trial-signup.mjs';
|
|
5
7
|
|
|
6
8
|
interface InstanceCardProps {
|
|
7
9
|
instance: Instance;
|
package/dist/instance-card.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { Instance } from './install-actions.js';
|
|
3
|
-
import { C as ChannelRelease, I as InstallOptions, S as SecurityReleaseImage, G as GetSecurityInfoDiffResult } from './index-
|
|
3
|
+
import { C as ChannelRelease, I as InstallOptions, S as SecurityReleaseImage, G as GetSecurityInfoDiffResult } from './index-sMbq94M7.js';
|
|
4
|
+
import './fetch-license-iTyF7_GY.js';
|
|
4
5
|
import './actions/change-team.js';
|
|
6
|
+
import './actions/trial-signup.js';
|
|
5
7
|
|
|
6
8
|
interface InstanceCardProps {
|
|
7
9
|
instance: Instance;
|
package/dist/instance-card.js
CHANGED
|
@@ -3,100 +3,43 @@
|
|
|
3
3
|
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var Link = require('next/link');
|
|
6
|
+
var cx = require('classnames');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
|
|
8
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
|
|
10
11
|
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
12
|
+
var cx__default = /*#__PURE__*/_interopDefault(cx);
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Enterprise Portal Components
|
|
14
16
|
* This file is generated by tsup. Do not edit manually.
|
|
15
17
|
*/
|
|
16
|
-
var __create = Object.create;
|
|
17
|
-
var __defProp = Object.defineProperty;
|
|
18
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
19
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
20
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
21
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
22
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
23
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
24
|
-
};
|
|
25
|
-
var __copyProps = (to, from, except, desc) => {
|
|
26
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
27
|
-
for (let key of __getOwnPropNames(from))
|
|
28
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
29
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
30
|
-
}
|
|
31
|
-
return to;
|
|
32
|
-
};
|
|
33
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
34
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
35
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
36
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
37
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
38
|
-
!mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
39
|
-
mod
|
|
40
|
-
));
|
|
41
18
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (Array.isArray(arg)) {
|
|
65
|
-
return classNames.apply(null, arg);
|
|
66
|
-
}
|
|
67
|
-
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
|
68
|
-
return arg.toString();
|
|
69
|
-
}
|
|
70
|
-
var classes = "";
|
|
71
|
-
for (var key in arg) {
|
|
72
|
-
if (hasOwn.call(arg, key) && arg[key]) {
|
|
73
|
-
classes = appendClass(classes, key);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return classes;
|
|
77
|
-
}
|
|
78
|
-
function appendClass(value, newClass) {
|
|
79
|
-
if (!newClass) {
|
|
80
|
-
return value;
|
|
81
|
-
}
|
|
82
|
-
if (value) {
|
|
83
|
-
return value + " " + newClass;
|
|
84
|
-
}
|
|
85
|
-
return value + newClass;
|
|
86
|
-
}
|
|
87
|
-
if (typeof module !== "undefined" && module.exports) {
|
|
88
|
-
classNames.default = classNames;
|
|
89
|
-
module.exports = classNames;
|
|
90
|
-
} else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
|
|
91
|
-
define("classnames", [], function() {
|
|
92
|
-
return classNames;
|
|
93
|
-
});
|
|
94
|
-
} else {
|
|
95
|
-
window.classNames = classNames;
|
|
96
|
-
}
|
|
97
|
-
})();
|
|
19
|
+
|
|
20
|
+
// src/utils/constants.ts
|
|
21
|
+
var DEFAULT_SECONDARY_COLOR = "#6366f1";
|
|
22
|
+
|
|
23
|
+
// src/utils/format.ts
|
|
24
|
+
function formatDateTimeLocal(dateString) {
|
|
25
|
+
if (!dateString) return "N/A";
|
|
26
|
+
try {
|
|
27
|
+
const date = new Date(dateString);
|
|
28
|
+
if (isNaN(date.getTime())) {
|
|
29
|
+
return dateString;
|
|
30
|
+
}
|
|
31
|
+
return date.toLocaleDateString("en-US", {
|
|
32
|
+
month: "numeric",
|
|
33
|
+
day: "numeric",
|
|
34
|
+
year: "numeric",
|
|
35
|
+
hour: "numeric",
|
|
36
|
+
minute: "2-digit",
|
|
37
|
+
hour12: true
|
|
38
|
+
});
|
|
39
|
+
} catch {
|
|
40
|
+
return "N/A";
|
|
98
41
|
}
|
|
99
|
-
}
|
|
42
|
+
}
|
|
100
43
|
function getInstallType(instance, installOptions) {
|
|
101
44
|
const instanceHasNoInstallTypes = !instance.kotsInstallId && !instance.kurlInstallId && !instance.embeddedClusterId;
|
|
102
45
|
const isManuallyCreatedAirgapInstance = instance.isAirgap && instanceHasNoInstallTypes;
|
|
@@ -140,9 +83,6 @@ function getInstanceName(instance) {
|
|
|
140
83
|
const nameTag = instance.tags?.find((tag) => tag.key === "name");
|
|
141
84
|
return nameTag?.value || instance.id.slice(0, 7);
|
|
142
85
|
}
|
|
143
|
-
|
|
144
|
-
// src/components/app-status-badge.tsx
|
|
145
|
-
var import_classnames = __toESM(require_classnames());
|
|
146
86
|
var toTitle = (value) => {
|
|
147
87
|
const s = value.trim();
|
|
148
88
|
if (!s) return s;
|
|
@@ -266,7 +206,7 @@ function AppStatusBadge({
|
|
|
266
206
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
267
207
|
"span",
|
|
268
208
|
{
|
|
269
|
-
className:
|
|
209
|
+
className: cx__default.default(
|
|
270
210
|
"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium",
|
|
271
211
|
getClassNameForType(type),
|
|
272
212
|
className
|
|
@@ -278,18 +218,6 @@ function AppStatusBadge({
|
|
|
278
218
|
}
|
|
279
219
|
);
|
|
280
220
|
}
|
|
281
|
-
function formatDateTime(dateString) {
|
|
282
|
-
if (!dateString) return "N/A";
|
|
283
|
-
const date = new Date(dateString);
|
|
284
|
-
return date.toLocaleDateString("en-US", {
|
|
285
|
-
month: "numeric",
|
|
286
|
-
day: "numeric",
|
|
287
|
-
year: "numeric",
|
|
288
|
-
hour: "numeric",
|
|
289
|
-
minute: "2-digit",
|
|
290
|
-
hour12: true
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
221
|
function UpdateBadge({ count }) {
|
|
294
222
|
if (count <= 0) return null;
|
|
295
223
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1.5 inline-flex h-5 w-5 items-center justify-center rounded-full bg-rose-500 text-xs font-medium text-white", children: count });
|
|
@@ -327,7 +255,7 @@ function InstanceCard({
|
|
|
327
255
|
channelReleases = [],
|
|
328
256
|
installOptions = [],
|
|
329
257
|
onUpdateClick,
|
|
330
|
-
primaryColor =
|
|
258
|
+
primaryColor = DEFAULT_SECONDARY_COLOR,
|
|
331
259
|
securityData = {},
|
|
332
260
|
securityDiffData = {},
|
|
333
261
|
securityEnabled = false
|
|
@@ -427,18 +355,28 @@ function InstanceCard({
|
|
|
427
355
|
instance.versionLabel || "Unknown",
|
|
428
356
|
/* @__PURE__ */ jsxRuntime.jsx(UpdateBadge, { count: availableUpdates })
|
|
429
357
|
] }),
|
|
430
|
-
instance.isAirgap && /* @__PURE__ */ jsxRuntime.jsx(
|
|
358
|
+
instance.isAirgap && /* @__PURE__ */ jsxRuntime.jsx(
|
|
359
|
+
"span",
|
|
360
|
+
{
|
|
361
|
+
className: "rounded-full px-2 py-0.5 text-xs font-medium",
|
|
362
|
+
style: {
|
|
363
|
+
backgroundColor: `var(--portal-branding-primary-light, ${DEFAULT_SECONDARY_COLOR}20)`,
|
|
364
|
+
color: `var(--portal-branding-primary, ${DEFAULT_SECONDARY_COLOR})`
|
|
365
|
+
},
|
|
366
|
+
children: "air gap"
|
|
367
|
+
}
|
|
368
|
+
),
|
|
431
369
|
installType && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-600", children: installType }),
|
|
432
370
|
(instance.appStatus || instance.resourceStates && instance.resourceStates.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(AppStatusBadge, { status: statusForBadge })
|
|
433
371
|
] }),
|
|
434
372
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-4", children: [
|
|
435
373
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
436
374
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-500", children: "First check-in:" }),
|
|
437
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children:
|
|
375
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children: formatDateTimeLocal(instance.firstCheckin) })
|
|
438
376
|
] }),
|
|
439
377
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
440
378
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-500", children: "Last check-in:" }),
|
|
441
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children:
|
|
379
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children: formatDateTimeLocal(instance.lastCheckin) })
|
|
442
380
|
] })
|
|
443
381
|
] }),
|
|
444
382
|
securityEnabled && hasSecurityInfo && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -480,15 +418,6 @@ function InstanceCard({
|
|
|
480
418
|
] }) });
|
|
481
419
|
}
|
|
482
420
|
InstanceCard.displayName = "InstanceCard";
|
|
483
|
-
/*! Bundled license information:
|
|
484
|
-
|
|
485
|
-
classnames/index.js:
|
|
486
|
-
(*!
|
|
487
|
-
Copyright (c) 2018 Jed Watson.
|
|
488
|
-
Licensed under the MIT License (MIT), see
|
|
489
|
-
http://jedwatson.github.io/classnames
|
|
490
|
-
*)
|
|
491
|
-
*/
|
|
492
421
|
|
|
493
422
|
exports.InstanceCard = InstanceCard;
|
|
494
423
|
//# sourceMappingURL=instance-card.js.map
|